#include <KIO/JobUiDelegate>
#include <KIO/PreviewJob>
+#include <KConfigGroup>
#include <KIconEffect>
#include <KIconLoader>
#include <KJobWidgets>
#include <KLocalizedString>
#include <KSeparator>
+#include <KSharedConfig>
#include <KStringHandler>
#include <QPainterPath>
#include <Baloo/FileMetaDataWidget>
-#include <panels/places/placesitem.h>
-#include <panels/places/placesitemmodel.h>
-
#include <Phonon/BackendCapabilities>
#include <Phonon/MediaObject>
m_nameLabel(nullptr),
m_metaDataWidget(nullptr),
m_metaDataArea(nullptr),
- m_placesItemModel(nullptr),
m_isVideo(false)
{
parent->installEventFilter(this);
m_nameLabel->setTextFormat(Qt::PlainText);
m_nameLabel->setAlignment(Qt::AlignHCenter);
m_nameLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
+ m_nameLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
const bool previewsShown = InformationPanelSettings::previewsShown();
m_preview->setVisible(previewsShown);
layout->addWidget(m_configureButtons);
grabGesture(Qt::TapAndHoldGesture);
-
- m_placesItemModel = new PlacesItemModel(this);
}
InformationPanelContent::~InformationPanelContent()
// can be shown within a short timeframe.
m_outdatedPreviewTimer->start();
- QStringList plugins = KIO::PreviewJob::availablePlugins();
+ const KConfigGroup globalConfig(KSharedConfig::openConfig(), "PreviewSettings");
+ const QStringList plugins = globalConfig.readEntry("Plugins", KIO::PreviewJob::defaultPlugins());
m_previewJob = new KIO::PreviewJob(KFileItemList() << m_item,
QSize(m_preview->width(), m_preview->height()),
&plugins);
m_previewJob->setScaleType(KIO::PreviewJob::Unscaled);
- m_previewJob->setIgnoreMaximumSize(m_item.isLocalFile());
+ m_previewJob->setIgnoreMaximumSize(m_item.isLocalFile() && !m_item.isSlow());
if (m_previewJob->uiDelegate()) {
KJobWidgets::setWindow(m_previewJob, this);
}
KIconLoader::global()->drawOverlays(item.overlays(), p, KIconLoader::Desktop);
if (m_isVideo) {
- // adds a play arrow
+ // adds a play arrow overlay
+
+ auto maxDim = qMax(p.width(), p.height());
+ auto arrowSize = qMax(PLAY_ARROW_SIZE, maxDim / 8);
// compute relative pixel positions
- const int zeroX = static_cast<int>(p.width() / 2 - PLAY_ARROW_SIZE / 2 / devicePixelRatio());
- const int zeroY = static_cast<int>(p.height() / 2 - PLAY_ARROW_SIZE / 2 / devicePixelRatio());
+ const int zeroX = static_cast<int>((p.width() / 2 - arrowSize / 2) / pixmap.devicePixelRatio());
+ const int zeroY = static_cast<int>((p.height() / 2 - arrowSize / 2) / pixmap.devicePixelRatio());
QPolygon arrow;
arrow << QPoint(zeroX, zeroY);
- arrow << QPoint(zeroX, zeroY + PLAY_ARROW_SIZE);
- arrow << QPoint(zeroX + PLAY_ARROW_SIZE, zeroY + PLAY_ARROW_SIZE / 2);
+ arrow << QPoint(zeroX, zeroY + arrowSize);
+ arrow << QPoint(zeroX + arrowSize, zeroY + arrowSize / 2);
QPainterPath path;
path.addPolygon(arrow);
- QLinearGradient gradient(QPointF(zeroX, zeroY),
- QPointF(zeroX + PLAY_ARROW_SIZE,zeroY + PLAY_ARROW_SIZE));
+ QLinearGradient gradient(QPointF(zeroX, zeroY + arrowSize / 2),
+ QPointF(zeroX + arrowSize, zeroY + arrowSize / 2));
QColor whiteColor = Qt::white;
QColor blackColor = Qt::black;