]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/admin/bar.h
Rewrite search integration
[dolphin.git] / src / admin / bar.h
index 5399fa66973b15dd93673d2dcda61c016c21027a..d1754f3bb4accdc107dfd0a3f832c5a16addf983 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "animatedheightwidget.h"
 
+class DolphinViewContainer;
 class QLabel;
 class QPushButton;
 class QResizeEvent;
@@ -28,19 +29,24 @@ class Bar : public AnimatedHeightWidget
     Q_OBJECT
 
 public:
-    explicit Bar(QWidget *parent);
+    explicit Bar(DolphinViewContainer *parentViewContainer);
 
     /** Used to recolor this bar when this application's color scheme changes. */
     bool event(QEvent *event) override;
 
-Q_SIGNALS:
-    void activated();
-
 protected:
     /** Calls updateLabelString() */
     void resizeEvent(QResizeEvent *resizeEvent) override;
 
 private:
+    /**
+     * Makes sure this admin bar hides itself when the elevated privileges expire so the user doesn't mistakenly assume that they are still acting with
+     * administrative rights. The view container is also changed to a non-admin url, so no password prompts will pop up unexpectedly.
+     * Then this method shows a message to the user to explain this.
+     * The mechanism of this method only fires once and will need to be called again the next time the user regains administrative rights for this view.
+     */
+    void hideTheNextTimeAuthorizationExpires();
+
     /** Recolors this bar based on the current color scheme. */
     void updateColors();
 
@@ -68,6 +74,19 @@ private:
 
     /** @see preferredHeight() */
     int m_preferredHeight;
+
+    /**
+     * A proxy action for the real actAsAdminAction.
+     * This proxy action can be used to reenable admin mode for the view belonging to this bar object specifically.
+     */
+    QAction *m_reenableActAsAdminAction = nullptr;
+
+    /**
+     * The parent of this bar. The bar acts on the DolphinViewContainer to exit the admin mode. This can happen in two ways:
+     * 1. The user closes the bar which implies exiting of the admin mode.
+     * 2. The admin authorization expires so all views can factually no longer be in admin mode.
+     */
+    DolphinViewContainer *m_parentViewContainer;
 };
 
 }