]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/global.h
Merge branch 'release/21.08'
[dolphin.git] / src / global.h
index 3b6af43e9732cc9cd0ece4f5a7d69995ecb4c682..4f4eb890cd79e954f72d6da81f8fa94140e1cc62 100644 (file)
@@ -1,20 +1,7 @@
 /*
- * Copyright 2015 Ashish Bansal<bansal.ashish096@gmail.com>
+ * SPDX-FileCopyrightText: 2015 Ashish Bansal <bansal.ashish096@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-License-Identifier: GPL-2.0-or-later
  */
 
 #ifndef GLOBAL_H
@@ -22,6 +9,10 @@
 
 #include <QList>
 #include <QUrl>
+#include <QWidget>
+
+class KConfigGroup;
+class OrgKdeDolphinMainWindowInterface;
 
 namespace Dolphin {
     QList<QUrl> validateUris(const QStringList& uriList);
@@ -41,6 +32,49 @@ namespace Dolphin {
      * 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());
+
+    /**
+     * 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: Move this somewhere global to all KDE apps, not just Dolphin
+     */
+    const int VERTICAL_SPACER_HEIGHT = 12;
+    const int LAYOUT_SPACING_SMALL = 2;
 }
 
+class GlobalConfig : public QObject
+{
+    Q_OBJECT
+
+public:
+    GlobalConfig() = delete;
+
+    /**
+     * @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.
+     */
+    static double animationDurationFactor();
+
+private:
+    static void updateAnimationDurationFactor(const KConfigGroup &group, const QByteArrayList &names);
+
+private:
+    static double s_animationDurationFactor;
+};
+
 #endif //GLOBAL_H