X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/431da0482caa72f90a6a04785383eb1d133f678e..ceba0f6f6a07babac230d1f136d16d34629b4cf3:/src/panels/information/informationpanelcontent.cpp diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index b6a41ca3d..b820be0a0 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Peter Penz * + * Copyright (C) 2009 by Peter Penz * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -19,18 +19,18 @@ #include "informationpanelcontent.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include #include @@ -49,8 +49,8 @@ #include #include "dolphin_informationpanelsettings.h" +#include "filemetadataconfigurationdialog.h" #include "settings/dolphinsettings.h" -#include "settings/filemetadataconfigurationdialog.h" #include "phononwidget.h" #include "pixmapviewer.h" @@ -63,7 +63,8 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : m_phononWidget(0), m_nameLabel(0), m_metaDataWidget(0), - m_metaDataArea(0) + m_metaDataArea(0), + m_enabledPlugins() { parent->installEventFilter(this); @@ -173,13 +174,16 @@ void InformationPanelContent::showItem(const KFileItem& item) m_outdatedPreviewTimer->start(); } - KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << item, - m_preview->width(), - m_preview->height(), - 0, - 0, - false, - true); + 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); connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)), this, SLOT(showPreview(const KFileItem&, const QPixmap&))); @@ -204,7 +208,7 @@ void InformationPanelContent::showItem(const KFileItem& item) ? PhononWidget::Video : PhononWidget::Audio; m_phononWidget->setMode(mode); - m_phononWidget->setUrl(item.url()); + m_phononWidget->setUrl(item.targetUrl()); if ((mode == PhononWidget::Video) && m_preview->isVisible()) { m_phononWidget->setVideoSize(m_preview->size()); } @@ -265,7 +269,7 @@ bool InformationPanelContent::eventFilter(QObject* obj, QEvent* event) return QWidget::eventFilter(obj, event); } -void InformationPanelContent::configureSettings() +void InformationPanelContent::configureSettings(const QList& customContextMenuActions) { KMenu popup(this); @@ -277,6 +281,11 @@ void InformationPanelContent::configureSettings() QAction* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure...")); configureAction->setIcon(KIcon("configure")); + popup.addSeparator(); + foreach (QAction* action, customContextMenuActions) { + popup.addAction(action); + } + // Open the popup and adjust the settings for the // selected action. QAction* action = popup.exec(QCursor::pos()); @@ -291,7 +300,7 @@ void InformationPanelContent::configureSettings() } else if (action == configureAction) { FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog(); dialog->setDescription(i18nc("@label::textbox", - "Select which data should be shown in the information panel.")); + "Select which data should be shown in the information panel:")); dialog->setItems(m_metaDataWidget->items()); dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->show(); @@ -305,7 +314,7 @@ void InformationPanelContent::showIcon(const KFileItem& item) { m_outdatedPreviewTimer->stop(); m_pendingPreview = false; - if (!applyPlace(item.url())) { + if (!applyPlace(item.targetUrl())) { m_preview->setPixmap(item.pixmap(KIconLoader::SizeEnormous)); } }