mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Merge remote-tracking branch 'origin/Applications/19.04'
This commit is contained in:
commit
bc1a99bd11
|
@ -25,11 +25,18 @@
|
|||
#include <KIO/JobUiDelegate>
|
||||
#include <KJobWidgets>
|
||||
#include <KDirNotify>
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <Baloo/FileMetaDataWidget>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QShowEvent>
|
||||
#include <QVBoxLayout>
|
||||
#include <QTimer>
|
||||
#include <QMenu>
|
||||
|
||||
#include "dolphin_informationpanelsettings.h"
|
||||
#include "filemetadataconfigurationdialog.h"
|
||||
|
||||
InformationPanel::InformationPanel(QWidget* parent) :
|
||||
Panel(parent),
|
||||
|
@ -157,11 +164,59 @@ void InformationPanel::resizeEvent(QResizeEvent* event)
|
|||
|
||||
void InformationPanel::contextMenuEvent(QContextMenuEvent* event)
|
||||
{
|
||||
// TODO: Move code from InformationPanelContent::configureSettings() here
|
||||
m_content->configureSettings(customContextMenuActions(), event->globalPos());
|
||||
showContextMenu(event->globalPos());
|
||||
Panel::contextMenuEvent(event);
|
||||
}
|
||||
|
||||
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* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure..."));
|
||||
configureAction->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
|
||||
|
||||
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();
|
||||
foreach (QAction* action, customContextMenuActions()) {
|
||||
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) {
|
||||
m_content->setPreviewVisible(isChecked);
|
||||
InformationPanelSettings::setPreviewsShown(isChecked);
|
||||
} else if (action == configureAction) {
|
||||
FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog(this);
|
||||
dialog->setDescription(i18nc("@label::textbox",
|
||||
"Select which data should be shown in the information panel:"));
|
||||
dialog->setItems(m_content->items());
|
||||
dialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||
dialog->show();
|
||||
connect(dialog, &FileMetaDataConfigurationDialog::destroyed, m_content, &InformationPanelContent::refreshMetaData);
|
||||
}
|
||||
if (action == dateformatAction) {
|
||||
int dateFormat = static_cast<int>(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat);
|
||||
|
||||
InformationPanelSettings::setDateFormat(dateFormat);
|
||||
m_content->refreshMetaData();
|
||||
}
|
||||
}
|
||||
|
||||
void InformationPanel::showItemInfo()
|
||||
{
|
||||
if (!isVisible()) {
|
||||
|
|
|
@ -128,6 +128,12 @@ private:
|
|||
*/
|
||||
void markUrlAsInvalid();
|
||||
|
||||
/**
|
||||
* Opens a menu which allows to configure which meta information
|
||||
* should be shown.
|
||||
*/
|
||||
void showContextMenu(const QPoint &point);
|
||||
|
||||
void init();
|
||||
|
||||
private:
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include <KStringHandler>
|
||||
|
||||
#include <QIcon>
|
||||
#include <QMenu>
|
||||
#include <QTextDocument>
|
||||
|
||||
#include <Baloo/FileMetaDataWidget>
|
||||
|
@ -48,7 +47,6 @@
|
|||
#include <QStyle>
|
||||
|
||||
#include "dolphin_informationpanelsettings.h"
|
||||
#include "filemetadataconfigurationdialog.h"
|
||||
#include "phononwidget.h"
|
||||
#include "pixmapviewer.h"
|
||||
|
||||
|
@ -264,56 +262,6 @@ bool InformationPanelContent::eventFilter(QObject* obj, QEvent* event)
|
|||
return QWidget::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
void InformationPanelContent::configureSettings(const QList<QAction*>& customContextMenuActions, const QPointF& 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* configureAction = popup.addAction(i18nc("@action:inmenu", "Configure..."));
|
||||
configureAction->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
|
||||
|
||||
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();
|
||||
foreach (QAction* action, customContextMenuActions) {
|
||||
popup.addAction(action);
|
||||
}
|
||||
|
||||
// Open the popup and adjust the settings for the
|
||||
// selected action.
|
||||
QAction* action = popup.exec(pos.toPoint());
|
||||
if (!action) {
|
||||
return;
|
||||
}
|
||||
|
||||
const bool isChecked = action->isChecked();
|
||||
if (action == previewAction) {
|
||||
m_preview->setVisible(isChecked);
|
||||
InformationPanelSettings::setPreviewsShown(isChecked);
|
||||
} else if (action == configureAction) {
|
||||
FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog(this);
|
||||
dialog->setDescription(i18nc("@label::textbox",
|
||||
"Select which data should be shown in the information panel:"));
|
||||
dialog->setItems(m_metaDataWidget->items());
|
||||
dialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||
dialog->show();
|
||||
connect(dialog, &FileMetaDataConfigurationDialog::destroyed, this, &InformationPanelContent::refreshMetaData);
|
||||
}
|
||||
if (action == dateformatAction) {
|
||||
int dateFormat = static_cast<int>(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat);
|
||||
|
||||
InformationPanelSettings::setDateFormat(dateFormat);
|
||||
refreshMetaData();
|
||||
}
|
||||
}
|
||||
|
||||
void InformationPanelContent::showIcon(const KFileItem& item)
|
||||
{
|
||||
m_outdatedPreviewTimer->stop();
|
||||
|
@ -342,6 +290,14 @@ void InformationPanelContent::markOutdatedPreview()
|
|||
m_preview->setPixmap(disabledPixmap);
|
||||
}
|
||||
|
||||
void InformationPanelContent::setPreviewVisible(bool visible) {
|
||||
m_preview->setVisible(visible);
|
||||
}
|
||||
|
||||
KFileItemList InformationPanelContent::items() {
|
||||
return m_metaDataWidget->items();
|
||||
}
|
||||
|
||||
void InformationPanelContent::slotHasVideoChanged(bool hasVideo)
|
||||
{
|
||||
m_preview->setVisible(!hasVideo);
|
||||
|
|
|
@ -72,17 +72,20 @@ public:
|
|||
*/
|
||||
void showItems(const KFileItemList& items);
|
||||
|
||||
/**
|
||||
* Opens a menu which allows to configure which meta information
|
||||
* should be shown.
|
||||
*
|
||||
* TODO: Move this code to the class InformationPanel
|
||||
*/
|
||||
void configureSettings(const QList<QAction*>& customContextMenuActions, const QPointF& pos);
|
||||
void setPreviewVisible(bool visible);
|
||||
|
||||
KFileItemList items();
|
||||
|
||||
signals:
|
||||
void urlActivated( const QUrl& url );
|
||||
|
||||
public slots:
|
||||
/**
|
||||
* Is invoked after the file meta data configuration dialog has been
|
||||
* closed and refreshes the visibility of the meta data.
|
||||
*/
|
||||
void refreshMetaData();
|
||||
|
||||
protected:
|
||||
/** @see QObject::eventFilter() */
|
||||
bool eventFilter(QObject* obj, QEvent* event) override;
|
||||
|
@ -108,12 +111,6 @@ private slots:
|
|||
|
||||
void slotHasVideoChanged(bool hasVideo);
|
||||
|
||||
/**
|
||||
* Is invoked after the file meta data configuration dialog has been
|
||||
* closed and refreshes the visibility of the meta data.
|
||||
*/
|
||||
void refreshMetaData();
|
||||
|
||||
private:
|
||||
/**
|
||||
* Sets the text for the label \a m_nameLabel and assures that the
|
||||
|
|
Loading…
Reference in a new issue