X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d7b33b76a18b14e9f286e4d8326b00910b9ea02a..e9bd295b:/src/panels/information/informationpanelcontent.cpp diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index ded88bd96..a1e8d1b1d 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -8,11 +8,13 @@ #include #include +#include #include #include #include #include #include +#include #include #include @@ -21,9 +23,6 @@ #include -#include -#include - #include #include @@ -58,7 +57,6 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : m_nameLabel(nullptr), m_metaDataWidget(nullptr), m_metaDataArea(nullptr), - m_placesItemModel(nullptr), m_isVideo(false) { parent->installEventFilter(this); @@ -96,6 +94,7 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : 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); @@ -119,14 +118,14 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : m_metaDataWidget->setConfigurationMode(Baloo::ConfigurationMode::Accept); m_configureButtons->setVisible(false); m_configureLabel->setVisible(false); - emit configurationFinished(); + Q_EMIT configurationFinished(); } ); connect(m_configureButtons, &QDialogButtonBox::rejected, this, [this]() { m_metaDataWidget->setConfigurationMode(Baloo::ConfigurationMode::Cancel); m_configureButtons->setVisible(false); m_configureLabel->setVisible(false); - emit configurationFinished(); + Q_EMIT configurationFinished(); } ); @@ -148,8 +147,6 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) : layout->addWidget(m_configureButtons); grabGesture(Qt::TapAndHoldGesture); - - m_placesItemModel = new PlacesItemModel(this); } InformationPanelContent::~InformationPanelContent() @@ -184,12 +181,13 @@ void InformationPanelContent::refreshPixmapView() // 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); } @@ -362,7 +360,7 @@ bool InformationPanelContent::gestureEvent(QGestureEvent* event) if (tap) { if (tap->state() == Qt::GestureFinished) { - emit contextMenuRequested(tap->position().toPoint()); + Q_EMIT contextMenuRequested(tap->position().toPoint()); } event->accept(); return true; @@ -387,22 +385,25 @@ void InformationPanelContent::showPreview(const KFileItem& item, 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(p.width() / 2 - PLAY_ARROW_SIZE / 2 / devicePixelRatio()); - const int zeroY = static_cast(p.height() / 2 - PLAY_ARROW_SIZE / 2 / devicePixelRatio()); + const int zeroX = static_cast((p.width() / 2 - arrowSize / 2) / pixmap.devicePixelRatio()); + const int zeroY = static_cast((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;