X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6c60655ce246a91758f4b9035edf318cb1197a2c..be51e7233294263e3c2866e101e1151dbc61ccbe:/src/dolphinviewcontainer.h diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h index 90df69c8e..a509bab3d 100644 --- a/src/dolphinviewcontainer.h +++ b/src/dolphinviewcontainer.h @@ -14,23 +14,26 @@ #include #include +#include #include #include #include #include +#include + namespace Admin { class Bar; } class FilterBar; -class KMessageWidget; class QAction; class QGridLayout; class QUrl; class DolphinSearchBox; class DolphinStatusBar; +class KFileItemList; namespace SelectionMode { class TopBar; @@ -53,8 +56,6 @@ class DolphinViewContainer : public QWidget Q_OBJECT public: - enum MessageType { Information, Warning, Error }; - DolphinViewContainer(const QUrl &url, QWidget *parent); ~DolphinViewContainer() override; @@ -151,10 +152,10 @@ public: bool isSelectionModeEnabled() const; /** - * Shows the message \msg with the given type non-modal above - * the view-content. + * Shows the message \message with the given type \messageType non-modal above the view-content. + * \buttonActions defines actions which the user can trigger as a response to this message. They are presented as buttons below the \message. */ - void showMessage(const QString &msg, MessageType type); + void showMessage(const QString &message, KMessageWidget::MessageType messageType, std::initializer_list buttonActions = {}); /** * Refreshes the view container to get synchronized with the (updated) Dolphin settings. @@ -283,10 +284,6 @@ private Q_SLOTS: */ void updateStatusBar(); - void updateDirectoryLoadingProgress(int percent); - - void updateDirectorySortingProgress(int percent); - /** * Updates the statusbar to show an undetermined progress with the correct * context information whether a searching or a directory loading is done. @@ -335,11 +332,6 @@ private Q_SLOTS: */ void showItemInfo(const KFileItem &item); - /** - * Sets the Admin::Bar visible or invisible based on whether \a url is an admin url. - */ - void updateAdminBarVisibility(const QUrl &url); - void closeFilterBar(); /** @@ -397,9 +389,14 @@ private Q_SLOTS: void slotStatusBarZoomLevelChanged(int zoomLevel); /** - * Slot that calls showMessage(msg, Error). + * Creates and shows an error message based on \p message and \p kioErrorCode. */ - void showErrorMessage(const QString &msg); + void slotErrorMessageFromView(const QString &message, const int kioErrorCode); + + /** + * Slot that calls showMessage(message, KMessageWidget::Error). + */ + void showErrorMessage(const QString &message); /** * Is invoked when a KFilePlacesModel has been changed @@ -436,6 +433,19 @@ private: */ QString getNearestExistingAncestorOfPath(const QString &path) const; + /** + * Update the geometry of statusbar depending on what mode it is using. + */ + void updateStatusBarGeometry(); + + /** + * @return Preferred geometry of the small statusbar. + */ + QRect preferredSmallStatusBarGeometry(); + +protected: + bool eventFilter(QObject *object, QEvent *event) override; + private: QGridLayout *m_topLayout; @@ -458,6 +468,8 @@ private: /// A bar shown at the top of the view to signify that the view is currently viewed and acted on with elevated privileges. Admin::Bar *m_adminBar; + /// An action to switch to the admin protocol. This variable will always be nullptr unless kio-admin was installed. @see Admin::WorkerIntegration. + QAction *m_authorizeToEnterFolderAction; KMessageWidget *m_messageWidget;