From 5a9617e76e7c987016cb1f4189908f8430777f3e Mon Sep 17 00:00:00 2001 From: aqua Date: Mon, 15 Aug 2022 17:30:11 +0300 Subject: Add third-party/SingleApplication --- src/CMakeLists.txt | 24 ++--------- src/application.cpp | 69 +++++++++--------------------- src/application.h | 118 +++++++++++++++++----------------------------------- src/main.cpp | 36 +++++----------- src/rekonq.hpp | 16 +++++++ 5 files changed, 87 insertions(+), 176 deletions(-) create mode 100644 src/rekonq.hpp (limited to 'src') 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 -* -* -* 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 . -* -* ============================================================ */ - - -// 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 + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua + * ============================================================ + * 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 #include +// --------------------------------------------------------------------------------------------------------------- +// 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(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 -* -* -* 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 . -* -* ============================================================ */ - - -#ifndef APPLICATION_H -#define APPLICATION_H - - -// Rekonq Includes -#include "rekonq_defines.h" - -// KDE Includes -#include -#include - -// Qt Includes -#include + * The rekonq project + * ============================================================ + * SPDX-License-Identifier: GPL-2.0-or-later + * Copyright (C) 2012-2013 by Andrea Diamantini + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua + * ============================================================ + * Description: Application Entry Point + * ============================================================ */ + +#pragma once + +#include "rekonq.hpp" +#include // Forward Declarations class RekonqWindow; @@ -44,61 +20,46 @@ class RekonqWindow; class WebTab; class WebPage; -#include - -#ifdef HAVE_KACTIVITIES -namespace KActivities { - class Consumer; -} -#endif - typedef QList< QWeakPointer > RekonqWindowList; typedef QList 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(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 -* -* -* 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 . -* -* ============================================================ */ - + * The rekonq project + * ============================================================ + * SPDX-License-Identifier: GPL-2.0-or-later + * Copyright (C) 2008-2013 by Andrea Diamantini + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2022 aqua + * ============================================================ + * Description: Application Entry Point + * ============================================================ */ // version include #include @@ -34,9 +19,8 @@ #include "urlresolver.h" // KDE Includes -#include #include -#include +#include // Qt Includes #include 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 + * ============================================================ + * Description: rekonq common definitions + * ============================================================ */ + +#pragma once + +// Configurations +#include "config-version.h" + +// Defines +#include "rekonq_defines.h" -- cgit v1.2.1