]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Don't delete and recreate the phonon widget each time the URL changes, use the existi...
authorPeter Penz <peter.penz19@gmail.com>
Sat, 31 Jan 2009 12:42:01 +0000 (12:42 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 31 Jan 2009 12:42:01 +0000 (12:42 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=919058

src/panels/information/informationpanel.cpp
src/panels/information/informationpanel.h

index 35d29869e249a620998469fb9659d959510243d6..000e7fdfbd5435f0c7f8cf517a1c6ba5073f3e17 100644 (file)
 #include <kseparator.h>
 #include <kiconloader.h>
 
+#include <Phonon/BackendCapabilities>
+#include <Phonon/MediaObject>
+#include <Phonon/SeekSlider>
+
 #include <QEvent>
-#include <QtGui/QToolButton>
 #include <QInputDialog>
 #include <QLabel>
 #include <QPainter>
 
 #include "settings/dolphinsettings.h"
 #include "metadatawidget.h"
-#include "phononwidget.h"
 #include "metatextlabel.h"
+#include "phononwidget.h"
 #include "pixmapviewer.h"
-#include <Phonon/BackendCapabilities>
-#include <Phonon/MediaObject>
-#include <Phonon/SeekSlider>
 
 InformationPanel::InformationPanel(QWidget* parent) :
     Panel(parent),
@@ -65,10 +65,9 @@ InformationPanel::InformationPanel(QWidget* parent) :
     m_urlCandidate(),
     m_fileItem(),
     m_selection(),
-    m_infoLabel(0),
-    m_phononWidget(0),
     m_nameLabel(0),
     m_preview(0),
+    m_phononWidget(0),
     m_metaDataWidget(0),
     m_metaTextLabel(0)
 {
@@ -361,9 +360,6 @@ void InformationPanel::cancelRequest()
 
 void InformationPanel::showMetaInfo()
 {
-    delete m_phononWidget;
-    m_phononWidget = 0;
-
     m_metaTextLabel->clear();
 
     if (showMultipleSelectionInfo()) {
@@ -425,13 +421,17 @@ void InformationPanel::showMetaInfo()
         }
 
         if (Phonon::BackendCapabilities::isMimeTypeAvailable(item.mimetype())) {
-            PhononWidget *p = new PhononWidget(this);
-            p->setUrl(item.url());
-            m_phononWidget = p;
+            if (m_phononWidget == 0) {
+                m_phononWidget = new PhononWidget(this);
 
-            QVBoxLayout *l = qobject_cast<QVBoxLayout *>(layout());
-            Q_ASSERT(l);
-            l->insertWidget(3, m_phononWidget);
+                QVBoxLayout* vBoxLayout = qobject_cast<QVBoxLayout*>(layout());
+                Q_ASSERT(vBoxLayout != 0);
+                vBoxLayout->insertWidget(3, m_phononWidget);
+            }
+            m_phononWidget->setUrl(item.url());
+        } else {
+            delete m_phononWidget;
+            m_phononWidget = 0;
         }
     }
 }
index 50a1e615151501c716db5dcc9a1244459da92123..2914345df3ac0e630e8e50ed08719e1b8f7c7e8e 100644 (file)
@@ -37,6 +37,7 @@ class QPixmap;
 class QString;
 class KFileItem;
 class QLabel;
+class PhononWidget;
 class PixmapViewer;
 class MetaDataWidget;
 class MetaTextLabel;
@@ -185,11 +186,9 @@ private:
     KFileItem m_fileItem; // file item for m_shownUrl if available (otherwise null)
     KFileItemList m_selection;
 
-    QLabel* m_infoLabel;
-    QWidget* m_phononWidget;
-
     QLabel* m_nameLabel;
     PixmapViewer* m_preview;
+    PhononWidget* m_phononWidget;
     MetaDataWidget* m_metaDataWidget;
     MetaTextLabel* m_metaTextLabel;
 };