]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Information Panel: If the width of the panel is increased, also increase the size...
authorPeter Penz <peter.penz19@gmail.com>
Sat, 2 Feb 2008 23:17:14 +0000 (23:17 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 2 Feb 2008 23:17:14 +0000 (23:17 +0000)
BUG: 156046

svn path=/trunk/KDE/kdebase/apps/; revision=770173

src/infosidebarpage.cpp
src/pixmapviewer.cpp
src/pixmapviewer.h

index bcb28aa1987c006ea1eb58dcec229430018fa165..767c3278eea8e1d525abf19f5fe703667ab96246 100644 (file)
@@ -69,7 +69,7 @@ InfoSidebarPage::InfoSidebarPage(QWidget* parent) :
     // preview
     m_preview = new PixmapViewer(this);
     m_preview->setMinimumWidth(KIconLoader::SizeEnormous);
     // preview
     m_preview = new PixmapViewer(this);
     m_preview->setMinimumWidth(KIconLoader::SizeEnormous);
-    m_preview->setFixedHeight(KIconLoader::SizeEnormous);
+    m_preview->setMinimumHeight(KIconLoader::SizeEnormous);
 
     // name
     m_nameLabel = new QLabel(this);
 
     // name
     m_nameLabel = new QLabel(this);
@@ -169,6 +169,11 @@ void InfoSidebarPage::resizeEvent(QResizeEvent* event)
     const int maxWidth = event->size().width() - KDialog::spacingHint() * 4;
     m_nameLabel->setMaximumWidth(maxWidth);
     m_infoLabel->setMaximumWidth(maxWidth);
     const int maxWidth = event->size().width() - KDialog::spacingHint() * 4;
     m_nameLabel->setMaximumWidth(maxWidth);
     m_infoLabel->setMaximumWidth(maxWidth);
+
+    // try to increase the preview as large as possible
+    m_preview->setSizeHint(QSize(maxWidth, maxWidth));
+    m_timer->start(TimerDelay);
+
     SidebarPage::resizeEvent(event);
 }
 
     SidebarPage::resizeEvent(event);
 }
 
@@ -196,7 +201,7 @@ void InfoSidebarPage::showItemInfo()
         KIconLoader iconLoader;
         QPixmap icon = iconLoader.loadIcon("system-run",
                                            KIconLoader::NoGroup,
         KIconLoader iconLoader;
         QPixmap icon = iconLoader.loadIcon("system-run",
                                            KIconLoader::NoGroup,
-                                           KIconLoader::SizeEnormous);
+                                           m_preview->width());
         m_preview->setPixmap(icon);
         m_nameLabel->setText(i18ncp("@info", "%1 item selected", "%1 items selected", selectedItems.count()));
     } else if (!applyPlace(file)) {
         m_preview->setPixmap(icon);
         m_nameLabel->setText(i18ncp("@info", "%1 item selected", "%1 items selected", selectedItems.count()));
     } else if (!applyPlace(file)) {
@@ -209,7 +214,7 @@ void InfoSidebarPage::showItemInfo()
 
         KIO::PreviewJob* job = KIO::filePreview(list,
                                                 m_preview->width(),
 
         KIO::PreviewJob* job = KIO::filePreview(list,
                                                 m_preview->width(),
-                                                KIconLoader::SizeEnormous,
+                                                m_preview->height(),
                                                 0,
                                                 0,
                                                 true,
                                                 0,
                                                 0,
                                                 true,
index a7a593bb06b7a19e350f0fd0b82a071fa6ab7180..f535475aac0ef784bb15af03e8fa58016e90dd3b 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <kiconloader.h>
 
 
 #include <kiconloader.h>
 
+#include <QLayout>
 #include <QPainter>
 #include <QPixmap>
 #include <QKeyEvent>
 #include <QPainter>
 #include <QPixmap>
 #include <QKeyEvent>
@@ -28,7 +29,8 @@
 PixmapViewer::PixmapViewer(QWidget* parent, Transition transition) :
     QWidget(parent),
     m_transition(transition),
 PixmapViewer::PixmapViewer(QWidget* parent, Transition transition) :
     QWidget(parent),
     m_transition(transition),
-    m_animationStep(0)
+    m_animationStep(0),
+    m_sizeHint()
 {
     setMinimumWidth(KIconLoader::SizeEnormous);
     setMinimumHeight(KIconLoader::SizeEnormous);
 {
     setMinimumWidth(KIconLoader::SizeEnormous);
     setMinimumHeight(KIconLoader::SizeEnormous);
@@ -72,6 +74,19 @@ void PixmapViewer::setPixmap(const QPixmap& pixmap)
     }
 }
 
     }
 }
 
+void PixmapViewer::setSizeHint(const QSize& size)
+{
+    m_sizeHint = size;
+    if ((parentWidget() != 0) && (parentWidget()->layout() != 0)) {
+        parentWidget()->layout()->activate();
+    }
+}
+
+QSize PixmapViewer::sizeHint() const
+{
+    return m_sizeHint;
+}
+
 void PixmapViewer::paintEvent(QPaintEvent* event)
 {
     QWidget::paintEvent(event);
 void PixmapViewer::paintEvent(QPaintEvent* event)
 {
     QWidget::paintEvent(event);
index 01d8cf1c18a842a0038ca2446ae449e71421d765..26e520aab3bc05e117bbdf1d242aa4c011891580 100644 (file)
@@ -66,6 +66,13 @@ public:
     void setPixmap(const QPixmap& pixmap);
     const QPixmap& pixmap() const;
 
     void setPixmap(const QPixmap& pixmap);
     const QPixmap& pixmap() const;
 
+    /**
+     * Sets the size hint to \a size and triggers a relayout
+     * of the parent widget. Per default no size hint is given.
+     */
+    void setSizeHint(const QSize& size);
+    virtual QSize sizeHint() const;
+
 protected:
     virtual void paintEvent(QPaintEvent* event);
 
 protected:
     virtual void paintEvent(QPaintEvent* event);
 
@@ -79,6 +86,7 @@ private:
     QTimeLine m_animation;
     Transition m_transition;
     int m_animationStep;
     QTimeLine m_animation;
     Transition m_transition;
     int m_animationStep;
+    QSize m_sizeHint;
 };
 
 inline const QPixmap& PixmapViewer::pixmap() const
 };
 
 inline const QPixmap& PixmapViewer::pixmap() const