+void InformationPanel::showContextMenu(const QPoint &pos)
+{
+ QMenu popup(this);
+
+ QAction* previewAction = popup.addAction(i18nc("@action:inmenu", "Preview"));
+ previewAction->setIcon(QIcon::fromTheme(QStringLiteral("view-preview")));
+ previewAction->setCheckable(true);
+ previewAction->setChecked(InformationPanelSettings::previewsShown());
+
+ QAction* previewAutoPlayAction = popup.addAction(i18nc("@action:inmenu", "Auto-Play media files"));
+ previewAutoPlayAction->setIcon(QIcon::fromTheme(QStringLiteral("media-playback-start")));
+ previewAutoPlayAction->setCheckable(true);
+ previewAutoPlayAction->setChecked(InformationPanelSettings::previewsAutoPlay());
+
+ QAction* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure..."));
+ configureAction->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
+ if (m_inConfigurationMode) {
+ configureAction->setEnabled(false);
+ }
+
+ QAction* dateformatAction = popup.addAction(i18nc("@action:inmenu", "Condensed Date"));
+ dateformatAction->setIcon(QIcon::fromTheme(QStringLiteral("change-date-symbolic")));
+ dateformatAction->setCheckable(true);
+ dateformatAction->setChecked(InformationPanelSettings::dateFormat() == static_cast<int>(Baloo::DateFormats::ShortFormat));
+
+ popup.addSeparator();
+ const auto actions = customContextMenuActions();
+ for (QAction *action : actions) {
+ popup.addAction(action);
+ }
+
+ // Open the popup and adjust the settings for the
+ // selected action.
+ QAction* action = popup.exec(pos);
+ if (!action) {
+ return;
+ }
+
+ const bool isChecked = action->isChecked();
+ if (action == previewAction) {
+ InformationPanelSettings::setPreviewsShown(isChecked);
+ m_content->refreshPreview();
+ } else if (action == configureAction) {
+ m_inConfigurationMode = true;
+ m_content->configureShownProperties();
+ }
+ if (action == dateformatAction) {
+ int dateFormat = static_cast<int>(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat);
+
+ InformationPanelSettings::setDateFormat(dateFormat);
+ m_content->refreshMetaData();
+ } else if (action == previewAutoPlayAction) {
+ InformationPanelSettings::setPreviewsAutoPlay(isChecked);
+ m_content->setPreviewAutoPlay(isChecked);
+ }
+}
+