X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d3496b12310d9fec0e52e537c341e87fcaa2f8b5..c8d8556950005dfd96ebdb41d2f43ad90356367c:/src/panels/information/informationpanelcontent.cpp diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index 08121e78a..7de6052e0 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include #include @@ -50,9 +50,9 @@ #include "dolphin_informationpanelsettings.h" #include "filemetadataconfigurationdialog.h" -#include "settings/dolphinsettings.h" #include "phononwidget.h" #include "pixmapviewer.h" +#include "views/dolphinplacesmodel.h" InformationPanelContent::InformationPanelContent(QWidget* parent) : QWidget(parent), @@ -63,8 +63,7 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : m_phononWidget(0), m_nameLabel(0), m_metaDataWidget(0), - m_metaDataArea(0), - m_enabledPlugins() + m_metaDataArea(0) { parent->installEventFilter(this); @@ -103,8 +102,8 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : m_nameLabel->setAlignment(Qt::AlignHCenter); m_nameLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - const bool showPreview = InformationPanelSettings::showPreview(); - m_preview->setVisible(showPreview); + const bool previewsShown = InformationPanelSettings::previewsShown(); + m_preview->setVisible(previewsShown); m_metaDataWidget = new KFileMetaDataWidget(parent); m_metaDataWidget->setFont(KGlobalSettings::smallestReadableFont()); @@ -174,21 +173,13 @@ void InformationPanelContent::showItem(const KFileItem& item) m_outdatedPreviewTimer->start(); } - if (m_enabledPlugins.isEmpty()) { - const KConfigGroup globalConfig(KGlobal::config(), "PreviewSettings"); - m_enabledPlugins = globalConfig.readEntry("Plugins", QStringList() - << "directorythumbnail" - << "imagethumbnail" - << "jpegthumbnail"); - } - - KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << item, m_preview->width(), m_preview->height(), - 0, 0, false, true, &m_enabledPlugins); + KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << item, QSize(m_preview->width(), m_preview->height())); + job->setScaleType(KIO::PreviewJob::Unscaled); - connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)), - this, SLOT(showPreview(const KFileItem&, const QPixmap&))); - connect(job, SIGNAL(failed(const KFileItem&)), - this, SLOT(showIcon(const KFileItem&))); + connect(job, SIGNAL(gotPreview(KFileItem,QPixmap)), + this, SLOT(showPreview(KFileItem,QPixmap))); + connect(job, SIGNAL(failed(KFileItem)), + this, SLOT(showIcon(KFileItem))); } } @@ -197,7 +188,7 @@ void InformationPanelContent::showItem(const KFileItem& item) m_metaDataWidget->setItems(KFileItemList() << item); } - if (InformationPanelSettings::showPreview()) { + if (InformationPanelSettings::previewsShown()) { const QString mimeType = item.mimetype(); const bool usePhonon = Phonon::BackendCapabilities::isMimeTypeAvailable(mimeType) && (mimeType != "image/png"); // TODO: workaround, as Phonon @@ -276,7 +267,7 @@ void InformationPanelContent::configureSettings(const QList& customCon QAction* previewAction = popup.addAction(i18nc("@action:inmenu", "Preview")); previewAction->setIcon(KIcon("view-preview")); previewAction->setCheckable(true); - previewAction->setChecked(InformationPanelSettings::showPreview()); + previewAction->setChecked(InformationPanelSettings::previewsShown()); QAction* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure...")); configureAction->setIcon(KIcon("configure")); @@ -296,7 +287,7 @@ void InformationPanelContent::configureSettings(const QList& customCon const bool isChecked = action->isChecked(); if (action == previewAction) { m_preview->setVisible(isChecked); - InformationPanelSettings::setShowPreview(isChecked); + InformationPanelSettings::setPreviewsShown(isChecked); } else if (action == configureAction) { FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog(); dialog->setDescription(i18nc("@label::textbox", @@ -315,7 +306,8 @@ void InformationPanelContent::showIcon(const KFileItem& item) m_outdatedPreviewTimer->stop(); m_pendingPreview = false; if (!applyPlace(item.targetUrl())) { - m_preview->setPixmap(item.pixmap(KIconLoader::SizeEnormous)); + KIcon icon(item.iconName(), KIconLoader::global(), item.overlays()); + m_preview->setPixmap(icon.pixmap(KIconLoader::SizeEnormous)); } } @@ -323,10 +315,11 @@ void InformationPanelContent::showPreview(const KFileItem& item, const QPixmap& pixmap) { m_outdatedPreviewTimer->stop(); - Q_UNUSED(item); if (m_pendingPreview) { - m_preview->setPixmap(pixmap); + QPixmap p = pixmap; + KIconLoader::global()->drawOverlays(item.overlays(), p, KIconLoader::Desktop); + m_preview->setPixmap(p); m_pendingPreview = false; } } @@ -359,8 +352,8 @@ void InformationPanelContent::refreshMetaData() bool InformationPanelContent::applyPlace(const KUrl& url) { - KFilePlacesModel* placesModel = DolphinSettings::instance().placesModel(); - int count = placesModel->rowCount(); + KFilePlacesModel* placesModel = DolphinPlacesModel::instance(); + const int count = placesModel->rowCount(); for (int i = 0; i < count; ++i) { QModelIndex index = placesModel->index(i, 0);