/* ============================================================ * 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; class WebTab; class WebPage; typedef QList< QWeakPointer > RekonqWindowList; typedef QList WebAppList; // --------------------------------------------------------------------------------------------------------------- #define rApp Application::instance() /** * Rekonq Application class */ class Application : public SingleApplication { Q_OBJECT public: Application(int argc, char **argv); ~Application() override; int newInstance(); static Application *instance() { return (qobject_cast(QCoreApplication::instance())); } 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()); WebAppList webAppList(); void bookmarksToolbarToggled(bool); public Q_SLOTS: /** * Save application's configuration * * @see ReKonfig::self()->writeConfig(); */ void saveConfiguration() const; /** * @short load url * * @param url The url to load * @param type the type where loading the url. @see Rekonq::OpenType */ void loadUrl(const KUrl& url, const Rekonq::OpenType& type = Rekonq::CurrentTab ); RekonqWindow *newWindow(bool withTab = true, bool PrivateBrowsingMode = false); RekonqWindow *newWindow(WebPage *pg); WebTab *newWebApp(); void createWebAppShortcut(const QString & urlString = QString(), const QString & titleString = QString()); protected: // This is used to track which window was activated most recently bool eventFilter(QObject *watched, QEvent *event); Q_SIGNALS: void toggleBookmarksToolbar(bool); private: void setWindowInfo(RekonqWindow *); private Q_SLOTS: void updateConfiguration(); // clear private data void clearPrivateData(); void queryQuit(); void newPrivateBrowsingWindow(); void pageCreated(WebPage *); private: RekonqWindowList m_rekonqWindows; WebAppList m_webApps; #ifdef HAVE_KACTIVITIES ActivityTabsMap m_activityRekonqWindowsMap; KActivities::Consumer *m_activityConsumer; #endif };