X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7042c6c2899a4e46a095a38ee1481b63ca4b96d8..ec8f757f9c7b5eafcacbd9671df283d3f20f8a19:/src/global.h diff --git a/src/global.h b/src/global.h index 7f1931f0d..4f4eb890c 100644 --- a/src/global.h +++ b/src/global.h @@ -1,20 +1,7 @@ /* - * Copyright 2015 Ashish Bansal + * SPDX-FileCopyrightText: 2015 Ashish Bansal * - * 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,9 +9,72 @@ #include #include +#include + +class KConfigGroup; +class OrgKdeDolphinMainWindowInterface; namespace Dolphin { QList validateUris(const QStringList& uriList); + + /** + * 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) + + /** + * Opens a new Dolphin window + */ + void openNewWindow(const QList &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& inputUrls, bool openFiles, bool splitView, const QString& preferredService = QString()); + + /** + * Returns a QVector with all GUI-capable Dolphin instances + */ + QVector, QStringList>> dolphinGuiInstances(const QString& preferredService); + + QPair 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