summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2022-08-15 17:30:11 +0300
committeraqua <aqua@iserlohn-fortress.net>2022-08-15 17:30:11 +0300
commit5a9617e76e7c987016cb1f4189908f8430777f3e (patch)
treea997c4a6233d3ee02cb330e48d448f2e25bddd43
parentRecord authors and contributors in src/data/about.html (diff)
downloadrekonq-5a9617e76e7c987016cb1f4189908f8430777f3e.tar.xz
Add third-party/SingleApplication
-rw-r--r--.gitmodules3
-rw-r--r--CMakeLists.txt5
-rw-r--r--src/CMakeLists.txt24
-rw-r--r--src/application.cpp69
-rw-r--r--src/application.h118
-rw-r--r--src/main.cpp36
-rw-r--r--src/rekonq.hpp16
m---------third-party/SingleApplication0
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