--- /dev/null
+/build
+/.kdev4
[Buildset]
-BuildItems=@Variant(\x00\x00\x00\t\x00\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x00\x00\x01\x00\x00\x00 \x00P\x00r\x00i\x00v\x00a\x00c\x00y\x00B\x00r\x00o\x00w\x00s\x00e\x00r\x00P\x00C)
+BuildItems=@Variant(\x00\x00\x00\t\x00\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x1c\x00P\x00r\x00i\x00v\x00a\x00c\x00y\x00B\x00r\x00o\x00w\x00s\x00e\x00r)
[CMake]
Build Directory Count=1
CMake Executable=/usr/bin/cmake
Environment Profile=
Extra Arguments=
-Install Directory=
+Install Directory=/usr
Runtime=Host System
+
+[CustomDefinesAndIncludes][ProjectPath0]
+Path=.
+parseAmbiguousAsCPP=true
+parserArguments=-ferror-limit=100 -fspell-checking -Wdocumentation -Wunused-parameter -Wunreachable-code -Wall -std=c++17
+parserArgumentsC=-ferror-limit=100 -fspell-checking -Wdocumentation -Wunused-parameter -Wunreachable-code -Wall -std=c99
+parserArgumentsCuda=-ferror-limit=100 -fspell-checking -Wdocumentation -Wunused-parameter -Wunreachable-code -Wall -std=c++11
+parserArgumentsOpenCL=-ferror-limit=100 -fspell-checking -Wdocumentation -Wunused-parameter -Wunreachable-code -Wall -cl-std=CL1.1
+
+[CustomDefinesAndIncludes][ProjectPath0][Compiler]
+Name=GCC
+
+[Launch]
+Launch Configurations=Launch Configuration 0
+
+[Launch][Launch Configuration 0]
+Configured Launch Modes=execute
+Configured Launchers=nativeAppLauncher
+Name=New Compiled Binary Launcher
+Type=Native Application
+
+[Launch][Launch Configuration 0][Data]
+Arguments=
+Debugger Shell=
+Dependencies=@Variant(\x00\x00\x00\t\x00\x00\x00\x00\x00)
+Dependency Action=Nothing
+Display Demangle Names=true
+Display Static Members=false
+EnvironmentGroup=
+Executable=file:///home/soren/projects/PrivacyBrowserPC/build/bin/privacybrowser
+External Terminal=konsole --noclose --workdir %workdir -e %exe
+GDB Path=
+Kill Before Executing Again=4194304
+Project Target=PrivacyBrowserPC,src,privacybrowserpc
+Remote GDB Config Script=
+Remote GDB Run Script=
+Remote GDB Shell Script=
+Start With=ApplicationOutput
+Use External Terminal=false
+Working Directory=
+isExecutable=true
+
+[Project]
+VersionControlSupport=kdevgit
+# Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+#
+# This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
+#
+# Privacy Browser PC 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 3 of the License, or
+# (at your option) any later version.
+#
+# Privacy Browser PC 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 Privacy Browser PC. If not, see <http://www.gnu.org/licenses/>.
+
cmake_minimum_required(VERSION 3.16)
-project(privacybrowserpc)
+project(privacybrowser)
+# Set the minimum framework versions.
set(QT_MIN_VERSION "5.15.0")
-set(KF_MIN_VERSION "5.83.0")
+set(KDE_FRAMEWORKS_MIN_VERSION "5.83.0")
-find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
+find_package(ECM ${KDE_FRAMEWORKS_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Widgets)
-find_package(KF5 ${KF_MIN_VERSION} REQUIRED COMPONENTS
+find_package(KF5 ${KDE_FRAMEWORKS_MIN_VERSION} REQUIRED COMPONENTS
ConfigWidgets
CoreAddons
Crash
add_subdirectory(doc)
add_subdirectory(src)
-add_subdirectory(icons)
# Make it possible to use the po files fetched by the fetch-translations step
ki18n_install(po)
--- /dev/null
+[Project]
+Manager=KDevCMakeManager
+Name=PrivacyBrowser
+++ /dev/null
-How To Build This Template
--=-=-=-=-=-=-=-=-=-=-=-=-=
-
---- On Unix:
-
-cd <project_name_path>
-mkdir build
-cd build
-cmake -DCMAKE_INSTALL_PREFIX=$KDEDIRS -DCMAKE_BUILD_TYPE=Debug ..
-make
-make install or su -c 'make install' or sudo make install
-
-where $KDEDIRS points to your KDE installation prefix.
-
-Note: you can use another build path. Then cd in your build dir and:
-export KDE_SRC=path_to_your_src
-cmake $KDE_SRC -DCMAKE_INSTALL_PREFIX=$KDEDIRS -DCMAKE_BUILD_TYPE=Debug
-kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR privacybrowserpc)
+kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR privacybrowser)
+++ /dev/null
-set(privacybrowserpc_ICONS
- 16-apps-privacybrowserpc.png
- 22-apps-privacybrowserpc.png
- 32-apps-privacybrowserpc.png
- 48-apps-privacybrowserpc.png
- sc-apps-privacybrowserpc.svgz
-)
-
-ecm_install_icons(ICONS ${privacybrowserpc_ICONS} DESTINATION ${KDE_INSTALL_ICONDIR} THEME hicolor)
-add_executable(privacybrowserpc)
+# Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+#
+# This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
+#
+# Privacy Browser PC 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 3 of the License, or
+# (at your option) any later version.
+#
+# Privacy Browser PC 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 Privacy Browser PC. If not, see <http://www.gnu.org/licenses/>.
-target_sources(privacybrowserpc PRIVATE
+# Create the executable and add the resources.
+add_executable(privacybrowser resources.qrc)
+
+target_sources(privacybrowser PRIVATE
main.cpp
- privacybrowserpcwindow.cpp
+ mainwindow.cpp
privacybrowserpcview.cpp
)
-ecm_qt_declare_logging_category(privacybrowserpc
+ecm_qt_declare_logging_category(privacybrowser
HEADER privacybrowserpcdebug.h
- IDENTIFIER PRIVACYBROWSERPC
- CATEGORY_NAME "privacybrowserpc"
+ IDENTIFIER PRIVACYBROWSER
+ CATEGORY_NAME "privacybrowser"
)
-kconfig_add_kcfg_files(privacybrowserpc PrivacyBrowserPCSettings.kcfgc)
-ki18n_wrap_ui(privacybrowserpc
+kconfig_add_kcfg_files(privacybrowser PrivacyBrowserPCSettings.kcfgc)
+ki18n_wrap_ui(privacybrowser
privacybrowserpcview.ui
settings.ui
)
-target_link_libraries(privacybrowserpc
+target_link_libraries(privacybrowser
KF5::CoreAddons
KF5::I18n
KF5::XmlGui
Qt5::Widgets
)
-install(TARGETS privacybrowserpc ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
-install(PROGRAMS org.example.privacybrowserpc.desktop DESTINATION ${KDE_INSTALL_APPDIR})
-install(FILES org.example.privacybrowserpc.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
-install(FILES privacybrowserpcui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/privacybrowserpc)
+install(TARGETS privacybrowser ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
+install(PROGRAMS com.stoutner.privacybrowser DESTINATION ${KDE_INSTALL_APPDIR})
+install(FILES com.stounter.privacybrowser.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
+install(FILES privacybrowserpcui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/privacybrowser) # TODO
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ height="546.13336"
+ viewBox="0 0 256 256"
+ width="546.13336"
+ id="svg2"
+ version="1.1"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ sodipodi:docname="privacy_browser.svg"
+ style="fill:#000000"
+ inkscape:export-filename="/home/soren/ownCloud/Android/Privacy Browser/Icons/Privacy Browser/Privacy Browser 680x680.png"
+ inkscape:export-xdpi="119.53"
+ inkscape:export-ydpi="119.53"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <metadata
+ id="metadata12">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs10" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="3644"
+ inkscape:window-height="2015"
+ id="namedview8"
+ showgrid="false"
+ inkscape:snap-bbox="true"
+ inkscape:zoom="1.2291667"
+ inkscape:cx="-108.61017"
+ inkscape:cy="218.84745"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g4150"
+ inkscape:pagecheckerboard="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4223"
+ originx="0"
+ originy="0"
+ spacingx="1"
+ spacingy="1" />
+ </sodipodi:namedview>
+ <g
+ style="display:inline"
+ transform="translate(0,160)"
+ inkscape:label="Inner Shield"
+ id="g4150"
+ inkscape:groupmode="layer"
+ sodipodi:insensitive="true">
+ <path
+ style="display:inline;fill:#0d47a1;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0"
+ d="m 128,-147.2 -94.254546,41.89091 v 62.836368 c 0,58.123635 40.215273,112.477091 94.254546,125.672721 54.03928,-13.19563 94.25454,-67.549086 94.25454,-125.672721 v -62.836368 z"
+ id="path4152"
+ sodipodi:nodetypes="ccscscc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Shield"
+ transform="translate(0,160)"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <path
+ id="path4610-5"
+ d="m 128,-160 -104.727273,46.54546 v 69.818182 C 23.272727,20.945459 67.956363,81.338188 128,95.999999 188.04364,81.338188 232.72727,20.945459 232.72727,-43.636358 v -69.818182 z m 0,127.883641 h 81.45454 C 203.28728,15.825464 171.28727,58.530919 128,71.912739 V -31.999996 H 46.545455 V -98.327268 L 128,-134.51636 Z"
+ inkscape:connector-curvature="0"
+ style="display:inline;fill:#1976d2;fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="Earth"
+ style="display:inline"
+ transform="translate(0,232)"
+ sodipodi:insensitive="true">
+ <path
+ style="display:inline;fill:#ffffff;fill-opacity:1"
+ id="path4209"
+ d="m 127.92021,-183.78553 c -44.041614,0 -79.705747,35.74391 -79.705747,79.78553 0,44.041617 35.664133,79.785537 79.705747,79.785537 44.1214,0 79.86533,-35.74392 79.86533,-79.785537 0,-44.04162 -35.74393,-79.78553 -79.86533,-79.78553 z m 55.29138,47.87132 h -23.53674 c -2.55313,-9.9732 -6.22326,-19.54746 -11.0104,-28.40365 14.68055,5.02648 26.88773,15.23903 34.54714,28.40365 z M 128,-167.50929 c 6.6222,9.57427 11.80825,20.18574 15.23903,31.59508 h -30.47807 c 3.43078,-11.40934 8.61684,-22.02081 15.23904,-31.59508 z M 66.245993,-88.042889 C 64.969425,-93.149168 64.171571,-98.494798 64.171571,-104 c 0,-5.5052 0.797855,-10.85083 2.074422,-15.95711 h 26.96751 c -0.63829,5.26585 -1.117,10.5317 -1.117,15.95711 0,5.425417 0.47872,10.691263 1.117,15.957111 z m 6.542412,15.957108 H 96.32514 c 2.553137,9.973191 6.22327,19.547449 11.0104,28.403644 C 92.655006,-48.708619 80.44782,-58.841391 72.788405,-72.085781 Z M 96.32514,-135.91421 H 72.788405 c 7.659415,-13.2444 19.866601,-23.37717 34.547135,-28.40365 -4.78713,8.85619 -8.457263,18.43045 -11.0104,28.40365 z M 128,-40.49071 c -6.6222,-9.574268 -11.80826,-20.185747 -15.23904,-31.595071 h 30.47807 C 139.80825,-60.676457 134.6222,-50.064978 128,-40.49071 Z m 18.66982,-47.552179 h -37.33964 c -0.71801,-5.265848 -1.27656,-10.531694 -1.27656,-15.957111 0,-5.42541 0.55854,-10.77105 1.27656,-15.95711 h 37.33964 c 0.71811,5.18606 1.27656,10.5317 1.27656,15.95711 0,5.425417 -0.55844,10.691263 -1.27656,15.957111 z m 1.99463,44.360752 c 4.78714,-8.856195 8.45727,-18.430453 11.0104,-28.403644 h 23.53674 c -7.65941,13.164605 -19.86659,23.377162 -34.54714,28.403644 z m 14.12204,-44.360752 c 0.63828,-5.265848 1.117,-10.531694 1.117,-15.957111 0,-5.42541 -0.47871,-10.69126 -1.117,-15.95711 h 26.96752 c 1.27656,5.10628 2.07441,10.45191 2.07441,15.95711 0,5.505202 -0.79784,10.850832 -2.07441,15.957111 z"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
/*
- SPDX-FileCopyrightText: %{CURRENT_YEAR} %{AUTHOR} <%{EMAIL}>
+ * Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+ *
+ * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
+ *
+ * Privacy Browser PC 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Privacy Browser PC 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 Privacy Browser PC. If not, see <http://www.gnu.org/licenses/>.
+ */
- SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
-*/
+// Application headers.
+#include "mainwindow.h"
+#include "privacybrowserpcdebug.h" // TODO. Rename.
-// application header
-#include "privacybrowserpcwindow.h"
-#include "privacybrowserpcdebug.h"
-
-// KF headers
+// KDE Frameworks headers.
+#include <KAboutData>
#include <KCrash>
#include <KDBusService>
-#include <KAboutData>
-#include <KLocalizedString>
+#include <KLocalizedString> // TODO. This may not be needed.
-// Qt headers
-#include <QApplication>
+// Qt headers.
+#include <QApplication> // TODO. Probably not needed. Appears to be included in a sub header.
#include <QCommandLineParser>
-#include <QIcon>
-#include <QLoggingCategory>
+#include <QIcon> // TODO. Probably not needed. Appears to be included in a sub header.
+#include <QLoggingCategory> // Probably not needed at all.
-
-int main(int argc, char **argv)
+int main(int argc, char *argv[])
{
+ // Create the application.
QApplication application(argc, argv);
- KLocalizedString::setApplicationDomain("privacybrowserpc");
+ // Set the localization application domain.
+ KLocalizedString::setApplicationDomain("privacybrowser");
+
+ // Initialize KCrash.
KCrash::initialize();
- KAboutData aboutData( QStringLiteral("privacybrowserpc"),
- i18n("PrivacyBrowserPC"),
- QStringLiteral("%{VERSION}"),
- i18n("A Simple Application written with KDE Frameworks"),
- KAboutLicense::GPL,
- i18n("Copyright %{CURRENT_YEAR}, %{AUTHOR} <%{EMAIL}>"));
+ // Instantiate about data.
+ KAboutData aboutData(QStringLiteral("privacybrowser"), i18n("Privacy Browser"), QStringLiteral("0.1"));
- aboutData.addAuthor(i18n("%{AUTHOR}"),i18n("Author"), QStringLiteral("%{EMAIL}"));
- aboutData.setOrganizationDomain("example.org");
- aboutData.setDesktopFileName(QStringLiteral("org.example.privacybrowserpc"));
+ // Add the author information.
+ aboutData.addAuthor(i18n("Soren Stoutner"),i18n("Principal developer"), QStringLiteral("soren@stoutner.com"), QStringLiteral("https://www.stoutner.com/"));
+ // Populate additional about data info. TODO, OrLaterVersions does not work. The solution is probably to use a custom license file.
+ aboutData.setBugAddress("https://redmine.stoutner.com/projects/privacy-browser/issues"); // TODO. Update the URL.
+ aboutData.setCopyrightStatement(i18n("Copyright © 2022 Soren Stoutner <soren@stoutner.com>"));
+ aboutData.setDesktopFileName(QStringLiteral("com.stoutner.privacybrowser"));
+ aboutData.setHomepage(QStringLiteral("https://www.stoutner.com/privacy-browser-pc/"));
+ aboutData.setLicense(KAboutLicense::GPL_V3, KAboutLicense::OrLaterVersions);
+ aboutData.setOrganizationDomain("stoutner.com");
+ aboutData.setShortDescription(i18n("A web browser that respects your privacy."));
+
+ // Set the application data.
KAboutData::setApplicationData(aboutData);
- application.setWindowIcon(QIcon::fromTheme(QStringLiteral("privacybrowserpc")));
- QCommandLineParser parser;
- aboutData.setupCommandLine(&parser);
+ // Set the window icon.
+ application.setWindowIcon(QIcon::fromTheme(QStringLiteral("privacybrowser"), QIcon(":/icons/privacy_browser.svg")));
+
+ // Create a command line parser.
+ QCommandLineParser commandLineParser;
+
+ // Process the command line through about data (this adds --license and --author).
+ aboutData.setupCommandLine(&commandLineParser);
- parser.process(application);
- aboutData.processCommandLine(&parser);
+ // Process the application command line options (this adds --version, --help, and --help-all).
+ commandLineParser.process(application);
+ // Make it so.
+ aboutData.processCommandLine(&commandLineParser);
+
+ // TODO.
KDBusService appDBusService(KDBusService::Multiple | KDBusService::NoExitOnFailure);
- PrivacyBrowserPCWindow *window = new PrivacyBrowserPCWindow;
- window->show();
+ // Create the main window.
+ MainWindow *mainWindowPointer = new MainWindow;
+
+ // Show the main window.
+ mainWindowPointer->show();
+ // Return the application.
return application.exec();
}
--- /dev/null
+/*
+ * Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+ *
+ * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
+ *
+ * Privacy Browser PC 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Privacy Browser PC 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 Privacy Browser PC. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// Application headers.
+#include "mainwindow.h"
+#include "privacybrowserpcview.h"
+#include "privacybrowserpcdebug.h"
+
+// KDE Frameworks headers.
+#include <KActionCollection>
+#include <KConfigDialog>
+
+
+MainWindow::MainWindow() : KXmlGuiWindow()
+{
+ m_privacybrowserpcView = new PrivacyBrowserPCView(this);
+ setCentralWidget(m_privacybrowserpcView);
+
+ KActionCollection* actionCollection = this->actionCollection();
+ m_switchAction = actionCollection->addAction(QStringLiteral("switch_action"));
+ m_switchAction->setText(i18nc("@action", "Switch Colors"));
+ m_switchAction->setIcon(QIcon::fromTheme(QStringLiteral("fill-color")));
+ connect(m_switchAction, &QAction::triggered, m_privacybrowserpcView, &PrivacyBrowserPCView::switchColors);
+
+ KStandardAction::openNew(this, SLOT(fileNew()), actionCollection);
+ KStandardAction::quit(qApp, SLOT(closeAllWindows()), actionCollection);
+ KStandardAction::preferences(this, SLOT(settingsConfigure()), actionCollection);
+
+ setupGUI();
+}
+
+MainWindow::~MainWindow()
+{
+}
+
+void MainWindow::fileNew()
+{
+ qCDebug(PRIVACYBROWSER) << "PrivacyBrowserPCWindow::fileNew()";
+ (new MainWindow)->show();
+}
+
+void MainWindow::settingsConfigure()
+{
+ qCDebug(PRIVACYBROWSER) << "MainWindow::settingsConfigure()";
+ // The preference dialog is derived from prefs_base.ui
+ //
+ // compare the names of the widgets in the .ui file
+ // to the names of the variables in the .kcfg file
+ //avoid to have 2 dialogs shown
+ if (KConfigDialog::showDialog(QStringLiteral("settings"))) {
+ return;
+ }
+
+ KConfigDialog *dialog = new KConfigDialog(this, QStringLiteral("settings"), PrivacyBrowserPCSettings::self());
+ QWidget *generalSettingsPage = new QWidget;
+ m_settings.setupUi(generalSettingsPage);
+ dialog->addPage(generalSettingsPage, i18nc("@title:tab", "General"), QStringLiteral("package_setting"));
+ connect(dialog, &KConfigDialog::settingsChanged, m_privacybrowserpcView, &PrivacyBrowserPCView::handleSettingsChanged);
+ dialog->setAttribute(Qt::WA_DeleteOnClose);
+ dialog->show();
+}
--- /dev/null
+/*
+ * Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+ *
+ * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
+ *
+ * Privacy Browser PC 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Privacy Browser PC 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 Privacy Browser PC. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+// Application headers.
+#include "ui_settings.h"
+#include "PrivacyBrowserPCSettings.h"
+
+// KDE Frameworks headers.
+#include <KXmlGuiWindow>
+
+// TODO. What is this doing here?
+class PrivacyBrowserPCView;
+
+/** TODO. Remove.
+ * This class serves as the main window for privacybrowserpc. It handles the
+ * menus, toolbars and status bars.
+ *
+ * @short Main window class
+ * @author %{AUTHOR} <%{EMAIL}>
+ * @version %{VERSION}
+ */
+class MainWindow : public KXmlGuiWindow // TODO. Checkout documentation.
+{
+ // Include the Q_OBJECT macro.
+ Q_OBJECT
+
+public:
+ // The default constructor.
+ MainWindow();
+
+
+ // The default destructor. TODO, this could probably be removed.
+ ~MainWindow() override;
+
+private Q_SLOTS:
+ /**
+ * Create a new window
+ */
+ void fileNew();
+
+ /**
+ * Open the settings dialog
+ */
+ void settingsConfigure();
+
+private:
+ // this is the name of the root widget inside our Ui file
+ // you can rename it in designer and then change it here
+ Ui::Settings m_settings;
+ QAction *m_switchAction;
+ PrivacyBrowserPCView *m_privacybrowserpcView;
+};
+#endif
void PrivacyBrowserPCView::handleSettingsChanged()
{
- qCDebug(PRIVACYBROWSERPC) << "PrivacyBrowserPCView::handleSettingsChanged()";
+ qCDebug(PRIVACYBROWSER) << "PrivacyBrowserPCView::handleSettingsChanged()";
QPalette palette = m_ui.templateLabel->palette();
palette.setColor(QPalette::Window, PrivacyBrowserPCSettings::colorBackground());
palette.setColor(QPalette::WindowText, PrivacyBrowserPCSettings::colorForeground());
+++ /dev/null
-/*
- SPDX-FileCopyrightText: %{CURRENT_YEAR} %{AUTHOR} <%{EMAIL}>
-
- SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
-*/
-
-// application headers
-#include "privacybrowserpcwindow.h"
-
-#include "privacybrowserpcview.h"
-#include "privacybrowserpcdebug.h"
-
-// KF headers
-#include <KActionCollection>
-#include <KConfigDialog>
-
-
-PrivacyBrowserPCWindow::PrivacyBrowserPCWindow()
- : KXmlGuiWindow()
-{
- m_privacybrowserpcView = new PrivacyBrowserPCView(this);
- setCentralWidget(m_privacybrowserpcView);
-
- KActionCollection* actionCollection = this->actionCollection();
- m_switchAction = actionCollection->addAction(QStringLiteral("switch_action"));
- m_switchAction->setText(i18nc("@action", "Switch Colors"));
- m_switchAction->setIcon(QIcon::fromTheme(QStringLiteral("fill-color")));
- connect(m_switchAction, &QAction::triggered, m_privacybrowserpcView, &PrivacyBrowserPCView::switchColors);
-
- KStandardAction::openNew(this, SLOT(fileNew()), actionCollection);
- KStandardAction::quit(qApp, SLOT(closeAllWindows()), actionCollection);
- KStandardAction::preferences(this, SLOT(settingsConfigure()), actionCollection);
-
- setupGUI();
-}
-
-PrivacyBrowserPCWindow::~PrivacyBrowserPCWindow()
-{
-}
-
-void PrivacyBrowserPCWindow::fileNew()
-{
- qCDebug(PRIVACYBROWSERPC) << "PrivacyBrowserPCWindow::fileNew()";
- (new PrivacyBrowserPCWindow)->show();
-}
-
-void PrivacyBrowserPCWindow::settingsConfigure()
-{
- qCDebug(PRIVACYBROWSERPC) << "PrivacyBrowserPCWindow::settingsConfigure()";
- // The preference dialog is derived from prefs_base.ui
- //
- // compare the names of the widgets in the .ui file
- // to the names of the variables in the .kcfg file
- //avoid to have 2 dialogs shown
- if (KConfigDialog::showDialog(QStringLiteral("settings"))) {
- return;
- }
-
- KConfigDialog *dialog = new KConfigDialog(this, QStringLiteral("settings"), PrivacyBrowserPCSettings::self());
- QWidget *generalSettingsPage = new QWidget;
- m_settings.setupUi(generalSettingsPage);
- dialog->addPage(generalSettingsPage, i18nc("@title:tab", "General"), QStringLiteral("package_setting"));
- connect(dialog, &KConfigDialog::settingsChanged, m_privacybrowserpcView, &PrivacyBrowserPCView::handleSettingsChanged);
- dialog->setAttribute(Qt::WA_DeleteOnClose);
- dialog->show();
-}
+++ /dev/null
-/*
- SPDX-FileCopyrightText: %{CURRENT_YEAR} %{AUTHOR} <%{EMAIL}>
-
- SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
-*/
-
-#ifndef PRIVACYBROWSERPCWINDOW_H
-#define PRIVACYBROWSERPCWINDOW_H
-
-#include <KXmlGuiWindow>
-
-#include "ui_settings.h"
-#include "PrivacyBrowserPCSettings.h"
-
-class PrivacyBrowserPCView;
-
-/**
- * This class serves as the main window for privacybrowserpc. It handles the
- * menus, toolbars and status bars.
- *
- * @short Main window class
- * @author %{AUTHOR} <%{EMAIL}>
- * @version %{VERSION}
- */
-class PrivacyBrowserPCWindow : public KXmlGuiWindow
-{
- Q_OBJECT
-public:
- /**
- * Default Constructor
- */
- PrivacyBrowserPCWindow();
-
- /**
- * Default Destructor
- */
- ~PrivacyBrowserPCWindow() override;
-
-private Q_SLOTS:
- /**
- * Create a new window
- */
- void fileNew();
-
- /**
- * Open the settings dialog
- */
- void settingsConfigure();
-
-private:
- // this is the name of the root widget inside our Ui file
- // you can rename it in designer and then change it here
- Ui::Settings m_settings;
- QAction *m_switchAction;
- PrivacyBrowserPCView *m_privacybrowserpcView;
-};
-
-#endif // PRIVACYBROWSERPCWINDOW_H
--- /dev/null
+<!--
+ Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+
+ This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-android>.
+
+ Privacy Browser PC 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 3 of the License, or
+ (at your option) any later version.
+
+ Privacy Browser PC 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 Privacy Browser PC. If not, see <http://www.gnu.org/licenses/>. -->
+
+<!DOCTYPE RCC>
+<RCC version="1.0">
+ <qresource>
+ <file>icons/privacy_browser.svg</file>
+ </qresource>
+</RCC>