┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/information/informationpanel.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-01-31 12:42:01 +0000
committerPeter Penz <[email protected]>2009-01-31 12:42:01 +0000
commit68a7ed8bcfafe36676ddb43a5de426a6f600a05d (patch)
tree5def605b3a17719a53824845d96255667bf369b4 /src/panels/information/informationpanel.cpp
parent29a5af6390188102e48aa0e3933acf11da8b7d90 (diff)
Don't delete and recreate the phonon widget each time the URL changes, use the existing widget instance if possible.
svn path=/trunk/KDE/kdebase/apps/; revision=919058
Diffstat (limited to 'src/panels/information/informationpanel.cpp')
-rw-r--r--src/panels/information/informationpanel.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp
index 35d29869e..000e7fdfb 100644
--- a/src/panels/information/informationpanel.cpp
+++ b/src/panels/information/informationpanel.cpp
@@ -34,8 +34,11 @@
#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>
@@ -48,12 +51,9 @@
#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;
}
}
}