-/***************************************************************************
- * Copyright (C) 2006-2009 by Peter Penz <peter.penz19@gmail.com> *
- * *
- * 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 <peter.penz19@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
#ifndef INFORMATIONPANEL_H
#define INFORMATIONPANEL_H
class InformationPanelContent;
namespace KIO
{
- class Job;
+class Job;
}
/**
Q_OBJECT
public:
- explicit InformationPanel(QWidget* parent = nullptr);
+ 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.
* 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() */
bool urlChanged() override;
/** @see QWidget::showEvent() */
- void showEvent(QShowEvent* event) override;
+ void showEvent(QShowEvent *event) override;
/** @see QWidget::resizeEvent() */
- void resizeEvent(QResizeEvent* event) override;
+ void resizeEvent(QResizeEvent *event) override;
/** @see QWidget::contextMenuEvent() */
- void contextMenuEvent(QContextMenuEvent* event) 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();
* 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.
*/
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
*/
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;
- 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;
// 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