X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9aee5d22513f0367febab54b38b3a7dc58d120bb..cebcf8db:/src/panels/information/informationpanel.h diff --git a/src/panels/information/informationpanel.h b/src/panels/information/informationpanel.h index 78e2d71ff..eda70759a 100644 --- a/src/panels/information/informationpanel.h +++ b/src/panels/information/informationpanel.h @@ -1,31 +1,20 @@ -/*************************************************************************** - * Copyright (C) 2006-2009 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2006-2009 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef INFORMATIONPANEL_H #define INFORMATIONPANEL_H -#include +#include "panels/panel.h" + #include + class InformationPanelContent; namespace KIO { - class Job; +class Job; } /** @@ -36,18 +25,24 @@ class InformationPanel : public Panel Q_OBJECT public: - explicit InformationPanel(QWidget* parent = 0); - virtual ~InformationPanel(); + explicit InformationPanel(QWidget *parent = nullptr); + ~InformationPanel() override; -signals: - void urlActivated(const QUrl& url); + /** + * Refreshes the view to get synchronized with the settings (e.g. icons size, + * font, ...). + */ + void readSettings() override; + +Q_SIGNALS: + void urlActivated(const QUrl &url); -public slots: +public Q_SLOTS: /** * This is invoked to inform the panel that the user has selected a new * set of items. */ - void setSelection(const KFileItemList& selection); + void setSelection(const KFileItemList &selection); /** * Does a delayed request of information for the item \a item. @@ -55,25 +50,27 @@ public slots: * are invoked, then the request will be skipped. Requesting a delayed item information * makes sense when hovering items. */ - void requestDelayedItemInfo(const KFileItem& item); + void requestDelayedItemInfo(const KFileItem &item); + + void slotFilesItemChanged(const KFileItemList &changedFileItems); protected: /** @see Panel::urlChanged() */ - virtual bool urlChanged() Q_DECL_OVERRIDE; + bool urlChanged() override; /** @see QWidget::showEvent() */ - virtual void showEvent(QShowEvent* event) Q_DECL_OVERRIDE; + void showEvent(QShowEvent *event) override; /** @see QWidget::resizeEvent() */ - virtual void resizeEvent(QResizeEvent* event) Q_DECL_OVERRIDE; + void resizeEvent(QResizeEvent *event) override; /** @see QWidget::contextMenuEvent() */ - virtual void contextMenuEvent(QContextMenuEvent* event) Q_DECL_OVERRIDE; + void contextMenuEvent(QContextMenuEvent *event) override; -private slots: +private Q_SLOTS: /** * Shows the information for the item of the URL which has been provided by - * InformationPanel::requestItemInfo() and provides default actions. + * InformationPanel::requestDelayedItemInfo() and provides default actions. */ void showItemInfo(); @@ -81,7 +78,7 @@ private slots: * Shows the information for the currently displayed folder as a result from * a stat job issued in showItemInfo(). */ - void slotFolderStatFinished(KJob* job); + void slotFolderStatFinished(KJob *job); /** * Triggered if the request for item information has timed out. @@ -96,27 +93,21 @@ private slots: */ void reset(); - void slotFileRenamed(const QString& source, const QString& dest); - void slotFilesAdded(const QString& directory); - void slotFilesChanged(const QStringList& files); - void slotFilesRemoved(const QStringList& files); - void slotEnteredDirectory(const QString& directory); - void slotLeftDirectory(const QString& directory); + void slotFileRenamed(const QString &source, const QString &dest); + void slotFilesAdded(const QString &directory); + void slotFilesChanged(const QStringList &files); + void slotFilesRemoved(const QStringList &files); + void slotEnteredDirectory(const QString &directory); + void slotLeftDirectory(const QString &directory); private: /** Assures that any pending item information request is cancelled. */ void cancelRequest(); - /** - * Shows the meta information for the current shown item inside - * a label. - */ - void showMetaInfo(); - /** * Returns true, if \a url is equal to the shown URL m_shownUrl. */ - bool isEqualToShownUrl(const QUrl& url) const; + bool isEqualToShownUrl(const QUrl &url) const; /** * Marks the URL as invalid and will reset the Information Panel @@ -126,14 +117,19 @@ private: */ void markUrlAsInvalid(); + /** + * Opens a menu which allows to configure which meta information + * should be shown. + */ + void showContextMenu(const QPoint &point); + void init(); private: bool m_initialized; - bool m_pendingPreview; - QTimer* m_infoTimer; - QTimer* m_urlChangedTimer; - QTimer* m_resetUrlTimer; + QTimer *m_infoTimer; + QTimer *m_urlChangedTimer; + QTimer *m_resetUrlTimer; // URL that is currently shown in the Information Panel. QUrl m_shownUrl; @@ -148,12 +144,13 @@ private: // a directory has been changed. QUrl m_invalidUrlCandidate; - KFileItem m_fileItem; // file item for m_shownUrl if available (otherwise null) + KFileItem m_hoveredItem; KFileItemList m_selection; - KIO::Job* m_folderStatJob; + KIO::Job *m_folderStatJob; - InformationPanelContent* m_content; + InformationPanelContent *m_content; + bool m_inConfigurationMode = false; }; #endif // INFORMATIONPANEL_H