#include <KDialog>
#include <KFileItem>
-#include <KFileMetaDataWidget>
+#include <kfilemetadatawidget.h>
#include <KFilePlacesModel>
#include <KGlobalSettings>
+#include <KIO/JobUiDelegate>
#include <KIO/PreviewJob>
#include <KIconEffect>
#include <KIconLoader>
#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),
m_phononWidget(0),
m_nameLabel(0),
m_metaDataWidget(0),
- m_metaDataArea(0),
- m_enabledPlugins()
+ m_metaDataArea(0)
{
parent->installEventFilter(this);
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());
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 = new KIO::PreviewJob(KFileItemList() << item, QSize(m_preview->width(), m_preview->height()));
+ job->setScaleType(KIO::PreviewJob::Unscaled);
+ job->setIgnoreMaximumSize(item.isLocalFile());
+ if (job->ui()) {
+ job->ui()->setWindow(this);
}
- 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&)));
- 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)));
}
}
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
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"));
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",
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));
}
}
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;
}
}
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);