#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 <QTextLayout>
#include <QTimer>
#include <QVBoxLayout>
+#include <QScroller>
#include <QStyle>
#include <QPainter>
#include <QBitmap>
#include <QLinearGradient>
#include <QPolygon>
+#include <QGesture>
#include "dolphin_informationpanelsettings.h"
#include "phononwidget.h"
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);
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();
}
);
m_metaDataArea->setFrameShape(QFrame::NoFrame);
QWidget* viewport = m_metaDataArea->viewport();
+ QScroller::grabGesture(viewport, QScroller::TouchGesture);
viewport->installEventFilter(this);
layout->addWidget(m_preview);
layout->addWidget(m_metaDataArea);
layout->addWidget(m_configureButtons);
+ grabGesture(Qt::TapAndHoldGesture);
+
m_placesItemModel = new PlacesItemModel(this);
}
// 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);
return QWidget::eventFilter(obj, event);
}
+bool InformationPanelContent::event(QEvent* event)
+{
+ if (event->type() == QEvent::Gesture) {
+ gestureEvent(static_cast<QGestureEvent*>(event));
+ return true;
+ }
+ return QWidget::event(event);
+}
+
+bool InformationPanelContent::gestureEvent(QGestureEvent* event)
+{
+ if (!underMouse()) {
+ return false;
+ }
+
+ QTapAndHoldGesture* tap = static_cast<QTapAndHoldGesture*>(event->gesture(Qt::TapAndHoldGesture));
+
+ if (tap) {
+ if (tap->state() == Qt::GestureFinished) {
+ Q_EMIT contextMenuRequested(tap->position().toPoint());
+ }
+ event->accept();
+ return true;
+ }
+ return false;
+}
+
void InformationPanelContent::showIcon(const KFileItem& item)
{
m_outdatedPreviewTimer->stop();
// adds a play arrow
// 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 - PLAY_ARROW_SIZE / 2) / pixmap.devicePixelRatio());
+ const int zeroY = static_cast<int>((p.height() / 2 - PLAY_ARROW_SIZE / 2) / pixmap.devicePixelRatio());
QPolygon arrow;
arrow << QPoint(zeroX, zeroY);