diff options
author | aqua <aqua@iserlohn-fortress.net> | 2022-08-15 17:30:11 +0300 |
---|---|---|
committer | aqua <aqua@iserlohn-fortress.net> | 2022-08-15 17:30:11 +0300 |
commit | 5a9617e76e7c987016cb1f4189908f8430777f3e (patch) | |
tree | a997c4a6233d3ee02cb330e48d448f2e25bddd43 | |
parent | Record authors and contributors in src/data/about.html (diff) | |
download | rekonq-5a9617e76e7c987016cb1f4189908f8430777f3e.tar.xz |
Add third-party/SingleApplication
-rw-r--r-- | .gitmodules | 3 | ||||
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/CMakeLists.txt | 24 | ||||
-rw-r--r-- | src/application.cpp | 69 | ||||
-rw-r--r-- | src/application.h | 118 | ||||
-rw-r--r-- | src/main.cpp | 36 | ||||
-rw-r--r-- | src/rekonq.hpp | 16 | ||||
m--------- | third-party/SingleApplication | 0 |
8 files changed, 95 insertions, 176 deletions
diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..f186c2ea --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "third-party/SingleApplication"] + path = third-party/SingleApplication + url = https://github.com/itay-grudev/SingleApplication diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d551f8d..b9433e45 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,11 @@ if(TESTING) endif() # ================================================================================== +# third-party requirements +set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication") +add_subdirectory(third-party/SingleApplication) + +# ================================================================================== # optional nepomuk requirements if(WITH_NEPOMUK) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c89267ca..20798790 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -172,26 +172,6 @@ ENDIF(HAVE_QCA2 AND HAVE_QTOAUTH) ### ------------- INCLUDING DIRECTORIES... -INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/adblock - ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks - ${CMAKE_CURRENT_SOURCE_DIR}/download - ${CMAKE_CURRENT_SOURCE_DIR}/history - ${CMAKE_CURRENT_SOURCE_DIR}/icons - ${CMAKE_CURRENT_SOURCE_DIR}/panels - ${CMAKE_CURRENT_SOURCE_DIR}/rekonqpage - ${CMAKE_CURRENT_SOURCE_DIR}/settings - ${CMAKE_CURRENT_SOURCE_DIR}/sync - ${CMAKE_CURRENT_SOURCE_DIR}/urlbar - ${CMAKE_CURRENT_SOURCE_DIR}/tabwindow - ${CMAKE_CURRENT_SOURCE_DIR}/useragent - ${CMAKE_CURRENT_SOURCE_DIR}/webtab - ${CMAKE_CURRENT_SOURCE_DIR}/webwindow - ${CMAKE_CURRENT_BINARY_DIR} - ${KDE4_INCLUDES} - ${QT4_INCLUDES} -) - # Nepomuk optional include directories IF(SOPRANO_FOUND AND NepomukCore_FOUND) INCLUDE_DIRECTORIES(${SOPRANO_INCLUDE_DIR} @@ -239,7 +219,9 @@ add_executable(rekonq EXCLUDE_FROM_ALL ${rekonq_KDEINIT_SRCS} main.cpp) ### --------------- TARGETTING LINK LIBRARIES... -target_link_libraries(rekonq Qt6::Widgets Qt6::WebEngineWidgets) +target_link_libraries(rekonq + Qt6::Widgets Qt6::WebEngineWidgets + SingleApplication::SingleApplication) # Nepomuk optional target link libraries IF(SOPRANO_FOUND AND NepomukCore_FOUND) diff --git a/src/application.cpp b/src/application.cpp index bec02687..41cf1dab 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -1,35 +1,16 @@ /* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2012-2013 by Andrea Diamantini <adjam7 at gmail dot 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) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* 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, see <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - -// Self Includes -#include "application.h" -#include "application.moc" + * The rekonq project + * ============================================================ + * SPDX-License-Identifier: GPL-2.0-or-later + * Copyright (C) 2012-2013 by Andrea Diamantini <adjam7 at gmail dot com> + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net> + * ============================================================ + * Description: Application Entry Point + * ============================================================ */ -// Auto Includes -#include "rekonq.h" +#include "application.h" +#include "rekonq.hpp" // Ui Includes #include "ui_webappcreation.h" @@ -80,24 +61,20 @@ #include <QDir> #include <QTimer> +// --------------------------------------------------------------------------------------------------------------- +// Ctor and Dtor -Application::Application() - : KUniqueApplication() +Application::Application(int argc, char **argv) : SingleApplication(argc, argv) { -#ifdef HAVE_KACTIVITIES - m_activityConsumer = new KActivities::Consumer(); -#endif - - // updating rekonq configuration - updateConfiguration(); + // updating rekonq configuration + updateConfiguration(); - setWindowIcon(KIcon("rekonq")); + setWindowIcon(KIcon("rekonq")); - // just create History Manager... - HistoryManager::self(); + // just create History Manager... + HistoryManager::self(); } - Application::~Application() { // ok, we are closing well: don't recover on next load.. @@ -124,6 +101,7 @@ Application::~Application() kDebug() << "Bye bye (k)baby..."; } +// --------------------------------------------------------------------------------------------------------------- int Application::newInstance() { @@ -367,13 +345,6 @@ int Application::newInstance() return 0; } - -Application *Application::instance() -{ - return (qobject_cast<Application *>(QCoreApplication::instance())); -} - - void Application::saveConfiguration() const { ReKonfig::self()->writeConfig(); diff --git a/src/application.h b/src/application.h index 752f7964..307e2fd6 100644 --- a/src/application.h +++ b/src/application.h @@ -1,42 +1,18 @@ /* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2012-2013 by Andrea Diamantini <adjam7 at gmail dot 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) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* 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, see <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - -#ifndef APPLICATION_H -#define APPLICATION_H - - -// Rekonq Includes -#include "rekonq_defines.h" - -// KDE Includes -#include <KUniqueApplication> -#include <KUrl> - -// Qt Includes -#include <QWeakPointer> + * The rekonq project + * ============================================================ + * SPDX-License-Identifier: GPL-2.0-or-later + * Copyright (C) 2012-2013 by Andrea Diamantini <adjam7 at gmail dot com> + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net> + * ============================================================ + * Description: Application Entry Point + * ============================================================ */ + +#pragma once + +#include "rekonq.hpp" +#include <SingleApplication> // Forward Declarations class RekonqWindow; @@ -44,61 +20,46 @@ class RekonqWindow; class WebTab; class WebPage; -#include <config-kactivities.h> - -#ifdef HAVE_KACTIVITIES -namespace KActivities { - class Consumer; -} -#endif - typedef QList< QWeakPointer<RekonqWindow> > RekonqWindowList; typedef QList<WebTab *> WebAppList; -#ifdef HAVE_KACTIVITIES -typedef QHash< QString, RekonqWindowList > ActivityTabsMap; -#endif - - // --------------------------------------------------------------------------------------------------------------- - #define rApp Application::instance() /** * Rekonq Application class */ -class Application : public KUniqueApplication -{ - Q_OBJECT +class Application : public SingleApplication { + Q_OBJECT public: - Application(); - ~Application(); + Application(int argc, char **argv); + ~Application() override; - int newInstance(); - static Application *instance(); + int newInstance(); + static Application *instance() { return (qobject_cast<Application *>(QCoreApplication::instance())); } - RekonqWindow *rekonqWindow(const QString & activityID = QString()); - RekonqWindowList rekonqWindowList(); + RekonqWindow *rekonqWindow(const QString &activityID = QString()); + RekonqWindowList rekonqWindowList(); - /** - * @returns the list of windows associated with activity whose id is @param activityID - * @param activityID the ID of the activity (if empty, it is interpreted as the current activity) - * @note If activities are disabled, returns the function returns the list of all tabs. - */ - RekonqWindowList tabsForActivity(const QString & activityID = QString()); - - /** - * @returns the true if there are windows associated with activity whose id is @param activityID - * @param activityID the ID of the activity (if empty, it is interpreted as the current activity) - * @note If activities are disabled, returns true if there are any tabs. - */ - bool haveWindowsForActivity(const QString & activityID = QString()); + /** + * @returns the list of windows associated with activity whose id is @param activityID + * @param activityID the ID of the activity (if empty, it is interpreted as the current activity) + * @note If activities are disabled, returns the function returns the list of all tabs. + */ + RekonqWindowList tabsForActivity(const QString &activityID = QString()); - WebAppList webAppList(); - - void bookmarksToolbarToggled(bool); + /** + * @returns the true if there are windows associated with activity whose id is @param activityID + * @param activityID the ID of the activity (if empty, it is interpreted as the current activity) + * @note If activities are disabled, returns true if there are any tabs. + */ + bool haveWindowsForActivity(const QString &activityID = QString()); + + WebAppList webAppList(); + + void bookmarksToolbarToggled(bool); public Q_SLOTS: /** @@ -155,7 +116,4 @@ private: ActivityTabsMap m_activityRekonqWindowsMap; KActivities::Consumer *m_activityConsumer; #endif - }; - -#endif // APPLICATION_H diff --git a/src/main.cpp b/src/main.cpp index 85414391..a483078b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,28 +1,13 @@ /* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2008-2013 by Andrea Diamantini <adjam7 at gmail dot 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) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* 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, see <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - + * The rekonq project + * ============================================================ + * SPDX-License-Identifier: GPL-2.0-or-later + * Copyright (C) 2008-2013 by Andrea Diamantini <adjam7 at gmail dot com> + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net> + * ============================================================ + * Description: Application Entry Point + * ============================================================ */ // version include #include <config-version.h> @@ -34,9 +19,8 @@ #include "urlresolver.h" // KDE Includes -#include <KDE/KUniqueApplication> #include <KDE/KCmdLineArgs> -#include <KDebug> +#include <KDE/KUniqueApplication> // Qt Includes #include <QDir> diff --git a/src/rekonq.hpp b/src/rekonq.hpp new file mode 100644 index 00000000..dc16401f --- /dev/null +++ b/src/rekonq.hpp @@ -0,0 +1,16 @@ +/* ============================================================ + * The rekonq project + * ============================================================ + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net> + * ============================================================ + * Description: rekonq common definitions + * ============================================================ */ + +#pragma once + +// Configurations +#include "config-version.h" + +// Defines +#include "rekonq_defines.h" diff --git a/third-party/SingleApplication b/third-party/SingleApplication new file mode 160000 +Subproject f1e15081dc57a9c03f7f4f165677f18802e1437 |