]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/global.h
dolphinmainwindow: zoom action is now a KToolBarPopupAction
[dolphin.git] / src / global.h
index 65247351a7476d1ee0d9a219251b60a3ffd42c75..81ade47fa03db96bf259697ec4bfccdab5750868 100644 (file)
 #include <QUrl>
 #include <QWidget>
 
+class KConfigGroup;
 class OrgKdeDolphinMainWindowInterface;
 
-namespace Dolphin {
-    QList<QUrl> validateUris(const QStringList& uriList);
+namespace Dolphin
+{
+QList<QUrl> validateUris(const QStringList &uriList);
 
-    /**
    * Returns the home url which is defined in General Settings
    */
-    QUrl homeUrl();
+/**
+ * Returns the home url which is defined in General Settings
+ */
+QUrl homeUrl();
 
-    enum class OpenNewWindowFlag {
-        None = 0,
-        Select = 1<<1
-    };
-    Q_DECLARE_FLAGS(OpenNewWindowFlags, OpenNewWindowFlag)
+enum class OpenNewWindowFlag { None = 0, Select = 1 << 1 };
+Q_DECLARE_FLAGS(OpenNewWindowFlags, OpenNewWindowFlag)
 
-    /**
    * Opens a new Dolphin window
    */
-    void openNewWindow(const QList<QUrl> &urls = {}, QWidget *window = nullptr, const OpenNewWindowFlags &flags = OpenNewWindowFlag::None);
+/**
+ * Opens a new Dolphin window
+ */
+void openNewWindow(const QList<QUrl> &urls = {}, QWidget *window = nullptr, const OpenNewWindowFlags &flags = OpenNewWindowFlag::None);
 
-    /**
    * Attaches URLs to an existing Dolphin instance if possible.
    * If @p preferredService is a valid dbus service, it will be tried first.
    * @p preferredService needs to support the org.kde.dolphin.MainWindow dbus interface with the /dolphin/Dolphin_1 path.
    * Returns true if the URLs were successfully attached.
    */
-    bool attachToExistingInstance(const QList<QUrl>& inputUrls, bool openFiles, bool splitView, const QString& preferredService = QString());
+/**
+ * Attaches URLs to an existing Dolphin instance if possible.
+ * If @p preferredService is a valid dbus service, it will be tried first.
+ * @p preferredService needs to support the org.kde.dolphin.MainWindow dbus interface with the /dolphin/Dolphin_1 path.
+ * Returns true if the URLs were successfully attached.
+ */
+bool attachToExistingInstance(const QList<QUrl> &inputUrls, bool openFiles, bool splitView, const QString &preferredService, const QString &activationToken);
 
-    /**
-     * Returns a QVector with all GUI-capable Dolphin instances
-     */
-    QVector<QPair<QSharedPointer<OrgKdeDolphinMainWindowInterface>, QStringList>> dolphinGuiInstances(const QString& preferredService);
+/**
+ * Returns a QVector with all GUI-capable Dolphin instances
+ */
+QVector<QPair<QSharedPointer<OrgKdeDolphinMainWindowInterface>, QStringList>> dolphinGuiInstances(const QString &preferredService);
+
+QPair<QString, Qt::SortOrder> sortOrderForUrl(QUrl &url);
+
+/**
+ * TODO: Use global KDE spacings instead of Dolphin-specific ones once we have them.
+ */
+constexpr int VERTICAL_SPACER_HEIGHT = 12;
+constexpr int LAYOUT_SPACING_SMALL = 4;
+}
+
+enum Animated { WithAnimation, WithoutAnimation };
+
+class GlobalConfig : public QObject
+{
+    Q_OBJECT
+
+public:
+    GlobalConfig() = delete;
 
     /**
-     * TODO: Move this somewhere global to all KDE apps, not just Dolphin
+     * @return a value from the global KDE config that should be
+     *         multiplied with every animation duration once.
+     *         0.0 is returned if animations are globally turned off.
+     *         1.0 is the default value.
      */
-    const int VERTICAL_SPACER_HEIGHT = 12;
-    const int LAYOUT_SPACING_SMALL = 2;
-}
+    static double animationDurationFactor();
+
+private:
+    static void updateAnimationDurationFactor(const KConfigGroup &group, const QByteArrayList &names);
+
+private:
+    static double s_animationDurationFactor;
+};
 
 #endif //GLOBAL_H