From 00851382b8005a039173b156a12b2d86e8733871 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 9 Sep 2020 21:21:06 +0200 Subject: [PATCH 01/64] Remove some features that need a complete rewrite They'll be rewritten later, this just makes future debugging easier. --- src/CMakeLists.txt | 46 +- src/adblock/adblock.pri | 29 - src/adblock/adblockblockednetworkreply.cpp | 58 -- src/adblock/adblockblockednetworkreply.h | 52 -- src/adblock/adblockdialog.cpp | 150 ----- src/adblock/adblockdialog.h | 61 -- src/adblock/adblockdialog.ui | 153 ----- src/adblock/adblockmanager.cpp | 234 -------- src/adblock/adblockmanager.h | 89 --- src/adblock/adblockmodel.cpp | 287 --------- src/adblock/adblockmodel.h | 68 --- src/adblock/adblocknetwork.cpp | 84 --- src/adblock/adblocknetwork.h | 48 -- src/adblock/adblockpage.cpp | 112 ---- src/adblock/adblockpage.h | 50 -- src/adblock/adblockrule.cpp | 198 ------ src/adblock/adblockrule.h | 68 --- src/adblock/adblockschemeaccesshandler.cpp | 69 --- src/adblock/adblockschemeaccesshandler.h | 42 -- src/adblock/adblocksubscription.cpp | 374 ------------ src/adblock/adblocksubscription.h | 103 ---- src/autofilldialog.cpp | 175 ------ src/autofilldialog.h | 69 --- src/autofilldialog.ui | 126 ---- src/autofillmanager.cpp | 413 ------------- src/autofillmanager.h | 95 --- src/browserapplication.cpp | 30 - src/browserapplication.h | 8 - src/browsermainwindow.cpp | 9 - src/browsermainwindow.h | 1 - src/clearprivatedata.cpp | 23 - src/downloadmanager.cpp | 10 +- src/htmls/startpage.html | 29 +- src/network/cookiejar/cookiedialog.cpp | 133 ---- src/network/cookiejar/cookiedialog.h | 88 --- .../cookiejar/cookieexceptionsdialog.cpp | 160 ----- .../cookiejar/cookieexceptionsdialog.h | 95 --- .../cookiejar/cookieexceptionsmodel.cpp | 223 ------- src/network/cookiejar/cookieexceptionsmodel.h | 101 ---- src/network/cookiejar/cookiejar.cpp | 493 --------------- src/network/cookiejar/cookiejar.h | 163 ----- src/network/cookiejar/cookiejar.pri | 23 - src/network/cookiejar/cookiemodel.cpp | 201 ------- src/network/cookiejar/cookiemodel.h | 96 --- src/network/cookiejar/cookies.ui | 114 ---- src/network/cookiejar/cookiesexceptions.ui | 184 ------ .../networkcookiejar/MOZILLA_LICENSE.txt | 567 ------------------ .../networkcookiejar/networkcookiejar.cpp | 372 ------------ .../networkcookiejar/networkcookiejar.h | 66 -- .../networkcookiejar/networkcookiejar.pri | 6 - .../networkcookiejar/networkcookiejar_p.h | 78 --- .../cookiejar/networkcookiejar/trie_p.h | 255 -------- .../networkcookiejar/twoleveldomains_p.h | 103 ---- src/network/fileaccesshandler.cpp | 216 ------- src/network/fileaccesshandler.h | 58 -- src/network/network.pri | 23 - src/network/networkaccessmanager.cpp | 378 ------------ src/network/networkaccessmanager.h | 116 ---- src/network/networkdiskcache.cpp | 67 --- src/network/networkdiskcache.h | 53 -- src/network/networkproxyfactory.cpp | 47 -- src/network/networkproxyfactory.h | 40 -- src/network/passworddialog.ui | 111 ---- src/network/proxy.ui | 105 ---- src/network/schemeaccesshandler.cpp | 26 - src/network/schemeaccesshandler.h | 36 -- src/opensearch/opensearchengineaction.cpp | 4 +- src/opensearch/opensearchmanager.cpp | 5 +- src/qwebplugins/endorphinwebplugin.cpp | 42 -- src/qwebplugins/endorphinwebplugin.h | 49 -- src/qwebplugins/qwebplugins.pri | 11 - src/qwebplugins/webpluginfactory.cpp | 92 --- src/qwebplugins/webpluginfactory.h | 49 -- src/settings.cpp | 149 ----- src/settings.h | 3 - src/settings.ui | 401 ++----------- src/sourceviewer.cpp | 5 +- src/src.pri | 8 - src/toolbarsearch.cpp | 4 +- src/utils/networkaccessmanagerproxy.cpp | 82 --- src/utils/networkaccessmanagerproxy.h | 59 -- src/utils/networkaccessmanagerproxy_p.h | 54 -- src/utils/utils.pri | 9 +- src/utils/webpageproxy.cpp | 51 -- src/utils/webpageproxy.h | 49 -- src/webpage.cpp | 140 +---- src/webpage.h | 42 +- src/webview.cpp | 17 - src/webview.h | 1 - 89 files changed, 102 insertions(+), 9384 deletions(-) delete mode 100644 src/adblock/adblock.pri delete mode 100644 src/adblock/adblockblockednetworkreply.cpp delete mode 100644 src/adblock/adblockblockednetworkreply.h delete mode 100644 src/adblock/adblockdialog.cpp delete mode 100644 src/adblock/adblockdialog.h delete mode 100644 src/adblock/adblockdialog.ui delete mode 100644 src/adblock/adblockmanager.cpp delete mode 100644 src/adblock/adblockmanager.h delete mode 100644 src/adblock/adblockmodel.cpp delete mode 100644 src/adblock/adblockmodel.h delete mode 100644 src/adblock/adblocknetwork.cpp delete mode 100644 src/adblock/adblocknetwork.h delete mode 100644 src/adblock/adblockpage.cpp delete mode 100644 src/adblock/adblockpage.h delete mode 100644 src/adblock/adblockrule.cpp delete mode 100644 src/adblock/adblockrule.h delete mode 100644 src/adblock/adblockschemeaccesshandler.cpp delete mode 100644 src/adblock/adblockschemeaccesshandler.h delete mode 100644 src/adblock/adblocksubscription.cpp delete mode 100644 src/adblock/adblocksubscription.h delete mode 100644 src/autofilldialog.cpp delete mode 100644 src/autofilldialog.h delete mode 100644 src/autofilldialog.ui delete mode 100644 src/autofillmanager.cpp delete mode 100644 src/autofillmanager.h delete mode 100644 src/network/cookiejar/cookiedialog.cpp delete mode 100644 src/network/cookiejar/cookiedialog.h delete mode 100644 src/network/cookiejar/cookieexceptionsdialog.cpp delete mode 100644 src/network/cookiejar/cookieexceptionsdialog.h delete mode 100644 src/network/cookiejar/cookieexceptionsmodel.cpp delete mode 100644 src/network/cookiejar/cookieexceptionsmodel.h delete mode 100644 src/network/cookiejar/cookiejar.cpp delete mode 100644 src/network/cookiejar/cookiejar.h delete mode 100644 src/network/cookiejar/cookiejar.pri delete mode 100644 src/network/cookiejar/cookiemodel.cpp delete mode 100644 src/network/cookiejar/cookiemodel.h delete mode 100644 src/network/cookiejar/cookies.ui delete mode 100644 src/network/cookiejar/cookiesexceptions.ui delete mode 100644 src/network/cookiejar/networkcookiejar/MOZILLA_LICENSE.txt delete mode 100644 src/network/cookiejar/networkcookiejar/networkcookiejar.cpp delete mode 100644 src/network/cookiejar/networkcookiejar/networkcookiejar.h delete mode 100644 src/network/cookiejar/networkcookiejar/networkcookiejar.pri delete mode 100644 src/network/cookiejar/networkcookiejar/networkcookiejar_p.h delete mode 100644 src/network/cookiejar/networkcookiejar/trie_p.h delete mode 100644 src/network/cookiejar/networkcookiejar/twoleveldomains_p.h delete mode 100644 src/network/fileaccesshandler.cpp delete mode 100644 src/network/fileaccesshandler.h delete mode 100644 src/network/network.pri delete mode 100644 src/network/networkaccessmanager.cpp delete mode 100644 src/network/networkaccessmanager.h delete mode 100644 src/network/networkdiskcache.cpp delete mode 100644 src/network/networkdiskcache.h delete mode 100644 src/network/networkproxyfactory.cpp delete mode 100644 src/network/networkproxyfactory.h delete mode 100644 src/network/passworddialog.ui delete mode 100644 src/network/proxy.ui delete mode 100644 src/network/schemeaccesshandler.cpp delete mode 100644 src/network/schemeaccesshandler.h delete mode 100644 src/qwebplugins/endorphinwebplugin.cpp delete mode 100644 src/qwebplugins/endorphinwebplugin.h delete mode 100644 src/qwebplugins/qwebplugins.pri delete mode 100644 src/qwebplugins/webpluginfactory.cpp delete mode 100644 src/qwebplugins/webpluginfactory.h delete mode 100644 src/utils/networkaccessmanagerproxy.cpp delete mode 100644 src/utils/networkaccessmanagerproxy.h delete mode 100644 src/utils/networkaccessmanagerproxy_p.h delete mode 100644 src/utils/webpageproxy.cpp delete mode 100644 src/utils/webpageproxy.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 596521ee..1671ffb8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,7 +5,17 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/adblock ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks/xbel ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_SOURCE_DIR}/history ${CMAKE_CURRENT_SOURCE_DIR}/htmls ${CMAKE_CURRENT_SOURCE_DIR}/locationbar ${CMAKE_CURRENT_SOURCE_DIR}/network ${CMAKE_CURRENT_SOURCE_DIR}/network/cookiejar ${CMAKE_CURRENT_SOURCE_DIR}/network/cookiejar/networkcookiejar ${CMAKE_CURRENT_SOURCE_DIR}/opensearch ${CMAKE_CURRENT_SOURCE_DIR}/qwebplugins ${CMAKE_CURRENT_SOURCE_DIR}/qwebplugins/clicktoflash ${CMAKE_CURRENT_SOURCE_DIR}/useragent ${CMAKE_CURRENT_SOURCE_DIR}/utils) +INCLUDE_DIRECTORIES( +${CMAKE_CURRENT_SOURCE_DIR}/bookmarks +${CMAKE_CURRENT_SOURCE_DIR}/bookmarks/xbel +${CMAKE_CURRENT_SOURCE_DIR}/data +${CMAKE_CURRENT_SOURCE_DIR}/history +${CMAKE_CURRENT_SOURCE_DIR}/htmls +${CMAKE_CURRENT_SOURCE_DIR}/locationbar +${CMAKE_CURRENT_SOURCE_DIR}/opensearch +${CMAKE_CURRENT_SOURCE_DIR}/useragent +${CMAKE_CURRENT_SOURCE_DIR}/utils +) find_package(Qt5Widgets REQUIRED) find_package(Qt5Core REQUIRED) @@ -44,8 +54,6 @@ set(Endorphin_SRCS aboutdialog.cpp acceptlanguagedialog.cpp autosaver.cpp - autofilldialog.cpp - autofillmanager.cpp browserapplication.cpp browsermainwindow.cpp clearprivatedata.cpp @@ -68,15 +76,6 @@ set(Endorphin_SRCS webview.cpp webviewsearch.cpp main.cpp - adblock/adblockblockednetworkreply.cpp - adblock/adblockdialog.cpp - adblock/adblockmanager.cpp - adblock/adblockmodel.cpp - adblock/adblocknetwork.cpp - adblock/adblockpage.cpp - adblock/adblockrule.cpp - adblock/adblockschemeaccesshandler.cpp - adblock/adblocksubscription.cpp bookmarks/addbookmarkdialog.cpp bookmarks/bookmarksdialog.cpp bookmarks/bookmarksmanager.cpp @@ -92,17 +91,6 @@ set(Endorphin_SRCS locationbar/locationbar.cpp locationbar/locationbarsiteicon.cpp locationbar/privacyindicator.cpp - network/fileaccesshandler.cpp - network/networkaccessmanager.cpp - network/networkdiskcache.cpp - network/networkproxyfactory.cpp - network/schemeaccesshandler.cpp - network/cookiejar/cookiedialog.cpp - network/cookiejar/cookieexceptionsmodel.cpp - network/cookiejar/cookiemodel.cpp - network/cookiejar/cookieexceptionsdialog.cpp - network/cookiejar/cookiejar.cpp - network/cookiejar/networkcookiejar/networkcookiejar.cpp opensearch/opensearchdialog.cpp opensearch/opensearchengine.cpp opensearch/opensearchenginedelegate.cpp @@ -111,37 +99,27 @@ set(Endorphin_SRCS opensearch/opensearchmanager.cpp opensearch/opensearchreader.cpp opensearch/opensearchwriter.cpp - qwebplugins/endorphinwebplugin.cpp - qwebplugins/webpluginfactory.cpp useragent/useragentmenu.cpp utils/editlistview.cpp utils/edittableview.cpp utils/edittreeview.cpp utils/languagemanager.cpp utils/lineedit.cpp - utils/networkaccessmanagerproxy.cpp utils/singleapplication.cpp utils/squeezelabel.cpp utils/treesortfilterproxymodel.cpp - utils/webpageproxy.cpp ) set(Endorphin_UIS aboutdialog.ui - autofilldialog.ui acceptlanguagedialog.ui downloaditem.ui downloads.ui searchbanner.ui settings.ui - adblock/adblockdialog.ui bookmarks/addbookmarkdialog.ui bookmarks/bookmarksdialog.ui history/history.ui - network/passworddialog.ui - network/proxy.ui - network/cookiejar/cookies.ui - network/cookiejar/cookiesexceptions.ui opensearch/opensearchdialog.ui ) QT5_WRAP_UI(UIS ${Endorphin_UIS}) @@ -159,8 +137,6 @@ set(Endorphin_MOCS aboutdialog.h acceptlanguagedialog.h autosaver.h - autofilldialog.h - autofillmanager.h browserapplication.h browsermainwindow.h clearprivatedata.h diff --git a/src/adblock/adblock.pri b/src/adblock/adblock.pri deleted file mode 100644 index 9cce5388..00000000 --- a/src/adblock/adblock.pri +++ /dev/null @@ -1,29 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD - -VPATH += $$PWD - -HEADERS += \ - adblockblockednetworkreply.h \ - adblockdialog.h \ - adblockmanager.h \ - adblockmodel.h \ - adblocknetwork.h \ - adblockpage.h \ - adblockrule.h \ - adblockschemeaccesshandler.h \ - adblocksubscription.h - -SOURCES += \ - adblockblockednetworkreply.cpp \ - adblockdialog.cpp \ - adblockmanager.cpp \ - adblockmodel.cpp \ - adblocknetwork.cpp \ - adblockpage.cpp \ - adblockrule.cpp \ - adblockschemeaccesshandler.cpp \ - adblocksubscription.cpp - -FORMS += \ - adblockdialog.ui diff --git a/src/adblock/adblockblockednetworkreply.cpp b/src/adblock/adblockblockednetworkreply.cpp deleted file mode 100644 index 510525ff..00000000 --- a/src/adblock/adblockblockednetworkreply.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblockblockednetworkreply.h" - -#include "adblockrule.h" - -#include -#include - -AdBlockBlockedNetworkReply::AdBlockBlockedNetworkReply(const QNetworkRequest &request, const AdBlockRule *rule, QObject *parent) - : QNetworkReply(parent) -{ - setOperation(QNetworkAccessManager::GetOperation); - setRequest(request); - setUrl(request.url()); - setError(QNetworkReply::ContentAccessDenied, tr("Blocked by AdBlockRule: %1").arg(rule->filter())); - QTimer::singleShot(0, this, SLOT(delayedFinished())); -} - -qint64 AdBlockBlockedNetworkReply::readData(char *data, qint64 maxSize) -{ - Q_UNUSED(data); - Q_UNUSED(maxSize); - return -1; -} - -void AdBlockBlockedNetworkReply::delayedFinished() -{ - emit error(QNetworkReply::ContentAccessDenied); - emit finished(); -} - diff --git a/src/adblock/adblockblockednetworkreply.h b/src/adblock/adblockblockednetworkreply.h deleted file mode 100644 index b9914df7..00000000 --- a/src/adblock/adblockblockednetworkreply.h +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKBLOCKEDNETWORKREPLY_H -#define ADBLOCKBLOCKEDNETWORKREPLY_H - -#include - -class AdBlockRule; -class AdBlockBlockedNetworkReply : public QNetworkReply -{ - Q_OBJECT - -public: - AdBlockBlockedNetworkReply(const QNetworkRequest &request, const AdBlockRule *rule, QObject *parent = 0); - void abort() {}; - -protected: - qint64 readData(char *data, qint64 maxSize); - -private slots: - void delayedFinished(); - -}; - -#endif // ADBLOCKBLOCKEDNETWORKREPLY_H - diff --git a/src/adblock/adblockdialog.cpp b/src/adblock/adblockdialog.cpp deleted file mode 100644 index a9d66857..00000000 --- a/src/adblock/adblockdialog.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblockdialog.h" - -#include "adblockmodel.h" -#include "adblockmanager.h" -#include "adblocksubscription.h" -#include "treesortfilterproxymodel.h" - -#include -#include -#include - -#include - -AdBlockDialog::AdBlockDialog(QWidget *parent) - : QDialog(parent) -{ - setupUi(this); - m_adBlockModel = new AdBlockModel(this); - m_proxyModel = new TreeSortFilterProxyModel(this); - m_proxyModel->setSourceModel(m_adBlockModel); - treeView->setModel(m_proxyModel); - connect(search, SIGNAL(textChanged(QString)), - m_proxyModel, SLOT(setFilterFixedString(QString))); - - AdBlockManager *manager = AdBlockManager::instance(); - adblockCheckBox->setChecked(manager->isEnabled()); - connect(adblockCheckBox, SIGNAL(toggled(bool)), - AdBlockManager::instance(), SLOT(setEnabled(bool))); - - QMenu *menu = new QMenu(this); - connect(menu, SIGNAL(aboutToShow()), - this, SLOT(aboutToShowActionMenu())); - actionToolButton->setMenu(menu); - actionToolButton->setIcon(QIcon(QLatin1String(":128x128/run.png"))); - actionToolButton->setPopupMode(QToolButton::InstantPopup); - - AdBlockSubscription *subscription = manager->customRules(); - QModelIndex subscriptionIndex = m_adBlockModel->index(subscription); - treeView->expand(m_proxyModel->mapFromSource(subscriptionIndex)); -} - -void AdBlockDialog::aboutToShowActionMenu() -{ - QMenu *menu = actionToolButton->menu(); - menu->clear(); - - QAction *addRule = menu->addAction(tr("Add Custom Rule")); - connect(addRule, SIGNAL(triggered()), this, SLOT(addCustomRule())); - - QAction *learnRule = menu->addAction(tr("Learn more about writing rules...")); - connect(learnRule, SIGNAL(triggered()), this, SLOT(learnAboutWritingFilters())); - - menu->addSeparator(); - - QModelIndex idx = m_proxyModel->mapToSource(treeView->currentIndex()); - - QAction *updateSubscription = menu->addAction(tr("Update Subscription")); - connect(updateSubscription, SIGNAL(triggered()), this, SLOT(updateSubscription())); - if (!idx.isValid()) - updateSubscription->setEnabled(false); - - QAction *addSubscription = menu->addAction(tr("Browse Subscriptions...")); - connect(addSubscription, SIGNAL(triggered()), this, SLOT(browseSubscriptions())); - - menu->addSeparator(); - - QAction *removeSubscription = menu->addAction(tr("Remove Subscription")); - connect(removeSubscription, SIGNAL(triggered()), this, SLOT(removeSubscription())); - if (!idx.isValid()) - removeSubscription->setEnabled(false); -} - -void AdBlockDialog::addCustomRule(const QString &rule) -{ - AdBlockManager *manager = AdBlockManager::instance(); - AdBlockSubscription *subscription = manager->customRules(); - Q_ASSERT(subscription); - subscription->addRule(AdBlockRule(rule)); - // reset the model - qApp->processEvents(); - - QModelIndex parent = m_adBlockModel->index(subscription); - int x = m_adBlockModel->rowCount(parent); - QModelIndex ruleIndex = m_adBlockModel->index(x - 1, 0, parent); - treeView->expand(m_proxyModel->mapFromSource(parent)); - treeView->edit(m_proxyModel->mapFromSource(ruleIndex)); -} - -void AdBlockDialog::updateSubscription() -{ - QModelIndex idx = m_proxyModel->mapToSource(treeView->currentIndex()); - if (!idx.isValid()) - return; - if (idx.parent().isValid()) - idx = idx.parent(); - AdBlockSubscription *subscription = (AdBlockSubscription*)m_adBlockModel->subscription(idx); - subscription->updateNow(); -} - -void AdBlockDialog::browseSubscriptions() -{ - QUrl url(QLatin1String("http://adblockplus.org/en/subscriptions")); - QDesktopServices::openUrl(url); -} - -void AdBlockDialog::learnAboutWritingFilters() -{ - QUrl url(QLatin1String("http://adblockplus.org/en/filters")); - QDesktopServices::openUrl(url); -} - -void AdBlockDialog::removeSubscription() -{ - QModelIndex idx = m_proxyModel->mapToSource(treeView->currentIndex()); - if (!idx.isValid()) - return; - if (idx.parent().isValid()) - idx = idx.parent(); - AdBlockSubscription *subscription = (AdBlockSubscription*)m_adBlockModel->subscription(idx); - AdBlockManager::instance()->removeSubscription(subscription); -} - diff --git a/src/adblock/adblockdialog.h b/src/adblock/adblockdialog.h deleted file mode 100644 index 9f0971f8..00000000 --- a/src/adblock/adblockdialog.h +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKDIALOG_H -#define ADBLOCKDIALOG_H - -#include -#include "ui_adblockdialog.h" - -class AdBlockModel; -class TreeSortFilterProxyModel; -class AdBlockDialog : public QDialog, public Ui_AdBlockDialog -{ - Q_OBJECT - -public: - AdBlockDialog(QWidget *parent = 0); - -public slots: - void addCustomRule(const QString &rule = QString()); - -private slots: - void learnAboutWritingFilters(); - void aboutToShowActionMenu(); - void updateSubscription(); - void browseSubscriptions(); - void removeSubscription(); - -private: - AdBlockModel *m_adBlockModel; - TreeSortFilterProxyModel *m_proxyModel; - -}; - -#endif // ADBLOCKDIALOG_H - diff --git a/src/adblock/adblockdialog.ui b/src/adblock/adblockdialog.ui deleted file mode 100644 index b4fd9641..00000000 --- a/src/adblock/adblockdialog.ui +++ /dev/null @@ -1,153 +0,0 @@ - - - AdBlockDialog - - - - 0 - 0 - 483 - 487 - - - - AdBlock Configuration - - - - - - Enable AdBlock - - - true - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Ok - - - - - - - true - - - - 0 - - - - - Qt::Horizontal - - - - 398 - 23 - - - - - - - - - - - - - - Action - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - SearchLineEdit - QLineEdit -
searchlineedit.h
-
- - EditTreeView - QTreeView -
edittreeview.h
-
-
- - - - buttonBox - accepted() - AdBlockDialog - accept() - - - 75 - 495 - - - 157 - 274 - - - - - buttonBox - rejected() - AdBlockDialog - reject() - - - 75 - 495 - - - 286 - 274 - - - - - adblockCheckBox - toggled(bool) - adblockWidget - setEnabled(bool) - - - 106 - 39 - - - 349 - 74 - - - - -
diff --git a/src/adblock/adblockmanager.cpp b/src/adblock/adblockmanager.cpp deleted file mode 100644 index f0a0b426..00000000 --- a/src/adblock/adblockmanager.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblockmanager.h" - -#include "autosaver.h" -#include "adblockdialog.h" -#include "adblocknetwork.h" -#include "adblockpage.h" -#include "adblocksubscription.h" -#include "browserapplication.h" -#include "networkaccessmanager.h" - -#include -#include - -#include - -// #define ADBLOCKMANAGER_DEBUG - -AdBlockManager *AdBlockManager::s_adBlockManager = 0; - -AdBlockManager::AdBlockManager(QObject *parent) - : QObject(parent) - , m_loaded(false) - , m_enabled(true) - , m_saveTimer(new AutoSaver(this)) - , m_adBlockDialog(0) - , m_adBlockNetwork(0) - , m_adBlockPage(0) -{ - connect(this, SIGNAL(rulesChanged()), - m_saveTimer, SLOT(changeOccurred())); -} - -AdBlockManager::~AdBlockManager() -{ - m_saveTimer->saveIfNeccessary(); -} - -AdBlockManager *AdBlockManager::instance() -{ - if (!s_adBlockManager) { - // Set a parent that will delete us before the application exits - s_adBlockManager = new AdBlockManager(BrowserApplication::networkAccessManager()); - } - return s_adBlockManager; -} - -bool AdBlockManager::isEnabled() const -{ - if (!m_loaded) { - AdBlockManager *that = const_cast(this); - that->load(); - } - return m_enabled; -} - -void AdBlockManager::setEnabled(bool enabled) -{ - if (isEnabled() == enabled) - return; - emit rulesGoingToChange(); - m_enabled = enabled; - emit rulesChanged(); -} - -AdBlockNetwork *AdBlockManager::network() -{ - if (!m_adBlockNetwork) - m_adBlockNetwork = new AdBlockNetwork(this); - return m_adBlockNetwork; -} - -AdBlockPage *AdBlockManager::page() -{ - if (!m_adBlockPage) - m_adBlockPage = new AdBlockPage(this); - return m_adBlockPage; -} - -static QUrl customSubscriptionLocation() -{ - QString fileName = BrowserApplication::dataFilePath(QLatin1String("adblock_subscription_custom")); - return QUrl::fromLocalFile(fileName); -} - -QUrl AdBlockManager::customSubscriptionUrl() -{ - QUrl location = customSubscriptionLocation(); - QString encodedUrl = QString::fromUtf8(location.toEncoded()); - QUrl url(QString(QLatin1String("abp:subscribe?location=%1&title=%2")) - .arg(encodedUrl) - .arg(tr("Custom Rules"))); - return url; -} - -AdBlockSubscription *AdBlockManager::customRules() -{ - QUrl location = customSubscriptionLocation(); - foreach (AdBlockSubscription *subscription, m_subscriptions) { - if (subscription->location() == location) - return subscription; - } - QUrl url = customSubscriptionUrl(); - AdBlockSubscription *customAdBlockSubscription = new AdBlockSubscription(url, this); - addSubscription(customAdBlockSubscription); - return customAdBlockSubscription; -} - -QList AdBlockManager::subscriptions() const -{ - if (!m_loaded) { - AdBlockManager *that = const_cast(this); - that->load(); - } - return m_subscriptions; -} - -void AdBlockManager::removeSubscription(AdBlockSubscription *subscription) -{ - if (!subscription) - return; -#if defined(ADBLOCKMANAGER_DEBUG) - qDebug() << "AdBlockManager::" << __FUNCTION__ << subscription->location(); -#endif - m_saveTimer->saveIfNeccessary(); - emit rulesGoingToChange(); - m_subscriptions.removeOne(subscription); - if (subscription->parent() == this) - subscription->deleteLater(); - emit rulesChanged(); -} - -void AdBlockManager::addSubscription(AdBlockSubscription *subscription) -{ - if (!subscription) - return; -#if defined(ADBLOCKMANAGER_DEBUG) - qDebug() << "AdBlockManager::" << __FUNCTION__ << subscription->location(); -#endif - emit rulesGoingToChange(); - m_subscriptions.append(subscription); - connect(subscription, SIGNAL(goingToChange()), this, SIGNAL(rulesGoingToChange())); - connect(subscription, SIGNAL(rulesChanged()), this, SIGNAL(rulesChanged())); - connect(subscription, SIGNAL(changed()), this, SIGNAL(rulesChanged())); - emit rulesChanged(); -} - -void AdBlockManager::save() -{ -#if defined(ADBLOCKMANAGER_DEBUG) - qDebug() << "AdBlockManager::" << __FUNCTION__ << m_loaded; -#endif - if (!m_loaded) - return; - - QSettings settings; - settings.beginGroup(QLatin1String("AdBlock")); - settings.setValue(QLatin1String("enabled"), m_enabled); - QStringList subscriptions; - foreach (AdBlockSubscription *subscription, m_subscriptions) { - if (!subscription) - continue; - subscriptions.append(QString::fromUtf8(subscription->url().toEncoded())); - subscription->saveRules(); - } - settings.setValue(QLatin1String("subscriptions"), subscriptions); -} - -void AdBlockManager::load() -{ -#if defined(ADBLOCKMANAGER_DEBUG) - qDebug() << "AdBlockManager::" << __FUNCTION__ << m_loaded; -#endif - - if (m_loaded) - return; - m_loaded = true; - - QSettings settings; - settings.beginGroup(QLatin1String("AdBlock")); - m_enabled = settings.value(QLatin1String("enabled"), m_enabled).toBool(); - - QStringList defaultSubscriptions; - defaultSubscriptions.append(QString::fromUtf8(customSubscriptionUrl().toEncoded())); - defaultSubscriptions.append(QLatin1String("abp:subscribe?location=http://adblockplus.mozdev.org/easylist/easylist.txt&title=EasyList")); - - QStringList subscriptions = settings.value(QLatin1String("subscriptions"), defaultSubscriptions).toStringList(); - foreach (const QString &subscription, subscriptions) { - QUrl url = QUrl::fromEncoded(subscription.toUtf8()); - AdBlockSubscription *adBlockSubscription = new AdBlockSubscription(url, this); - connect(adBlockSubscription, SIGNAL(goingToChange()), this, SIGNAL(rulesGoingToChange())); - connect(adBlockSubscription, SIGNAL(rulesChanged()), this, SIGNAL(rulesChanged())); - connect(adBlockSubscription, SIGNAL(changed()), this, SIGNAL(rulesChanged())); - m_subscriptions.append(adBlockSubscription); - } -} - -AdBlockDialog *AdBlockManager::showDialog() -{ - if (!m_adBlockDialog) { - m_adBlockDialog = new AdBlockDialog(0); - m_adBlockDialog->setAttribute(Qt::WA_DeleteOnClose, true); - } - m_adBlockDialog->show(); - return m_adBlockDialog; -} - diff --git a/src/adblock/adblockmanager.h b/src/adblock/adblockmanager.h deleted file mode 100644 index 462a9a08..00000000 --- a/src/adblock/adblockmanager.h +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKMANAGER_H -#define ADBLOCKMANAGER_H - -#include - -#include - -class QUrl; -class AutoSaver; -class AdBlockDialog; -class AdBlockNetwork; -class AdBlockPage; -class AdBlockSubscription; -class AdBlockManager : public QObject -{ - Q_OBJECT - -signals: - void rulesGoingToChange(); - void rulesChanged(); - -public: - AdBlockManager(QObject *parent = 0); - ~AdBlockManager(); - - void load(); - - static AdBlockManager *instance(); - bool isEnabled() const; - - QList subscriptions() const; - void removeSubscription(AdBlockSubscription *subscription); - void addSubscription(AdBlockSubscription *subscription); - - AdBlockNetwork *network(); - AdBlockPage *page(); - AdBlockSubscription *customRules(); - -public slots: - void setEnabled(bool enabled); - AdBlockDialog *showDialog(); - -private slots: - void save(); - -private: - static QUrl customSubscriptionUrl(); - static AdBlockManager *s_adBlockManager; - - bool m_loaded; - bool m_enabled; - AutoSaver *m_saveTimer; - QPointer m_adBlockDialog; - AdBlockNetwork *m_adBlockNetwork; - AdBlockPage *m_adBlockPage; - QList m_subscriptions; - -}; - -#endif // ADBLOCKMANAGER_H - diff --git a/src/adblock/adblockmodel.cpp b/src/adblock/adblockmodel.cpp deleted file mode 100644 index 6c96ce3b..00000000 --- a/src/adblock/adblockmodel.cpp +++ /dev/null @@ -1,287 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblockmodel.h" - -#include "adblockrule.h" -#include "adblocksubscription.h" -#include "adblockmanager.h" - -AdBlockModel::AdBlockModel(QObject *parent) - : QAbstractItemModel(parent) - , m_manager(AdBlockManager::instance()) -{ - connect(m_manager, SIGNAL(rulesChanged()), this, SLOT(rulesChanged())); - connect(m_manager, SIGNAL(rulesGoingToChange()), this, SLOT(rulesGoingToChange())); -} - -void AdBlockModel::rulesGoingToChange() -{ - beginResetModel(); -} - -void AdBlockModel::rulesChanged() -{ - endResetModel(); -} - -const AdBlockRule AdBlockModel::rule(const QModelIndex &index) const -{ - const AdBlockSubscription *parent = static_cast(index.internalPointer()); - Q_ASSERT(parent); - return parent->allRules().at(index.row()); -} - -AdBlockSubscription *AdBlockModel::subscription(const QModelIndex &index) const -{ - const AdBlockSubscription *parent = static_cast(index.internalPointer()); - if (parent) - return 0; - int row = index.row(); - if (row < 0 || row >= m_manager->subscriptions().count()) - return 0; - return m_manager->subscriptions().at(row); -} - -QModelIndex AdBlockModel::index(AdBlockSubscription *subscription) -{ - int row = m_manager->subscriptions().indexOf(subscription); - if (row < 0 || row >= m_manager->subscriptions().count()) - return QModelIndex(); - return createIndex(row, 0, (void*) 0); -} - -QVariant AdBlockModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { - switch (section) { - case 0: return tr("Rule"); - } - } - return QAbstractItemModel::headerData(section, orientation, role); -} - -QVariant AdBlockModel::data(const QModelIndex &index, int role) const -{ - if (!index.isValid() - || index.model() != this - || index.column() != 0) - return QVariant(); - - switch (role) { - case Qt::EditRole: - case Qt::DisplayRole: - if (index.parent().isValid()) { - const AdBlockRule r = rule(index); - return r.filter(); - } else { - AdBlockSubscription *sub = subscription(index); - if (sub) - return sub->title(); - } - break; - case Qt::CheckStateRole: - if (index.parent().isValid()) { - const AdBlockRule r = rule(index); - return r.isEnabled() ? Qt::Checked : Qt::Unchecked; - } else { - AdBlockSubscription *sub = subscription(index); - if (sub) - return sub->isEnabled() ? Qt::Checked : Qt::Unchecked; - } - break; - default: - break; - } - - return QVariant(); -} - -int AdBlockModel::columnCount(const QModelIndex &parent) const -{ - return (parent.column() > 0) ? 0 : 1; -} - -int AdBlockModel::rowCount(const QModelIndex &parent) const -{ - if (parent.column() > 0) - return 0; - - if (!parent.isValid()) - return m_manager->subscriptions().count(); - - if (parent.internalPointer() != 0) - return 0; - - const AdBlockSubscription *parentNode = subscription(parent); - return parentNode ? parentNode->allRules().count() : 0; -} - -QModelIndex AdBlockModel::index(int row, int column, const QModelIndex &parent) const -{ - if (row < 0 || column < 0 || row >= rowCount(parent) || column >= columnCount(parent)) - return QModelIndex(); - - if (!parent.isValid()) - return createIndex(row, column, (void*)0); - - // get the parent node - const AdBlockSubscription *parentNode = subscription(parent); - return createIndex(row, column, (void*)parentNode); -} - -QModelIndex AdBlockModel::parent(const QModelIndex &index) const -{ - if (!index.isValid()) - return QModelIndex(); - - AdBlockSubscription *parent = static_cast(index.internalPointer()); - if (!parent) - return QModelIndex(); - - int parentRow = m_manager->subscriptions().indexOf(parent); - return createIndex(parentRow, 0, (void*)0); -} - -Qt::ItemFlags AdBlockModel::flags(const QModelIndex &index) const -{ - if (!index.isValid()) - return Qt::NoItemFlags; - - Qt::ItemFlags flags = Qt::ItemIsSelectable; - - if (index.parent().isValid()) { - flags |= Qt::ItemIsUserCheckable | Qt::ItemIsEditable; - const AdBlockSubscription *parentNode = subscription(index.parent()); - if (parentNode && parentNode->isEnabled()) - flags |= Qt::ItemIsEnabled; - } else { - flags |= Qt::ItemIsUserCheckable | Qt::ItemIsEditable | Qt::ItemIsEnabled; - } - - return flags; -} - -bool AdBlockModel::removeRows(int row, int count, const QModelIndex &parent) -{ - if (row < 0 || count <= 0 || row + count > rowCount(parent)) - return false; - - if (!parent.isValid()) { - disconnect(m_manager, SIGNAL(rulesChanged()), this, SLOT(rulesChanged())); - beginRemoveRows(QModelIndex(), row, row + count - 1); - for (int i = row + count - 1; i >= row; --i) { - AdBlockManager *manager = AdBlockManager::instance(); - manager->removeSubscription(manager->subscriptions().at(i)); - } - endRemoveRows(); - connect(m_manager, SIGNAL(rulesChanged()), this, SLOT(rulesChanged())); - return true; - } else { - AdBlockSubscription *sub = subscription(parent); - if (sub) { - disconnect(m_manager, SIGNAL(rulesChanged()), this, SLOT(rulesChanged())); - beginRemoveRows(parent, row, row + count - 1); - QList rules = sub->allRules(); - for (int i = row + count - 1; i >= row; --i) - sub->removeRule(i); - endRemoveRows(); - connect(m_manager, SIGNAL(rulesChanged()), this, SLOT(rulesChanged())); - return true; - } - } - - return false; -} - -bool AdBlockModel::setData(const QModelIndex &index, const QVariant &value, int role) -{ - if (!index.isValid() - || index.model() != this - || index.column() != 0 - || (flags(index) & Qt::ItemIsEditable) == 0) - return false; - - disconnect(m_manager, SIGNAL(rulesChanged()), this, SLOT(rulesChanged())); - bool changed = false; - switch (role) { - case Qt::EditRole: - case Qt::DisplayRole: - if (index.parent().isValid()) { - AdBlockSubscription *sub = subscription(index.parent()); - if (sub) { - AdBlockRule r = rule(index); - r.setFilter(value.toString()); - sub->replaceRule(r, index.row()); - dataChanged(index, index); - changed = true; - } - } else { - AdBlockSubscription *sub = subscription(index); - if (sub) { - sub->setTitle(value.toString()); - dataChanged(index, index); - changed = true; - } - } - break; - case Qt::CheckStateRole: - if (index.parent().isValid()) { - AdBlockSubscription *sub = subscription(index.parent()); - if (sub) { - AdBlockRule r = rule(index); - r.setEnabled(value == Qt::Checked); - sub->replaceRule(r, index.row()); - dataChanged(index, index); - changed = true; - } - } else { - AdBlockSubscription *sub = subscription(index); - if (sub) { - sub->setEnabled(value == Qt::Checked); - dataChanged(index, index); - changed = true; - } - } - break; - default: - break; - } - connect(m_manager, SIGNAL(rulesChanged()), this, SLOT(rulesChanged())); - return changed; -} - -bool AdBlockModel::hasChildren(const QModelIndex &parent) const -{ - if (!parent.isValid()) - return true; - if (parent.internalPointer() == 0) - return true; - return false; -} - diff --git a/src/adblock/adblockmodel.h b/src/adblock/adblockmodel.h deleted file mode 100644 index 05dd36d2..00000000 --- a/src/adblock/adblockmodel.h +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKMODEL_H -#define ADBLOCKMODEL_H - -#include - -class AdBlockRule; -class AdBlockSubscription; -class AdBlockManager; -class AdBlockModel : public QAbstractItemModel -{ - Q_OBJECT - -public: - AdBlockModel(QObject *parent = 0); - - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - int rowCount(const QModelIndex &parent = QModelIndex()) const; - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; - QModelIndex parent(const QModelIndex &index = QModelIndex()) const; - Qt::ItemFlags flags(const QModelIndex &index) const; - bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); - bool hasChildren(const QModelIndex &parent = QModelIndex()) const; - - const AdBlockRule rule(const QModelIndex &index) const; - AdBlockSubscription *subscription(const QModelIndex &index) const; - QModelIndex index(AdBlockSubscription *subscription); - -private slots: - void rulesGoingToChange(); - void rulesChanged(); - -private: - AdBlockManager *m_manager; -}; - -#endif // ADBLOCKMODEL_H - diff --git a/src/adblock/adblocknetwork.cpp b/src/adblock/adblocknetwork.cpp deleted file mode 100644 index c0354fd4..00000000 --- a/src/adblock/adblocknetwork.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblocknetwork.h" - -#include "adblockblockednetworkreply.h" -#include "adblockmanager.h" -#include "adblocksubscription.h" - -#include - -// #define ADBLOCKNETWORK_DEBUG - -AdBlockNetwork::AdBlockNetwork(QObject *parent) - : QObject(parent) -{ -} - -QNetworkReply *AdBlockNetwork::block(const QNetworkRequest &request) -{ - QUrl url = request.url(); - - if (url.scheme() == QLatin1String("data")) - return 0; - - AdBlockManager *manager = AdBlockManager::instance(); - if (!manager->isEnabled()) - return 0; - - QString urlString = QString::fromUtf8(url.toEncoded()); - const AdBlockRule *blockedRule = 0; -#if defined(ADBLOCKNETWORK_DEBUG) - const AdBlockSubscription *blockingSubscription = 0; -#endif - - QList subscriptions = manager->subscriptions(); - foreach (AdBlockSubscription *subscription, subscriptions) { - if (subscription->allow(urlString)) - return 0; - - if (const AdBlockRule *rule = subscription->block(urlString)) { - blockedRule = rule; -#if defined(ADBLOCKNETWORK_DEBUG) - blockingSubscription = subscription; -#endif - break; - } - } - - if (blockedRule) { -#if defined(ADBLOCKNETWORK_DEBUG) - qDebug() << "AdBlockNetwork::" << __FUNCTION__ << "rule:" << blockedRule->filter() << "subscription:" << blockingSubscription->title() << url; -#endif - AdBlockBlockedNetworkReply *reply = new AdBlockBlockedNetworkReply(request, blockedRule, this); - return reply; - } - return 0; -} - diff --git a/src/adblock/adblocknetwork.h b/src/adblock/adblocknetwork.h deleted file mode 100644 index 6dbbdeab..00000000 --- a/src/adblock/adblocknetwork.h +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKNETWORK_H -#define ADBLOCKNETWORK_H - -#include - -class QNetworkRequest; -class QNetworkReply; -class AdBlockNetwork : public QObject -{ - Q_OBJECT - -public: - AdBlockNetwork(QObject *parent = 0); - - QNetworkReply *block(const QNetworkRequest &request); - -}; - -#endif // ADBLOCKNETWORK_H - diff --git a/src/adblock/adblockpage.cpp b/src/adblock/adblockpage.cpp deleted file mode 100644 index 4fe3131d..00000000 --- a/src/adblock/adblockpage.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblockpage.h" - -#include "adblockmanager.h" -#include "adblocksubscription.h" -#include "adblockrule.h" - -#include -#include -#include - -#include - -// #define ADBLOCKPAGE_DEBUG - -AdBlockPage::AdBlockPage(QObject *parent) - : QObject(parent) -{ -} - -void AdBlockPage::checkRule(const AdBlockRule *rule, QWebPage *page, const QString &host) -{ - if (!rule->isEnabled()) - return; - - QString filter = rule->filter(); - int offset = filter.indexOf(QLatin1String("##")); - if (offset == -1) - return; - - QString selectorQuery; - if (offset > 0) { - QString domainRules = filter.mid(0, offset); - selectorQuery = filter.mid(offset + 2); - QStringList domains = domainRules.split(QLatin1Char(',')); - - bool match = false; - foreach (const QString &domain, domains) { - bool reverse = (domain[0] == QLatin1Char('~')); - if (reverse) { - QString xdomain = domain.mid(1); - if (host.endsWith(xdomain)) - return; - match = true; - } - if (host.endsWith(domain)) - match = true; - } - if (!match) - return; - } - - if (offset == 0) - selectorQuery = filter.mid(2); - - Q_UNUSED(page); - QWebElement document = page->mainFrame()->documentElement(); - QWebElementCollection elements = document.findAll(selectorQuery); -#if defined(ADBLOCKPAGE_DEBUG) - if (elements.count() != 0) - qDebug() << "AdBlockPage::" << __FUNCTION__ << "blocking" << elements.count() << "items" << selectorQuery << elements.count() << "rule:" << rule->filter(); -#endif - foreach (QWebElement element, elements) { - element.setStyleProperty(QLatin1String("visibility"), QLatin1String("hidden")); - element.removeFromDocument(); - } -} - -void AdBlockPage::applyRulesToPage(QWebPage *page) -{ - if (!page || !page->mainFrame()) - return; - AdBlockManager *manager = AdBlockManager::instance(); - if (!manager->isEnabled()) - return; - QString host = page->mainFrame()->url().host(); - QList subscriptions = manager->subscriptions(); - foreach (AdBlockSubscription *subscription, subscriptions) { - QList rules = subscription->pageRules(); - foreach (const AdBlockRule *rule, rules) { - checkRule(rule, page, host); - } - } -} - diff --git a/src/adblock/adblockpage.h b/src/adblock/adblockpage.h deleted file mode 100644 index 60244902..00000000 --- a/src/adblock/adblockpage.h +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKPAGE_H -#define ADBLOCKPAGE_H - -#include - -class AdBlockRule; -class QWebPage; -class AdBlockPage : public QObject -{ - Q_OBJECT - -public: - AdBlockPage(QObject *parent = 0); - - void applyRulesToPage(QWebPage *page); - -private: - void checkRule(const AdBlockRule *rule, QWebPage *page, const QString &host); -}; - -#endif // ADBLOCKPAGE_H - diff --git a/src/adblock/adblockrule.cpp b/src/adblock/adblockrule.cpp deleted file mode 100644 index b6608e86..00000000 --- a/src/adblock/adblockrule.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/** - * Copyright (c) 2009, Zsombor Gegesy - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblockrule.h" - -#include "adblocksubscription.h" - -#include -#include -#include - -// #define ADBLOCKRULE_DEBUG - -AdBlockRule::AdBlockRule(const QString &filter) -{ - setFilter(filter); -} - -QString AdBlockRule::filter() const -{ - return m_filter; -} - -void AdBlockRule::setFilter(const QString &filter) -{ - m_filter = filter; - - m_cssRule = false; - m_enabled = true; - m_exception = false; - bool regExpRule = false; - - if (filter.startsWith(QLatin1String("!")) - || filter.trimmed().isEmpty()) - m_enabled = false; - - if (filter.contains(QLatin1String("##"))) - m_cssRule = true; - - QString parsedLine = filter; - if (parsedLine.startsWith(QLatin1String("@@"))) { - m_exception = true; - parsedLine = parsedLine.mid(2); - } - if (parsedLine.startsWith(QLatin1Char('/'))) { - if (parsedLine.endsWith(QLatin1Char('/'))) { - parsedLine = parsedLine.mid(1); - parsedLine = parsedLine.left(parsedLine.size() - 1); - regExpRule = true; - } - } - int options = parsedLine.indexOf(QLatin1String("$"), 0); - if (options >= 0) { - m_options = parsedLine.mid(options + 1).split(QLatin1Char(',')); - parsedLine = parsedLine.left(options); - } - - setPattern(parsedLine, regExpRule); - - if (m_options.contains(QLatin1String("match-case"))) { - m_regExp.setCaseSensitivity(Qt::CaseSensitive); - m_options.removeOne(QLatin1String("match-case")); - } -} - -bool AdBlockRule::networkMatch(const QString &encodedUrl) const -{ - if (m_cssRule) { -#if defined(ADBLOCKRULE_DEBUG) - qDebug() << "AdBlockRule::" << __FUNCTION__ << "m_cssRule" << m_cssRule; -#endif - return false; - } - - if (!m_enabled) { -#if defined(ADBLOCKRULE_DEBUG) - qDebug() << "AdBlockRule::" << __FUNCTION__ << "is not enabled"; -#endif - return false; - } - - bool matched = m_regExp.indexIn(encodedUrl) != -1; - - if (matched - && !m_options.isEmpty()) { - - // we only support domain right now - if (m_options.count() == 1) { - foreach (const QString &option, m_options) { - if (option.startsWith(QLatin1String("domain="))) { - QUrl url = QUrl::fromEncoded(encodedUrl.toUtf8()); - QString host = url.host(); - QStringList domainOptions = option.mid(7).split(QLatin1Char('|')); - foreach (QString domainOption, domainOptions) { - bool negate = domainOption.at(0) == QLatin1Char('~'); - if (negate) - domainOption = domainOption.mid(1); - bool hostMatched = domainOption == host; - if (hostMatched && !negate) - return true; - if (!hostMatched && negate) - return true; - } - } - } - } - -#if defined(ADBLOCKRULE_DEBUG) - qDebug() << "AdBlockRule::" << __FUNCTION__ << "options are currently not supported" << m_options; -#endif - return false; - } -#if defined(ADBLOCKRULE_DEBUG) - //qDebug() << "AdBlockRule::" << __FUNCTION__ << encodedUrl << "MATCHED" << matched << filter(); -#endif - - return matched; -} - -bool AdBlockRule::isException() const -{ - return m_exception; -} - -void AdBlockRule::setException(bool exception) -{ - m_exception = exception; -} - -bool AdBlockRule::isEnabled() const -{ - return m_enabled; -} - -void AdBlockRule::setEnabled(bool enabled) -{ - m_enabled = enabled; - if (!enabled) { - m_filter = QLatin1String("!") + m_filter; - } else { - m_filter = m_filter.mid(1); - } -} - -QString AdBlockRule::regExpPattern() const -{ - return m_regExp.pattern(); -} - -static QString convertPatternToRegExp(const QString &wildcardPattern) { - QString pattern = wildcardPattern; - return pattern.replace(QRegExp(QLatin1String("\\*+")), QLatin1String("*")) // remove multiple wildcards - .replace(QRegExp(QLatin1String("\\^\\|$")), QLatin1String("^")) // remove anchors following separator placeholder - .replace(QRegExp(QLatin1String("^(\\*)")), QLatin1String("")) // remove leading wildcards - .replace(QRegExp(QLatin1String("(\\*)$")), QLatin1String("")) // remove trailing wildcards - .replace(QRegExp(QLatin1String("(\\W)")), QLatin1String("\\\\1")) // escape special symbols - .replace(QRegExp(QLatin1String("^\\\\\\|\\\\\\|")), - QLatin1String("^[\\w\\-]+:\\/+(?!\\/)(?:[^\\/]+\\.)?")) // process extended anchor at expression start - .replace(QRegExp(QLatin1String("\\\\\\^")), - QLatin1String("(?:[^\\w\\d\\-.%]|$)")) // process separator placeholders - .replace(QRegExp(QLatin1String("^\\\\\\|")), QLatin1String("^")) // process anchor at expression start - .replace(QRegExp(QLatin1String("\\\\\\|$")), QLatin1String("$")) // process anchor at expression end - .replace(QRegExp(QLatin1String("\\\\\\*")), QLatin1String(".*")) // replace wildcards by .* - ; -} - -void AdBlockRule::setPattern(const QString &pattern, bool isRegExp) -{ - m_regExp = QRegExp(isRegExp ? pattern : convertPatternToRegExp(pattern), - Qt::CaseInsensitive, QRegExp::RegExp2); -} - diff --git a/src/adblock/adblockrule.h b/src/adblock/adblockrule.h deleted file mode 100644 index c877b79a..00000000 --- a/src/adblock/adblockrule.h +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKRULE_H -#define ADBLOCKRULE_H - -#include - -class QUrl; -class QRegExp; -class AdBlockRule -{ - -public: - AdBlockRule(const QString &filter = QString()); - - QString filter() const; - void setFilter(const QString &filter); - - bool isCSSRule() const { return m_cssRule; } - bool networkMatch(const QString &encodedUrl) const; - - bool isException() const; - void setException(bool exception); - - bool isEnabled() const; - void setEnabled(bool enabled); - - QString regExpPattern() const; - void setPattern(const QString &pattern, bool isRegExp); - -private: - QString m_filter; - - bool m_cssRule; - bool m_exception; - bool m_enabled; - QRegExp m_regExp; - QStringList m_options; -}; - -#endif // ADBLOCKRULE_H - diff --git a/src/adblock/adblockschemeaccesshandler.cpp b/src/adblock/adblockschemeaccesshandler.cpp deleted file mode 100644 index fe5166ed..00000000 --- a/src/adblock/adblockschemeaccesshandler.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblockschemeaccesshandler.h" - -#include "adblockmanager.h" -#include "adblocksubscription.h" -#include "adblockdialog.h" - -#include -#include - -AdBlockSchemeAccessHandler::AdBlockSchemeAccessHandler(QObject *parent) - : SchemeAccessHandler(parent) -{ -} - -QNetworkReply *AdBlockSchemeAccessHandler::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) -{ - Q_UNUSED(outgoingData); - if (op != QNetworkAccessManager::GetOperation) - return 0; - - if (request.url().path() != QLatin1String("subscribe")) - return 0; - - AdBlockSubscription *subscription = new AdBlockSubscription(request.url(), AdBlockManager::instance()); - - QMessageBox::StandardButton result = QMessageBox::question(0 - , tr("Subscribe?") - , tr("Subscribe to this AdBlock subscription?\n%1").arg(subscription->title()) - , QMessageBox::Yes | QMessageBox::No); - if (result == QMessageBox::No) { - delete subscription; - } else { - AdBlockManager::instance()->addSubscription(subscription); - AdBlockDialog *dialog = AdBlockManager::instance()->showDialog(); - QAbstractItemModel *model = dialog->treeView->model(); - dialog->treeView->setCurrentIndex(model->index(model->rowCount() -1, 0)); - dialog->setFocus(); - } - return 0; -} - diff --git a/src/adblock/adblockschemeaccesshandler.h b/src/adblock/adblockschemeaccesshandler.h deleted file mode 100644 index fccee5aa..00000000 --- a/src/adblock/adblockschemeaccesshandler.h +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKSCHEMEACCESSHANDLER_H -#define ADBLOCKSCHEMEACCESSHANDLER_H - -#include "schemeaccesshandler.h" - -class AdBlockSchemeAccessHandler : public SchemeAccessHandler -{ -public: - AdBlockSchemeAccessHandler(QObject *parent = 0); - - virtual QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0); -}; - -#endif // ADBLOCKSCHEMEACCESSHANDLER_H diff --git a/src/adblock/adblocksubscription.cpp b/src/adblock/adblocksubscription.cpp deleted file mode 100644 index 2fb0a80e..00000000 --- a/src/adblock/adblocksubscription.cpp +++ /dev/null @@ -1,374 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "adblocksubscription.h" - -#include "browserapplication.h" -#include "networkaccessmanager.h" - -#include -#include -#include -#include -#include -#include - -// #define ADBLOCKSUBSCRIPTION_DEBUG - -AdBlockSubscription::AdBlockSubscription(const QUrl &url, QObject *parent) - : QObject(parent) - , m_url(url.toEncoded()) - , m_enabled(false) - , m_downloading(0) -{ - parseUrl(url); -} - -void AdBlockSubscription::parseUrl(const QUrl &url) -{ -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << url; -#endif - if (url.scheme() != QLatin1String("abp")) - return; - if (url.path() != QLatin1String("subscribe")) - return; - QUrlQuery query(url.query()); - m_title = query.queryItemValue("title"); - m_enabled = query.queryItemValue("enabled") != QLatin1String("false"); - m_location = query.queryItemValue("location").toUtf8(); - QString lastUpdateString = query.queryItemValue("lastUpdate"); - m_lastUpdate = QDateTime::fromString(lastUpdateString, Qt::ISODate); - loadRules(); -} - -QUrl AdBlockSubscription::url() const -{ - QUrl url; - url.setScheme(QLatin1String("abp")); - url.setPath(QLatin1String("subscribe")); - - QUrlQuery queryItems; - - queryItems.addQueryItem(QLatin1String("location"), QString::fromUtf8(m_location)); - queryItems.addQueryItem(QLatin1String("title"), m_title); - if (!m_enabled) - queryItems.addQueryItem(QLatin1String("enabled"), QLatin1String("false")); - if (m_lastUpdate.isValid()) - queryItems.addQueryItem(QLatin1String("lastUpdate"), m_lastUpdate.toString(Qt::ISODate)); - url.setQuery(queryItems); - return url; -} - -bool AdBlockSubscription::isEnabled() const -{ - return m_enabled; -} - -void AdBlockSubscription::setEnabled(bool enabled) -{ - if (m_enabled == enabled) - return; - m_enabled = enabled; - populateCache(); - emit changed(); -} - -QString AdBlockSubscription::title() const -{ - return m_title; -} - -void AdBlockSubscription::setTitle(const QString &title) -{ - if (m_title == title) - return; - m_title = title; - emit changed(); -} - -QUrl AdBlockSubscription::location() const -{ - return QUrl::fromEncoded(m_location); -} - -void AdBlockSubscription::setLocation(const QUrl &url) -{ - if (url == location()) - return; - m_location = url.toEncoded(); - m_lastUpdate = QDateTime(); - emit changed(); -} - -QDateTime AdBlockSubscription::lastUpdate() const -{ - return m_lastUpdate; -} - -QString AdBlockSubscription::rulesFileName() const -{ - if (location().scheme() == QLatin1String("file")) - return location().toLocalFile(); - - if (m_location.isEmpty()) - return QString(); - - QByteArray sha1 = QCryptographicHash::hash(m_location, QCryptographicHash::Sha1).toHex(); - QString fileName = BrowserApplication::dataFilePath(QString(QLatin1String("adblock_subscription_%1")).arg(QLatin1String(sha1))); - return fileName; -} - -void AdBlockSubscription::loadRules() -{ - QString fileName = rulesFileName(); -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << fileName; -#endif - QFile file(fileName); - if (file.exists()) { - if (!file.open(QFile::ReadOnly)) { - qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "Unable to open adblock file for reading" << fileName; - } else { - QTextStream textStream(&file); - QString header = textStream.readLine(1024); - if (!header.startsWith(QLatin1String("[Adblock"))) { - qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "adblock file does not start with [Adblock" << fileName << "Header:" << header; - file.close(); - file.remove(); - m_lastUpdate = QDateTime(); - } else { - m_rules.clear(); - while (!textStream.atEnd()) { - QString line = textStream.readLine(); - m_rules.append(AdBlockRule(line)); - } - populateCache(); - emit rulesChanged(); - } - } - } - - if (!m_lastUpdate.isValid() - || m_lastUpdate.addDays(7) < QDateTime::currentDateTime()) { - updateNow(); - } -} - -void AdBlockSubscription::updateNow() -{ -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << location(); -#endif - if (m_downloading) { -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << "already downloading, stopping"; -#endif - return; - } - - if (!location().isValid()) { -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << location() << "isn't valid"; -#endif - return; - } - - if (location().scheme() == QLatin1String("file")) { -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << "local file, not downloading"; -#endif - m_lastUpdate = QDateTime::currentDateTime(); - loadRules(); - emit changed(); - return; - } - - QNetworkRequest request(location()); - QNetworkReply *reply = BrowserApplication::networkAccessManager()->get(request); - m_downloading = reply; - connect(reply, SIGNAL(finished()), this, SLOT(rulesDownloaded())); -} - -void AdBlockSubscription::rulesDownloaded() -{ -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << rulesFileName(); -#endif - QNetworkReply *reply = qobject_cast(sender()); - if (!reply) { -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << "no reply?"; -#endif - return; - } - - QByteArray response = reply->readAll(); - QUrl redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); - reply->close(); - reply->deleteLater(); - - if (reply->error() != QNetworkReply::NoError) { - qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "error" << reply->errorString(); - return; - } - - if (redirect.isValid()) { -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << "redirect to:" << redirect; -#endif - QNetworkRequest request(redirect); - m_downloading = BrowserApplication::networkAccessManager()->get(request); - connect(m_downloading, SIGNAL(finished()), this, SLOT(rulesDownloaded())); - return; - } - - if (response.isEmpty()) { - qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "empty response"; - return; - } - - QString fileName = rulesFileName(); - QFile file(fileName); - if (!file.open(QFile::ReadWrite)) { - qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "Unable to open adblock file for writing:" << fileName; - return; - } - file.write(response); - m_lastUpdate = QDateTime::currentDateTime(); - loadRules(); - emit changed(); - m_downloading = 0; -} - -void AdBlockSubscription::saveRules() -{ -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << rulesFileName() << m_rules.count(); -#endif - QString fileName = rulesFileName(); - if (fileName.isEmpty()) - return; - - QFile file(fileName); - if (!file.open(QFile::ReadWrite | QIODevice::Truncate)) { - qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "Unable to open adblock file for writing:" << fileName; - return; - } - - QTextStream textStream(&file); - textStream << "[Adblock Plus 0.7.1]" << endl; - foreach (const AdBlockRule &rule, m_rules) - textStream << rule.filter() << endl; -} - -QList AdBlockSubscription::pageRules() const -{ - return m_pageRules; -} - -const AdBlockRule *AdBlockSubscription::allow(const QString &urlString) const -{ - foreach (const AdBlockRule *rule, m_networkExceptionRules) { - if (rule->networkMatch(urlString)) - return rule; - } - return 0; -} - -const AdBlockRule *AdBlockSubscription::block(const QString &urlString) const -{ - foreach (const AdBlockRule *rule, m_networkBlockRules) { - if (rule->networkMatch(urlString)) - return rule; - } - return 0; -} - -QList AdBlockSubscription::allRules() const -{ - return m_rules; -} - -void AdBlockSubscription::addRule(const AdBlockRule &rule) -{ -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << rule.filter(); -#endif - m_rules.append(rule); - populateCache(); - emit rulesChanged(); -} - -void AdBlockSubscription::removeRule(int offset) -{ -#if defined(ADBLOCKSUBSCRIPTION_DEBUG) - qDebug() << "AdBlockSubscription::" << __FUNCTION__ << offset << m_rules.count(); -#endif - if (offset < 0 || offset >= m_rules.count()) - return; - m_rules.removeAt(offset); - populateCache(); - emit rulesChanged(); -} - -void AdBlockSubscription::replaceRule(const AdBlockRule &rule, int offset) -{ - if (offset < 0 || offset >= m_rules.count()) - return; - m_rules[offset] = rule; - populateCache(); - emit rulesChanged(); -} - -void AdBlockSubscription::populateCache() -{ - m_networkExceptionRules.clear(); - m_networkBlockRules.clear(); - m_pageRules.clear(); - if (!isEnabled()) - return; - - for (int i = 0; i < m_rules.count(); ++i) { - const AdBlockRule *rule = &m_rules.at(i); - if (!rule->isEnabled()) - continue; - - if (rule->isCSSRule()) { - m_pageRules.append(rule); - continue; - } - - if (rule->isException()) { - m_networkExceptionRules.append(rule); - } else { - m_networkBlockRules.append(rule); - } - } -} - diff --git a/src/adblock/adblocksubscription.h b/src/adblock/adblocksubscription.h deleted file mode 100644 index 5f600486..00000000 --- a/src/adblock/adblocksubscription.h +++ /dev/null @@ -1,103 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ADBLOCKSUBSCRIPTION_H -#define ADBLOCKSUBSCRIPTION_H - -#include - -#include "adblockrule.h" - -#include -#include - -class QNetworkReply; -class QUrl; -class AdBlockSubscription : public QObject -{ - Q_OBJECT - -signals: - void goingToChange(); - void changed(); - void rulesChanged(); - -public: - AdBlockSubscription(const QUrl &url, QObject *parent = 0); - QUrl url() const; - - bool isEnabled() const; - void setEnabled(bool enabled); - - QString title() const; - void setTitle(const QString &title); - - QUrl location() const; - void setLocation(const QUrl &url); - - void updateNow(); - QDateTime lastUpdate() const; - - void saveRules(); - - const AdBlockRule *allow(const QString &urlString) const; - const AdBlockRule *block(const QString &urlString) const; - QList pageRules() const; - - QList allRules() const; - void addRule(const AdBlockRule &rule); - void removeRule(int offset); - void replaceRule(const AdBlockRule &rule, int offset); - -private slots: - void rulesDownloaded(); - -private: - void populateCache(); - QString rulesFileName() const; - void parseUrl(const QUrl &url); - void loadRules(); - - QByteArray m_url; - - QString m_title; - QByteArray m_location; - QDateTime m_lastUpdate; - bool m_enabled; - - QNetworkReply *m_downloading; - QList m_rules; - - // sorted list - QList m_networkExceptionRules; - QList m_networkBlockRules; - QList m_pageRules; -}; - -#endif // ADBLOCKSUBSCRIPTION_H - diff --git a/src/autofilldialog.cpp b/src/autofilldialog.cpp deleted file mode 100644 index 7c8d3427..00000000 --- a/src/autofilldialog.cpp +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "autofilldialog.h" - -#include "autofillmanager.h" -#include "browserapplication.h" - -#include - -AutoFillModel::AutoFillModel(QObject *parent) - : QAbstractTableModel(parent) -{ - AutoFillManager *manager = BrowserApplication::instance()->autoFillManager(); - Q_ASSERT(manager); - connect(manager, SIGNAL(autoFillChanged()), this, SLOT(autoFillChanged())); - autoFillChanged(); -} - -void AutoFillModel::autoFillChanged() -{ - beginResetModel(); - AutoFillManager *manager = BrowserApplication::instance()->autoFillManager(); - m_forms = manager->forms(); - endResetModel(); -} - -QVariant AutoFillModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if (orientation == Qt::Horizontal - && role == Qt::DisplayRole) { - switch (section) { - case 0: return tr("WebSite"); - case 1: return tr("User Name"); - } - } - return QAbstractTableModel::headerData(section, orientation, role); -} - -QVariant AutoFillModel::data(const QModelIndex &index, int role) const -{ - if (index.row() < 0 || index.row() >= m_forms.size()) - return QVariant(); - - switch (role) { - case Qt::UserRole: - return m_forms[index.row()].hasAPassword; - case Qt::DisplayRole: - case Qt::EditRole: { - switch (index.column()) { - case 0: - return m_forms[index.row()].url.host(); - case 1: { - QStringList help; - QStringList choices; - foreach (const AutoFillManager::Element &element, m_forms[index.row()].elements) { - QString key = element.first.toLower(); - if (key.contains(QLatin1String("pass"))) - continue; - if (key.contains(QLatin1String("user")) - || key.contains(QLatin1String("email")) - || key.contains(QLatin1String("login")) - || key == QLatin1String("u")) - return element.second; - choices.append(element.second); - help.append(element.first); - } - if (choices.count() == 1) - return choices.first(); - qWarning() << "AutoFillModel: Unknown user id, choices:" << help << "url" << m_forms[index.row()].url.toString(); - return help.join(QLatin1String(",")); - } - } - } - default: - break; - } - return QVariant(); -} - -int AutoFillModel::columnCount(const QModelIndex &parent) const -{ - return (parent.isValid()) ? 0 : 2; -} - -int AutoFillModel::rowCount(const QModelIndex &parent) const -{ - return (parent.isValid()) ? 0 : m_forms.count(); -} - -bool AutoFillModel::removeRows(int row, int count, const QModelIndex &parent) -{ - if (parent.isValid()) - return false; - int lastRow = row + count - 1; - beginRemoveRows(parent, row, lastRow); - for (int i = lastRow; i >= row; --i) - m_forms.removeAt(i); - AutoFillManager *manager = BrowserApplication::instance()->autoFillManager(); - disconnect(manager, SIGNAL(autoFillChanged()), this, SLOT(autoFillChanged())); - manager->setForms(m_forms); - connect(manager, SIGNAL(autoFillChanged()), this, SLOT(autoFillChanged())); - endRemoveRows(); - return true; -} - -AutoFillDialog::AutoFillDialog(QWidget *parent, Qt::WindowFlags flags) - : QDialog(parent, flags) -{ - setupUi(this); - setWindowFlags(Qt::Sheet); - connect(removeButton, SIGNAL(clicked()), tableView, SLOT(removeSelected())); - connect(removeAllButton, SIGNAL(clicked()), tableView, SLOT(removeAll())); - tableView->verticalHeader()->hide(); - tableView->setSelectionBehavior(QAbstractItemView::SelectRows); - tableView->setAlternatingRowColors(true); - tableView->setTextElideMode(Qt::ElideMiddle); - tableView->setShowGrid(false); - tableView->setSortingEnabled(true); - - AutoFillModel *model = new AutoFillModel(); - QSortFilterProxyModel *m_proxyModel = new QSortFilterProxyModel(this); - connect(search, SIGNAL(textChanged(QString)), - m_proxyModel, SLOT(setFilterFixedString(QString))); - m_proxyModel->setSourceModel(model); - tableView->setModel(m_proxyModel); - - QFont f = font(); - f.setPointSize(10); - QFontMetrics fm(f); - int height = fm.height() + fm.height() / 3; - tableView->verticalHeader()->setDefaultSectionSize(height); - tableView->verticalHeader()->setMinimumSectionSize(-1); - for (int i = 0; i < model->columnCount(); ++i) { - int header = tableView->horizontalHeader()->sectionSizeHint(i); - switch (i) { - case 0: - header = fm.horizontalAdvance(QLatin1String("averagehost.domain.com")); - break; - case 1: - header = fm.horizontalAdvance(QLatin1String("_session_id")); - break; - } - int buffer = fm.horizontalAdvance(QLatin1String("xx")); - header += buffer; - tableView->horizontalHeader()->resizeSection(i, header); - } - tableView->horizontalHeader()->setStretchLastSection(true); -} - diff --git a/src/autofilldialog.h b/src/autofilldialog.h deleted file mode 100644 index 6e8f70c4..00000000 --- a/src/autofilldialog.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef AUTOFILLDIALOG_H -#define AUTOFILLDIALOG_H - -#include -#include "ui_autofilldialog.h" - -#include "autofillmanager.h" - -#include - -class AutoFillModel : public QAbstractTableModel -{ - Q_OBJECT - -public: - AutoFillModel(QObject *parent = 0); - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - int rowCount(const QModelIndex &parent = QModelIndex()) const; - bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - -private slots: - void autoFillChanged(); - -private: - QList m_forms; -}; - - -class AutoFillDialog : public QDialog, public Ui_AutoFillDialog -{ - Q_OBJECT - -public: - AutoFillDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0); - -}; - -#endif // AUTOFILLDIALOG_H - diff --git a/src/autofilldialog.ui b/src/autofilldialog.ui deleted file mode 100644 index 93fbcbaa..00000000 --- a/src/autofilldialog.ui +++ /dev/null @@ -1,126 +0,0 @@ - - - AutoFillDialog - - - - 0 - 0 - 529 - 421 - - - - Form Passwords - - - - - - Qt::Horizontal - - - - 252 - 20 - - - - - - - - - - - false - - - - - - - Remove - - - - - - - Remove All - - - - - - - Qt::Horizontal - - - - 36 - 20 - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Ok - - - - - - - - EditTableView - QTableView -
edittableview.h
-
- - SearchLineEdit - QLineEdit -
searchlineedit.h
-
-
- - - - buttonBox - accepted() - AutoFillDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - AutoFillDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - -
diff --git a/src/autofillmanager.cpp b/src/autofillmanager.cpp deleted file mode 100644 index 851ee20d..00000000 --- a/src/autofillmanager.cpp +++ /dev/null @@ -1,413 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "autofillmanager.h" - -#include "autosaver.h" -#include "browserapplication.h" -#include "browsermainwindow.h" -#include "networkaccessmanagerproxy.h" -#include "webpageproxy.h" -#include "webview.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -// #define AUTOFILL_DEBUG - -AutoFillManager::AutoFillManager(QObject *parent) - : QObject(parent) - , m_savePasswordForms(true) - , m_allowAutoCompleteOff(true) - , m_saveTimer(new AutoSaver(this)) -{ - connect(this, SIGNAL(autoFillChanged()), - m_saveTimer, SLOT(changeOccurred())); - loadSettings(); - loadFormData(); -} - -AutoFillManager::~AutoFillManager() -{ - m_saveTimer->saveIfNeccessary(); -} - -void AutoFillManager::save() const -{ - saveFormData(); -} - -void AutoFillManager::setForms(const QList
&forms) -{ - m_forms = forms; - emit autoFillChanged(); -} - -QList AutoFillManager::forms() const -{ - return m_forms; -} - -void AutoFillManager::loadSettings() -{ - QSettings settings; - settings.beginGroup(QLatin1String("autofill")); - m_savePasswordForms = settings.value(QLatin1String("passwordForms"), m_savePasswordForms).toBool(); - m_allowAutoCompleteOff = settings.value(QLatin1String("ignoreAutoCompleteOff"), m_allowAutoCompleteOff).toBool(); -} - -QString AutoFillManager::autoFillDataFile() -{ - QString fileName = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/data/Endorphin"; - fileName += QLatin1String("/autofill.dat"); - return fileName; -} - -void AutoFillManager::saveFormData() const -{ - QString fileName = autoFillDataFile(); - QFile file(fileName); - if (!file.open(QFile::WriteOnly)) { - qWarning() << "Unable to open" << fileName << "to store autofill data"; - return; - } - - QDataStream stream(&file); - stream << m_forms; -} - -void AutoFillManager::loadFormData() -{ - QString fileName = autoFillDataFile(); - QFile file(fileName); - if (!file.open(QFile::ReadOnly)) - return; - - QDataStream stream(&file); - stream >> m_forms; -} - -void AutoFillManager::post(const QNetworkRequest &request, const QByteArray &outgoingData) -{ -#ifdef AUTOFILL_DEBUG - qDebug() << "AutoFillManager::" << __FUNCTION__ << outgoingData << request.url(); -#endif - - // Don't even give the options to save this site user name & password. - if (QWebSettings::globalSettings()->testAttribute(QWebSettings::PrivateBrowsingEnabled)) { - return; - } - - // Determine the url - QByteArray refererHeader = request.rawHeader("Referer"); - if (refererHeader.isEmpty()) { - // XXX We could store the frame url in the request if this is a common problem - qWarning() << "AutoFillManager:" << "Unable to determine the request Referer"; - return; - } - QUrl url = QUrl::fromEncoded(refererHeader); - url = stripUrl(url); - - // Check that the url isn't in m_never - if (m_never.contains(url)) - return; - - // Check the request type - QVariant typeVariant = request.attribute((QNetworkRequest::Attribute)(WebPageProxy::pageAttributeId() + 1)); - QWebPage::NavigationType type = (QWebPage::NavigationType)typeVariant.toInt(); - if (typeVariant.isValid() && type != QWebPage::NavigationTypeFormSubmitted) { - // XXX Does this occur normally? - qWarning() << "AutoFillManager:" << "Type is not FormSubmitted" << type - << "expected:" << QWebPage::NavigationTypeFormSubmitted; - return; - } - - // Determine the QWebView - QVariant v = request.attribute((QNetworkRequest::Attribute)(WebPageProxy::pageAttributeId())); - QWebPage *webPage = (QWebPage*)(v.value()); - if (!webPage) { - qWarning() << "AutoFillManager:" << "QWebPage is not set in QNetworkRequest."; - return; - } -#if 0 - // TODO CHECK reply ownership - if (!NetworkAccessManagerProxy::exists(webPage)) { - qWarning() << "AutoFillManager:" << "QWebPage no longer exists."; - return; - } -#endif - - // Find the matching form on the webpage - Form form = findForm(webPage, outgoingData); - if (!form.isValid()) { -#if 0 - qWarning() << "AutoFillManager:" << "Unable to find matching form on the webpage."; -#endif - return; - } - form.url = url; - - // Check if we allow storing this form if it has a password - if (!allowedToAutoFill(form.hasAPassword)) - return; - - // Prompt if we have never seen this password - int alreadyAccepted = -1; - for (int i = 0; i < m_forms.count(); ++i) { - const Form &form = m_forms.at(i); - if (form.url == url) { - alreadyAccepted = i; - break; - } - } - if (form.hasAPassword && alreadyAccepted == -1) { - QMessageBox messageBox; - messageBox.setText(tr("Would you like to save this password?
\ - To review passwords you have saved and remove them, open the AutoFill panel of preferences.")); - messageBox.addButton(tr("Never for this site"), QMessageBox::DestructiveRole); - messageBox.addButton(tr("Not now"), QMessageBox::RejectRole); - messageBox.addButton(QMessageBox::Yes); - messageBox.setDefaultButton(QMessageBox::Yes); - messageBox.exec(); - switch (messageBox.buttonRole(messageBox.clickedButton())) { - case QMessageBox::DestructiveRole: - m_never.append(url); - return; - case QMessageBox::RejectRole: - return; - default: - break; - } - } - -#ifdef AUTOFILL_DEBUG - qDebug() << "AutoFillManager:" << "Saving" << form.url; -#endif - // TODO When we can hook into element events we can save multiple passwords for different users - if (alreadyAccepted != -1) - m_forms.removeAt(alreadyAccepted); - m_forms.append(form); - emit autoFillChanged(); -} - -AutoFillManager::Form AutoFillManager::findForm(QWebPage *webPage, const QByteArray &outgoingData) const -{ - Form form; - QUrlQuery argsUrl(outgoingData); - QList > encodedArgs = argsUrl.queryItems(); - QSet > args; - // XXX Is there a Qt function to do this? (unencode '+' to ' ') - for (int i = 0; i < encodedArgs.count(); ++i) { - QString key = encodedArgs[i].first; - QString value = encodedArgs[i].second.replace(QLatin1String("+"), QLatin1String(" ")); - QPair p(key, value); - args.insert(p); - } - - QFile file(QLatin1String(":parseForms.js")); - if (!file.open(QFile::ReadOnly)) { - qWarning() << "AutoFillManager:" << "Unable to open js form parsing file"; - return form; - } - QString script = QLatin1String(file.readAll()); - - // XXX Do I need to do this on subframes? - QVariant r = webPage->mainFrame()->evaluateJavaScript(script); - QVariantList list = r.toList(); - foreach (const QVariant &formVariant, list) { - QVariantMap map = formVariant.toMap(); - bool formHasPasswords = false; - QString formName = map[QLatin1String("name")].toString(); - QVariantList elements = map[QLatin1String("elements")].toList(); - QSet > formElements; - QSet > deadElements; - foreach (const QVariant &element, elements) { - QVariantMap elementMap = element.toMap(); - QString name = elementMap[QLatin1String("name")].toString(); - QString value = elementMap[QLatin1String("value")].toString(); - QString type = elementMap[QLatin1String("type")].toString(); - if (type == QLatin1String("password")) - formHasPasswords = true; - QPair p(name, value); - if ((elementMap[QLatin1String("autocomplete")].toString()) == QLatin1String("off")) - deadElements.insert(p); - if (!name.isEmpty()) - formElements.insert(p); - } - if (formElements.intersect(args) == args) { - form.hasAPassword = formHasPasswords; - form.name = formName; - if (m_allowAutoCompleteOff) - args = args.subtract(deadElements); - form.elements = args.values(); - break; - } -#ifdef AUTOFILL_DEBUG - qDebug() << formName; - qDebug() << formElements; - qDebug() << args; - qDebug() << formElements.count() << args.count() << formElements.subtract(args); -#endif - } - return form; -} - -QUrl AutoFillManager::stripUrl(const QUrl &url) -{ - QUrl cleanUrl = url; - cleanUrl.setQuery(QUrlQuery()); - cleanUrl.setFragment(QString()); - cleanUrl.setUserInfo(QString()); - return cleanUrl; -} - -bool AutoFillManager::allowedToAutoFill(bool password) const -{ - if (password && m_savePasswordForms) - return true; - return false; -} - -QList AutoFillManager::fetchForms(const QUrl &url) const -{ - QList forms; - foreach (const Form &form, m_forms) - if (form.url == url) - forms.append(form); -#ifdef AUTOFILL_DEBUG - qDebug() << "AutoFillManager::" << __FUNCTION__ << url << m_forms.count() << "found:" << forms.count(); -#endif - return forms; -} - -void AutoFillManager::fill(QWebPage *page) const -{ -#ifdef AUTOFILL_DEBUG - qDebug() << "AutoFillManager::" << __FUNCTION__ << page; -#endif - if (!page || !page->mainFrame()) - return; - - QUrl url = page->mainFrame()->url(); - url = stripUrl(url); - - const QList forms = fetchForms(url); - if (forms.isEmpty()) - return; - - foreach (const Form &form, forms) { - QString formName = QString(QLatin1String("\"%1\"")).arg(form.name); - if (form.name.isEmpty()) - formName = QLatin1String("0"); - foreach (const AutoFillManager::Element &element, form.elements) { - const QString key = element.first; - const QString value = element.second; - - // When we drop 4.5 migrate this to the 4.6 dom API - bool disabled = page->mainFrame()->evaluateJavaScript(QString(QLatin1String("document.forms[%1].elements[\"%2\"].disabled")).arg(formName).arg(key)).toBool(); - if (disabled) { -#ifdef AUTOFILL_DEBUG - qDebug() << formName << "is disabled"; -#endif - continue; - } - bool readOnly = page->mainFrame()->evaluateJavaScript(QString(QLatin1String("document.forms[%1].elements[\"%2\"].readonly")).arg(formName).arg(key)).toBool(); - if (readOnly) { -#ifdef AUTOFILL_DEBUG - qDebug() << formName << "is readOnly"; -#endif - continue; - } - - QString type = page->mainFrame()->evaluateJavaScript(QString(QLatin1String("document.forms[%1].elements[\"%2\"].type")).arg(formName).arg(key)).toString(); - if (type.isEmpty() - || type == QLatin1String("hidden") - || type == QLatin1String("reset") - || type == QLatin1String("submit")) { -#ifdef AUTOFILL_DEBUG - qDebug() << formName << key << "is hidden, reset or submit"; -#endif - continue; - } -#ifdef AUTOFILL_DEBUG - qDebug() << "type:" << type << "readonly" << readOnly << "disabled" << disabled << key << value; -#endif - QString setType = (type == QLatin1String("checkbox")) - ? QLatin1String("checked") - : QLatin1String("value"); - - // XXX is there a cleaner way to do this? - QString jsValue = value; - jsValue.replace(QLatin1Char('\\'), QLatin1String("\\\\")); - jsValue.replace(QLatin1Char('\"'), QLatin1String("\\\"")); - QString javascript = QString(QLatin1String("document.forms[%1].elements[\"%2\"].%3=\"%4\";")) - .arg(formName) - .arg(key) - .arg(setType) - .arg(jsValue); - page->mainFrame()->evaluateJavaScript(javascript); - } - } -} - -QDataStream &operator>>(QDataStream &in, AutoFillManager::Form &form) -{ - AutoFillManager::Form::load(in, form); - return in; -} - -QDataStream &operator<<(QDataStream &out, const AutoFillManager::Form &form) -{ - AutoFillManager::Form::save(out, form); - return out; -} - -void AutoFillManager::Form::load(QDataStream &in, AutoFillManager::Form &form) -{ - in >> form.elements; - in >> form.url; - in >> form.name; - in >> form.hasAPassword; -} - -void AutoFillManager::Form::save(QDataStream &out, const AutoFillManager::Form &form) -{ - out << form.elements; - out << form.url; - out << form.name; - out << form.hasAPassword; -} diff --git a/src/autofillmanager.h b/src/autofillmanager.h deleted file mode 100644 index 2cecd61a..00000000 --- a/src/autofillmanager.h +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef AUTOFILLMANAGER_H -#define AUTOFILLMANAGER_H - -#include - -#include - -class QWebPage; -class AutoSaver; -class AutoFillManager : public QObject -{ - Q_OBJECT - -signals: - void autoFillChanged(); - -public: - typedef QPair Element; - class Form { - public: - bool isValid() { return !elements.isEmpty(); } - static void load(QDataStream &in, Form &subscription); - static void save(QDataStream &out, const Form &subscription); - - QList elements; - QUrl url; - QString name; - bool hasAPassword; - }; - - AutoFillManager(QObject *parent = 0); - ~AutoFillManager(); - - void loadSettings(); - - void post(const QNetworkRequest &request, const QByteArray &outgoingData); - void fill(QWebPage *page) const; - - void setForms(const QList &forms); - QList forms() const; - -private slots: - void save() const; - -private: - Form findForm(QWebPage *page, const QByteArray &outgoingData) const; - static QUrl stripUrl(const QUrl &url); - static QString autoFillDataFile(); - bool allowedToAutoFill(bool password) const; - QList fetchForms(const QUrl &url) const; - - void saveFormData() const; - void loadFormData(); - - bool m_savePasswordForms; - bool m_allowAutoCompleteOff; - - QList m_forms; - QList m_never; - AutoSaver *m_saveTimer; -}; - -QDataStream &operator<<(QDataStream &, const AutoFillManager::Form &form); -QDataStream &operator>>(QDataStream &, AutoFillManager::Form &form); - -#endif // AUTOFILLMANAGER_H - diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index 6f0771f7..a8aa9bf2 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -63,14 +63,11 @@ #include "browserapplication.h" #include "autosaver.h" -#include "autofillmanager.h" #include "bookmarksmanager.h" #include "browsermainwindow.h" -#include "cookiejar.h" #include "downloadmanager.h" #include "historymanager.h" #include "languagemanager.h" -#include "networkaccessmanager.h" #include "tabwidget.h" #include "webview.h" @@ -94,10 +91,8 @@ DownloadManager *BrowserApplication::s_downloadManager = 0; HistoryManager *BrowserApplication::s_historyManager = 0; -NetworkAccessManager *BrowserApplication::s_networkAccessManager = 0; BookmarksManager *BrowserApplication::s_bookmarksManager = 0; LanguageManager *BrowserApplication::s_languageManager = 0; -AutoFillManager *BrowserApplication::s_autoFillManager = 0; BrowserApplication::BrowserApplication(int &argc, char **argv) : SingleApplication(argc, argv) @@ -171,11 +166,9 @@ BrowserApplication::~BrowserApplication() quitting = true; delete s_downloadManager; qDeleteAll(m_mainWindows); - delete s_networkAccessManager; delete s_bookmarksManager; delete s_languageManager; delete s_historyManager; - delete s_autoFillManager; } #if defined(Q_WS_MAC) @@ -196,7 +189,6 @@ BrowserApplication *BrowserApplication::instance() void BrowserApplication::retranslate() { bookmarksManager()->retranslate(); - networkAccessManager()->loadSettings(); } // The only special property of an argument url is that the file's @@ -381,7 +373,6 @@ void BrowserApplication::loadSettings() defaultSettings->setAttribute(QWebSettings::JavascriptCanOpenWindows, !(settings.value(QLatin1String("blockPopupWindows"), true).toBool())); defaultSettings->setAttribute(QWebSettings::JavascriptEnabled, settings.value(QLatin1String("enableJavascript"), true).toBool()); - defaultSettings->setAttribute(QWebSettings::PluginsEnabled, settings.value(QLatin1String("enablePlugins"), true).toBool()); defaultSettings->setAttribute(QWebSettings::AutoLoadImages, settings.value(QLatin1String("enableImages"), true).toBool()); defaultSettings->setAttribute(QWebSettings::LocalStorageEnabled, settings.value(QLatin1String("enableLocalStorage"), true).toBool()); defaultSettings->setAttribute(QWebSettings::DeveloperExtrasEnabled, settings.value(QLatin1String("enableInspector"), false).toBool()); @@ -583,11 +574,6 @@ BrowserMainWindow *BrowserApplication::mainWindow() return activeWindow; } -CookieJar *BrowserApplication::cookieJar() -{ - return (CookieJar*)networkAccessManager()->cookieJar(); -} - DownloadManager *BrowserApplication::downloadManager() { if (!s_downloadManager) @@ -595,13 +581,6 @@ DownloadManager *BrowserApplication::downloadManager() return s_downloadManager; } -NetworkAccessManager *BrowserApplication::networkAccessManager() -{ - if (!s_networkAccessManager) - s_networkAccessManager = new NetworkAccessManager(); - return s_networkAccessManager; -} - HistoryManager *BrowserApplication::historyManager() { if (!s_historyManager) @@ -629,15 +608,6 @@ LanguageManager *BrowserApplication::languageManager() } return s_languageManager; } - -AutoFillManager *BrowserApplication::autoFillManager() -{ - if (!s_autoFillManager) { - s_autoFillManager = new AutoFillManager; - } - return s_autoFillManager; -} - QIcon BrowserApplication::icon(const QUrl &url) { QIcon icon = QWebSettings::iconForUrl(url); diff --git a/src/browserapplication.h b/src/browserapplication.h index 3d1b4827..1af00bdb 100644 --- a/src/browserapplication.h +++ b/src/browserapplication.h @@ -69,13 +69,10 @@ #include #include -class AutoFillManager; class BookmarksManager; class BrowserMainWindow; -class CookieJar; class DownloadManager; class HistoryManager; -class NetworkAccessManager; class LanguageManager; class QLocalSocket; class BrowserApplication : public SingleApplication @@ -98,12 +95,9 @@ class BrowserApplication : public SingleApplication bool canRestoreSession() const; static HistoryManager *historyManager(); - static CookieJar *cookieJar(); static DownloadManager *downloadManager(); - static NetworkAccessManager *networkAccessManager(); static BookmarksManager *bookmarksManager(); static LanguageManager *languageManager(); - static AutoFillManager *autoFillManager(); static QString installedDataDirectory(); static QString dataFilePath(const QString &fileName); @@ -150,10 +144,8 @@ private slots: static HistoryManager *s_historyManager; static DownloadManager *s_downloadManager; - static NetworkAccessManager *s_networkAccessManager; static BookmarksManager *s_bookmarksManager; static LanguageManager *s_languageManager; - static AutoFillManager *s_autoFillManager; QList > m_mainWindows; QByteArray m_lastSession; diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 84dd2afc..e2fe4e1f 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -65,7 +65,6 @@ #include "browsermainwindow.h" #include "aboutdialog.h" -#include "adblockmanager.h" #include "addbookmarkdialog.h" #include "autosaver.h" #include "bookmarksdialog.h" @@ -78,7 +77,6 @@ #include "downloadmanager.h" #include "history.h" #include "languagemanager.h" -#include "networkaccessmanager.h" #include "opensearchdialog.h" #include "settings.h" #include "sourceviewer.h" @@ -836,11 +834,6 @@ void BrowserMainWindow::setupMenu() m_toolsUserAgentMenu = new UserAgentMenu(m_toolsMenu); m_toolsMenu->addMenu(m_toolsUserAgentMenu); - m_adBlockDialogAction = new QAction(m_toolsMenu); - connect(m_adBlockDialogAction, SIGNAL(triggered()), - AdBlockManager::instance(), SLOT(showDialog())); - m_toolsMenu->addAction(m_adBlockDialogAction); - m_toolsMenu->addSeparator(); m_toolsPreferencesAction = new QAction(m_toolsMenu); m_toolsPreferencesAction->setMenuRole(QAction::PreferencesRole); @@ -991,7 +984,6 @@ void BrowserMainWindow::retranslate() m_toolsPreferencesAction->setShortcut(tr("Ctrl+,")); m_toolsSearchManagerAction->setText(tr("Configure Search Engines...")); m_toolsUserAgentMenu->setTitle(tr("User Agent")); - m_adBlockDialogAction->setText(tr("&Ad Block...")); m_helpMenu->setTitle(tr("&Help")); m_helpChangeLanguageAction->setText(tr("Switch application language ")); @@ -1243,7 +1235,6 @@ void BrowserMainWindow::privateBrowsing() QStringList actions; actions.append(tr("Webpages are not added to the history.")); actions.append(tr("Items are automatically removed from the Downloads window.")); - actions.append(tr("New cookies are not stored, current cookies can't be accessed.")); actions.append(tr("Site icons won't be stored.")); actions.append(tr("Session won't be saved.")); actions.append(tr("Searches are not added to the pop-up menu in the search box.")); diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index ff924875..68a270ce 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -235,7 +235,6 @@ private slots: QAction *m_toolsPreferencesAction; QAction *m_toolsSearchManagerAction; UserAgentMenu *m_toolsUserAgentMenu; - QAction *m_adBlockDialogAction; QMenu *m_helpMenu; QAction *m_helpChangeLanguageAction; diff --git a/src/clearprivatedata.cpp b/src/clearprivatedata.cpp index 5afeef02..fe4a268f 100644 --- a/src/clearprivatedata.cpp +++ b/src/clearprivatedata.cpp @@ -21,10 +21,8 @@ #include "browserapplication.h" #include "browsermainwindow.h" -#include "cookiejar.h" #include "downloadmanager.h" #include "historymanager.h" -#include "networkaccessmanager.h" #include "toolbarsearch.h" #include @@ -60,18 +58,6 @@ ClearPrivateData::ClearPrivateData(QWidget *parent) m_searchHistory->setChecked(settings.value(QLatin1String("searchHistory"), true).toBool()); layout->addWidget(m_searchHistory); - m_cookies = new QCheckBox(tr("&Cookies")); - m_cookies->setChecked(settings.value(QLatin1String("cookies"), true).toBool()); - layout->addWidget(m_cookies); - - m_cache = new QCheckBox(tr("C&ached Web Pages")); - if (BrowserApplication::networkAccessManager()->cache()) { - m_cache->setChecked(settings.value(QLatin1String("cache"), true).toBool()); - } else { - m_cache->setEnabled(false); - } - layout->addWidget(m_cache); - m_favIcons = new QCheckBox(tr("Website &Icons")); m_favIcons->setChecked(settings.value(QLatin1String("favIcons"), true).toBool()); layout->addWidget(m_favIcons); @@ -100,7 +86,6 @@ void ClearPrivateData::accept() settings.setValue(QLatin1String("browsingHistory"), m_browsingHistory->isChecked()); settings.setValue(QLatin1String("downloadHistory"), m_downloadHistory->isChecked()); settings.setValue(QLatin1String("searchHistory"), m_searchHistory->isChecked()); - settings.setValue(QLatin1String("cookies"), m_cookies->isChecked()); settings.setValue(QLatin1String("cache"), m_cache->isChecked()); settings.setValue(QLatin1String("favIcons"), m_favIcons->isChecked()); @@ -122,14 +107,6 @@ void ClearPrivateData::accept() } } - if (m_cookies->isChecked()) { - BrowserApplication::cookieJar()->clear(); - } - - if (m_cache->isChecked() && BrowserApplication::networkAccessManager()->cache()) { - BrowserApplication::networkAccessManager()->cache()->clear(); - } - if (m_favIcons->isChecked()) { QWebSettings::clearIconDatabase(); } diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 2bf07cff..563b2aa7 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -65,7 +65,6 @@ #include "autosaver.h" #include "browserapplication.h" -#include "networkaccessmanager.h" #include @@ -78,6 +77,7 @@ #include #include #include +#include #include @@ -271,7 +271,8 @@ void DownloadItem::tryAgain() stopButton->setVisible(true); progressBar->setVisible(true); - QNetworkReply *r = BrowserApplication::networkAccessManager()->get(QNetworkRequest(m_url)); + QNetworkAccessManager *manager = new QNetworkAccessManager(); + QNetworkReply *r = manager->get(QNetworkRequest(m_url)); if (m_reply) m_reply->deleteLater(); if (m_output.exists()) @@ -327,7 +328,8 @@ void DownloadItem::metaDataChanged() if (locationHeader.isValid()) { m_url = locationHeader.toUrl(); m_reply->deleteLater(); - m_reply = BrowserApplication::networkAccessManager()->get(QNetworkRequest(m_url)); + QNetworkAccessManager *manager = new QNetworkAccessManager(); + m_reply = manager->get(QNetworkRequest(m_url)); init(); return; } @@ -463,7 +465,7 @@ DownloadManager::DownloadManager(QWidget *parent) : QDialog(parent) , m_autoSaver(new AutoSaver(this)) , m_model(new DownloadModel(this)) - , m_manager(BrowserApplication::networkAccessManager()) + , m_manager(new QNetworkAccessManager()) , m_iconProvider(0) , m_removePolicy(Never) { diff --git a/src/htmls/startpage.html b/src/htmls/startpage.html index 127509e3..0be497d2 100644 --- a/src/htmls/startpage.html +++ b/src/htmls/startpage.html @@ -4,29 +4,13 @@ diff --git a/src/network/cookiejar/cookiedialog.cpp b/src/network/cookiejar/cookiedialog.cpp deleted file mode 100644 index d00a1ce6..00000000 --- a/src/network/cookiejar/cookiedialog.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "cookiedialog.h" - -#include -#include -#include - -#include "cookiemodel.h" -#include "cookieexceptionsdialog.h" - -CookieDialog::CookieDialog(CookieJar *cookieJar, QWidget *parent) - : QDialog(parent) - , m_cookieJar(cookieJar) -{ - setupUi(this); - setWindowFlags(Qt::Sheet); - CookieModel *model = new CookieModel(cookieJar, this); - m_proxyModel = new QSortFilterProxyModel(this); - connect(search, SIGNAL(textChanged(QString)), - m_proxyModel, SLOT(setFilterFixedString(QString))); - connect(removeButton, SIGNAL(clicked()), cookiesTable, SLOT(removeSelected())); - connect(removeAllButton, SIGNAL(clicked()), cookiesTable, SLOT(removeAll())); - connect(addRuleButton, SIGNAL(clicked()), this, SLOT(addRule())); - m_proxyModel->setSourceModel(model); - m_proxyModel->setSortRole(CookieModel::SortRole); - cookiesTable->verticalHeader()->hide(); - cookiesTable->setSelectionBehavior(QAbstractItemView::SelectRows); - cookiesTable->setModel(m_proxyModel); - cookiesTable->setAlternatingRowColors(true); - cookiesTable->setTextElideMode(Qt::ElideMiddle); - cookiesTable->setShowGrid(false); - cookiesTable->setSortingEnabled(true); - QFont f = font(); - f.setPointSize(10); - QFontMetrics fm(f); - int height = fm.height() + fm.height() / 3; - cookiesTable->verticalHeader()->setDefaultSectionSize(height); - cookiesTable->verticalHeader()->setMinimumSectionSize(-1); - for (int i = 0; i < model->columnCount(); ++i) { - int header = cookiesTable->horizontalHeader()->sectionSizeHint(i); - switch (i) { - case 0: - header = fm.horizontalAdvance(QLatin1String("averagehost.domain.com")); - break; - case 1: - header = fm.horizontalAdvance(QLatin1String("_session_id")); - break; - case 4: - header = fm.horizontalAdvance(QDateTime::currentDateTime().toString(Qt::LocalDate)); - break; - } - int buffer = fm.horizontalAdvance(QLatin1String("xx")); - header += buffer; - cookiesTable->horizontalHeader()->resizeSection(i, header); - } - cookiesTable->horizontalHeader()->setStretchLastSection(true); -} - -void CookieDialog::addRule() -{ - const QModelIndexList selection = cookiesTable->selectionModel()->selectedRows(); - if (selection.isEmpty()) - return; - QModelIndex firstSelected = selection.at(0); - QModelIndex domainSelection = firstSelected.sibling(firstSelected.row(), 0); - QString domain = m_proxyModel->data(domainSelection, Qt::DisplayRole).toString(); - CookieExceptionsDialog dialog(m_cookieJar, this); - dialog.setDomainName(domain); - dialog.exec(); -} - - diff --git a/src/network/cookiejar/cookiedialog.h b/src/network/cookiejar/cookiedialog.h deleted file mode 100644 index da2f51fb..00000000 --- a/src/network/cookiejar/cookiedialog.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef COOKIEDIALOG_H -#define COOKIEDIALOG_H - -#include - -#include "ui_cookies.h" - -class CookieJar; -class QSortFilterProxyModel; -class CookieDialog : public QDialog, public Ui_CookiesDialog -{ - Q_OBJECT - -public: - CookieDialog(CookieJar *cookieJar, QWidget *parent = 0); - -private: - QSortFilterProxyModel *m_proxyModel; - CookieJar *m_cookieJar; - -private slots: - void addRule(); -}; - -#endif // COOKIEDIALOG_H - diff --git a/src/network/cookiejar/cookieexceptionsdialog.cpp b/src/network/cookiejar/cookieexceptionsdialog.cpp deleted file mode 100644 index bea15561..00000000 --- a/src/network/cookiejar/cookieexceptionsdialog.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "cookieexceptionsdialog.h" - -#include - -#include -#include -#include "cookiemodel.h" -#include "cookiejar.h" -#include "cookieexceptionsmodel.h" - -CookieExceptionsDialog::CookieExceptionsDialog(CookieJar *cookieJar, QWidget *parent) - : QDialog(parent) - , m_cookieJar(cookieJar) -{ - setupUi(this); - setWindowFlags(Qt::Sheet); - connect(removeButton, SIGNAL(clicked()), exceptionTable, SLOT(removeSelected())); - connect(removeAllButton, SIGNAL(clicked()), exceptionTable, SLOT(removeAll())); - exceptionTable->verticalHeader()->hide(); - exceptionTable->setSelectionBehavior(QAbstractItemView::SelectRows); - exceptionTable->setAlternatingRowColors(true); - exceptionTable->setTextElideMode(Qt::ElideMiddle); - exceptionTable->setShowGrid(false); - exceptionTable->setSortingEnabled(true); - m_exceptionsModel = new CookieExceptionsModel(cookieJar, this); - m_proxyModel = new QSortFilterProxyModel(this); - m_proxyModel->setSourceModel(m_exceptionsModel); - connect(search, SIGNAL(textChanged(QString)), - m_proxyModel, SLOT(setFilterFixedString(QString))); - exceptionTable->setModel(m_proxyModel); - - CookieModel *cookieModel = new CookieModel(cookieJar, this); - domainLineEdit->setCompleter(new QCompleter(cookieModel, domainLineEdit)); - - connect(domainLineEdit, SIGNAL(textChanged(const QString &)), - this, SLOT(textChanged(const QString &))); - connect(blockButton, SIGNAL(clicked()), this, SLOT(block())); - connect(allowButton, SIGNAL(clicked()), this, SLOT(allow())); - connect(allowForSessionButton, SIGNAL(clicked()), this, SLOT(allowForSession())); - - QFont f = font(); - f.setPointSize(10); - QFontMetrics fm(f); - int height = fm.height() + fm.height() / 3; - exceptionTable->verticalHeader()->setDefaultSectionSize(height); - exceptionTable->verticalHeader()->setMinimumSectionSize(-1); - for (int i = 0; i < m_exceptionsModel->columnCount(); ++i) { - int header = exceptionTable->horizontalHeader()->sectionSizeHint(i); - switch (i) { - case 0: - header = fm.horizontalAdvance(QLatin1String("averagebiglonghost.domain.com")); - break; - case 1: - header = fm.horizontalAdvance(QLatin1String("Allow For Session")); - break; - } - int buffer = fm.horizontalAdvance(QLatin1String("xx")); - header += buffer; - exceptionTable->horizontalHeader()->resizeSection(i, header); - } -} - -void CookieExceptionsDialog::textChanged(const QString &text) -{ - bool enabled = !text.isEmpty(); - blockButton->setEnabled(enabled); - allowButton->setEnabled(enabled); - allowForSessionButton->setEnabled(enabled); -} - -void CookieExceptionsDialog::setDomainName(const QString &domainName) -{ - domainLineEdit->setText(domainName); -} - -void CookieExceptionsDialog::block() -{ - m_exceptionsModel->addRule(domainLineEdit->text(), CookieJar::Block); -} - -void CookieExceptionsDialog::allow() -{ - m_exceptionsModel->addRule(domainLineEdit->text(), CookieJar::Allow); -} - -void CookieExceptionsDialog::allowForSession() -{ - m_exceptionsModel->addRule(domainLineEdit->text(), CookieJar::AllowForSession); -} - -void CookieExceptionsDialog::accept() -{ - m_cookieJar->setBlockedCookies(m_exceptionsModel->m_blockedCookies); - m_cookieJar->setAllowedCookies(m_exceptionsModel->m_allowedCookies); - m_cookieJar->setAllowForSessionCookies(m_exceptionsModel->m_sessionCookies); - QDialog::accept(); -} - diff --git a/src/network/cookiejar/cookieexceptionsdialog.h b/src/network/cookiejar/cookieexceptionsdialog.h deleted file mode 100644 index da6f39ed..00000000 --- a/src/network/cookiejar/cookieexceptionsdialog.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef COOKIEEXCEPTIONSDIALOG_H -#define COOKIEEXCEPTIONSDIALOG_H - -#include - -#include "ui_cookiesexceptions.h" - -class CookieJar; -class QSortFilterProxyModel; -class CookieExceptionsModel; -class CookieExceptionsDialog : public QDialog, public Ui_CookiesExceptionsDialog -{ - Q_OBJECT - -public: - CookieExceptionsDialog(CookieJar *cookieJar, QWidget *parent = 0); - void accept(); - void setDomainName(const QString &domainName); - -private slots: - void block(); - void allow(); - void allowForSession(); - void textChanged(const QString &text); - -private: - CookieExceptionsModel *m_exceptionsModel; - QSortFilterProxyModel *m_proxyModel; - CookieJar *m_cookieJar; -}; - -#endif // COOKIEEXCEPTIONSDIALOG_H - diff --git a/src/network/cookiejar/cookieexceptionsmodel.cpp b/src/network/cookiejar/cookieexceptionsmodel.cpp deleted file mode 100644 index 098af001..00000000 --- a/src/network/cookiejar/cookieexceptionsmodel.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "cookieexceptionsmodel.h" - -#include "cookiejar.h" - -#include - -CookieExceptionsModel::CookieExceptionsModel(CookieJar *cookiejar, QObject *parent) - : QAbstractTableModel(parent) - , m_cookieJar(cookiejar) -{ - m_allowedCookies = m_cookieJar->allowedCookies(); - m_blockedCookies = m_cookieJar->blockedCookies(); - m_sessionCookies = m_cookieJar->allowForSessionCookies(); -} - -QVariant CookieExceptionsModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if (role == Qt::SizeHintRole) { - QFont font; - font.setPointSize(10); - QFontMetrics fm(font); - int height = fm.height() + fm.height() / 3; - int width = fm.horizontalAdvance(headerData(section, orientation, Qt::DisplayRole).toString()); - return QSize(width, height); - } - - if (orientation == Qt::Horizontal - && role == Qt::DisplayRole) { - switch (section) { - case 0: - return tr("Website"); - case 1: - return tr("Rule"); - } - } - return QAbstractTableModel::headerData(section, orientation, role); -} - -QVariant CookieExceptionsModel::data(const QModelIndex &index, int role) const -{ - if (index.row() < 0 || index.row() >= rowCount()) - return QVariant(); - - switch (role) { - case Qt::DisplayRole: - case Qt::EditRole: { - int row = index.row(); - if (row < m_allowedCookies.count()) { - switch (index.column()) { - case 0: - return m_allowedCookies.at(row); - case 1: - return tr("Allow"); - } - } - row = row - m_allowedCookies.count(); - if (row < m_blockedCookies.count()) { - switch (index.column()) { - case 0: - return m_blockedCookies.at(row); - case 1: - return tr("Block"); - } - } - row = row - m_blockedCookies.count(); - if (row < m_sessionCookies.count()) { - switch (index.column()) { - case 0: - return m_sessionCookies.at(row); - case 1: - return tr("Allow For Session"); - } - } - } - case Qt::FontRole: { - QFont font; - font.setPointSize(10); - return font; - } - } - return QVariant(); -} - -int CookieExceptionsModel::columnCount(const QModelIndex &parent) const -{ - return (parent.isValid()) ? 0 : 2; -} - -int CookieExceptionsModel::rowCount(const QModelIndex &parent) const -{ - return (parent.isValid() || !m_cookieJar) ? 0 : m_allowedCookies.count() + m_blockedCookies.count() + m_sessionCookies.count(); -} - -bool CookieExceptionsModel::removeRows(int row, int count, const QModelIndex &parent) -{ - if (parent.isValid() || !m_cookieJar) - return false; - - int lastRow = row + count - 1; - beginRemoveRows(parent, row, lastRow); - - for (int i = lastRow; i >= row; --i) { - int rowToRemove = i; - if (rowToRemove < m_allowedCookies.count()) { - m_allowedCookies.removeAt(rowToRemove); - continue; - } - rowToRemove = rowToRemove - m_allowedCookies.count(); - if (rowToRemove < m_blockedCookies.count()) { - m_blockedCookies.removeAt(rowToRemove); - continue; - } - rowToRemove = rowToRemove - m_blockedCookies.count(); - if (rowToRemove < m_sessionCookies.count()) { - m_sessionCookies.removeAt(rowToRemove); - continue; - } - } - endRemoveRows(); - return true; -} - -void CookieExceptionsModel::addRule(QString host, CookieJar::CookieRule rule) -{ - if (host.isEmpty()) - return; - switch (rule) { - case CookieJar::Allow : - addHost(host, m_allowedCookies, m_blockedCookies, m_sessionCookies); - return; - case CookieJar::Block : - addHost(host, m_blockedCookies, m_allowedCookies, m_sessionCookies); - return; - case CookieJar::AllowForSession : - addHost(host, m_sessionCookies, m_allowedCookies, m_blockedCookies); - return; - } -} - -void CookieExceptionsModel::addHost(QString host, QStringList &add, QStringList &remove1, QStringList &remove2) -{ - beginResetModel(); - if (!add.contains(host)) { - add.append(host); - remove1.removeOne(host); - remove2.removeOne(host); - } - // avoid to have similar rules, with or without starting dot, eg "endorphin-browser.org" and ".endorphin-browser.org" - // means the same domain. - QString otherRule; - if (host.startsWith(QLatin1Char('.'))) { - otherRule = host.mid(1); - } else { - otherRule = QLatin1String(".") + host; - } - add.removeOne(otherRule); - remove1.removeOne(otherRule); - remove2.removeOne(otherRule); - endResetModel(); -} - diff --git a/src/network/cookiejar/cookieexceptionsmodel.h b/src/network/cookiejar/cookieexceptionsmodel.h deleted file mode 100644 index 00259c57..00000000 --- a/src/network/cookiejar/cookieexceptionsmodel.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef COOKIEEXCEPTIONSMODEL_H -#define COOKIEEXCEPTIONSMODEL_H - -#include "cookiejar.h" - -#include -#include - - -class CookieExceptionsModel : public QAbstractTableModel -{ - Q_OBJECT - friend class CookieExceptionsDialog; - -public: - CookieExceptionsModel(CookieJar *cookieJar, QObject *parent = 0); - QVariant headerData(int section, Qt::Orientation orientation, int role) const; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - int rowCount(const QModelIndex &parent = QModelIndex()) const; - bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - - - void addRule(QString host, CookieJar::CookieRule rule); - -private: - CookieJar *m_cookieJar; - - // Domains we allow, Domains we block, Domains we allow for this session - QStringList m_allowedCookies; - QStringList m_blockedCookies; - QStringList m_sessionCookies; - - void addHost(QString host, QStringList &add, QStringList &remove1, QStringList &remove2); - -}; - -#endif // COOKIEEXCEPTIONSMODEL_H - diff --git a/src/network/cookiejar/cookiejar.cpp b/src/network/cookiejar/cookiejar.cpp deleted file mode 100644 index 1f106d8d..00000000 --- a/src/network/cookiejar/cookiejar.cpp +++ /dev/null @@ -1,493 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "cookiejar.h" - -#include "autosaver.h" -#include "browserapplication.h" - -#include -#include -#include -#include -#include -#include -#include - -#include - -static const unsigned int JAR_VERSION = 23; - -QT_BEGIN_NAMESPACE -QDataStream &operator<<(QDataStream &stream, const QList &list) -{ - stream << JAR_VERSION; - stream << quint32(list.size()); - for (int i = 0; i < list.size(); ++i) - stream << list.at(i).toRawForm(); - return stream; -} - -QDataStream &operator>>(QDataStream &stream, QList &list) -{ - list.clear(); - - quint32 version; - stream >> version; - - if (version != JAR_VERSION) - return stream; - - quint32 count; - stream >> count; - for (quint32 i = 0; i < count; ++i) { - QByteArray value; - stream >> value; - QList newCookies = QNetworkCookie::parseCookies(value); - if (newCookies.count() == 0 && value.length() != 0) { - qWarning() << "CookieJar: Unable to parse saved cookie:" << value; - } - for (int j = 0; j < newCookies.count(); ++j) - list.append(newCookies.at(j)); - if (stream.atEnd()) - break; - } - return stream; -} -QT_END_NAMESPACE - -CookieJar::CookieJar(QObject *parent) - : NetworkCookieJar(parent) - , m_loaded(false) - , m_saveTimer(new AutoSaver(this)) - , m_filterTrackingCookies(false) - , m_acceptCookies(AcceptOnlyFromSitesNavigatedTo) - , m_isPrivate(false) -{ -} - -CookieJar::~CookieJar() -{ - if (m_loaded && m_keepCookies == KeepUntilExit) - clear(); - m_saveTimer->saveIfNeccessary(); -} - -void CookieJar::setPrivate(bool isPrivate) -{ - m_isPrivate = isPrivate; -} - -void CookieJar::clear() -{ - if (!m_loaded) - load(); - setAllCookies(QList()); - m_saveTimer->changeOccurred(); - emit cookiesChanged(); -} - -void CookieJar::load() -{ - if (m_loaded) - return; - // load cookies and exceptions - qRegisterMetaTypeStreamOperators >("QList"); - QSettings cookieSettings(BrowserApplication::dataFilePath(QLatin1String("cookies.ini")), QSettings::IniFormat); - if (!m_isPrivate) { - setAllCookies(qvariant_cast >(cookieSettings.value(QLatin1String("cookies")))); - } - cookieSettings.beginGroup(QLatin1String("Exceptions")); - m_exceptions_block = cookieSettings.value(QLatin1String("block")).toStringList(); - m_exceptions_allow = cookieSettings.value(QLatin1String("allow")).toStringList(); - m_exceptions_allowForSession = cookieSettings.value(QLatin1String("allowForSession")).toStringList(); - std::sort(m_exceptions_block.begin(), m_exceptions_block.end()); - std::sort(m_exceptions_allow.begin(), m_exceptions_allow.end()); - std::sort(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end()); - - loadSettings(); -} - -void CookieJar::loadSettings() -{ - QSettings settings; - settings.beginGroup(QLatin1String("cookies")); - QByteArray value = settings.value(QLatin1String("acceptCookies"), - QLatin1String("AcceptOnlyFromSitesNavigatedTo")).toByteArray(); - QMetaEnum acceptPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("AcceptPolicy")); - m_acceptCookies = acceptPolicyEnum.keyToValue(value) == -1 ? - AcceptOnlyFromSitesNavigatedTo : - static_cast(acceptPolicyEnum.keyToValue(value)); - - value = settings.value(QLatin1String("keepCookiesUntil"), QLatin1String("KeepUntilExpire")).toByteArray(); - QMetaEnum keepPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("KeepPolicy")); - m_keepCookies = keepPolicyEnum.keyToValue(value) == -1 ? - KeepUntilExpire : - static_cast(keepPolicyEnum.keyToValue(value)); - - if (m_keepCookies == KeepUntilExit) - setAllCookies(QList()); - - m_loaded = true; - m_filterTrackingCookies = settings.value(QLatin1String("filterTrackingCookies"), m_filterTrackingCookies).toBool(); - m_sessionLength = settings.value(QLatin1String("sessionLength"), -1).toInt(); - emit cookiesChanged(); -} - -void CookieJar::save() -{ - if (!m_loaded || m_isPrivate) - return; - purgeOldCookies(); - - QSettings cookieSettings(BrowserApplication::dataFilePath(QLatin1String("cookies.ini")), QSettings::IniFormat); - - QList cookies = allCookies(); - for (int i = cookies.count() - 1; i >= 0; --i) { - if (cookies.at(i).isSessionCookie()) - cookies.removeAt(i); - } - cookieSettings.setValue(QLatin1String("cookies"), QVariant::fromValue(cookies)); - cookieSettings.beginGroup(QLatin1String("Exceptions")); - cookieSettings.setValue(QLatin1String("block"), m_exceptions_block); - cookieSettings.setValue(QLatin1String("allow"), m_exceptions_allow); - cookieSettings.setValue(QLatin1String("allowForSession"), m_exceptions_allowForSession); - - // save cookie settings - QSettings settings; - settings.beginGroup(QLatin1String("cookies")); - QMetaEnum acceptPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("AcceptPolicy")); - settings.setValue(QLatin1String("acceptCookies"), QLatin1String(acceptPolicyEnum.valueToKey(m_acceptCookies))); - - QMetaEnum keepPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("KeepPolicy")); - settings.setValue(QLatin1String("keepCookiesUntil"), QLatin1String(keepPolicyEnum.valueToKey(m_keepCookies))); - - settings.setValue(QLatin1String("filterTrackingCookies"), m_filterTrackingCookies); - settings.setValue(QLatin1String("sessionLength"), m_sessionLength); -} - -void CookieJar::purgeOldCookies() -{ - QList cookies = allCookies(); - if (cookies.isEmpty()) - return; - int oldCount = cookies.count(); - QDateTime now = QDateTime::currentDateTime(); - for (int i = cookies.count() - 1; i >= 0; --i) { - if (!cookies.at(i).isSessionCookie() && cookies.at(i).expirationDate() < now) - cookies.removeAt(i); - } - if (oldCount == cookies.count()) - return; - setAllCookies(cookies); - emit cookiesChanged(); -} - -QList CookieJar::cookiesForUrl(const QUrl &url) const -{ - CookieJar *that = const_cast(this); - if (!m_loaded) - that->load(); - - return NetworkCookieJar::cookiesForUrl(url); -} - -bool CookieJar::setCookiesFromUrl(const QList &cookieList, const QUrl &url) -{ - if (!m_loaded) - load(); - - QString host = url.host(); - bool eBlock = isOnDomainList(m_exceptions_block, host); - bool eAllow = !eBlock && isOnDomainList(m_exceptions_allow, host); - bool eAllowSession = !eBlock && !eAllow && isOnDomainList(m_exceptions_allowForSession, host); - - bool addedCookies = false; - // pass exceptions - bool acceptInitially = (m_acceptCookies != AcceptNever); - if ((acceptInitially && !eBlock) - || (!acceptInitially && (eAllow || eAllowSession))) { - // pass url domain == cookie domain - QDateTime soon = QDateTime::currentDateTime(); - soon = soon.addDays(90); - foreach (QNetworkCookie cookie, cookieList) { - if (cookie.isSessionCookie() && m_sessionLength != -1) { - QDateTime now = QDateTime::currentDateTime(); - cookie.setExpirationDate(now.addDays(m_sessionLength)); - } - - QList lst; - if (!(m_filterTrackingCookies && cookie.name().startsWith("__utm"))) { - - - if (eAllowSession) { - cookie.setExpirationDate(QDateTime()); - } - if (m_keepCookies == KeepUntilTimeLimit - && !cookie.isSessionCookie() - && cookie.expirationDate() > soon) { - cookie.setExpirationDate(soon); - } - lst += cookie; - if (NetworkCookieJar::setCookiesFromUrl(lst, url)) { - addedCookies = true; - } else { - // finally force it in if wanted - if (m_acceptCookies == AcceptAlways) { - QList cookies = allCookies(); - QList::Iterator it = cookies.begin(), - end = cookies.end(); - for (; it != end; ++it) { - // does this cookie already exist? - if (cookie.name() == it->name() && - cookie.domain() == it->domain() && - cookie.path() == it->path()) { - // found a match - cookies.erase(it); - break; - } - } - - cookies += cookie; - setAllCookies(cookies); - addedCookies = true; - } - #if 0 - else - qWarning() << "setCookiesFromUrl failed" << url << cookieList.value(0).toRawForm(); - #endif - } -#if 0 - } else { - qWarning() << "cookie treated as tracking cookie" << cookie; -#endif - } - } - } - - if (addedCookies) { - m_saveTimer->changeOccurred(); - emit cookiesChanged(); - } - return addedCookies; -} - -QList CookieJar::cookies() const -{ - CookieJar *that = const_cast(this); - if (!m_loaded) - that->load(); - - return allCookies(); -} - -void CookieJar::setCookies(const QList &cookies) -{ - if (!m_loaded) - load(); - setAllCookies(cookies); - m_saveTimer->changeOccurred(); - emit cookiesChanged(); -} - -bool CookieJar::isOnDomainList(const QStringList &rules, const QString &domain) -{ - // Either the rule matches the domain exactly - // or the domain ends with ".rule" - foreach (const QString &rule, rules) { - if (rule.startsWith(QLatin1String("."))) { - if (domain.endsWith(rule)) - return true; - - QStringRef withoutDot = rule.rightRef(rule.size() - 1); - if (domain == withoutDot) - return true; - } else { - QStringRef domainEnding = domain.rightRef(rule.size() + 1); - if (!domainEnding.isEmpty() - && domainEnding.at(0) == QLatin1Char('.') - && domain.endsWith(rule)) { - return true; - } - - if (rule == domain) - return true; - } - } - return false; -} - -CookieJar::AcceptPolicy CookieJar::acceptPolicy() const -{ - if (!m_loaded) - (const_cast(this))->load(); - return m_acceptCookies; -} - -void CookieJar::setAcceptPolicy(AcceptPolicy policy) -{ - if (!m_loaded) - load(); - if (policy == m_acceptCookies) - return; - m_acceptCookies = policy; - m_saveTimer->changeOccurred(); -} - -CookieJar::KeepPolicy CookieJar::keepPolicy() const -{ - if (!m_loaded) - (const_cast(this))->load(); - return m_keepCookies; -} - -void CookieJar::setKeepPolicy(KeepPolicy policy) -{ - if (!m_loaded) - load(); - if (policy == m_keepCookies) - return; - m_keepCookies = policy; - m_saveTimer->changeOccurred(); -} - -QStringList CookieJar::blockedCookies() const -{ - if (!m_loaded) - (const_cast(this))->load(); - return m_exceptions_block; -} - -QStringList CookieJar::allowedCookies() const -{ - if (!m_loaded) - (const_cast(this))->load(); - return m_exceptions_allow; -} - -QStringList CookieJar::allowForSessionCookies() const -{ - if (!m_loaded) - (const_cast(this))->load(); - return m_exceptions_allowForSession; -} - -void CookieJar::setBlockedCookies(const QStringList &list) -{ - if (!m_loaded) - load(); - m_exceptions_block = list; - std::sort(m_exceptions_block.begin(), m_exceptions_block.end()); - applyRules(); - m_saveTimer->changeOccurred(); -} - -void CookieJar::setAllowedCookies(const QStringList &list) -{ - if (!m_loaded) - load(); - m_exceptions_allow = list; - std::sort(m_exceptions_allow.begin(), m_exceptions_allow.end()); - applyRules(); - m_saveTimer->changeOccurred(); -} - -void CookieJar::setAllowForSessionCookies(const QStringList &list) -{ - if (!m_loaded) - load(); - m_exceptions_allowForSession = list; - std::sort(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end()); - applyRules(); - m_saveTimer->changeOccurred(); -} - -void CookieJar::applyRules() -{ - QList cookies = allCookies(); - bool changed = false; - for (int i = cookies.count() - 1; i >= 0; --i) { - const QNetworkCookie &cookie = cookies.at(i); - if (isOnDomainList(m_exceptions_block, cookie.domain())) { - cookies.removeAt(i); - changed = true; - } else if (isOnDomainList(m_exceptions_allowForSession, cookie.domain())) { - const_cast(cookie).setExpirationDate(QDateTime()); - changed = true; - } - } - if (changed) { - setAllCookies(cookies); - m_saveTimer->changeOccurred(); - emit cookiesChanged(); - } -} - -bool CookieJar::filterTrackingCookies() const -{ - return this->m_filterTrackingCookies; -} - -void CookieJar::setFilterTrackingCookies(bool filterTrackingCookies) -{ - this->m_filterTrackingCookies = filterTrackingCookies; -} diff --git a/src/network/cookiejar/cookiejar.h b/src/network/cookiejar/cookiejar.h deleted file mode 100644 index eb67e265..00000000 --- a/src/network/cookiejar/cookiejar.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef COOKIEJAR_H -#define COOKIEJAR_H - -#include "networkcookiejar.h" - -#include - -class AutoSaver; -class CookieJar : public NetworkCookieJar -{ - Q_OBJECT - Q_PROPERTY(AcceptPolicy acceptPolicy READ acceptPolicy WRITE setAcceptPolicy) - Q_PROPERTY(KeepPolicy keepPolicy READ keepPolicy WRITE setKeepPolicy) - Q_PROPERTY(QStringList blockedCookies READ blockedCookies WRITE setBlockedCookies) - Q_PROPERTY(QStringList allowedCookies READ allowedCookies WRITE setAllowedCookies) - Q_PROPERTY(QStringList allowForSessionCookies READ allowForSessionCookies WRITE setAllowForSessionCookies) - Q_ENUMS(KeepPolicy) - Q_ENUMS(AcceptPolicy) - Q_ENUMS(CookieRule) - -signals: - void cookiesChanged(); - -public: - enum AcceptPolicy { - AcceptAlways, - AcceptNever, - AcceptOnlyFromSitesNavigatedTo - }; - - enum KeepPolicy { - KeepUntilExpire, - KeepUntilExit, - KeepUntilTimeLimit - }; - - enum CookieRule { - Allow, - AllowForSession, - Block - }; - - - CookieJar(QObject *parent = 0); - ~CookieJar(); - - QList cookiesForUrl(const QUrl &url) const; - bool setCookiesFromUrl(const QList &cookieList, const QUrl &url); - - QList cookies() const; - void setCookies(const QList &cookies); - - AcceptPolicy acceptPolicy() const; - void setAcceptPolicy(AcceptPolicy policy); - - KeepPolicy keepPolicy() const; - void setKeepPolicy(KeepPolicy policy); - - QStringList blockedCookies() const; - QStringList allowedCookies() const; - QStringList allowForSessionCookies() const; - - void setBlockedCookies(const QStringList &list); - void setAllowedCookies(const QStringList &list); - void setAllowForSessionCookies(const QStringList &list); - - bool filterTrackingCookies() const; - void setFilterTrackingCookies(bool filterTrackingCookies); - - void setPrivate(bool isPrivate); - -public slots: - void clear(); - void loadSettings(); - -private slots: - void save(); - -protected: - static bool isOnDomainList(const QStringList &rules, const QString &domain); - -private: - void applyRules(); - void purgeOldCookies(); - void load(); - bool m_loaded; - AutoSaver *m_saveTimer; - bool m_filterTrackingCookies; - - AcceptPolicy m_acceptCookies; - KeepPolicy m_keepCookies; - - QStringList m_exceptions_block; - QStringList m_exceptions_allow; - QStringList m_exceptions_allowForSession; - bool m_isPrivate; - int m_sessionLength; -}; - -#endif // COOKIEJAR_H - diff --git a/src/network/cookiejar/cookiejar.pri b/src/network/cookiejar/cookiejar.pri deleted file mode 100644 index 62612d3a..00000000 --- a/src/network/cookiejar/cookiejar.pri +++ /dev/null @@ -1,23 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - cookiedialog.h \ - cookieexceptionsdialog.h \ - cookieexceptionsmodel.h \ - cookiejar.h \ - cookiemodel.h - -SOURCES += \ - cookiedialog.cpp \ - cookieexceptionsmodel.cpp \ - cookiemodel.cpp \ - cookieexceptionsdialog.cpp \ - cookiejar.cpp - -FORMS += \ - cookies.ui \ - cookiesexceptions.ui - -include($$PWD/networkcookiejar/networkcookiejar.pri) diff --git a/src/network/cookiejar/cookiemodel.cpp b/src/network/cookiejar/cookiemodel.cpp deleted file mode 100644 index 2fac9f1f..00000000 --- a/src/network/cookiejar/cookiemodel.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "cookiemodel.h" - -#include "cookiejar.h" -#include "autosaver.h" - -#include -#include - -CookieModel::CookieModel(CookieJar *cookieJar, QObject *parent) - : QAbstractTableModel(parent) - , m_cookieJar(cookieJar) -{ - connect(m_cookieJar, SIGNAL(cookiesChanged()), this, SLOT(cookiesChanged())); - m_cookies = m_cookieJar->cookies(); -} - -QVariant CookieModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if (role == Qt::SizeHintRole) { - QFont font; - font.setPointSize(10); - QFontMetrics fm(font); - int height = fm.height() + fm.height() / 3; - int width = fm.horizontalAdvance(headerData(section, orientation, Qt::DisplayRole).toString()); - return QSize(width, height); - } - - if (orientation == Qt::Horizontal) { - if (role != Qt::DisplayRole) - return QVariant(); - - switch (section) { - case 0: - return tr("Website"); - case 1: - return tr("Name"); - case 2: - return tr("Path"); - case 3: - return tr("Secure"); - case 4: - return tr("Expires"); - case 5: - return tr("Contents"); - default: - return QVariant(); - } - } - return QAbstractTableModel::headerData(section, orientation, role); -} - -QVariant CookieModel::data(const QModelIndex &index, int role) const -{ - if (index.row() < 0 || index.row() >= m_cookies.size()) - return QVariant(); - - switch (role) { - case CookieModel::SortRole: - { - QNetworkCookie cookie = m_cookies.at(index.row()); - switch (index.column()) { - case 0: - return cookie.domain(); - case 1: - return cookie.name(); - case 2: - return cookie.path(); - case 3: - return cookie.isSecure(); - case 4: - return cookie.expirationDate(); - case 5: - return cookie.value(); - } - } - case Qt::DisplayRole: - case Qt::EditRole: { - QNetworkCookie cookie = m_cookies.at(index.row()); - switch (index.column()) { - case 0: - return cookie.domain(); - case 1: - return cookie.name(); - case 2: - return cookie.path(); - case 3: - return cookie.isSecure() ? tr("true") : tr("false"); - case 4: - return cookie.isSessionCookie() ? tr("Session cookie") : cookie.expirationDate().toString(); - case 5: - return cookie.value(); - } - } - case Qt::FontRole: { - QFont font; - font.setPointSize(10); - return font; - } - } - - return QVariant(); -} - -int CookieModel::columnCount(const QModelIndex &parent) const -{ - return (parent.isValid()) ? 0 : 6; -} - -int CookieModel::rowCount(const QModelIndex &parent) const -{ - return (parent.isValid() || !m_cookieJar) ? 0 : m_cookies.count(); -} - -bool CookieModel::removeRows(int row, int count, const QModelIndex &parent) -{ - if (parent.isValid() || !m_cookieJar) - return false; - int lastRow = row + count - 1; - beginRemoveRows(parent, row, lastRow); - QList lst = m_cookies; - for (int i = lastRow; i >= row; --i) { - lst.removeAt(i); - } - disconnect(m_cookieJar, SIGNAL(cookiesChanged()), this, SLOT(cookiesChanged())); - m_cookieJar->setCookies(lst); - connect(m_cookieJar, SIGNAL(cookiesChanged()), this, SLOT(cookiesChanged())); - - m_cookies = lst; - endRemoveRows(); - return true; -} - -void CookieModel::cookiesChanged() -{ - beginResetModel(); - if (m_cookieJar) - m_cookies = m_cookieJar->cookies(); - endResetModel(); -} diff --git a/src/network/cookiejar/cookiemodel.h b/src/network/cookiejar/cookiemodel.h deleted file mode 100644 index 585a12c9..00000000 --- a/src/network/cookiejar/cookiemodel.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef COOKIEMODEL_H -#define COOKIEMODEL_H - -#include - -#include - -class CookieJar; -class CookieModel : public QAbstractTableModel -{ - Q_OBJECT - -public: - enum DisplayRole - { - SortRole = Qt::UserRole - }; - CookieModel(CookieJar *jar, QObject *parent = 0); - QVariant headerData(int section, Qt::Orientation orientation, int role) const; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - int rowCount(const QModelIndex &parent = QModelIndex()) const; - bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - -private slots: - void cookiesChanged(); - -private: - QList m_cookies; - CookieJar *m_cookieJar; -}; - -#endif // COOKIEMODEL_H - diff --git a/src/network/cookiejar/cookies.ui b/src/network/cookiejar/cookies.ui deleted file mode 100644 index fda5c2d5..00000000 --- a/src/network/cookiejar/cookies.ui +++ /dev/null @@ -1,114 +0,0 @@ - - - CookiesDialog - - - - 0 - 0 - 550 - 370 - - - - Cookies - - - - - - Qt::Horizontal - - - - 252 - 20 - - - - - - - - - - - - - - - - &Remove - - - - - - - Remove &All Cookies - - - - - - - Add &Rule - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - QDialogButtonBox::Close - - - - - - - - - - SearchLineEdit - QLineEdit -
searchlineedit.h
-
- - EditTableView - QTableView -
edittableview.h
-
-
- - - - buttonBox - rejected() - CookiesDialog - close() - - - 472 - 329 - - - 461 - 356 - - - - -
diff --git a/src/network/cookiejar/cookiesexceptions.ui b/src/network/cookiejar/cookiesexceptions.ui deleted file mode 100644 index 3d9ef624..00000000 --- a/src/network/cookiejar/cookiesexceptions.ui +++ /dev/null @@ -1,184 +0,0 @@ - - CookiesExceptionsDialog - - - - 0 - 0 - 466 - 446 - - - - Cookie Exceptions - - - - - - New Exception - - - - - - - - Domain: - - - - - - - - - - - - - - Qt::Horizontal - - - - 81 - 25 - - - - - - - - false - - - Block - - - - - - - false - - - Allow For Session - - - - - - - false - - - Allow - - - - - - - - - - - - Exceptions - - - - - - Qt::Horizontal - - - - 252 - 20 - - - - - - - - - - - - - - &Remove - - - - - - - Remove &All - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Ok - - - - - - - - SearchLineEdit - QLineEdit -
searchlineedit.h
-
- - EditTableView - QTableView -
edittableview.h
-
-
- - - - buttonBox - accepted() - CookiesExceptionsDialog - accept() - - - 381 - 428 - - - 336 - 443 - - - - -
diff --git a/src/network/cookiejar/networkcookiejar/MOZILLA_LICENSE.txt b/src/network/cookiejar/networkcookiejar/MOZILLA_LICENSE.txt deleted file mode 100644 index 18f8109b..00000000 --- a/src/network/cookiejar/networkcookiejar/MOZILLA_LICENSE.txt +++ /dev/null @@ -1,567 +0,0 @@ - MOZILLA PUBLIC LICENSE - Version 1.1 - - --------------- - -1. Definitions. - - 1.0.1. "Commercial Use" means distribution or otherwise making the - Covered Code available to a third party. - - 1.1. "Contributor" means each entity that creates or contributes to - the creation of Modifications. - - 1.2. "Contributor Version" means the combination of the Original - Code, prior Modifications used by a Contributor, and the Modifications - made by that particular Contributor. - - 1.3. "Covered Code" means the Original Code or Modifications or the - combination of the Original Code and Modifications, in each case - including portions thereof. - - 1.4. "Electronic Distribution Mechanism" means a mechanism generally - accepted in the software development community for the electronic - transfer of data. - - 1.5. "Executable" means Covered Code in any form other than Source - Code. - - 1.6. "Initial Developer" means the individual or entity identified - as the Initial Developer in the Source Code notice required by Exhibit - A. - - 1.7. "Larger Work" means a work which combines Covered Code or - portions thereof with code not governed by the terms of this License. - - 1.8. "License" means this document. - - 1.8.1. "Licensable" means having the right to grant, to the maximum - extent possible, whether at the time of the initial grant or - subsequently acquired, any and all of the rights conveyed herein. - - 1.9. "Modifications" means any addition to or deletion from the - substance or structure of either the Original Code or any previous - Modifications. When Covered Code is released as a series of files, a - Modification is: - A. Any addition to or deletion from the contents of a file - containing Original Code or previous Modifications. - - B. Any new file that contains any part of the Original Code or - previous Modifications. - - 1.10. "Original Code" means Source Code of computer software code - which is described in the Source Code notice required by Exhibit A as - Original Code, and which, at the time of its release under this - License is not already Covered Code governed by this License. - - 1.10.1. "Patent Claims" means any patent claim(s), now owned or - hereafter acquired, including without limitation, method, process, - and apparatus claims, in any patent Licensable by grantor. - - 1.11. "Source Code" means the preferred form of the Covered Code for - making modifications to it, including all modules it contains, plus - any associated interface definition files, scripts used to control - compilation and installation of an Executable, or source code - differential comparisons against either the Original Code or another - well known, available Covered Code of the Contributor's choice. The - Source Code can be in a compressed or archival form, provided the - appropriate decompression or de-archiving software is widely available - for no charge. - - 1.12. "You" (or "Your") means an individual or a legal entity - exercising rights under, and complying with all of the terms of, this - License or a future version of this License issued under Section 6.1. - For legal entities, "You" includes any entity which controls, is - controlled by, or is under common control with You. For purposes of - this definition, "control" means (a) the power, direct or indirect, - to cause the direction or management of such entity, whether by - contract or otherwise, or (b) ownership of more than fifty percent - (50%) of the outstanding shares or beneficial ownership of such - entity. - -2. Source Code License. - - 2.1. The Initial Developer Grant. - The Initial Developer hereby grants You a world-wide, royalty-free, - non-exclusive license, subject to third party intellectual property - claims: - (a) under intellectual property rights (other than patent or - trademark) Licensable by Initial Developer to use, reproduce, - modify, display, perform, sublicense and distribute the Original - Code (or portions thereof) with or without Modifications, and/or - as part of a Larger Work; and - - (b) under Patents Claims infringed by the making, using or - selling of Original Code, to make, have made, use, practice, - sell, and offer for sale, and/or otherwise dispose of the - Original Code (or portions thereof). - - (c) the licenses granted in this Section 2.1(a) and (b) are - effective on the date Initial Developer first distributes - Original Code under the terms of this License. - - (d) Notwithstanding Section 2.1(b) above, no patent license is - granted: 1) for code that You delete from the Original Code; 2) - separate from the Original Code; or 3) for infringements caused - by: i) the modification of the Original Code or ii) the - combination of the Original Code with other software or devices. - - 2.2. Contributor Grant. - Subject to third party intellectual property claims, each Contributor - hereby grants You a world-wide, royalty-free, non-exclusive license - - (a) under intellectual property rights (other than patent or - trademark) Licensable by Contributor, to use, reproduce, modify, - display, perform, sublicense and distribute the Modifications - created by such Contributor (or portions thereof) either on an - unmodified basis, with other Modifications, as Covered Code - and/or as part of a Larger Work; and - - (b) under Patent Claims infringed by the making, using, or - selling of Modifications made by that Contributor either alone - and/or in combination with its Contributor Version (or portions - of such combination), to make, use, sell, offer for sale, have - made, and/or otherwise dispose of: 1) Modifications made by that - Contributor (or portions thereof); and 2) the combination of - Modifications made by that Contributor with its Contributor - Version (or portions of such combination). - - (c) the licenses granted in Sections 2.2(a) and 2.2(b) are - effective on the date Contributor first makes Commercial Use of - the Covered Code. - - (d) Notwithstanding Section 2.2(b) above, no patent license is - granted: 1) for any code that Contributor has deleted from the - Contributor Version; 2) separate from the Contributor Version; - 3) for infringements caused by: i) third party modifications of - Contributor Version or ii) the combination of Modifications made - by that Contributor with other software (except as part of the - Contributor Version) or other devices; or 4) under Patent Claims - infringed by Covered Code in the absence of Modifications made by - that Contributor. - -3. Distribution Obligations. - - 3.1. Application of License. - The Modifications which You create or to which You contribute are - governed by the terms of this License, including without limitation - Section 2.2. The Source Code version of Covered Code may be - distributed only under the terms of this License or a future version - of this License released under Section 6.1, and You must include a - copy of this License with every copy of the Source Code You - distribute. You may not offer or impose any terms on any Source Code - version that alters or restricts the applicable version of this - License or the recipients' rights hereunder. However, You may include - an additional document offering the additional rights described in - Section 3.5. - - 3.2. Availability of Source Code. - Any Modification which You create or to which You contribute must be - made available in Source Code form under the terms of this License - either on the same media as an Executable version or via an accepted - Electronic Distribution Mechanism to anyone to whom you made an - Executable version available; and if made available via Electronic - Distribution Mechanism, must remain available for at least twelve (12) - months after the date it initially became available, or at least six - (6) months after a subsequent version of that particular Modification - has been made available to such recipients. You are responsible for - ensuring that the Source Code version remains available even if the - Electronic Distribution Mechanism is maintained by a third party. - - 3.3. Description of Modifications. - You must cause all Covered Code to which You contribute to contain a - file documenting the changes You made to create that Covered Code and - the date of any change. You must include a prominent statement that - the Modification is derived, directly or indirectly, from Original - Code provided by the Initial Developer and including the name of the - Initial Developer in (a) the Source Code, and (b) in any notice in an - Executable version or related documentation in which You describe the - origin or ownership of the Covered Code. - - 3.4. Intellectual Property Matters - (a) Third Party Claims. - If Contributor has knowledge that a license under a third party's - intellectual property rights is required to exercise the rights - granted by such Contributor under Sections 2.1 or 2.2, - Contributor must include a text file with the Source Code - distribution titled "LEGAL" which describes the claim and the - party making the claim in sufficient detail that a recipient will - know whom to contact. If Contributor obtains such knowledge after - the Modification is made available as described in Section 3.2, - Contributor shall promptly modify the LEGAL file in all copies - Contributor makes available thereafter and shall take other steps - (such as notifying appropriate mailing lists or newsgroups) - reasonably calculated to inform those who received the Covered - Code that new knowledge has been obtained. - - (b) Contributor APIs. - If Contributor's Modifications include an application programming - interface and Contributor has knowledge of patent licenses which - are reasonably necessary to implement that API, Contributor must - also include this information in the LEGAL file. - - (c) Representations. - Contributor represents that, except as disclosed pursuant to - Section 3.4(a) above, Contributor believes that Contributor's - Modifications are Contributor's original creation(s) and/or - Contributor has sufficient rights to grant the rights conveyed by - this License. - - 3.5. Required Notices. - You must duplicate the notice in Exhibit A in each file of the Source - Code. If it is not possible to put such notice in a particular Source - Code file due to its structure, then You must include such notice in a - location (such as a relevant directory) where a user would be likely - to look for such a notice. If You created one or more Modification(s) - You may add your name as a Contributor to the notice described in - Exhibit A. You must also duplicate this License in any documentation - for the Source Code where You describe recipients' rights or ownership - rights relating to Covered Code. You may choose to offer, and to - charge a fee for, warranty, support, indemnity or liability - obligations to one or more recipients of Covered Code. However, You - may do so only on Your own behalf, and not on behalf of the Initial - Developer or any Contributor. You must make it absolutely clear than - any such warranty, support, indemnity or liability obligation is - offered by You alone, and You hereby agree to indemnify the Initial - Developer and every Contributor for any liability incurred by the - Initial Developer or such Contributor as a result of warranty, - support, indemnity or liability terms You offer. - - 3.6. Distribution of Executable Versions. - You may distribute Covered Code in Executable form only if the - requirements of Section 3.1-3.5 have been met for that Covered Code, - and if You include a notice stating that the Source Code version of - the Covered Code is available under the terms of this License, - including a description of how and where You have fulfilled the - obligations of Section 3.2. The notice must be conspicuously included - in any notice in an Executable version, related documentation or - collateral in which You describe recipients' rights relating to the - Covered Code. You may distribute the Executable version of Covered - Code or ownership rights under a license of Your choice, which may - contain terms different from this License, provided that You are in - compliance with the terms of this License and that the license for the - Executable version does not attempt to limit or alter the recipient's - rights in the Source Code version from the rights set forth in this - License. If You distribute the Executable version under a different - license You must make it absolutely clear that any terms which differ - from this License are offered by You alone, not by the Initial - Developer or any Contributor. You hereby agree to indemnify the - Initial Developer and every Contributor for any liability incurred by - the Initial Developer or such Contributor as a result of any such - terms You offer. - - 3.7. Larger Works. - You may create a Larger Work by combining Covered Code with other code - not governed by the terms of this License and distribute the Larger - Work as a single product. In such a case, You must make sure the - requirements of this License are fulfilled for the Covered Code. - -4. Inability to Comply Due to Statute or Regulation. - - If it is impossible for You to comply with any of the terms of this - License with respect to some or all of the Covered Code due to - statute, judicial order, or regulation then You must: (a) comply with - the terms of this License to the maximum extent possible; and (b) - describe the limitations and the code they affect. Such description - must be included in the LEGAL file described in Section 3.4 and must - be included with all distributions of the Source Code. Except to the - extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to - understand it. - -5. Application of this License. - - This License applies to code to which the Initial Developer has - attached the notice in Exhibit A and to related Covered Code. - -6. Versions of the License. - - 6.1. New Versions. - Netscape Communications Corporation ("Netscape") may publish revised - and/or new versions of the License from time to time. Each version - will be given a distinguishing version number. - - 6.2. Effect of New Versions. - Once Covered Code has been published under a particular version of the - License, You may always continue to use it under the terms of that - version. You may also choose to use such Covered Code under the terms - of any subsequent version of the License published by Netscape. No one - other than Netscape has the right to modify the terms applicable to - Covered Code created under this License. - - 6.3. Derivative Works. - If You create or use a modified version of this License (which you may - only do in order to apply it to code which is not already Covered Code - governed by this License), You must (a) rename Your license so that - the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", - "MPL", "NPL" or any confusingly similar phrase do not appear in your - license (except to note that your license differs from this License) - and (b) otherwise make it clear that Your version of the license - contains terms which differ from the Mozilla Public License and - Netscape Public License. (Filling in the name of the Initial - Developer, Original Code or Contributor in the notice described in - Exhibit A shall not of themselves be deemed to be modifications of - this License.) - -7. DISCLAIMER OF WARRANTY. - - COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, - WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF - DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. - THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE - IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, - YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE - COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER - OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF - ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -8. TERMINATION. - - 8.1. This License and the rights granted hereunder will terminate - automatically if You fail to comply with terms herein and fail to cure - such breach within 30 days of becoming aware of the breach. All - sublicenses to the Covered Code which are properly granted shall - survive any termination of this License. Provisions which, by their - nature, must remain in effect beyond the termination of this License - shall survive. - - 8.2. If You initiate litigation by asserting a patent infringement - claim (excluding declatory judgment actions) against Initial Developer - or a Contributor (the Initial Developer or Contributor against whom - You file such action is referred to as "Participant") alleging that: - - (a) such Participant's Contributor Version directly or indirectly - infringes any patent, then any and all rights granted by such - Participant to You under Sections 2.1 and/or 2.2 of this License - shall, upon 60 days notice from Participant terminate prospectively, - unless if within 60 days after receipt of notice You either: (i) - agree in writing to pay Participant a mutually agreeable reasonable - royalty for Your past and future use of Modifications made by such - Participant, or (ii) withdraw Your litigation claim with respect to - the Contributor Version against such Participant. If within 60 days - of notice, a reasonable royalty and payment arrangement are not - mutually agreed upon in writing by the parties or the litigation claim - is not withdrawn, the rights granted by Participant to You under - Sections 2.1 and/or 2.2 automatically terminate at the expiration of - the 60 day notice period specified above. - - (b) any software, hardware, or device, other than such Participant's - Contributor Version, directly or indirectly infringes any patent, then - any rights granted to You by such Participant under Sections 2.1(b) - and 2.2(b) are revoked effective as of the date You first made, used, - sold, distributed, or had made, Modifications made by that - Participant. - - 8.3. If You assert a patent infringement claim against Participant - alleging that such Participant's Contributor Version directly or - indirectly infringes any patent where such claim is resolved (such as - by license or settlement) prior to the initiation of patent - infringement litigation, then the reasonable value of the licenses - granted by such Participant under Sections 2.1 or 2.2 shall be taken - into account in determining the amount or value of any payment or - license. - - 8.4. In the event of termination under Sections 8.1 or 8.2 above, - all end user license agreements (excluding distributors and resellers) - which have been validly granted by You or any distributor hereunder - prior to termination shall survive termination. - -9. LIMITATION OF LIABILITY. - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT - (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL - DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, - OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR - ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY - CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, - WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER - COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN - INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF - LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY - RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW - PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE - EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO - THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. - -10. U.S. GOVERNMENT END USERS. - - The Covered Code is a "commercial item," as that term is defined in - 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer - software" and "commercial computer software documentation," as such - terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 - C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), - all U.S. Government End Users acquire Covered Code with only those - rights set forth herein. - -11. MISCELLANEOUS. - - This License represents the complete agreement concerning subject - matter hereof. If any provision of this License is held to be - unenforceable, such provision shall be reformed only to the extent - necessary to make it enforceable. This License shall be governed by - California law provisions (except to the extent applicable law, if - any, provides otherwise), excluding its conflict-of-law provisions. - With respect to disputes in which at least one party is a citizen of, - or an entity chartered or registered to do business in the United - States of America, any litigation relating to this License shall be - subject to the jurisdiction of the Federal Courts of the Northern - District of California, with venue lying in Santa Clara County, - California, with the losing party responsible for costs, including - without limitation, court costs and reasonable attorneys' fees and - expenses. The application of the United Nations Convention on - Contracts for the International Sale of Goods is expressly excluded. - Any law or regulation which provides that the language of a contract - shall be construed against the drafter shall not apply to this - License. - -12. RESPONSIBILITY FOR CLAIMS. - - As between Initial Developer and the Contributors, each party is - responsible for claims and damages arising, directly or indirectly, - out of its utilization of rights under this License and You agree to - work with Initial Developer and Contributors to distribute such - responsibility on an equitable basis. Nothing herein is intended or - shall be deemed to constitute any admission of liability. - -13. MULTIPLE-LICENSED CODE. - - Initial Developer may designate portions of the Covered Code as - "Multiple-Licensed". "Multiple-Licensed" means that the Initial - Developer permits you to utilize portions of the Covered Code under - Your choice of the NPL or the alternative licenses, if any, specified - by the Initial Developer in the file described in Exhibit A. - -EXHIBIT A -Mozilla Public License. - - ``The contents of this file are subject to the Mozilla Public License - Version 1.1 (the "License"); you may not use this file except in - compliance with the License. You may obtain a copy of the License at - http://www.mozilla.org/MPL/ - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the - License for the specific language governing rights and limitations - under the License. - - The Original Code is ______________________________________. - - The Initial Developer of the Original Code is ________________________. - Portions created by ______________________ are Copyright (C) ______ - _______________________. All Rights Reserved. - - Contributor(s): ______________________________________. - - Alternatively, the contents of this file may be used under the terms - of the _____ license (the "[___] License"), in which case the - provisions of [______] License are applicable instead of those - above. If you wish to allow use of your version of this file only - under the terms of the [____] License and not to allow others to use - your version of this file under the MPL, indicate your decision by - deleting the provisions above and replace them with the notice and - other provisions required by the [___] License. If you do not delete - the provisions above, a recipient may use your version of this file - under either the MPL or the [___] License." - - [NOTE: The text of this Exhibit A may differ slightly from the text of - the notices in the Source Code files of the Original Code. You should - use the text of this Exhibit A rather than the text found in the - Original Code Source Code for Your Modifications.] - - ---------------------------------------------------------------------- - - AMENDMENTS - - The Netscape Public License Version 1.1 ("NPL") consists of the - Mozilla Public License Version 1.1 with the following Amendments, - including Exhibit A-Netscape Public License. Files identified with - "Exhibit A-Netscape Public License" are governed by the Netscape - Public License Version 1.1. - - Additional Terms applicable to the Netscape Public License. - I. Effect. - These additional terms described in this Netscape Public - License -- Amendments shall apply to the Mozilla Communicator - client code and to all Covered Code under this License. - - II. "Netscape's Branded Code" means Covered Code that Netscape - distributes and/or permits others to distribute under one or more - trademark(s) which are controlled by Netscape but which are not - licensed for use under this License. - - III. Netscape and logo. - This License does not grant any rights to use the trademarks - "Netscape", the "Netscape N and horizon" logo or the "Netscape - lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", - "Smart Browsing" even if such marks are included in the Original - Code or Modifications. - - IV. Inability to Comply Due to Contractual Obligation. - Prior to licensing the Original Code under this License, Netscape - has licensed third party code for use in Netscape's Branded Code. - To the extent that Netscape is limited contractually from making - such third party code available under this License, Netscape may - choose to reintegrate such code into Covered Code without being - required to distribute such code in Source Code form, even if - such code would otherwise be considered "Modifications" under - this License. - - V. Use of Modifications and Covered Code by Initial Developer. - V.1. In General. - The obligations of Section 3 apply to Netscape, except to - the extent specified in this Amendment, Section V.2 and V.3. - - V.2. Other Products. - Netscape may include Covered Code in products other than the - Netscape's Branded Code which are released by Netscape - during the two (2) years following the release date of the - Original Code, without such additional products becoming - subject to the terms of this License, and may license such - additional products on different terms from those contained - in this License. - - V.3. Alternative Licensing. - Netscape may license the Source Code of Netscape's Branded - Code, including Modifications incorporated therein, without - such Netscape Branded Code becoming subject to the terms of - this License, and may license such Netscape Branded Code on - different terms from those contained in this License. - - VI. Litigation. - Notwithstanding the limitations of Section 11 above, the - provisions regarding litigation in Section 11(a), (b) and (c) of - the License shall apply to all disputes relating to this License. - - EXHIBIT A-Netscape Public License. - - "The contents of this file are subject to the Netscape Public - License Version 1.1 (the "License"); you may not use this file - except in compliance with the License. You may obtain a copy of - the License at http://www.mozilla.org/NPL/ - - Software distributed under the License is distributed on an "AS - IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - implied. See the License for the specific language governing - rights and limitations under the License. - - The Original Code is Mozilla Communicator client code, released - March 31, 1998. - - The Initial Developer of the Original Code is Netscape - Communications Corporation. Portions created by Netscape are - Copyright (C) 1998-1999 Netscape Communications Corporation. All - Rights Reserved. - - Contributor(s): ______________________________________. - - Alternatively, the contents of this file may be used under the - terms of the _____ license (the "[___] License"), in which case - the provisions of [______] License are applicable instead of - those above. If you wish to allow use of your version of this - file only under the terms of the [____] License and not to allow - others to use your version of this file under the NPL, indicate - your decision by deleting the provisions above and replace them - with the notice and other provisions required by the [___] - License. If you do not delete the provisions above, a recipient - may use your version of this file under either the NPL or the - [___] License." diff --git a/src/network/cookiejar/networkcookiejar/networkcookiejar.cpp b/src/network/cookiejar/networkcookiejar/networkcookiejar.cpp deleted file mode 100644 index 30c15a8e..00000000 --- a/src/network/cookiejar/networkcookiejar/networkcookiejar.cpp +++ /dev/null @@ -1,372 +0,0 @@ -/* - Copyright (C) 2009, Torch Mobile Inc. and Linden Research, Inc. All rights reserved. -*/ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Torch Mobile Inc. (http://www.torchmobile.com/) code - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "networkcookiejar.h" -#include "networkcookiejar_p.h" -#include "twoleveldomains_p.h" -#include - -//#define NETWORKCOOKIEJAR_DEBUG - -#ifndef QT_NO_DEBUG -// ^ Prevent being left on in a released product by accident -// qDebug any cookies that are rejected for further inspection -#define NETWORKCOOKIEJAR_LOGREJECTEDCOOKIES -#include -#endif - -#include -#include - -#if defined(NETWORKCOOKIEJAR_DEBUG) -#include -#endif - - -NetworkCookieJar::NetworkCookieJar(QObject *parent) - : QNetworkCookieJar(parent) -{ - d = new NetworkCookieJarPrivate; -} - -NetworkCookieJar::~NetworkCookieJar() -{ - delete d; -} - -static QStringList splitHost(const QString &host) { - QStringList parts = host.split(QLatin1Char('.'), QString::KeepEmptyParts); - // Remove empty components that are on the start and end - while (!parts.isEmpty() && parts.last().isEmpty()) - parts.removeLast(); - while (!parts.isEmpty() && parts.first().isEmpty()) - parts.removeFirst(); - return parts; -} - -inline static bool shorterPaths(const QNetworkCookie &c1, const QNetworkCookie &c2) -{ - return c2.path().length() < c1.path().length(); -} - -QList NetworkCookieJar::cookiesForUrl(const QUrl &url) const -{ -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << "NetworkCookieJar::" << __FUNCTION__ << url; -#endif - // Generate split host - QString host = url.host(); - if (url.scheme().toLower() == QLatin1String("file")) - host = QLatin1String("localhost"); - QStringList urlHost = splitHost(host); - - // Get all the cookies for url - QList cookies = d->tree.find(urlHost); - if (urlHost.count() > 2) { - int top = 2; - if (d->matchesBlacklist(urlHost.last())) - top = 3; - - urlHost.removeFirst(); - while (urlHost.count() >= top) { - cookies += d->tree.find(urlHost); - urlHost.removeFirst(); - } - } - - // Prevent doing anything expensive in the common case where - // there are no cookies to check - if (cookies.isEmpty()) - return cookies; - - QDateTime now = QDateTime::currentDateTime().toTimeSpec(Qt::UTC); - const QString urlPath = d->urlPath(url); - const bool isSecure = url.scheme().toLower() == QLatin1String("https"); - QList::iterator i = cookies.begin(); - for (; i != cookies.end();) { - if (!d->matchingPath(*i, urlPath)) { -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << __FUNCTION__ << "Ignoring cookie, path does not match" << *i << urlPath; -#endif - i = cookies.erase(i); - continue; - } - if (!isSecure && i->isSecure()) { - i = cookies.erase(i); -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << __FUNCTION__ << "Ignoring cookie, security mismatch" - << *i << !isSecure; -#endif - continue; - } - if (!i->isSessionCookie() && now > i->expirationDate()) { - // remove now (expensive short term) because there will - // probably be many more cookiesForUrl calls for this host - d->tree.remove(splitHost(i->domain()), *i); -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << __FUNCTION__ << "Ignoring cookie, expiration issue" - << *i << now; -#endif - i = cookies.erase(i); - continue; - } - ++i; - } - - // shorter paths should go first - std::sort(cookies.begin(), cookies.end(), shorterPaths); -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << "NetworkCookieJar::" << __FUNCTION__ << "returning" << cookies.count(); - qDebug() << cookies; -#endif - return cookies; -} - -static const qint32 NetworkCookieJarMagic = 0xae; - -QByteArray NetworkCookieJar::saveState () const -{ - int version = 1; - QByteArray data; - QDataStream stream(&data, QIODevice::WriteOnly); - - stream << qint32(NetworkCookieJarMagic); - stream << qint32(version); - stream << d->tree; - return data; -} - -bool NetworkCookieJar::restoreState(const QByteArray &state) -{ - int version = 1; - QByteArray sd = state; - QDataStream stream(&sd, QIODevice::ReadOnly); - if (stream.atEnd()) - return false; - qint32 marker; - qint32 v; - stream >> marker; - stream >> v; - if (marker != NetworkCookieJarMagic || v != version) - return false; - stream >> d->tree; - return true; -} - -/*! - Remove any session cookies or cookies that have expired. - */ -void NetworkCookieJar::endSession() -{ - const QList cookies = d->tree.all(); - QDateTime now = QDateTime::currentDateTime().toTimeSpec(Qt::UTC); - QList::const_iterator i = cookies.constBegin(); - for (; i != cookies.constEnd();) { - if (i->isSessionCookie() - || (!i->isSessionCookie() && now > i->expirationDate())) { - d->tree.remove(splitHost(i->domain()), *i); - } - ++i; - } -} - -static const int maxCookiePathLength = 1024; - -bool NetworkCookieJar::setCookiesFromUrl(const QList &cookieList, const QUrl &url) -{ -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << "NetworkCookieJar::" << __FUNCTION__ << url; - qDebug() << cookieList; -#endif - QDateTime now = QDateTime::currentDateTime().toTimeSpec(Qt::UTC); - bool changed = false; - QString fullUrlPath = url.path(); - QString defaultPath = fullUrlPath.mid(0, fullUrlPath.lastIndexOf(QLatin1Char('/')) + 1); - if (defaultPath.isEmpty()) - defaultPath = QLatin1Char('/'); - - QString urlPath = d->urlPath(url); - foreach (QNetworkCookie cookie, cookieList) { - if (cookie.path().length() > maxCookiePathLength) - continue; - - bool alreadyDead = !cookie.isSessionCookie() && cookie.expirationDate() < now; - - if (cookie.path().isEmpty()) { - cookie.setPath(defaultPath); - } - // Matching the behavior of Firefox, no path checking is done when setting cookies - // Safari does something even odder, when that paths don't match it keeps - // the cookie, but changes the paths to the default path -#if 0 - else if (!d->matchingPath(cookie, urlPath)) { -#ifdef NETWORKCOOKIEJAR_LOGREJECTEDCOOKIES - qDebug() << "NetworkCookieJar::" << __FUNCTION__ - << "Blocked cookie because: path doesn't match: " << cookie << url; -#endif - continue; - } -#endif - - if (cookie.domain().isEmpty()) { - QString host = url.host().toLower(); - if (host.isEmpty()) - continue; - cookie.setDomain(host); - } else if (!d->matchingDomain(cookie, url)) { -#ifdef NETWORKCOOKIEJAR_LOGREJECTEDCOOKIES - qDebug() << "NetworkCookieJar::" << __FUNCTION__ - << "Blocked cookie because: domain doesn't match: " << cookie << url; -#endif - continue; - } - - // replace/remove existing cookies - QString domain = cookie.domain(); - Q_ASSERT(!domain.isEmpty()); - QStringList urlHost = splitHost(domain); - - QList cookies = d->tree.find(urlHost); - QList::const_iterator it = cookies.constBegin(); - for (; it != cookies.constEnd(); ++it) { - if (cookie.name() == it->name() && - cookie.domain() == it->domain() && - cookie.path() == it->path()) { - d->tree.remove(urlHost, *it); - break; - } - } - - if (alreadyDead) - continue; - - changed = true; - d->tree.insert(urlHost, cookie); - } - - return changed; -} - -QList NetworkCookieJar::allCookies() const -{ -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << "NetworkCookieJar::" << __FUNCTION__; -#endif - return d->tree.all(); -} - -void NetworkCookieJar::setAllCookies(const QList &cookieList) -{ -#if defined(NETWORKCOOKIEJAR_DEBUG) - qDebug() << "NetworkCookieJar::" << __FUNCTION__ << cookieList.count(); -#endif - d->tree.clear(); - foreach (const QNetworkCookie &cookie, cookieList) { - QString domain = cookie.domain(); - d->tree.insert(splitHost(domain), cookie); - } -} - -QString NetworkCookieJarPrivate::urlPath(const QUrl &url) const -{ - QString urlPath = url.path(); - if (!urlPath.endsWith(QLatin1Char('/'))) - urlPath += QLatin1Char('/'); - return urlPath; -} - -bool NetworkCookieJarPrivate::matchingPath(const QNetworkCookie &cookie, const QString &urlPath) const -{ - QString cookiePath = cookie.path(); - if (!cookiePath.endsWith(QLatin1Char('/'))) - cookiePath += QLatin1Char('/'); - - return urlPath.startsWith(cookiePath); -} - -bool NetworkCookieJarPrivate::matchesBlacklist(const QString &string) const -{ - if (!setSecondLevelDomain) { - // Alternatively to save a little bit of ram we could just - // use bsearch on twoLevelDomains in place - for (int j = 0; twoLevelDomains[j]; ++j) - secondLevelDomains += QLatin1String(twoLevelDomains[j]); - setSecondLevelDomain = true; - } - QStringList::const_iterator i = - std::lower_bound(secondLevelDomains.constBegin(), secondLevelDomains.constEnd(), string); - return (i != secondLevelDomains.constEnd()); -} - -bool NetworkCookieJarPrivate::matchingDomain(const QNetworkCookie &cookie, const QUrl &url) const -{ - QString domain = cookie.domain().simplified().toLower(); - domain.remove(QLatin1Char(' ')); - QStringList parts = splitHost(domain); - if (parts.isEmpty()) - return false; - - // When there is only one part only file://localhost/ is accepted - if (parts.count() == 1) { - QString s = parts.first(); - if (parts.first() != QLatin1String("localhost")) - return false; - if (url.scheme().toLower() == QLatin1String("file")) - return true; - } - - // Check for blacklist - if (parts.count() == 2 && matchesBlacklist(parts.last())) - return false; - - QStringList urlParts = url.host().toLower().split(QLatin1Char('.'), QString::SkipEmptyParts); - if (urlParts.isEmpty()) - return false; - while (urlParts.count() > parts.count()) - urlParts.removeFirst(); - - for (int j = 0; j < urlParts.count(); ++j) { - if (urlParts.at(j) != parts.at(j)) { - return false; - } - } - - return true; -} - -void NetworkCookieJar::setSecondLevelDomains(const QStringList &secondLevelDomains) -{ - d->setSecondLevelDomain = true; - d->secondLevelDomains = secondLevelDomains; - std::sort(d->secondLevelDomains.begin(), d->secondLevelDomains.end()); -} diff --git a/src/network/cookiejar/networkcookiejar/networkcookiejar.h b/src/network/cookiejar/networkcookiejar/networkcookiejar.h deleted file mode 100644 index fd516207..00000000 --- a/src/network/cookiejar/networkcookiejar/networkcookiejar.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (C) 2009, Torch Mobile Inc. and Linden Research, Inc. All rights reserved. -*/ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Torch Mobile Inc. (http://www.torchmobile.com/) code - * - * The Initial Developer of the Original Code is: - * Aaron Dewes (aaron.dewes@web.de) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef NETWORKCOOKIEJAR_H -#define NETWORKCOOKIEJAR_H - -#include - -class NetworkCookieJarPrivate; -class NetworkCookieJar : public QNetworkCookieJar { - Q_OBJECT -public: - NetworkCookieJar(QObject *parent = 0); - ~NetworkCookieJar(); - - virtual QList cookiesForUrl(const QUrl & url) const; - virtual bool setCookiesFromUrl(const QList &cookieList, const QUrl &url); - -protected: - QByteArray saveState() const; - bool restoreState(const QByteArray &state); - void endSession(); - - QList allCookies() const; - void setAllCookies(const QList &cookieList); - void setSecondLevelDomains(const QStringList &secondLevelDomains); - -private: - NetworkCookieJarPrivate *d; -}; - -#endif - diff --git a/src/network/cookiejar/networkcookiejar/networkcookiejar.pri b/src/network/cookiejar/networkcookiejar/networkcookiejar.pri deleted file mode 100644 index 8b150bf1..00000000 --- a/src/network/cookiejar/networkcookiejar/networkcookiejar.pri +++ /dev/null @@ -1,6 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += trie_p.h networkcookiejar.h twoleveldomains_p.h networkcookiejar_p.h -SOURCES += networkcookiejar.cpp diff --git a/src/network/cookiejar/networkcookiejar/networkcookiejar_p.h b/src/network/cookiejar/networkcookiejar/networkcookiejar_p.h deleted file mode 100644 index 5847207b..00000000 --- a/src/network/cookiejar/networkcookiejar/networkcookiejar_p.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Copyright (C) 2009, Torch Mobile Inc. and Linden Research, Inc. All rights reserved. -*/ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Torch Mobile Inc. (http://www.torchmobile.com/) code - * - * The Initial Developer of the Original Code is: - * Aaron Dewes (aaron.dewes@web.de) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef NETWORKCOOKIEJARPRIVATE_H -#define NETWORKCOOKIEJARPRIVATE_H - -#include "trie_p.h" -#include - -QT_BEGIN_NAMESPACE -QDataStream &operator<<(QDataStream &stream, const QNetworkCookie &cookie) -{ - stream << cookie.toRawForm(); - return stream; -} - -QDataStream &operator>>(QDataStream &stream, QNetworkCookie &cookie) -{ - QByteArray value; - stream >> value; - QList newCookies = QNetworkCookie::parseCookies(value); - if (!newCookies.isEmpty()) - cookie = newCookies.first(); - return stream; -} -QT_END_NAMESPACE - -class NetworkCookieJarPrivate { -public: - NetworkCookieJarPrivate() - : setSecondLevelDomain(false) - {} - - Trie tree; - mutable bool setSecondLevelDomain; - mutable QStringList secondLevelDomains; - - bool matchesBlacklist(const QString &string) const; - bool matchingDomain(const QNetworkCookie &cookie, const QUrl &url) const; - QString urlPath(const QUrl &url) const; - bool matchingPath(const QNetworkCookie &cookie, const QString &urlPath) const; -}; - -#endif - diff --git a/src/network/cookiejar/networkcookiejar/trie_p.h b/src/network/cookiejar/networkcookiejar/trie_p.h deleted file mode 100644 index 72f1b77d..00000000 --- a/src/network/cookiejar/networkcookiejar/trie_p.h +++ /dev/null @@ -1,255 +0,0 @@ -/* - Copyright (C) 2009, Torch Mobile Inc. and Linden Research, Inc. All rights reserved. -*/ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Torch Mobile Inc. (http://www.torchmobile.com/) code - * - * The Initial Developer of the Original Code is: - * Aaron Dewes (aaron.dewes@web.de) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef TRIE_H -#define TRIE_H - -//#define TRIE_DEBUG - -#include - -#if defined(TRIE_DEBUG) -#include -#endif - -/* - A Trie tree (prefix tree) where the lookup takes m in the worst case. - - The key is stored in _reverse_ order - - Example: - Keys: x,a y,a - - Trie: - a - | \ - x y -*/ - -template -class Trie { -public: - Trie(); - ~Trie(); - - void clear(); - void insert(const QStringList &key, const T &value); - bool remove(const QStringList &key, const T &value); - QList find(const QStringList &key) const; - QList all() const; - - inline bool contains(const QStringList &key) const; - inline bool isEmpty() const { return children.isEmpty() && values.isEmpty(); } - -private: - const Trie* walkTo(const QStringList &key) const; - Trie* walkTo(const QStringList &key, bool create = false); - - template friend QDataStream &operator<<(QDataStream &, const Trie&); - template friend QDataStream &operator>>(QDataStream &, Trie&); - - QList values; - QStringList childrenKeys; - QList > children; -}; - -template -Trie::Trie() { -} - -template -Trie::~Trie() { -} - -template -void Trie::clear() { -#if defined(TRIE_DEBUG) - qDebug() << "Trie::" << __FUNCTION__; -#endif - values.clear(); - childrenKeys.clear(); - children.clear(); -} - -template -bool Trie::contains(const QStringList &key) const { - return walkTo(key); -} - -template -void Trie::insert(const QStringList &key, const T &value) { -#if defined(TRIE_DEBUG) - qDebug() << "Trie::" << __FUNCTION__ << key << value; -#endif - Trie *node = walkTo(key, true); - if (node) - node->values.append(value); -} - -template -bool Trie::remove(const QStringList &key, const T &value) { -#if defined(TRIE_DEBUG) - qDebug() << "Trie::" << __FUNCTION__ << key << value; -#endif - Trie *node = walkTo(key, true); - if (node) { - bool removed = node->values.removeOne(value); - if (!removed) - return false; - - // A faster implementation of removing nodes up the tree - // can be created if profile shows this to be slow - QStringList subKey = key; - while (node->values.isEmpty() - && node->children.isEmpty() - && !subKey.isEmpty()) { - QString currentLevelKey = subKey.first(); - QStringList parentKey = subKey.mid(1); - Trie *parent = walkTo(parentKey, false); - Q_ASSERT(parent); - QStringList::iterator iterator; - iterator = std::lower_bound(parent->childrenKeys.begin(), - parent->childrenKeys.end(), - currentLevelKey); - Q_ASSERT(iterator != parent->childrenKeys.end()); - int index = iterator - parent->childrenKeys.begin(); - parent->children.removeAt(index); - parent->childrenKeys.removeAt(index); - - node = parent; - subKey = parentKey; - } - return removed; - } - return false; -} - -template -QList Trie::find(const QStringList &key) const { -#if defined(TRIE_DEBUG) - qDebug() << "Trie::" << __FUNCTION__ << key; -#endif - const Trie *node = walkTo(key); - if (node) - return node->values; - return QList(); -} - -template -QList Trie::all() const { -#if defined(TRIE_DEBUG) - qDebug() << "Trie::" << __FUNCTION__; -#endif - QList all = values; - for (int i = 0; i < children.count(); ++i) - all += children[i].all(); - return all; -} - -template -QDataStream &operator<<(QDataStream &out, const Trie&trie) { - out << trie.values; - out << trie.childrenKeys; - out << trie.children; - Q_ASSERT(trie.childrenKeys.count() == trie.children.count()); - return out; -} - -template -QDataStream &operator>>(QDataStream &in, Trie &trie) { - trie.clear(); - in >> trie.values; - in >> trie.childrenKeys; - in >> trie.children; - Q_ASSERT(trie.childrenKeys.count() == trie.children.count()); - return in; -} - -// Very fast const walk -template -const Trie* Trie::walkTo(const QStringList &key) const { - const Trie *node = this; - QStringList::const_iterator childIterator; - QStringList::const_iterator begin, end; - - int depth = key.count() - 1; - while (depth >= 0) { - const QString currentLevelKey = key.at(depth--); - begin = node->childrenKeys.constBegin(); - end = node->childrenKeys.constEnd(); - childIterator = std::lower_bound(begin, end, currentLevelKey); - if (childIterator == end) - return 0; - node = &node->children.at(childIterator - begin); - } - return node; -} - -template -Trie* Trie::walkTo(const QStringList &key, bool create) { - QStringList::iterator iterator; - Trie *node = this; - QStringList::iterator begin, end; - int depth = key.count() - 1; - while (depth >= 0) { - const QString currentLevelKey = key.at(depth--); - begin = node->childrenKeys.begin(); - end = node->childrenKeys.end(); - iterator = std::lower_bound(begin, end, currentLevelKey); -#if defined(TRIE_DEBUG) - qDebug() << "\t" << node << key << currentLevelKey << node->childrenKeys; -#endif - int index = -1; - if (iterator == end) { - if (!create) - return 0; - iterator = std::lower_bound(begin, - end, - currentLevelKey); - index = iterator - begin; - node->childrenKeys.insert(iterator, currentLevelKey); - node->children.insert(index, Trie()); - } else { - index = iterator - begin; - } - Q_ASSERT(index >= 0 && index < node->children.count()); - node = &node->children[index]; - } - return node; -} - -#endif - diff --git a/src/network/cookiejar/networkcookiejar/twoleveldomains_p.h b/src/network/cookiejar/networkcookiejar/twoleveldomains_p.h deleted file mode 100644 index cf11ef70..00000000 --- a/src/network/cookiejar/networkcookiejar/twoleveldomains_p.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - Copyright (C) 2009, Torch Mobile Inc. and Linden Research, Inc. All rights reserved. -*/ - -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Torch Mobile Inc. (http://www.torchmobile.com/) code - * - * The Initial Developer of the Original Code is: - * Aaron Dewes (aaron.dewes@web.de) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -// Updated from https://wiki.mozilla.org/TLD_List#External_Links -// To set a custom list use NetworkCookieJar::setSecondLevelDomains() -static const char *const twoLevelDomains[] = { - "ao", - "ar", - "arpa", - "bd", - "bn", - "br", - "co", - "cr", - "cy", - "do", - "eg", - "et", - "fj", - "fk", - "gh", - "gn", - "gu", - "id", - "il", - "jm", - "ke", - "kh", - "ki", - "kw", - "kz", - "lb", - "lc", - "lr", - "ls", - "ml", - "mm", - "mv", - "mw", - "mx", - "my", - "ng", - "ni", - "np", - "nz", - "om", - "pa", - "pe", - "pg", - "pw", - "py", - "qa", - "sa", - "sb", - "sv", - "sy", - "th", - "tn", - "tz", - "uk", - "uy", - "va", - "ve", - "ye", - "yu", - "za", - "zm", - "zw", - 0 -}; diff --git a/src/network/fileaccesshandler.cpp b/src/network/fileaccesshandler.cpp deleted file mode 100644 index de65abe7..00000000 --- a/src/network/fileaccesshandler.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Copyright 2009 Jonas Gehring - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "fileaccesshandler.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -FileAccessHandler::FileAccessHandler(QObject *parent) - : SchemeAccessHandler(parent) -{ -} - -QNetworkReply *FileAccessHandler::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) -{ - Q_UNUSED(outgoingData); - - switch (op) { - case QNetworkAccessManager::GetOperation: - break; - default: - return 0; - } - - // This handler can only list directories yet, so pass anything - // else back to the manager - QString path = request.url().toLocalFile(); - if (!QFileInfo(path).isDir()) { - return 0; - } - - FileAccessReply *reply = new FileAccessReply(request, this); - return reply; -} - - -FileAccessReply::FileAccessReply(const QNetworkRequest &request, QObject *parent) - : QNetworkReply(parent) -{ - setOperation(QNetworkAccessManager::GetOperation); - setRequest(request); - setUrl(request.url()); - - buffer.open(QIODevice::ReadWrite); - setError(QNetworkReply::NoError, tr("No Error")); - - QTimer::singleShot(0, this, SLOT(listDirectory())); - - open(QIODevice::ReadOnly); -} - -FileAccessReply::~FileAccessReply() -{ - close(); -} - -qint64 FileAccessReply::bytesAvailable() const -{ - return buffer.bytesAvailable() + QNetworkReply::bytesAvailable(); -} - -void FileAccessReply::close() -{ - buffer.close(); -} - -static QString cssLinkClass(const QIcon &icon, int size = 32) -{ - // The CSS class generation is a bit tricky, because QIcon/QPixmap's - // cacheKey() returns the different values for the same icons on my Windows - // box (tested with XP). Thus, the checksum of the actual text of the CSS class - // is used for the class name. - QString data = QLatin1String("a.%3 {\n\ - padding-left: %1px;\n\ - background: transparent url(data:image/png;base64,%2) no-repeat center left;\n\ - font-weight: bold;\n\ -}\n"); - QPixmap pixmap = icon.pixmap(QSize(size, size)); - QBuffer imageBuffer; - imageBuffer.open(QBuffer::ReadWrite); - if (!pixmap.save(&imageBuffer, "PNG")) { - // If an error occured, write a blank pixmap - pixmap = QPixmap(size, size); - pixmap.fill(Qt::transparent); - imageBuffer.buffer().clear(); - pixmap.save(&imageBuffer, "PNG"); - } - return data.arg(size+4).arg(QLatin1String(imageBuffer.buffer().toBase64())); -} - -void FileAccessReply::listDirectory() -{ - QDir dir(url().toLocalFile()); - if (!dir.exists()) { - setError(QNetworkReply::ContentNotFoundError, tr("Error opening: %1: No such file or directory").arg(dir.absolutePath())); - emit error(QNetworkReply::ContentNotFoundError); - emit finished(); - return; - } - if (!dir.isReadable()) { - setError(QNetworkReply::ContentAccessDenied, tr("Unable to read %1").arg(dir.absolutePath())); - emit error(QNetworkReply::ContentAccessDenied); - emit finished(); - return; - } - - // Format a html page for the directory contents - QFile dirlistFile(QLatin1String(":/dirlist.html")); - if (!dirlistFile.open(QIODevice::ReadOnly)) - return; - QString html = QLatin1String(dirlistFile.readAll()); - html = html.arg(dir.absolutePath(), tr("Contents of %1").arg(dir.absolutePath())); - - // Templates for the listing - QString link = QLatin1String("%3"); - QString row = QLatin1String(" %2 %3 %4 \n"); - - QFileIconProvider iconProvider; - QHash existingClasses; - int iconSize = QWebSettings::globalSettings()->fontSize(QWebSettings::DefaultFontSize); - QFileInfoList list = dir.entryInfoList(QDir::AllEntries | QDir::Hidden, QDir::Name | QDir::DirsFirst); - QString dirlist, classes; - - // Write link to parent directory first - if (!dir.isRoot()) { - QIcon icon = qApp->style()->standardIcon(QStyle::SP_FileDialogToParent); - classes += cssLinkClass(icon, iconSize).arg(QLatin1String("link_parent")); - - QString addr = QString::fromUtf8(QUrl::fromLocalFile(QFileInfo(dir.absoluteFilePath(QLatin1String(".."))).canonicalFilePath()).toEncoded()); - QString size, modified; // Empty by intention - dirlist += row.arg(QString()).arg(link.arg(QLatin1String("link_parent")).arg(addr).arg(QLatin1String(".."))).arg(size).arg(modified); - } - - for (int i = 0; i < list.count(); ++i) { - // Skip '.' and '..' - if (list[i].fileName() == QLatin1String(".") || list[i].fileName() == QLatin1String("..")) { - continue; - } - - // Fetch file icon and generate a corresponding CSS class if neccessary - QIcon icon = iconProvider.icon(list[i]); - QString cssClass = cssLinkClass(icon, iconSize); - QByteArray cssData = cssClass.toLatin1(); - QString className = QString(QLatin1String("link_%1")).arg(QLatin1String(QCryptographicHash::hash(cssData, QCryptographicHash::Md4).toHex())); - if (!existingClasses.contains(className)) { - classes += cssClass.arg(className); - existingClasses.insert(className, true); - } - - QString addr = QString::fromUtf8(QUrl::fromLocalFile(list[i].canonicalFilePath()).toEncoded()); - QString size, modified; - if (list[i].fileName() != QLatin1String("..")) { - if (list[i].isFile()) - size = tr("%1 KB").arg(QString::number(list[i].size()/1024)); - modified = list[i].lastModified().toString(Qt::SystemLocaleShortDate); - } - - QString classes; - if (list[i].isHidden()) - classes = QLatin1String(" class=\"hidden\""); - dirlist += row.arg(classes).arg(link.arg(className).arg(addr).arg(list[i].fileName())).arg(size).arg(modified); - } - - html = html.arg(classes).arg(dirlist).arg(tr("Show Hidden Files")); - - // Save result to buffer - QTextStream stream(&buffer); - stream << html; - stream.flush(); - buffer.reset(); - - // Publish result - setHeader(QNetworkRequest::ContentTypeHeader, QByteArray("text/html")); - setHeader(QNetworkRequest::ContentLengthHeader, buffer.bytesAvailable()); - setAttribute(QNetworkRequest::HttpStatusCodeAttribute, 200); - setAttribute(QNetworkRequest::HttpReasonPhraseAttribute, QByteArray("Ok")); - emit metaDataChanged(); - emit downloadProgress(buffer.size(), buffer.size()); - QNetworkReply::NetworkError errorCode = error(); - if (errorCode != QNetworkReply::NoError) { - emit error(errorCode); - } else if (buffer.size() > 0) { - emit readyRead(); - } - - emit finished(); -} - -qint64 FileAccessReply::readData(char *data, qint64 maxSize) -{ - return buffer.read(data, maxSize); -} diff --git a/src/network/fileaccesshandler.h b/src/network/fileaccesshandler.h deleted file mode 100644 index 1c887ff3..00000000 --- a/src/network/fileaccesshandler.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2009 Jonas Gehring - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef FILEACCESSHANDLER_H -#define FILEACCESSHANDLER_H - -#include "schemeaccesshandler.h" - -#include -#include - -class FileAccessHandler : public SchemeAccessHandler -{ -public: - FileAccessHandler(QObject *parent = 0); - - virtual QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0); -}; - -class FileAccessReply : public QNetworkReply -{ - Q_OBJECT - -public: - FileAccessReply(const QNetworkRequest &request, QObject *parent = 0); - ~FileAccessReply(); - - virtual qint64 bytesAvailable() const; - virtual void abort() { }; - virtual void close(); - -protected: - virtual qint64 readData(char *data, qint64 maxSize); - -private slots: - void listDirectory(); - -private: - QBuffer buffer; -}; - -#endif // FILEACCESSHANDLER_H diff --git a/src/network/network.pri b/src/network/network.pri deleted file mode 100644 index a6c7a30c..00000000 --- a/src/network/network.pri +++ /dev/null @@ -1,23 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -FORMS += \ - passworddialog.ui \ - proxy.ui - -HEADERS += \ - fileaccesshandler.h \ - networkaccessmanager.h \ - networkdiskcache.h \ - networkproxyfactory.h \ - schemeaccesshandler.h - -SOURCES += \ - fileaccesshandler.cpp \ - networkaccessmanager.cpp \ - networkdiskcache.cpp \ - networkproxyfactory.cpp \ - schemeaccesshandler.cpp - -include(cookiejar/cookiejar.pri) diff --git a/src/network/networkaccessmanager.cpp b/src/network/networkaccessmanager.cpp deleted file mode 100644 index 840ef3c3..00000000 --- a/src/network/networkaccessmanager.cpp +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#include "networkaccessmanager.h" - -#include "adblockmanager.h" -#include "adblocknetwork.h" -#include "adblockschemeaccesshandler.h" -#include "acceptlanguagedialog.h" -#include "autofillmanager.h" -#include "browserapplication.h" -#include "browsermainwindow.h" -#include "cookiejar.h" -#include "schemeaccesshandler.h" -#include "fileaccesshandler.h" -#include "networkproxyfactory.h" -#include "networkdiskcache.h" -#include "ui_passworddialog.h" -#include "ui_proxy.h" - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -// #define NETWORKACCESSMANAGER_DEBUG - -NetworkAccessManager::NetworkAccessManager(QObject *parent) - : NetworkAccessManagerProxy(parent) - , m_adblockNetwork(0) -{ - connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), - SLOT(authenticationRequired(QNetworkReply*, QAuthenticator*))); - connect(this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)), - SLOT(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*))); -#ifndef QT_NO_OPENSSL - connect(this, SIGNAL(sslErrors(QNetworkReply*, const QList&)), - SLOT(sslErrors(QNetworkReply*, const QList&))); -#endif - connect(BrowserApplication::instance(), SIGNAL(privacyChanged(bool)), - this, SLOT(privacyChanged(bool))); - loadSettings(); - - // Register custom scheme handlers - setSchemeHandler(QLatin1String("file"), new FileAccessHandler(this)); - setSchemeHandler(QLatin1String("abp"), new AdBlockSchemeAccessHandler(this)); - setCookieJar(new CookieJar); -} - -void NetworkAccessManager::privacyChanged(bool isPrivate) -{ - // Create a new CookieJar that has the privacy flag set so the old cookies - // are not loaded and the cookies are not saved on exit - if (isPrivate) { - CookieJar *cookieJar = new CookieJar; - cookieJar->setPrivate(isPrivate); - setCookieJar(cookieJar); - } else { - // it will delete the old one - setCookieJar(new CookieJar); - } -} - -void NetworkAccessManager::setSchemeHandler(const QString &scheme, SchemeAccessHandler *handler) -{ - m_schemeHandlers.insert(scheme, handler); -} - -void NetworkAccessManager::loadSettings() -{ - QSettings settings; - settings.beginGroup(QLatin1String("proxy")); - QNetworkProxy proxy; - if (settings.value(QLatin1String("enabled"), false).toBool()) { - int proxyType = settings.value(QLatin1String("type"), 0).toInt(); - if (proxyType == 0) - proxy = QNetworkProxy::Socks5Proxy; - else if (proxyType == 1) - proxy = QNetworkProxy::HttpProxy; - else { // 2 - proxy.setType(QNetworkProxy::HttpCachingProxy); - proxy.setCapabilities(QNetworkProxy::CachingCapability | QNetworkProxy::HostNameLookupCapability); - } - proxy.setHostName(settings.value(QLatin1String("hostName")).toString()); - proxy.setPort(settings.value(QLatin1String("port"), 1080).toInt()); - proxy.setUser(settings.value(QLatin1String("userName")).toString()); - proxy.setPassword(settings.value(QLatin1String("password")).toString()); - } - NetworkProxyFactory *proxyFactory = new NetworkProxyFactory; - if (proxy.type() == QNetworkProxy::HttpCachingProxy) { - proxyFactory->setHttpProxy(proxy); - proxyFactory->setGlobalProxy(QNetworkProxy::DefaultProxy); - } else { - proxyFactory->setHttpProxy(QNetworkProxy::DefaultProxy); - proxyFactory->setGlobalProxy(proxy); - } - setProxyFactory(proxyFactory); - settings.endGroup(); - -#ifndef QT_NO_OPENSSL - QSslConfiguration sslCfg = QSslConfiguration::defaultConfiguration(); - sslCfg.setCaCertificates(sslCfg.systemCaCertificates()); - QList ca_list = sslCfg.caCertificates(); - QList ca_new = QSslCertificate::fromData(settings.value(QLatin1String("CaCertificates")).toByteArray()); - ca_list += ca_new; - sslCfg.setCaCertificates(ca_list); - sslCfg.setProtocol(QSsl::AnyProtocol); - QSslConfiguration::setDefaultConfiguration(sslCfg); -#endif - - settings.beginGroup(QLatin1String("network")); - QStringList acceptList = settings.value(QLatin1String("acceptLanguages"), - AcceptLanguageDialog::defaultAcceptList()).toStringList(); - m_acceptLanguage = AcceptLanguageDialog::httpString(acceptList); - - bool cacheEnabled = settings.value(QLatin1String("cacheEnabled"), true).toBool(); - - if (cacheEnabled) { - NetworkDiskCache *diskCache; - if (cache()) - diskCache = qobject_cast(cache()); - else - diskCache = new NetworkDiskCache(this); - setCache(diskCache); - diskCache->loadSettings(); - } else { - setCache(0); - } - settings.endGroup(); -} - -void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth) -{ -#ifdef NETWORKACCESSMANAGER_DEBUG - qDebug() << __FUNCTION__ << reply; -#endif - BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow(); - - QDialog dialog(mainWindow); - dialog.setWindowFlags(Qt::Sheet); - - Ui::PasswordDialog passwordDialog; - passwordDialog.setupUi(&dialog); - - passwordDialog.iconLabel->setText(QString()); - passwordDialog.iconLabel->setPixmap(mainWindow->style()->standardIcon(QStyle::SP_MessageBoxQuestion, 0, mainWindow).pixmap(32, 32)); - - QString introMessage = tr("Enter username and password for \"%1\" at %2"); - introMessage = introMessage.arg(QString(auth->realm()).toHtmlEscaped().arg(reply->url().toString().toHtmlEscaped())); - passwordDialog.introLabel->setText(introMessage); - passwordDialog.introLabel->setWordWrap(true); - - if (dialog.exec() == QDialog::Accepted) { - auth->setUser(passwordDialog.userNameLineEdit->text()); - auth->setPassword(passwordDialog.passwordLineEdit->text()); - } -} - -void NetworkAccessManager::proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *auth) -{ -#ifdef NETWORKACCESSMANAGER_DEBUG - qDebug() << __FUNCTION__; -#endif - BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow(); - - QDialog dialog(mainWindow); - dialog.setWindowFlags(Qt::Sheet); - - Ui::ProxyDialog proxyDialog; - proxyDialog.setupUi(&dialog); - - proxyDialog.iconLabel->setText(QString()); - proxyDialog.iconLabel->setPixmap(mainWindow->style()->standardIcon(QStyle::SP_MessageBoxQuestion, 0, mainWindow).pixmap(32, 32)); - - QString introMessage = tr("Connect to proxy \"%1\" using:"); - introMessage = introMessage.arg(QString(proxy.hostName()).toHtmlEscaped()); - proxyDialog.introLabel->setText(introMessage); - proxyDialog.introLabel->setWordWrap(true); - - if (dialog.exec() == QDialog::Accepted) { - auth->setUser(proxyDialog.userNameLineEdit->text()); - auth->setPassword(proxyDialog.passwordLineEdit->text()); - } -} - -#ifndef QT_NO_OPENSSL -QString NetworkAccessManager::certToFormattedString(QSslCertificate cert) -{ - QStringList message; - message << cert.subjectInfo(QSslCertificate::CommonName); - foreach (QString issuer, cert.issuerInfo(QSslCertificate::CommonName)) { - message << tr("Issuer: %1").arg(issuer.toHtmlEscaped()); - } - message << tr("Not valid before: %1").arg(cert.effectiveDate().toString()); - message << tr("Valid until: %1").arg(cert.expiryDate().toString()); - - QMultiMap names = cert.subjectAlternativeNames(); - if (names.count() > 0) { - QString list; - list += QLatin1String("
"); - list += tr("Alternate Names:"); - list += QLatin1String("
  • "); - list += QStringList(names.values(QSsl::DnsEntry)).join(QLatin1String("
  • ")); - list += QLatin1String("
"); - message << list; - } - - QString result = QLatin1String("

") + message.join(QLatin1String("
")) + QLatin1String("

"); - - return result; -} - -void NetworkAccessManager::sslErrors(QNetworkReply *reply, const QList &error) -{ -#ifdef NETWORKACCESSMANAGER_DEBUG - qDebug() << __FUNCTION__; -#endif - BrowserMainWindow *mainWindow = BrowserApplication::instance()->mainWindow(); - - QSettings settings; - QList ca_merge = QSslCertificate::fromData(settings.value(QLatin1String("CaCertificates")).toByteArray()); - - QList ca_new; - QStringList errorStrings; - for (int i = 0; i < error.count(); ++i) { - if (ca_merge.contains(error.at(i).certificate())) - continue; - errorStrings += error.at(i).errorString(); - if (!error.at(i).certificate().isNull()) { - ca_new.append(error.at(i).certificate()); - } - } - if (errorStrings.isEmpty()) { - reply->ignoreSslErrors(); - return; - } - - QString errors = errorStrings.join(QLatin1String("
  • ")); - int ret = QMessageBox::warning(mainWindow, - QCoreApplication::applicationName() + tr(" - SSL Errors"), - tr("SSL Errors:" - "

    for: %1" - "
    • %2
    \n\n" - "Do you want to ignore these errors?
    ").arg(reply->url().toString()).arg(errors), - QMessageBox::Yes | QMessageBox::No, - QMessageBox::No); - - if (ret == QMessageBox::Yes) { - if (ca_new.count() > 0) { - QStringList certinfos; - for (int i = 0; i < ca_new.count(); ++i) - certinfos += certToFormattedString(ca_new.at(i)); - ret = QMessageBox::question(mainWindow, QCoreApplication::applicationName(), - tr("Certificates:
    " - "%1
    " - "Do you want to accept all these certificates?
    ") - .arg(certinfos.join(QString())), - QMessageBox::Yes | QMessageBox::No, QMessageBox::No); - if (ret == QMessageBox::Yes) { - ca_merge += ca_new; - - QSslConfiguration sslCfg = QSslConfiguration::defaultConfiguration(); - QList ca_list = sslCfg.caCertificates(); - ca_list += ca_new; - sslCfg.setCaCertificates(ca_list); - sslCfg.setProtocol(QSsl::AnyProtocol); - QSslConfiguration::setDefaultConfiguration(sslCfg); - reply->setSslConfiguration(sslCfg); - - QByteArray pems; - for (int i = 0; i < ca_merge.count(); ++i) - pems += ca_merge.at(i).toPem() + '\n'; - settings.setValue(QLatin1String("CaCertificates"), pems); - } - } - reply->ignoreSslErrors(); - } -} -#endif - -QNetworkReply *NetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) -{ - if (op == PostOperation && outgoingData) { - QByteArray outgoingDataByteArray = outgoingData->peek(1024 * 1024); - BrowserApplication::autoFillManager()->post(request, outgoingDataByteArray); - } - - QNetworkReply *reply = 0; - // Check if there is a valid handler registered for the requested URL scheme - if (m_schemeHandlers.contains(request.url().scheme())) - reply = m_schemeHandlers[request.url().scheme()]->createRequest(op, request, outgoingData); - if (reply) - return reply; - - QNetworkRequest req = request; - req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true); - if (!m_acceptLanguage.isEmpty()) - req.setRawHeader("Accept-Language", m_acceptLanguage); - - // Adblock - if (op == QNetworkAccessManager::GetOperation) { - if (!m_adblockNetwork) - m_adblockNetwork = AdBlockManager::instance()->network(); - reply = m_adblockNetwork->block(req); - if (reply) - return reply; - } - - reply = QNetworkAccessManager::createRequest(op, req, outgoingData); - emit requestCreated(op, req, reply); - return reply; -} - diff --git a/src/network/networkaccessmanager.h b/src/network/networkaccessmanager.h deleted file mode 100644 index 1044e353..00000000 --- a/src/network/networkaccessmanager.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright 2008-2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -/**************************************************************************** -** -** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** This file may be used under the terms of the GNU General Public -** License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Alternatively you may (at -** your option) use any later version of the GNU General Public -** License if such license has been publicly approved by Trolltech ASA -** (or its successors, if any) and the KDE Free Qt Foundation. In -** addition, as a special exception, Trolltech gives you certain -** additional rights. These rights are described in the Trolltech GPL -** Exception version 1.2, which can be found at -** http://www.trolltech.com/products/qt/gplexception/ and in the file -** GPL_EXCEPTION.txt in this package. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. If -** you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** In addition, as a special exception, Trolltech, as the sole -** copyright holder for Qt Designer, grants users of the Qt/Eclipse -** Integration plug-in the right for the Qt/Eclipse Integration to -** link to functionality provided by Qt Designer and its related -** libraries. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly -** granted herein. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -****************************************************************************/ - -#ifndef NETWORKACCESSMANAGER_H -#define NETWORKACCESSMANAGER_H - -#include -#include -#include -#include "networkaccessmanagerproxy.h" - -class SchemeAccessHandler; - -class AdBlockNetwork; -class NetworkAccessManager : public NetworkAccessManagerProxy -{ - Q_OBJECT - -signals: - void requestCreated(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QNetworkReply *reply); - -public: - NetworkAccessManager(QObject *parent = 0); - void setSchemeHandler(const QString &scheme, SchemeAccessHandler *handler); - - inline QNetworkReply *createRequestProxy(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) - { - return createRequest(op, request, outgoingData); - } - -protected: - QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0); - -public slots: - void loadSettings(); - -private slots: - void authenticationRequired(QNetworkReply *reply, QAuthenticator *auth); - void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *auth); -#ifndef QT_NO_OPENSSL - void sslErrors(QNetworkReply *reply, const QList &error); -#endif - void privacyChanged(bool isPrivate); - -private: -#ifndef QT_NO_OPENSSL - static QString certToFormattedString(QSslCertificate cert); -#endif - - QByteArray m_acceptLanguage; - QHash m_schemeHandlers; - - QNetworkCookieJar *m_privateCookieJar; - AdBlockNetwork *m_adblockNetwork; -}; - -#endif // NETWORKACCESSMANAGER_H diff --git a/src/network/networkdiskcache.cpp b/src/network/networkdiskcache.cpp deleted file mode 100644 index 9b139764..00000000 --- a/src/network/networkdiskcache.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "networkdiskcache.h" - -#include "browserapplication.h" - -#include -#include - -NetworkDiskCache::NetworkDiskCache(QObject *parent) - : QNetworkDiskCache(parent) - , m_private(false) -{ - QString diskCacheDirectory = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) - + QLatin1String("/browser"); - setCacheDirectory(diskCacheDirectory); - connect(BrowserApplication::instance(), SIGNAL(privacyChanged(bool)), - this, SLOT(privacyChanged(bool))); -} - -void NetworkDiskCache::loadSettings() -{ - QSettings settings; - settings.beginGroup(QLatin1String("network")); - qint64 maximumCacheSize = settings.value(QLatin1String("maximumCacheSize"), 50).toInt(); - maximumCacheSize = maximumCacheSize * 1024 * 1024; - setMaximumCacheSize(maximumCacheSize); -} - -void NetworkDiskCache::privacyChanged(bool isPrivate) -{ - m_private = isPrivate; -} - -QIODevice *NetworkDiskCache::prepare(const QNetworkCacheMetaData &metaData) -{ - if (m_private) - return 0; - return QNetworkDiskCache::prepare(metaData); -} - diff --git a/src/network/networkdiskcache.h b/src/network/networkdiskcache.h deleted file mode 100644 index ce4227de..00000000 --- a/src/network/networkdiskcache.h +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef NETWORKDISKCACHE_H -#define NETWORKDISKCACHE_H - -#include - -class NetworkDiskCache : public QNetworkDiskCache -{ - Q_OBJECT - -public: - NetworkDiskCache(QObject *parent = 0); - - void loadSettings(); - - QIODevice *prepare(const QNetworkCacheMetaData &metaData); - -private slots: - void privacyChanged(bool isPrivate); - -private: - bool m_private; -}; - -#endif // NETWORKDISKCACHE_H - diff --git a/src/network/networkproxyfactory.cpp b/src/network/networkproxyfactory.cpp deleted file mode 100644 index 9cda8092..00000000 --- a/src/network/networkproxyfactory.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2009 Benjamin K. Stuhl - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "networkproxyfactory.h" - -NetworkProxyFactory::NetworkProxyFactory() - : QNetworkProxyFactory() -{ -} - -void NetworkProxyFactory::setHttpProxy(const QNetworkProxy &proxy) -{ - m_httpProxy = proxy; -} - -void NetworkProxyFactory::setGlobalProxy(const QNetworkProxy &proxy) -{ - m_globalProxy = proxy; -} - -QList NetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query) -{ - QList ret; - - if (query.protocolTag() == QLatin1String("http") && m_httpProxy.type() != QNetworkProxy::DefaultProxy) - ret << m_httpProxy; - ret << m_globalProxy; - - return ret; -} - diff --git a/src/network/networkproxyfactory.h b/src/network/networkproxyfactory.h deleted file mode 100644 index 9f692aa7..00000000 --- a/src/network/networkproxyfactory.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2009 Benjamin K. Stuhl - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef NETWORKPROXYFACTORY_H -#define NETWORKPROXYFACTORY_H - -#include - -class NetworkProxyFactory : public QNetworkProxyFactory -{ -public: - NetworkProxyFactory(); - - void setHttpProxy(const QNetworkProxy &proxy); - void setGlobalProxy(const QNetworkProxy &proxy); - - virtual QList queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery()); - -private: - QNetworkProxy m_httpProxy; - QNetworkProxy m_globalProxy; -}; - -#endif // NETWORKPROXYFACTORY_H diff --git a/src/network/passworddialog.ui b/src/network/passworddialog.ui deleted file mode 100644 index 7c166586..00000000 --- a/src/network/passworddialog.ui +++ /dev/null @@ -1,111 +0,0 @@ - - PasswordDialog - - - - 0 - 0 - 399 - 148 - - - - Authentication Required - - - - - - - - DUMMY ICON - - - - - - - - 0 - 0 - - - - INTRO TEXT DUMMY - - - - - - - - - Username: - - - - - - - - - - Password: - - - - - - - QLineEdit::Password - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - PasswordDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - PasswordDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/src/network/proxy.ui b/src/network/proxy.ui deleted file mode 100644 index 33fa25f7..00000000 --- a/src/network/proxy.ui +++ /dev/null @@ -1,105 +0,0 @@ - - - ProxyDialog - - - - 0 - 0 - 369 - 144 - - - - Proxy Authentication - - - - - - ICON - - - - - - - Connect to proxy - - - true - - - - - - - Username: - - - - - - - - - - Password: - - - - - - - QLineEdit::Password - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - ProxyDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - ProxyDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/src/network/schemeaccesshandler.cpp b/src/network/schemeaccesshandler.cpp deleted file mode 100644 index 1e4a8294..00000000 --- a/src/network/schemeaccesshandler.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2009 Jonas Gehring - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "schemeaccesshandler.h" - -SchemeAccessHandler::SchemeAccessHandler(QObject *parent) - : QObject(parent) -{ -} - diff --git a/src/network/schemeaccesshandler.h b/src/network/schemeaccesshandler.h deleted file mode 100644 index c2310b05..00000000 --- a/src/network/schemeaccesshandler.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2009 Jonas Gehring - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef SCHEMEACCESSHANDLER_H -#define SCHEMEACCESSHANDLER_H - -#include - -#include - -class QNetworkReply; -class SchemeAccessHandler : public QObject -{ -public: - SchemeAccessHandler(QObject *parent = 0); - - virtual QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0) = 0; -}; - -#endif // SCHEMEACCESSHANDLER_H diff --git a/src/opensearch/opensearchengineaction.cpp b/src/opensearch/opensearchengineaction.cpp index 8c4282c0..667dfe2d 100644 --- a/src/opensearch/opensearchengineaction.cpp +++ b/src/opensearch/opensearchengineaction.cpp @@ -20,7 +20,7 @@ #include "opensearchengineaction.h" #include "browserapplication.h" -#include "networkaccessmanager.h" +#include #include "opensearchengine.h" OpenSearchEngineAction::OpenSearchEngineAction(OpenSearchEngine *engine, QObject *parent) @@ -28,7 +28,7 @@ OpenSearchEngineAction::OpenSearchEngineAction(OpenSearchEngine *engine, QObject , m_engine(engine) { if (!engine->networkAccessManager()) - engine->setNetworkAccessManager(BrowserApplication::networkAccessManager()); + engine->setNetworkAccessManager(new QNetworkAccessManager()); setText(engine->name()); imageChanged(); diff --git a/src/opensearch/opensearchmanager.cpp b/src/opensearch/opensearchmanager.cpp index b4bc7895..54bf5681 100644 --- a/src/opensearch/opensearchmanager.cpp +++ b/src/opensearch/opensearchmanager.cpp @@ -23,7 +23,7 @@ #include "autosaver.h" #include "browserapplication.h" -#include "networkaccessmanager.h" +#include #include "opensearchengine.h" #include "opensearchreader.h" #include "opensearchwriter.h" @@ -115,7 +115,8 @@ void OpenSearchManager::addEngine(const QUrl &url) if (!url.isValid()) return; - QNetworkReply *reply = BrowserApplication::networkAccessManager()->get(QNetworkRequest(url)); + QNetworkAccessManager *manager = new QNetworkAccessManager(); + QNetworkReply *reply = manager->get(QNetworkRequest(url)); connect(reply, SIGNAL(finished()), this, SLOT(engineFromUrlAvailable())); reply->setParent(this); } diff --git a/src/qwebplugins/endorphinwebplugin.cpp b/src/qwebplugins/endorphinwebplugin.cpp deleted file mode 100644 index 6a389a81..00000000 --- a/src/qwebplugins/endorphinwebplugin.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "endorphinwebplugin.h" - -EndorphinWebPlugin::EndorphinWebPlugin() -{ -} - -EndorphinWebPlugin::~EndorphinWebPlugin() -{ -} - -bool EndorphinWebPlugin::isAnonymous() const -{ - return false; -} diff --git a/src/qwebplugins/endorphinwebplugin.h b/src/qwebplugins/endorphinwebplugin.h deleted file mode 100644 index 97b1fe90..00000000 --- a/src/qwebplugins/endorphinwebplugin.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ENDORPHINWEBPLUGIN_H -#define ENDORPHINWEBPLUGIN_H - -#include - -class EndorphinWebPlugin -{ - -public: - EndorphinWebPlugin(); - virtual ~EndorphinWebPlugin(); - - virtual QWebPluginFactory::Plugin metaPlugin() = 0; - virtual QWidget *create(const QString &mimeType, const QUrl &url, - const QStringList &argumentNames, const QStringList &argumentValues) = 0; - virtual void configure() = 0; - virtual bool isAnonymous() const; -}; - -#endif // ENDORPHINWEBPLUGIN_H - diff --git a/src/qwebplugins/qwebplugins.pri b/src/qwebplugins/qwebplugins.pri deleted file mode 100644 index e663df8f..00000000 --- a/src/qwebplugins/qwebplugins.pri +++ /dev/null @@ -1,11 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - endorphinwebplugin.h \ - webpluginfactory.h - -SOURCES += \ - endorphinwebplugin.cpp \ - webpluginfactory.cpp diff --git a/src/qwebplugins/webpluginfactory.cpp b/src/qwebplugins/webpluginfactory.cpp deleted file mode 100644 index f6ff9f7a..00000000 --- a/src/qwebplugins/webpluginfactory.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "webpluginfactory.h" - -#include -#include -#include - -// #define WEBPLUGINFACTORY_DEBUG - -WebPluginFactory::WebPluginFactory(QObject *parent) - : QWebPluginFactory(parent) - , m_loaded(false) -{ -} - -WebPluginFactory::~WebPluginFactory() -{ - qDeleteAll(m_plugins); - m_plugins.clear(); -} - -QObject *WebPluginFactory::create(const QString &mimeType, const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues) const -{ - if (!m_loaded) - init(); - -#ifdef WEBPLUGINFACTORY_DEBUG - qDebug() << "WebPluginFactory::" << __FUNCTION__ << mimeType << url << argumentNames << argumentValues; -#endif - EndorphinWebPlugin *plugin = m_pluginsCache[mimeType]; - if (plugin) - return plugin->create(mimeType, url, argumentNames, argumentValues); -#ifdef WEBPLUGINFACTORY_DEBUG - qDebug() << "WebPluginFactory::" << __FUNCTION__ << "No match"; -#endif - return 0; -} - -QList WebPluginFactory::plugins() const -{ -#ifdef WEBPLUGINFACTORY_DEBUG - qDebug() << "WebPluginFactory::" << __FUNCTION__; -#endif - if (!m_loaded) - init(); - QList plugins; - foreach (EndorphinWebPlugin *plugin, m_plugins) { - QWebPluginFactory::Plugin pluginInfo = plugin->metaPlugin(); - if (!plugin->isAnonymous()) - plugins.append(pluginInfo); - } - return plugins; -} - -void WebPluginFactory::refreshPlugins() -{ -#ifdef WEBPLUGINFACTORY_DEBUG - qDebug() << "WebPluginFactory::" << __FUNCTION__; -#endif - init(); - QWebPluginFactory::refreshPlugins(); -} - -void WebPluginFactory::init() const -{ - m_loaded = true; - m_pluginsCache.clear(); - qDeleteAll(m_plugins); - m_plugins.clear(); - foreach (EndorphinWebPlugin *plugin, m_plugins) { - foreach (const QWebPluginFactory::MimeType &pluginMimeType, plugin->metaPlugin().mimeTypes) - m_pluginsCache.insert(pluginMimeType.name, plugin); - } -} diff --git a/src/qwebplugins/webpluginfactory.h b/src/qwebplugins/webpluginfactory.h deleted file mode 100644 index b6859b6c..00000000 --- a/src/qwebplugins/webpluginfactory.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2009 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef WEBPLUGINFACTORY_H -#define WEBPLUGINFACTORY_H - -#include -#include - -#include "endorphinwebplugin.h" - -class WebPluginFactory : public QWebPluginFactory -{ - Q_OBJECT - -public: - WebPluginFactory(QObject *parent = 0); - ~WebPluginFactory(); - - QObject *create(const QString &mimeType, const QUrl &url, - const QStringList &argumentNames, const QStringList &argumentValues) const; - QList plugins() const; - void refreshPlugins(); - -private: - void init() const; - mutable bool m_loaded; - mutable QList m_plugins; - mutable QHash m_pluginsCache; -}; - -#endif // WEBPLUGINFACTORY_H - diff --git a/src/settings.cpp b/src/settings.cpp index 6d9c6743..2dc34946 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -63,17 +63,10 @@ #include "settings.h" #include "acceptlanguagedialog.h" -#include "autofilldialog.h" -#include "autofillmanager.h" #include "browserapplication.h" #include "browsermainwindow.h" -#include "cookiedialog.h" -#include "cookieexceptionsdialog.h" -#include "cookiejar.h" #include "historymanager.h" -#include "networkaccessmanager.h" #include "tabwidget.h" -#include "webpluginfactory.h" #include "webpage.h" #include "webview.h" @@ -90,9 +83,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) , m_cacheEnabled(false) { setupUi(this); - connect(exceptionsButton, SIGNAL(clicked()), this, SLOT(showExceptions())); connect(setHomeToCurrentPageButton, SIGNAL(clicked()), this, SLOT(setHomeToCurrentPage())); - connect(cookiesButton, SIGNAL(clicked()), this, SLOT(showCookies())); connect(standardFontButton, SIGNAL(clicked()), this, SLOT(chooseFont())); connect(fixedFontButton, SIGNAL(clicked()), this, SLOT(chooseFixedFont())); connect(languageButton, SIGNAL(clicked()), this, SLOT(chooseAcceptLanguage())); @@ -100,8 +91,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) connect(externalDownloadBrowse, SIGNAL(clicked()), this, SLOT(chooseDownloadProgram())); connect(styleSheetBrowseButton, SIGNAL(clicked()), this, SLOT(chooseStyleSheet())); - connect(editAutoFillUserButton, SIGNAL(clicked()), this, SLOT(editAutoFillUser())); - loadDefaults(); loadFromSettings(); } @@ -123,14 +112,9 @@ void SettingsDialog::loadDefaults() blockPopupWindows->setChecked(!defaultSettings->testAttribute(QWebSettings::JavascriptCanOpenWindows)); enableJavascript->setChecked(defaultSettings->testAttribute(QWebSettings::JavascriptEnabled)); - enablePlugins->setChecked(defaultSettings->testAttribute(QWebSettings::PluginsEnabled)); enableImages->setChecked(defaultSettings->testAttribute(QWebSettings::AutoLoadImages)); enableLocalStorage->setChecked(defaultSettings->testAttribute(QWebSettings::LocalStorageEnabled)); - clickToFlash->setChecked(false); - cookieSessionCombo->setCurrentIndex(0); - filterTrackingCookiesCheckbox->setChecked(false); - autoFillPasswordFormsCheckBox->setChecked(false); minimFontSizeCheckBox->setChecked(false); minimumFontSizeSpinBox->setValue(9); } @@ -189,7 +173,6 @@ void SettingsDialog::loadFromSettings() blockPopupWindows->setChecked(settings.value(QLatin1String("blockPopupWindows"), blockPopupWindows->isChecked()).toBool()); enableJavascript->setChecked(settings.value(QLatin1String("enableJavascript"), enableJavascript->isChecked()).toBool()); - enablePlugins->setChecked(settings.value(QLatin1String("enablePlugins"), enablePlugins->isChecked()).toBool()); enableImages->setChecked(settings.value(QLatin1String("enableImages"), enableImages->isChecked()).toBool()); enableLocalStorage->setChecked(settings.value(QLatin1String("enableLocalStorage"), enableLocalStorage->isChecked()).toBool()); userStyleSheet->setText(QString::fromUtf8(settings.value(QLatin1String("userStyleSheet")).toUrl().toEncoded())); @@ -199,55 +182,6 @@ void SettingsDialog::loadFromSettings() minimumFontSizeSpinBox->setValue(minimumFontSize); settings.endGroup(); - // Privacy - settings.beginGroup(QLatin1String("cookies")); - - QByteArray value = settings.value(QLatin1String("acceptCookies"), QLatin1String("AcceptOnlyFromSitesNavigatedTo")).toByteArray(); - QMetaEnum acceptPolicyEnum = CookieJar::staticMetaObject.enumerator(CookieJar::staticMetaObject.indexOfEnumerator("AcceptPolicy")); - CookieJar::AcceptPolicy acceptCookies = acceptPolicyEnum.keyToValue(value) == -1 ? - CookieJar::AcceptOnlyFromSitesNavigatedTo : - static_cast(acceptPolicyEnum.keyToValue(value)); - switch (acceptCookies) { - case CookieJar::AcceptAlways: - acceptCombo->setCurrentIndex(0); - break; - case CookieJar::AcceptNever: - acceptCombo->setCurrentIndex(1); - break; - case CookieJar::AcceptOnlyFromSitesNavigatedTo: - acceptCombo->setCurrentIndex(2); - break; - } - - value = settings.value(QLatin1String("keepCookiesUntil"), QLatin1String("Expire")).toByteArray(); - QMetaEnum keepPolicyEnum = CookieJar::staticMetaObject.enumerator(CookieJar::staticMetaObject.indexOfEnumerator("KeepPolicy")); - CookieJar::KeepPolicy keepCookies = keepPolicyEnum.keyToValue(value) == -1 ? - CookieJar::KeepUntilExpire : - static_cast(keepPolicyEnum.keyToValue(value)); - switch (keepCookies) { - case CookieJar::KeepUntilExpire: - keepUntilCombo->setCurrentIndex(0); - break; - case CookieJar::KeepUntilExit: - keepUntilCombo->setCurrentIndex(1); - break; - case CookieJar::KeepUntilTimeLimit: - keepUntilCombo->setCurrentIndex(2); - break; - } - int sessionLength = settings.value(QLatin1String("sessionLength"), -1).toInt(); - switch (sessionLength) { - case 1: cookieSessionCombo->setCurrentIndex(1); break; - case 2: cookieSessionCombo->setCurrentIndex(2); break; - case 3: cookieSessionCombo->setCurrentIndex(3); break; - case 7: cookieSessionCombo->setCurrentIndex(4); break; - case 30: cookieSessionCombo->setCurrentIndex(5); break; - default: - case 0: cookieSessionCombo->setCurrentIndex(0); break; - } - filterTrackingCookiesCheckbox->setChecked(settings.value(QLatin1String("filterTrackingCookies"), false).toBool()); - settings.endGroup(); - // Network settings.beginGroup(QLatin1String("network")); m_cacheEnabled = settings.value(QLatin1String("cacheEnabled"), true).toBool(); @@ -279,10 +213,6 @@ void SettingsDialog::loadFromSettings() settings.beginGroup(QLatin1String("WebView")); enableAccessKeys->setChecked(settings.value(QLatin1String("enableAccessKeys"), true).toBool()); settings.endGroup(); - - settings.beginGroup(QLatin1String("autofill")); - autoFillPasswordFormsCheckBox->setChecked(settings.value(QLatin1String("passwordForms"), true).toBool()); - settings.endGroup(); } void SettingsDialog::saveToSettings() @@ -330,7 +260,6 @@ void SettingsDialog::saveToSettings() settings.setValue(QLatin1String("blockPopupWindows"), blockPopupWindows->isChecked()); settings.setValue(QLatin1String("enableJavascript"), enableJavascript->isChecked()); - settings.setValue(QLatin1String("enablePlugins"), enablePlugins->isChecked()); settings.setValue(QLatin1String("enableImages"), enableImages->isChecked()); settings.setValue(QLatin1String("enableLocalStorage"), enableLocalStorage->isChecked()); QString userStyleSheetString = userStyleSheet->text(); @@ -338,7 +267,6 @@ void SettingsDialog::saveToSettings() settings.setValue(QLatin1String("userStyleSheet"), QUrl::fromLocalFile(userStyleSheetString)); else settings.setValue(QLatin1String("userStyleSheet"), QUrl::fromEncoded(userStyleSheetString.toUtf8())); - settings.setValue(QLatin1String("enableClickToFlash"), clickToFlash->isChecked()); if (minimFontSizeCheckBox->isChecked()) settings.setValue(QLatin1String("minimumFontSize"), minimumFontSizeSpinBox->value()); @@ -346,55 +274,6 @@ void SettingsDialog::saveToSettings() settings.setValue(QLatin1String("minimumFontSize"), 0); settings.endGroup(); - // Privacy - settings.beginGroup(QLatin1String("cookies")); - CookieJar::AcceptPolicy acceptCookies; - switch (acceptCombo->currentIndex()) { - default: - case 0: - acceptCookies = CookieJar::AcceptAlways; - break; - case 1: - acceptCookies = CookieJar::AcceptNever; - break; - case 2: - acceptCookies = CookieJar::AcceptOnlyFromSitesNavigatedTo; - break; - } - - QMetaEnum acceptPolicyEnum = CookieJar::staticMetaObject.enumerator(CookieJar::staticMetaObject.indexOfEnumerator("AcceptPolicy")); - settings.setValue(QLatin1String("acceptCookies"), QLatin1String(acceptPolicyEnum.valueToKey(acceptCookies))); - - CookieJar::KeepPolicy keepPolicy; - switch (keepUntilCombo->currentIndex()) { - default: - case 0: - keepPolicy = CookieJar::KeepUntilExpire; - break; - case 1: - keepPolicy = CookieJar::KeepUntilExit; - break; - case 2: - keepPolicy = CookieJar::KeepUntilTimeLimit; - break; - } - - QMetaEnum keepPolicyEnum = CookieJar::staticMetaObject.enumerator(CookieJar::staticMetaObject.indexOfEnumerator("KeepPolicy")); - settings.setValue(QLatin1String("keepCookiesUntil"), QLatin1String(keepPolicyEnum.valueToKey(keepPolicy))); - int sessionLength = cookieSessionCombo->currentIndex(); - switch (sessionLength) { - case 1: sessionLength = 1; break; - case 2: sessionLength = 2; break; - case 3: sessionLength = 3; break; - case 4: sessionLength = 7; break; - case 5: sessionLength = 30; break; - default: - case 0: sessionLength = -1; break; - } - settings.setValue(QLatin1String("sessionLength"), sessionLength); - settings.setValue(QLatin1String("filterTrackingCookies"), filterTrackingCookiesCheckbox->isChecked()); - settings.endGroup(); - // Network settings.beginGroup(QLatin1String("network")); settings.setValue(QLatin1String("cacheEnabled"), networkCache->isChecked()); @@ -421,22 +300,13 @@ void SettingsDialog::saveToSettings() settings.setValue(QLatin1String("openLinksFromAppsIn"), openLinksFromAppsIn->currentIndex()); settings.endGroup(); - settings.beginGroup(QLatin1String("autofill")); - settings.setValue(QLatin1String("passwordForms"), autoFillPasswordFormsCheckBox->isChecked()); - settings.endGroup(); - // Accessibility settings.beginGroup(QLatin1String("WebView")); settings.setValue(QLatin1String("enableAccessKeys"), enableAccessKeys->isChecked()); settings.endGroup(); BrowserApplication::instance()->loadSettings(); - BrowserApplication::networkAccessManager()->loadSettings(); - BrowserApplication::cookieJar()->loadSettings(); BrowserApplication::historyManager()->loadSettings(); - BrowserApplication::autoFillManager()->loadSettings(); - - WebPage::webPluginFactory()->refreshPlugins(); QList list = BrowserApplication::instance()->mainWindows(); foreach (BrowserMainWindow *mainWindow, list) { @@ -450,18 +320,6 @@ void SettingsDialog::accept() QDialog::accept(); } -void SettingsDialog::showCookies() -{ - CookieDialog dialog(BrowserApplication::cookieJar(), this); - dialog.exec(); -} - -void SettingsDialog::showExceptions() -{ - CookieExceptionsDialog dialog(BrowserApplication::cookieJar(), this); - dialog.exec(); -} - void SettingsDialog::chooseDownloadDirectory() { QString fileName = QFileDialog::getExistingDirectory(this, tr("Choose Directory"), downloadsLocation->text()); @@ -516,10 +374,3 @@ void SettingsDialog::chooseStyleSheet() QString fileName = QFileDialog::getOpenFileName(this, tr("Choose CSS File"), url.toLocalFile()); userStyleSheet->setText(QString::fromUtf8(QUrl::fromLocalFile(fileName).toEncoded())); } - -void SettingsDialog::editAutoFillUser() -{ - AutoFillDialog dialog; - dialog.exec(); -} - diff --git a/src/settings.h b/src/settings.h index fae23c3b..a3dd2f87 100644 --- a/src/settings.h +++ b/src/settings.h @@ -80,8 +80,6 @@ private slots: void saveToSettings(); void setHomeToCurrentPage(); - void showCookies(); - void showExceptions(); void chooseDownloadDirectory(); void chooseDownloadProgram(); @@ -90,7 +88,6 @@ private slots: void chooseAcceptLanguage(); void chooseStyleSheet(); - void editAutoFillUser(); private: QFont m_standardFont; diff --git a/src/settings.ui b/src/settings.ui index 43275b52..1a849521 100644 --- a/src/settings.ui +++ b/src/settings.ui @@ -7,7 +7,7 @@ 0 0 677 - 442 + 421 @@ -377,10 +377,10 @@ Web Content - - + + - Block Popup Windows + Persistent Data Storage true @@ -388,51 +388,6 @@ - - - Enable Plugins - - - true - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 20 - 20 - - - - - - - - - 0 - 0 - - - - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. - - - Use ClickToFlash on flash plugins - - - true - - - - Enable Javascript @@ -442,20 +397,20 @@ - - + + - View Images + Block Popup Windows true - - + + - Persistent Data Storage + View Images true @@ -465,151 +420,6 @@ - - - - Cookies - - - - - - Accept Cookies: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - Always - - - - - Never - - - - - Only from sites you navigate to - - - - - - - - Exceptions... - - - - - - - Keep Cookies Until: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - They expire - - - - - I exit the application - - - - - At most 90 days - - - - - - - - Cookies... - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Filter Tracking Cookies - - - - - - - A cookie session ends: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - When I exit the application - - - - - 1 day - - - - - 2 days - - - - - 3 days - - - - - 7 days - - - - - 30 days - - - - - - - @@ -907,66 +717,6 @@ - - - AutoFill - - - - - - AutoFill web forms: - - - - - - - - 0 - 0 - - - - User names and passwords - - - - - - - Edit... - - - - - - - Qt::Vertical - - - - 20 - 244 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - Advanced @@ -1073,15 +823,8 @@ fixedFontButton languageButton blockPopupWindows - enablePlugins - clickToFlash enableJavascript enableImages - acceptCombo - exceptionsButton - keepUntilCombo - cookiesButton - filterTrackingCookiesCheckbox selectTabsWhenCreated confirmClosingMultipleTabs oneCloseButton @@ -1134,162 +877,146 @@ - downloadDestination + externalDownloadButton toggled(bool) - downloadsLocation + externalDownloadPath setEnabled(bool) - 79 - 289 + 161 + 315 - 280 - 291 + 388 + 315 - enablePlugins + externalDownloadButton toggled(bool) - clickToFlash - setEnabled(bool) + downloadDirectoryButton + setDisabled(bool) - 104 - 125 + 194 + 311 - 162 - 154 + 569 + 276 - minimFontSizeCheckBox + externalDownloadButton toggled(bool) - minimumFontSizeSpinBox + externalDownloadBrowse setEnabled(bool) - 31 - 153 + 161 + 315 - 189 - 151 + 554 + 315 - downloadDestination + externalDownloadButton toggled(bool) - downloadDirectoryButton - setEnabled(bool) + downloadAsk + setDisabled(bool) - 182 - 282 + 102 + 311 - 620 - 292 + 105 + 252 - externalDownloadButton + minimFontSizeCheckBox toggled(bool) - externalDownloadPath + minimumFontSizeSpinBox setEnabled(bool) - 161 - 315 + 31 + 153 - 388 - 315 + 189 + 151 - externalDownloadButton + downloadDestination toggled(bool) - externalDownloadBrowse + downloadDirectoryButton setEnabled(bool) - 161 - 315 + 182 + 282 - 554 - 315 + 620 + 292 externalDownloadButton toggled(bool) - downloadAsk + downloadDestination setDisabled(bool) - 102 - 311 + 170 + 313 - 105 - 252 + 169 + 285 - externalDownloadButton + downloadDestination toggled(bool) downloadsLocation - setDisabled(bool) - - - 198 - 315 - - - 386 - 279 - - - - - externalDownloadButton - toggled(bool) - downloadDestination - setDisabled(bool) + setEnabled(bool) - 170 - 313 + 79 + 289 - 169 - 285 + 280 + 291 externalDownloadButton toggled(bool) - downloadDirectoryButton + downloadsLocation setDisabled(bool) - 194 - 311 + 198 + 315 - 569 - 276 + 386 + 279 diff --git a/src/sourceviewer.cpp b/src/sourceviewer.cpp index b90d5f11..222675e0 100644 --- a/src/sourceviewer.cpp +++ b/src/sourceviewer.cpp @@ -30,9 +30,9 @@ #include #include #include +#include #include "browserapplication.h" -#include "networkaccessmanager.h" #include "plaintexteditsearch.h" #include "sourcehighlighter.h" @@ -78,7 +78,8 @@ SourceViewer::SourceViewer(const QString &source, const QString &title, QNetworkRequest request(url); request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); - m_reply = BrowserApplication::networkAccessManager()->get(request); + QNetworkAccessManager *manager = new QNetworkAccessManager(); + m_reply = manager->get(request); connect(m_reply, SIGNAL(finished()), this, SLOT(loadingFinished())); m_reply->setParent(this); } diff --git a/src/src.pri b/src/src.pri index 92681683..ea18a344 100644 --- a/src/src.pri +++ b/src/src.pri @@ -28,7 +28,6 @@ VPATH += $$PWD FORMS += \ aboutdialog.ui \ - autofilldialog.ui \ acceptlanguagedialog.ui \ downloaditem.ui \ downloads.ui \ @@ -39,8 +38,6 @@ HEADERS += \ aboutdialog.h \ acceptlanguagedialog.h \ autosaver.h \ - autofilldialog.h \ - autofillmanager.h \ browserapplication.h \ browsermainwindow.h \ clearprivatedata.h \ @@ -67,8 +64,6 @@ SOURCES += \ aboutdialog.cpp \ acceptlanguagedialog.cpp \ autosaver.cpp \ - autofilldialog.cpp \ - autofillmanager.cpp \ browserapplication.cpp \ browsermainwindow.cpp \ clearprivatedata.cpp \ @@ -91,13 +86,10 @@ SOURCES += \ webview.cpp \ webviewsearch.cpp -include(adblock/adblock.pri) include(bookmarks/bookmarks.pri) include(history/history.pri) include(locationbar/locationbar.pri) -include(network/network.pri) include(opensearch/opensearch.pri) -include(qwebplugins/qwebplugins.pri) include(utils/utils.pri) include(useragent/useragent.pri) diff --git a/src/toolbarsearch.cpp b/src/toolbarsearch.cpp index d105ada5..81ef254a 100644 --- a/src/toolbarsearch.cpp +++ b/src/toolbarsearch.cpp @@ -66,7 +66,6 @@ #include "autosaver.h" #include "browserapplication.h" #include "browsermainwindow.h" -#include "networkaccessmanager.h" #include "opensearchengine.h" #include "opensearchengineaction.h" #include "opensearchmanager.h" @@ -83,6 +82,7 @@ #include #include #include +#include OpenSearchManager *ToolbarSearch::s_openSearchManager = 0; @@ -239,7 +239,7 @@ void ToolbarSearch::getSuggestions() return; if (!engine->networkAccessManager()) - engine->setNetworkAccessManager(BrowserApplication::networkAccessManager()); + engine->setNetworkAccessManager(new QNetworkAccessManager()); engine->requestSuggestions(text()); } diff --git a/src/utils/networkaccessmanagerproxy.cpp b/src/utils/networkaccessmanagerproxy.cpp deleted file mode 100644 index d44caaa4..00000000 --- a/src/utils/networkaccessmanagerproxy.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "networkaccessmanagerproxy.h" -#include "networkaccessmanagerproxy_p.h" - -#include "webpageproxy.h" - -#include -#include - -NetworkAccessManagerProxy *NetworkAccessManagerProxy::m_primaryManager = 0; - -/* - NetworkAccessManagerProxy inserts a pointer to the QWebPage in the - QNetworkRequest before passing it on. - */ -NetworkAccessManagerProxy::NetworkAccessManagerProxy(QObject *parent) - : QNetworkAccessManager(parent) - , m_webPage(0) -{ -} - -void NetworkAccessManagerProxy::setWebPage(WebPageProxy *page) -{ - Q_ASSERT(page); - m_webPage = page; -} - -void NetworkAccessManagerProxy::setPrimaryNetworkAccessManager(NetworkAccessManagerProxy *manager) -{ - Q_ASSERT(manager); - m_primaryManager = manager; - setCookieJar(new NetworkCookieJarProxy(this)); - - connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), - m_primaryManager, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*))); - connect(this, SIGNAL(finished(QNetworkReply *)), - m_primaryManager, SIGNAL(finished(QNetworkReply *))); - connect(this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)), - m_primaryManager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*))); -#ifndef QT_NO_OPENSSL - connect(this, SIGNAL(sslErrors(QNetworkReply*, const QList&)), - m_primaryManager, SIGNAL(sslErrors(QNetworkReply*, const QList&))); -#endif -} - -QNetworkReply *NetworkAccessManagerProxy::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) -{ - if (m_primaryManager && m_webPage) { - QNetworkRequest pageRequest = request; - m_webPage->populateNetworkRequest(pageRequest); - return m_primaryManager->createRequest(op, pageRequest, outgoingData); - } - return QNetworkAccessManager::createRequest(op, request, outgoingData); -} - diff --git a/src/utils/networkaccessmanagerproxy.h b/src/utils/networkaccessmanagerproxy.h deleted file mode 100644 index 69afc0de..00000000 --- a/src/utils/networkaccessmanagerproxy.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef NETWORKACCESSMANAGERPROXY_H -#define NETWORKACCESSMANAGERPROXY_H - -#include - -class WebPageProxy; -class NetworkAccessManagerProxy : public QNetworkAccessManager -{ - Q_OBJECT - -public: - NetworkAccessManagerProxy(QObject *parent = 0); - - void setPrimaryNetworkAccessManager(NetworkAccessManagerProxy *primaryManager); - NetworkAccessManagerProxy *primaryNetworkAccessManager() const { return m_primaryManager; } - - void setWebPage(WebPageProxy *page); - WebPageProxy *webPage() const { return m_webPage; }; - -protected: - QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0); - -private: - friend class NetworkCookieJarProxy; - static NetworkAccessManagerProxy *m_primaryManager; - WebPageProxy *m_webPage; - -}; - -#endif // NETWORKACCESSMANAGERPROXY_H - diff --git a/src/utils/networkaccessmanagerproxy_p.h b/src/utils/networkaccessmanagerproxy_p.h deleted file mode 100644 index 8981bfb7..00000000 --- a/src/utils/networkaccessmanagerproxy_p.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef NETWORKACCESSMANAGERPROXY_P_H -#define NETWORKACCESSMANAGERPROXY_P_H - -#include -#include - -#include "networkaccessmanagerproxy.h" - -class NetworkCookieJarProxy : public QNetworkCookieJar -{ - Q_OBJECT - -public: - NetworkCookieJarProxy(QObject *parent = 0) - : QNetworkCookieJar(parent) { } - - inline QList cookiesForUrl(const QUrl &url) const - { return NetworkAccessManagerProxy::m_primaryManager->cookieJar()->cookiesForUrl(url); } - - inline bool setCookiesFromUrl(const QList &cookieList, const QUrl &url) - { return NetworkAccessManagerProxy::m_primaryManager->cookieJar()->setCookiesFromUrl(cookieList, url); } - -}; - -#endif // NETWORKACCESSMANAGERPROXY_P_H - diff --git a/src/utils/utils.pri b/src/utils/utils.pri index d2e54f26..4469520b 100644 --- a/src/utils/utils.pri +++ b/src/utils/utils.pri @@ -9,12 +9,9 @@ HEADERS += \ languagemanager.h \ lineedit.h \ lineedit_p.h \ - networkaccessmanagerproxy.h \ - networkaccessmanagerproxy_p.h \ singleapplication.h \ squeezelabel.h \ - treesortfilterproxymodel.h \ - webpageproxy.h + treesortfilterproxymodel.h SOURCES += \ editlistview.cpp \ @@ -22,11 +19,9 @@ SOURCES += \ edittreeview.cpp \ languagemanager.cpp \ lineedit.cpp \ - networkaccessmanagerproxy.cpp \ singleapplication.cpp \ squeezelabel.cpp \ - treesortfilterproxymodel.cpp \ - webpageproxy.cpp + treesortfilterproxymodel.cpp win32 { HEADERS += explorerstyle.h diff --git a/src/utils/webpageproxy.cpp b/src/utils/webpageproxy.cpp deleted file mode 100644 index da8b1e64..00000000 --- a/src/utils/webpageproxy.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "webpageproxy.h" - -#include -#include - -#define ATTRIBUTE_ID QNetworkRequest::User + 100 - -WebPageProxy::WebPageProxy(QObject *parent) - : QWebPage(parent) -{ -} - -int WebPageProxy::pageAttributeId() -{ - return ATTRIBUTE_ID; -} - -void WebPageProxy::populateNetworkRequest(QNetworkRequest &request) -{ - QVariant variant = QVariant::fromValue((void *) this); - request.setAttribute((QNetworkRequest::Attribute)(pageAttributeId()), variant); -} - diff --git a/src/utils/webpageproxy.h b/src/utils/webpageproxy.h deleted file mode 100644 index c0e93a47..00000000 --- a/src/utils/webpageproxy.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef WEBPAGEPROXY_H -#define WEBPAGEPROXY_H - -#include -#include -#include - -class WebPageProxy : public QWebPage -{ - Q_OBJECT - -public: - WebPageProxy(QObject *parent = 0); - static int pageAttributeId(); - -protected: - friend class NetworkAccessManagerProxy; - virtual void populateNetworkRequest(QNetworkRequest &request); -}; - -#endif // WEBPAGEPROXY_H diff --git a/src/webpage.cpp b/src/webpage.cpp index f9a9432b..5d9decf4 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -23,12 +23,10 @@ #include "browserapplication.h" #include "downloadmanager.h" #include "historymanager.h" -#include "networkaccessmanager.h" #include "opensearchengine.h" #include "opensearchmanager.h" #include "tabwidget.h" #include "toolbarsearch.h" -#include "webpluginfactory.h" #include "webview.h" #include @@ -42,110 +40,19 @@ #include -WebPluginFactory *WebPage::s_webPluginFactory = 0; QString WebPage::s_userAgent; -JavaScriptExternalObject::JavaScriptExternalObject(QObject *parent) - : QObject(parent) -{ -} - -void JavaScriptExternalObject::AddSearchProvider(const QString &url) -{ - ToolbarSearch::openSearchManager()->addEngine(QUrl(url)); -} - -Q_DECLARE_METATYPE(OpenSearchEngine*) -JavaScriptEndorphinObject::JavaScriptEndorphinObject(QObject *parent) - : QObject(parent) -{ - static const char *translations[] = { - QT_TR_NOOP("Welcome to Endorphin!"), - QT_TR_NOOP("Endorphin Start"), - QT_TR_NOOP("Search!"), - QT_TR_NOOP("Search the web with"), - QT_TR_NOOP("Search results provided by"), - QT_TR_NOOP("About Endorphin") - }; - Q_UNUSED(translations); - - qRegisterMetaType("OpenSearchEngine*"); -} - -QString JavaScriptEndorphinObject::translate(const QString &string) -{ - QString translatedString = tr(string.toUtf8().constData()); - - // If the translation is the same as the original string - // it could not be translated. In that case - // try to translate using the QApplication domain - if (translatedString != string) - return translatedString; - else - return qApp->tr(string.toUtf8().constData()); -} - -QObject *JavaScriptEndorphinObject::currentEngine() const -{ - return ToolbarSearch::openSearchManager()->currentEngine(); -} - -QString JavaScriptEndorphinObject::searchUrl(const QString &string) const -{ - return QString::fromUtf8(ToolbarSearch::openSearchManager()->currentEngine()->searchUrl(string).toEncoded()); -} - - - -QString JavaScriptEndorphinObject::getSetting(const QString &string) -{ - QSettings settings; - return settings.value(string).toString(); -} - -int JavaScriptEndorphinObject::setSetting(const QString &string, const QString &value) -{ - QSettings settings; - settings.setValue(string, value); - return 0; -} - -int JavaScriptEndorphinObject::setSetting(const QString &string, const int &value) -{ - QSettings settings; - settings.setValue(string, value); - return 0; -} - WebPage::WebPage(QObject *parent) - : WebPageProxy(parent) + : QWebPage(parent) , m_openTargetBlankLinksIn(TabWidget::NewWindow) - , m_javaScriptExternalObject(0) - , m_javaScriptEndorphinObject(0) { - setPluginFactory(webPluginFactory()); - NetworkAccessManagerProxy *networkManagerProxy = new NetworkAccessManagerProxy(this); - networkManagerProxy->setWebPage(this); - networkManagerProxy->setPrimaryNetworkAccessManager(BrowserApplication::networkAccessManager()); - setNetworkAccessManager(networkManagerProxy); connect(this, SIGNAL(unsupportedContent(QNetworkReply *)), this, SLOT(handleUnsupportedContent(QNetworkReply *))); - connect(this, SIGNAL(frameCreated(QWebFrame *)), - this, SLOT(addExternalBinding(QWebFrame *))); - addExternalBinding(mainFrame()); loadSettings(); } WebPage::~WebPage() { - setNetworkAccessManager(0); -} - -WebPluginFactory *WebPage::webPluginFactory() -{ - if (!s_webPluginFactory) - s_webPluginFactory = new WebPluginFactory(BrowserApplication::instance()); - return s_webPluginFactory; } QList WebPage::linkedResources(const QString &relation) @@ -179,36 +86,6 @@ QList WebPage::linkedResources(const QString &relation) return resources; } -void WebPage::populateNetworkRequest(QNetworkRequest &request) -{ - if (request == lastRequest) { - request.setAttribute((QNetworkRequest::Attribute)(pageAttributeId() + 1), lastRequestType); - } - WebPageProxy::populateNetworkRequest(request); -} - -void WebPage::addExternalBinding(QWebFrame *frame) -{ - if (!m_javaScriptExternalObject) - m_javaScriptExternalObject = new JavaScriptExternalObject(this); - - if (frame == 0) { // called from QWebFrame::javaScriptWindowObjectCleared - frame = qobject_cast(sender()); - - if (frame->url().scheme() == QLatin1String("qrc")) { - - if (!m_javaScriptEndorphinObject) - m_javaScriptEndorphinObject = new JavaScriptEndorphinObject(this); - - frame->addToJavaScriptWindowObject(QLatin1String("endorphin"), m_javaScriptEndorphinObject); - } - } else { // called from QWebPage::frameCreated - connect(frame, SIGNAL(javaScriptWindowObjectCleared()), - this, SLOT(addExternalBinding())); - } - frame->addToJavaScriptWindowObject(QLatin1String("external"), m_javaScriptExternalObject); -} - QString WebPage::userAgent() { return s_userAgent; @@ -313,21 +190,6 @@ QWebPage *WebPage::createWindow(QWebPage::WebWindowType type) return 0; } -QObject *WebPage::createPlugin(const QString &classId, const QUrl &url, - const QStringList ¶mNames, const QStringList ¶mValues) -{ - Q_UNUSED(classId); - Q_UNUSED(url); - Q_UNUSED(paramNames); - Q_UNUSED(paramValues); -#if !defined(QT_NO_UITOOLS) - QUiLoader loader; - return loader.createWidget(classId, view()); -#else - return 0; -#endif -} - // The chromium guys have documented many examples of incompatibilities that // different browsers have when they mime sniff. // http://src.chromium.org/viewvc/chrome/trunk/src/net/base/mime_sniffer.cc diff --git a/src/webpage.h b/src/webpage.h index 439fe061..f528f4c3 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -20,7 +20,7 @@ #ifndef WEBPAGE_H #define WEBPAGE_H -#include "webpageproxy.h" +#include "QWebPage" #include "tabwidget.h" #include @@ -37,39 +37,8 @@ class WebPageLinkedResource class OpenSearchEngine; class QNetworkReply; -class WebPluginFactory; -// See https://developer.mozilla.org/en/adding_search_engines_from_web_pages -class JavaScriptExternalObject : public QObject -{ - Q_OBJECT - -public: - JavaScriptExternalObject(QObject *parent = 0); - -public slots: - void AddSearchProvider(const QString &url); -}; - -class JavaScriptEndorphinObject : public QObject -{ - Q_OBJECT - - Q_PROPERTY(QObject *currentEngine READ currentEngine) - -public: - JavaScriptEndorphinObject(QObject *parent = 0); - -public slots: - QString translate(const QString &string); - QObject *currentEngine() const; - QString searchUrl(const QString &string) const; - QString getSetting(const QString &string); - int setSetting(const QString &string, const int &value); - int setSetting(const QString &string, const QString &value); - -}; -class WebPage : public WebPageProxy +class WebPage : public QWebPage { Q_OBJECT @@ -82,7 +51,6 @@ class WebPage : public WebPageProxy void loadSettings(); - static WebPluginFactory *webPluginFactory(); QList linkedResources(const QString &relation = QString()); static QString userAgent(); @@ -92,21 +60,15 @@ class WebPage : public WebPageProxy QString userAgentForUrl(const QUrl &url) const; bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type); - QObject *createPlugin(const QString &classId, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); QWebPage *createWindow(QWebPage::WebWindowType type); protected slots: void handleUnsupportedContent(QNetworkReply *reply); - void addExternalBinding(QWebFrame *frame = 0); protected: - void populateNetworkRequest(QNetworkRequest &request); static QString s_userAgent; - static WebPluginFactory *s_webPluginFactory; TabWidget::OpenUrlIn m_openTargetBlankLinksIn; QUrl m_requestedUrl; - JavaScriptExternalObject *m_javaScriptExternalObject; - JavaScriptEndorphinObject *m_javaScriptEndorphinObject; private: QNetworkRequest lastRequest; diff --git a/src/webview.cpp b/src/webview.cpp index 605ff533..e9d105e3 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -64,10 +64,6 @@ #include "webview.h" -#include "adblockdialog.h" -#include "adblockmanager.h" -#include "adblockpage.h" -#include "autofillmanager.h" #include "addbookmarkdialog.h" #include "bookmarksmanager.h" #include "browserapplication.h" @@ -187,8 +183,6 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) menu->addAction(tr("&Save Image"), this, SLOT(downloadImageToDisk())); menu->addAction(tr("&Copy Image"), this, SLOT(copyImageToClipboard())); menu->addAction(tr("C&opy Image Location"), this, SLOT(copyImageLocationToClipboard()))->setData(r.imageUrl().toString()); - menu->addSeparator(); - menu->addAction(tr("Block Image"), this, SLOT(blockImage()))->setData(r.imageUrl().toString()); } if (!page()->selectedText().isEmpty()) { @@ -324,15 +318,6 @@ void WebView::copyImageLocationToClipboard() } } -void WebView::blockImage() -{ - if (QAction *action = qobject_cast(sender())) { - QString imageUrl = action->data().toString(); - AdBlockDialog *dialog = AdBlockManager::instance()->showDialog(); - dialog->addCustomRule(imageUrl); - } -} - void WebView::bookmarkLink() { if (QAction *action = qobject_cast(sender())) { @@ -516,8 +501,6 @@ void WebView::loadFinished() << "Url:" << url(); } m_progress = 0; - AdBlockManager::instance()->page()->applyRulesToPage(page()); - BrowserApplication::instance()->autoFillManager()->fill(page()); } void WebView::loadUrl(const QUrl &url, const QString &title) diff --git a/src/webview.h b/src/webview.h index fa722580..16914e34 100644 --- a/src/webview.h +++ b/src/webview.h @@ -130,7 +130,6 @@ private slots: void downloadImageToDisk(); void copyImageToClipboard(); void copyImageLocationToClipboard(); - void blockImage(); void bookmarkLink(); void searchRequested(QAction *action); void addSearchEngine(); From 9353a23a120f27a403242fa80e95a0621042f673 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 16:12:19 +0200 Subject: [PATCH 02/64] Remove WebKit Version from AboutDialog The current Endorphin can not be build with WebKit/WebEngien trunk, so the WebKit/Engine version is always the one that is included in te used QT version by default. --- src/aboutdialog.cpp | 4 ---- src/aboutdialog.ui | 26 -------------------------- 2 files changed, 30 deletions(-) diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index 036ea72f..64435ae1 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -27,9 +27,6 @@ #include #include -#include -#include - AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent) { @@ -38,7 +35,6 @@ AboutDialog::AboutDialog(QWidget *parent) logo->setPixmap(qApp->windowIcon().pixmap(128, 128)); name->setText(qApp->applicationName()); version->setText(qApp->applicationVersion()); - webkitVersion->setText(tr("WebKit version: %1").arg(qWebKitVersion())); connect(authorsButton, SIGNAL(clicked()), this, SLOT(authorsButtonClicked())); connect(licenseButton, SIGNAL(clicked()), diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui index 03523702..0847fd5d 100644 --- a/src/aboutdialog.ui +++ b/src/aboutdialog.ui @@ -85,32 +85,6 @@ - - - - - 0 - 0 - - - - - 11 - 50 - false - - - - - - - Qt::AlignCenter - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - From 757953f89e3b112190cd40f1814aac13c8ab0917 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 19:35:58 +0200 Subject: [PATCH 03/64] First version that compiles with WebEngine Many features are still missing, and the Tests haven't been ported yet. --- .../historymanager/tst_historymanager.cpp | 8 +- src/CMakeLists.txt | 8 +- src/bookmarks/bookmarksmanager.cpp | 2 +- src/browserapplication.cpp | 165 ++++++++++++++---- src/browsermainwindow.cpp | 68 +++++--- src/browsermainwindow.h | 11 +- src/clearprivatedata.cpp | 4 +- src/downloadmanager.cpp | 11 +- src/history/history.cpp | 3 +- src/history/history.h | 2 - src/history/historymanager.cpp | 14 +- src/history/historymanager.h | 3 +- src/settings.cpp | 18 +- src/sourceviewer.cpp | 16 +- src/tabwidget.cpp | 15 +- src/tabwidget.h | 6 +- src/toolbarsearch.cpp | 12 +- src/webactionmapper.cpp | 6 +- src/webactionmapper.h | 12 +- src/webpage.cpp | 61 +++---- src/webpage.h | 13 +- src/webview.cpp | 124 +++++++------ src/webview.h | 28 +-- src/webviewsearch.cpp | 25 +-- src/webviewsearch.h | 10 +- tools/placesimport/CMakeLists.txt | 8 +- 26 files changed, 404 insertions(+), 249 deletions(-) diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index 48d06671..a64da4b2 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -25,7 +25,7 @@ #include #include -#include +#include class tst_HistoryManager : public QObject { @@ -213,10 +213,10 @@ void tst_HistoryManager::addHistoryEntry_private() { SubHistory history; history.setHistory(HistoryList()); - QWebSettings *globalSettings = QWebSettings::globalSettings(); - globalSettings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); + QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); + globalSettings->setAttribute(QWebEngineSettings::PrivateBrowsingEnabled, true); history.prependHistoryEntry(HistoryEntry()); - globalSettings->setAttribute(QWebSettings::PrivateBrowsingEnabled, false); + globalSettings->setAttribute(QWebEngineSettings::PrivateBrowsingEnabled, false); QVERIFY(history.history().isEmpty()); } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1671ffb8..c00fe87a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,9 +20,9 @@ ${CMAKE_CURRENT_SOURCE_DIR}/utils find_package(Qt5Widgets REQUIRED) find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) -find_package(Qt5WebKit REQUIRED) +find_package(Qt5WebEngine REQUIRED) find_package(Qt5Network REQUIRED) -find_package(Qt5WebKitWidgets REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) find_package(Qt5PrintSupport REQUIRED) find_package(Qt5UiTools) find_package(Qt5LinguistTools REQUIRED) @@ -200,9 +200,9 @@ add_executable(endorphin ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FI qt5_use_modules(endorphin Widgets) qt5_use_modules(endorphin Core) qt5_use_modules(endorphin Gui) -qt5_use_modules(endorphin WebKit) +qt5_use_modules(endorphin WebEngine) qt5_use_modules(endorphin Network) -qt5_use_modules(endorphin WebKitWidgets) +qt5_use_modules(endorphin WebEngineWidgets) qt5_use_modules(endorphin PrintSupport) if(Qt5UiTools_FOUND) diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp index b270980f..4544766a 100644 --- a/src/bookmarks/bookmarksmanager.cpp +++ b/src/bookmarks/bookmarksmanager.cpp @@ -82,7 +82,7 @@ #include #include -#include +#include #include diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index a8aa9bf2..90df1f12 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -59,6 +59,55 @@ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ #include "browserapplication.h" @@ -79,7 +128,8 @@ #include #include #include -#include +#include +#include #include @@ -94,6 +144,42 @@ HistoryManager *BrowserApplication::s_historyManager = 0; BookmarksManager *BrowserApplication::s_bookmarksManager = 0; LanguageManager *BrowserApplication::s_languageManager = 0; + +static void setUserStyleSheet(QWebEngineProfile *profile, const QString &styleSheet, BrowserMainWindow *mainWindow = 0) +{ + Q_ASSERT(profile); + QString scriptName(QStringLiteral("userStyleSheet")); + QWebEngineScript script; + QList styleSheets = profile->scripts()->findScripts(scriptName); + if (!styleSheets.isEmpty()) + script = styleSheets.first(); + Q_FOREACH (const QWebEngineScript &s, styleSheets) + profile->scripts()->remove(s); + + if (script.isNull()) { + script.setName(scriptName); + script.setInjectionPoint(QWebEngineScript::DocumentReady); + script.setRunsOnSubFrames(true); + script.setWorldId(QWebEngineScript::ApplicationWorld); + } + QString source = QString::fromLatin1("(function() {"\ + "var css = document.getElementById(\"_qt_testBrowser_userStyleSheet\");"\ + "if (css == undefined) {"\ + " css = document.createElement(\"style\");"\ + " css.type = \"text/css\";"\ + " css.id = \"_qt_testBrowser_userStyleSheet\";"\ + " document.head.appendChild(css);"\ + "}"\ + "css.innerText = \"%1\";"\ + "})()").arg(styleSheet); + script.setSourceCode(source); + profile->scripts()->insert(script); + // run the script on the already loaded views + // this has to be deferred as it could mess with the storage initialization on startup + if (mainWindow) + QMetaObject::invokeMethod(mainWindow, "runScriptOnOpenViews", Qt::QueuedConnection, Q_ARG(QString, source)); +} + BrowserApplication::BrowserApplication(int &argc, char **argv) : SingleApplication(argc, argv) , quitting(false) @@ -138,8 +224,8 @@ BrowserApplication::BrowserApplication(int &argc, char **argv) QDesktopServices::setUrlHandler(QLatin1String("http"), this, "openUrl"); // Until QtWebkit defaults to 16 - QWebSettings::globalSettings()->setFontSize(QWebSettings::DefaultFontSize, 16); - QWebSettings::globalSettings()->setFontSize(QWebSettings::DefaultFixedFontSize, 16); + QWebEngineSettings::globalSettings()->setFontSize(QWebEngineSettings::DefaultFontSize, 16); + QWebEngineSettings::globalSettings()->setFontSize(QWebEngineSettings::DefaultFixedFontSize, 16); QSettings settings; settings.beginGroup(QLatin1String("sessions")); @@ -309,7 +395,7 @@ void BrowserApplication::postLaunch() QString directory = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); if (directory.isEmpty()) directory = QDir::homePath() + QLatin1String("/.") + QCoreApplication::applicationName(); - QWebSettings::setIconDatabasePath(directory); + // QWebEngineSettings::setIconDatabasePath(directory); loadSettings(); @@ -353,36 +439,37 @@ void BrowserApplication::loadSettings() QSettings settings; settings.beginGroup(QLatin1String("websettings")); - QWebSettings *defaultSettings = QWebSettings::globalSettings(); - QString standardFontFamily = defaultSettings->fontFamily(QWebSettings::StandardFont); - int standardFontSize = defaultSettings->fontSize(QWebSettings::DefaultFontSize); + QWebEngineSettings *defaultSettings = QWebEngineSettings::globalSettings(); + QWebEngineProfile *defaultProfile = QWebEngineProfile::defaultProfile(); + QString standardFontFamily = defaultSettings->fontFamily(QWebEngineSettings::StandardFont); + int standardFontSize = defaultSettings->fontSize(QWebEngineSettings::DefaultFontSize); QFont standardFont = QFont(standardFontFamily, standardFontSize); standardFont = settings.value(QLatin1String("standardFont"), standardFont).value(); - defaultSettings->setFontFamily(QWebSettings::StandardFont, standardFont.family()); - defaultSettings->setFontSize(QWebSettings::DefaultFontSize, standardFont.pointSize()); + defaultSettings->setFontFamily(QWebEngineSettings::StandardFont, standardFont.family()); + defaultSettings->setFontSize(QWebEngineSettings::DefaultFontSize, standardFont.pointSize()); int minimumFontSize = settings.value(QLatin1String("minimumFontSize"), - defaultSettings->fontSize(QWebSettings::MinimumFontSize)).toInt(); - defaultSettings->setFontSize(QWebSettings::MinimumFontSize, minimumFontSize); + defaultSettings->fontSize(QWebEngineSettings::MinimumFontSize)).toInt(); + defaultSettings->setFontSize(QWebEngineSettings::MinimumFontSize, minimumFontSize); - QString fixedFontFamily = defaultSettings->fontFamily(QWebSettings::FixedFont); - int fixedFontSize = defaultSettings->fontSize(QWebSettings::DefaultFixedFontSize); + QString fixedFontFamily = defaultSettings->fontFamily(QWebEngineSettings::FixedFont); + int fixedFontSize = defaultSettings->fontSize(QWebEngineSettings::DefaultFixedFontSize); QFont fixedFont = QFont(fixedFontFamily, fixedFontSize); fixedFont = settings.value(QLatin1String("fixedFont"), fixedFont).value(); - defaultSettings->setFontFamily(QWebSettings::FixedFont, fixedFont.family()); - defaultSettings->setFontSize(QWebSettings::DefaultFixedFontSize, fixedFont.pointSize()); + defaultSettings->setFontFamily(QWebEngineSettings::FixedFont, fixedFont.family()); + defaultSettings->setFontSize(QWebEngineSettings::DefaultFixedFontSize, fixedFont.pointSize()); - defaultSettings->setAttribute(QWebSettings::JavascriptCanOpenWindows, !(settings.value(QLatin1String("blockPopupWindows"), true).toBool())); - defaultSettings->setAttribute(QWebSettings::JavascriptEnabled, settings.value(QLatin1String("enableJavascript"), true).toBool()); - defaultSettings->setAttribute(QWebSettings::AutoLoadImages, settings.value(QLatin1String("enableImages"), true).toBool()); - defaultSettings->setAttribute(QWebSettings::LocalStorageEnabled, settings.value(QLatin1String("enableLocalStorage"), true).toBool()); - defaultSettings->setAttribute(QWebSettings::DeveloperExtrasEnabled, settings.value(QLatin1String("enableInspector"), false).toBool()); - defaultSettings->setAttribute(QWebSettings::DnsPrefetchEnabled, true); + defaultSettings->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, !(settings.value(QLatin1String("blockPopupWindows"), true).toBool())); + defaultSettings->setAttribute(QWebEngineSettings::JavascriptEnabled, settings.value(QLatin1String("enableJavascript"), true).toBool()); + defaultSettings->setAttribute(QWebEngineSettings::AutoLoadImages, settings.value(QLatin1String("enableImages"), true).toBool()); + defaultSettings->setAttribute(QWebEngineSettings::LocalStorageEnabled, settings.value(QLatin1String("enableLocalStorage"), true).toBool()); + //defaultSettings->setAttribute(QWebEngineSettings::DeveloperExtrasEnabled, settings.value(QLatin1String("enableInspector"), false).toBool()); + defaultSettings->setAttribute(QWebEngineSettings::DnsPrefetchEnabled, true); - QUrl url = settings.value(QLatin1String("userStyleSheet")).toUrl(); - defaultSettings->setUserStyleSheetUrl(url); + QString css = settings.value(QLatin1String("userStyleSheet")).toString(); + setUserStyleSheet(defaultProfile, css, mainWindow()); - int maximumPagesInCache = settings.value(QLatin1String("maximumPagesInCache"), 3).toInt(); - QWebSettings::globalSettings()->setMaximumPagesInCache(maximumPagesInCache); +// int maximumPagesInCache = settings.value(QLatin1String("maximumPagesInCache"), 3).toInt(); +// QWebEngineSettings::globalSettings()->setMaximumPagesInCache(maximumPagesInCache); settings.endGroup(); } @@ -427,10 +514,11 @@ void BrowserApplication::saveSession() settings.setValue(QLatin1String("restoring"), false); settings.endGroup(); - QWebSettings *globalSettings = QWebSettings::globalSettings(); - if (globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled)) +/* + QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); + if (globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) return; - +*/ clean(); settings.beginGroup(QLatin1String("sessions")); @@ -610,6 +698,7 @@ LanguageManager *BrowserApplication::languageManager() } QIcon BrowserApplication::icon(const QUrl &url) { + /* QIcon icon = QWebSettings::iconForUrl(url); if (!icon.isNull()) return icon.pixmap(16, 16); @@ -622,6 +711,8 @@ QIcon BrowserApplication::icon(const QUrl &url) return pixmap; } return icon; + */ + return QPixmap(":graphics/defaulticon.png"); } QString BrowserApplication::installedDataDirectory() @@ -647,24 +738,32 @@ QString BrowserApplication::dataFilePath(const QString &fileName) bool BrowserApplication::zoomTextOnly() { - return QWebSettings::globalSettings()->testAttribute(QWebSettings::ZoomTextOnly); + QSettings settings; + settings.beginGroup(QLatin1String("WebEngine")); + bool textOnly = settings.value(QLatin1String("zoomTextOnly")).toBool(); + settings.endGroup(); + return textOnly; } void BrowserApplication::setZoomTextOnly(bool textOnly) { - QWebSettings::globalSettings()->setAttribute(QWebSettings::ZoomTextOnly, textOnly); + QSettings settings; + settings.beginGroup(QLatin1String("WebEngine")); + settings.setValue(QLatin1String("zoomTextOnly"), textOnly); + settings.endGroup(); emit instance()->zoomTextOnlyChanged(textOnly); } bool BrowserApplication::isPrivate() { - return QWebSettings::globalSettings()->testAttribute(QWebSettings::PrivateBrowsingEnabled); + //return QWebEngineSettings::globalSettings()->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled); + return false; } void BrowserApplication::setPrivate(bool isPrivate) { - QWebSettings::globalSettings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, isPrivate); - emit instance()->privacyChanged(isPrivate); + //QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::PrivateBrowsingEnabled, isPrivate); + //emit instance()->privacyChanged(isPrivate); } Qt::MouseButtons BrowserApplication::eventMouseButtons() const diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index e2fe4e1f..ee8692dc 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -103,8 +103,7 @@ #include #include -#include -#include +#include #include @@ -190,8 +189,8 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) m_autoSaver, SLOT(changeOccurred())); connect(m_tabWidget, SIGNAL(geometryChangeRequested(const QRect &)), this, SLOT(geometryChangeRequested(const QRect &))); - connect(m_tabWidget, SIGNAL(printRequested(QWebFrame *)), - this, SLOT(printRequested(QWebFrame *))); + connect(m_tabWidget, SIGNAL(printRequested(QWebEnginePage *)), + this, SLOT(printRequested(QWebEnginePage *))); connect(m_tabWidget, SIGNAL(menuBarVisibilityChangeRequested(bool)), menuBar(), SLOT(setVisible(bool))); connect(m_tabWidget, SIGNAL(statusBarVisibilityChangeRequested(bool)), @@ -552,28 +551,28 @@ void BrowserMainWindow::setupMenu() menuBar()->addMenu(m_editMenu); m_editUndoAction = new QAction(m_editMenu); m_editUndoAction->setShortcuts(QKeySequence::Undo); - m_tabWidget->addWebAction(m_editUndoAction, QWebPage::Undo); + m_tabWidget->addWebAction(m_editUndoAction, QWebEnginePage::Undo); m_editMenu->addAction(m_editUndoAction); m_editRedoAction = new QAction(m_editMenu); m_editRedoAction->setShortcuts(QKeySequence::Redo); - m_tabWidget->addWebAction(m_editRedoAction, QWebPage::Redo); + m_tabWidget->addWebAction(m_editRedoAction, QWebEnginePage::Redo); m_editMenu->addAction(m_editRedoAction); m_editMenu->addSeparator(); m_editCutAction = new QAction(m_editMenu); m_editCutAction->setShortcuts(QKeySequence::Cut); - m_tabWidget->addWebAction(m_editCutAction, QWebPage::Cut); + m_tabWidget->addWebAction(m_editCutAction, QWebEnginePage::Cut); m_editMenu->addAction(m_editCutAction); m_editCopyAction = new QAction(m_editMenu); m_editCopyAction->setShortcuts(QKeySequence::Copy); - m_tabWidget->addWebAction(m_editCopyAction, QWebPage::Copy); + m_tabWidget->addWebAction(m_editCopyAction, QWebEnginePage::Copy); m_editMenu->addAction(m_editCopyAction); m_editPasteAction = new QAction(m_editMenu); m_editPasteAction->setShortcuts(QKeySequence::Paste); - m_tabWidget->addWebAction(m_editPasteAction, QWebPage::Paste); + m_tabWidget->addWebAction(m_editPasteAction, QWebEnginePage::Paste); m_editMenu->addAction(m_editPasteAction); m_editSelectAllAction = new QAction(m_editMenu); m_editSelectAllAction->setShortcuts(QKeySequence::SelectAll); - m_tabWidget->addWebAction(m_editSelectAllAction, QWebPage::SelectAll); + m_tabWidget->addWebAction(m_editSelectAllAction, QWebEnginePage::SelectAll); m_editMenu->addAction(m_editSelectAllAction); m_editMenu->addSeparator(); @@ -638,7 +637,7 @@ void BrowserMainWindow::setupMenu() shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Period)); shortcuts.append(Qt::Key_Escape); m_viewStopAction->setShortcuts(shortcuts); - m_tabWidget->addWebAction(m_viewStopAction, QWebPage::Stop); + m_tabWidget->addWebAction(m_viewStopAction, QWebEnginePage::Stop); m_viewMenu->addAction(m_viewStopAction); m_viewReloadAction = new QAction(m_viewMenu); @@ -646,7 +645,7 @@ void BrowserMainWindow::setupMenu() shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_R)); shortcuts.append(QKeySequence(Qt::Key_F5)); m_viewReloadAction->setShortcuts(shortcuts); - m_tabWidget->addWebAction(m_viewReloadAction, QWebPage::Reload); + m_tabWidget->addWebAction(m_viewReloadAction, QWebEnginePage::Reload); m_viewMenu->addAction(m_viewReloadAction); m_viewZoomInAction = new QAction(m_viewMenu); @@ -726,14 +725,14 @@ void BrowserMainWindow::setupMenu() QList historyActions; m_historyBackAction = new QAction(this); - m_tabWidget->addWebAction(m_historyBackAction, QWebPage::Back); + m_tabWidget->addWebAction(m_historyBackAction, QWebEnginePage::Back); m_historyBackAction->setShortcuts(QKeySequence::Back); #if !defined(Q_WS_X11) m_historyBackAction->setIconVisibleInMenu(false); #endif m_historyForwardAction = new QAction(this); - m_tabWidget->addWebAction(m_historyForwardAction, QWebPage::Forward); + m_tabWidget->addWebAction(m_historyForwardAction, QWebEnginePage::Forward); m_historyForwardAction->setShortcuts(QKeySequence::Forward); #if !defined(Q_WS_X11) m_historyForwardAction->setIconVisibleInMenu(false); @@ -888,7 +887,7 @@ void BrowserMainWindow::aboutToShowTextEncodingMenu() } codecs.sort(); - QString defaultTextEncoding = QWebSettings::globalSettings()->defaultTextEncoding(); + QString defaultTextEncoding = QWebEngineSettings::globalSettings()->defaultTextEncoding(); currentCodec = codecs.indexOf(defaultTextEncoding); QAction *defaultEncoding = m_viewTextEncodingMenu->addAction(tr("Default")); @@ -914,9 +913,9 @@ void BrowserMainWindow::viewTextEncoding(QAction *action) Q_ASSERT(action); QString codec = action->data().toString(); if (codec.isEmpty()) - QWebSettings::globalSettings()->setDefaultTextEncoding(QString()); + QWebEngineSettings::globalSettings()->setDefaultTextEncoding(QString()); else - QWebSettings::globalSettings()->setDefaultTextEncoding(codec); + QWebEngineSettings::globalSettings()->setDefaultTextEncoding(codec); } void BrowserMainWindow::retranslate() @@ -1213,17 +1212,17 @@ void BrowserMainWindow::filePrint() { if (!currentTab()) return; - printRequested(currentTab()->page()->mainFrame()); + printRequested(currentTab()->page()); } -void BrowserMainWindow::printRequested(QWebFrame *frame) +void BrowserMainWindow::printRequested(QWebEnginePage *page) { QPrinter printer; QPrintDialog dialog(&printer, this); dialog.setWindowTitle(tr("Print Document")); if (dialog.exec() != QDialog::Accepted) return; - frame->print(&printer); + page->print(&printer, [](bool a){}); } void BrowserMainWindow::privateBrowsing() @@ -1381,13 +1380,26 @@ void BrowserMainWindow::viewPageSource() return; QString title = currentTab()->title(); - QString markup = currentTab()->page()->mainFrame()->toHtml(); + QEventLoop loop; + connect(this, SIGNAL(notifyGotHTML()), &loop, SLOT(quit())); + currentTab()->page()->toHtml([this](const QVariant &v) + { + QString tmp = v.toString(); + this->gotHTML(tmp); + }); + loop.exec(); QUrl url = currentTab()->url(); SourceViewer *viewer = new SourceViewer(markup, title, url); viewer->setAttribute(Qt::WA_DeleteOnClose); viewer->show(); } +void BrowserMainWindow::gotHTML(QString &value) +{ + markup = value; + emit notifyGotHTML(); +} + void BrowserMainWindow::goHome() { QSettings settings; @@ -1410,7 +1422,8 @@ void BrowserMainWindow::clearPrivateData() void BrowserMainWindow::toggleInspector(bool enable) { - QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, enable); +/* + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::DeveloperExtrasEnabled, enable); if (enable) { int result = QMessageBox::question(this, tr("Web Inspector"), tr("The web inspector will only work correctly for pages that were loaded after enabling.\n" @@ -1420,6 +1433,7 @@ void BrowserMainWindow::toggleInspector(bool enable) m_tabWidget->reloadAllTabs(); } } + */ QSettings settings; settings.beginGroup(QLatin1String("websettings")); settings.setValue(QLatin1String("enableInspector"), enable); @@ -1487,10 +1501,10 @@ void BrowserMainWindow::aboutToShowBackMenu() m_historyBackMenu->clear(); if (!currentTab()) return; - QWebHistory *history = currentTab()->history(); + QWebEngineHistory *history = currentTab()->history(); int historyCount = history->count(); for (int i = history->backItems(historyCount).count() - 1; i >= 0; --i) { - QWebHistoryItem item = history->backItems(history->count()).at(i); + QWebEngineHistoryItem item = history->backItems(history->count()).at(i); QAction *action = new QAction(this); action->setData(-1*(historyCount - i - 1)); QIcon icon = BrowserApplication::instance()->icon(item.url()); @@ -1505,10 +1519,10 @@ void BrowserMainWindow::aboutToShowForwardMenu() m_historyForwardMenu->clear(); if (!currentTab()) return; - QWebHistory *history = currentTab()->history(); + QWebEngineHistory *history = currentTab()->history(); int historyCount = history->count(); for (int i = 0; i < history->forwardItems(history->count()).count(); ++i) { - QWebHistoryItem item = history->forwardItems(historyCount).at(i); + QWebEngineHistoryItem item = history->forwardItems(historyCount).at(i); QAction *action = new QAction(this); action->setData(historyCount - i); QIcon icon = BrowserApplication::instance()->icon(item.url()); @@ -1557,7 +1571,7 @@ void BrowserMainWindow::showWindow() void BrowserMainWindow::openActionUrl(QAction *action) { int offset = action->data().toInt(); - QWebHistory *history = currentTab()->history(); + QWebEngineHistory *history = currentTab()->history(); if (offset < 0) history->goToItem(history->backItems(-1*offset).first()); // back else if (offset > 0) diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index 68a270ce..326370a1 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -67,7 +67,7 @@ class AutoSaver; class BookmarksToolBar; -class QWebFrame; +class QWebEnginePage; class TabWidget; class ToolbarSearch; class WebView; @@ -164,9 +164,11 @@ private slots: void showWindow(); void swapFocus(); - void printRequested(QWebFrame *frame); + void printRequested(QWebEnginePage *page); void geometryChangeRequested(const QRect &geometry); + void gotHTML(QString &value); + private: void retranslate(); void loadDefaultState(); @@ -264,7 +266,12 @@ private slots: bool m_menuBarVisible; bool m_statusBarVisible; + QString markup; + friend class BrowserApplication; + +Q_SIGNALS: + void notifyGotHTML(); }; #endif // BROWSERMAINWINDOW_H diff --git a/src/clearprivatedata.cpp b/src/clearprivatedata.cpp index fe4a268f..fa6f8eb7 100644 --- a/src/clearprivatedata.cpp +++ b/src/clearprivatedata.cpp @@ -33,7 +33,7 @@ #include #include #include -#include +#include ClearPrivateData::ClearPrivateData(QWidget *parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint) @@ -108,7 +108,7 @@ void ClearPrivateData::accept() } if (m_favIcons->isChecked()) { - QWebSettings::clearIconDatabase(); + //QWebEngineSettings::clearIconDatabase(); } QDialog::accept(); } diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 563b2aa7..6f2c9f4e 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -81,7 +81,7 @@ #include -#include +#include //#define DOWNLOADMANAGER_DEBUG @@ -640,9 +640,14 @@ void DownloadManager::updateRow(DownloadItem *item) downloadsView->setRowHeight(row, qMax(oldHeight, item->minimumSizeHint().height())); bool remove = false; - QWebSettings *globalSettings = QWebSettings::globalSettings(); + /* + TODO: Fix for Private Browsing + + QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); if (!item->downloading() - && globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled)) + && globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) + */ + if (!item->downloading()) remove = true; if (item->downloadedSuccessfully() diff --git a/src/history/history.cpp b/src/history/history.cpp index 5045c899..a6ac791b 100644 --- a/src/history/history.cpp +++ b/src/history/history.cpp @@ -83,8 +83,7 @@ #include #include -#include -#include +#include #include diff --git a/src/history/history.h b/src/history/history.h index de064256..e496f35d 100644 --- a/src/history/history.h +++ b/src/history/history.h @@ -72,8 +72,6 @@ #include #include -#include - class HistoryManager; class HistoryModel : public QAbstractTableModel { diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index 937d5865..67e95c2c 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -71,8 +71,7 @@ #include #include #include -#include -#include +#include #include @@ -103,7 +102,7 @@ QString HistoryEntry::userTitle() const static const unsigned int HISTORY_VERSION = 23; HistoryManager::HistoryManager(QObject *parent) - : QWebHistoryInterface(parent) + : QObject(parent) , m_saveTimer(new AutoSaver(this)) , m_daysToExpire(30) , m_historyModel(0) @@ -122,9 +121,6 @@ HistoryManager::HistoryManager(QObject *parent) m_historyModel = new HistoryModel(this, this); m_historyFilterModel = new HistoryFilterModel(m_historyModel, this); m_historyTreeModel = new HistoryTreeModel(m_historyFilterModel, this); - - // QWebHistoryInterface will delete the history manager - QWebHistoryInterface::setDefaultInterface(this); } HistoryManager::~HistoryManager() @@ -220,9 +216,11 @@ void HistoryManager::checkForExpired() void HistoryManager::prependHistoryEntry(const HistoryEntry &item) { - QWebSettings *globalSettings = QWebSettings::globalSettings(); - if (globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled)) + /* + QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); + if (globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) return; + */ m_history.prepend(item); emit entryAdded(item); diff --git a/src/history/historymanager.h b/src/history/historymanager.h index 548ab6ab..11bef9b0 100644 --- a/src/history/historymanager.h +++ b/src/history/historymanager.h @@ -67,7 +67,6 @@ #include #include #include -#include class HistoryEntry { @@ -97,7 +96,7 @@ class AutoSaver; class HistoryModel; class HistoryFilterModel; class HistoryTreeModel; -class HistoryManager : public QWebHistoryInterface +class HistoryManager : public QObject { Q_OBJECT Q_PROPERTY(int daysToExpire READ daysToExpire WRITE setDaysToExpire) diff --git a/src/settings.cpp b/src/settings.cpp index 2dc34946..eac420af 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -97,23 +97,23 @@ SettingsDialog::SettingsDialog(QWidget *parent) void SettingsDialog::loadDefaults() { - QWebSettings *defaultSettings = QWebSettings::globalSettings(); - QString standardFontFamily = defaultSettings->fontFamily(QWebSettings::StandardFont); - int standardFontSize = defaultSettings->fontSize(QWebSettings::DefaultFontSize); + QWebEngineSettings *defaultSettings = QWebEngineSettings::globalSettings(); + QString standardFontFamily = defaultSettings->fontFamily(QWebEngineSettings::StandardFont); + int standardFontSize = defaultSettings->fontSize(QWebEngineSettings::DefaultFontSize); m_standardFont = QFont(standardFontFamily, standardFontSize); standardLabel->setText(QString(QLatin1String("%1 %2")).arg(m_standardFont.family()).arg(m_standardFont.pointSize())); - QString fixedFontFamily = defaultSettings->fontFamily(QWebSettings::FixedFont); - int fixedFontSize = defaultSettings->fontSize(QWebSettings::DefaultFixedFontSize); + QString fixedFontFamily = defaultSettings->fontFamily(QWebEngineSettings::FixedFont); + int fixedFontSize = defaultSettings->fontSize(QWebEngineSettings::DefaultFixedFontSize); m_fixedFont = QFont(fixedFontFamily, fixedFontSize); fixedLabel->setText(QString(QLatin1String("%1 %2")).arg(m_fixedFont.family()).arg(m_fixedFont.pointSize())); downloadsLocation->setText(QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)); - blockPopupWindows->setChecked(!defaultSettings->testAttribute(QWebSettings::JavascriptCanOpenWindows)); - enableJavascript->setChecked(defaultSettings->testAttribute(QWebSettings::JavascriptEnabled)); - enableImages->setChecked(defaultSettings->testAttribute(QWebSettings::AutoLoadImages)); - enableLocalStorage->setChecked(defaultSettings->testAttribute(QWebSettings::LocalStorageEnabled)); + blockPopupWindows->setChecked(!defaultSettings->testAttribute(QWebEngineSettings::JavascriptCanOpenWindows)); + enableJavascript->setChecked(defaultSettings->testAttribute(QWebEngineSettings::JavascriptEnabled)); + enableImages->setChecked(defaultSettings->testAttribute(QWebEngineSettings::AutoLoadImages)); + enableLocalStorage->setChecked(defaultSettings->testAttribute(QWebEngineSettings::LocalStorageEnabled)); minimFontSizeCheckBox->setChecked(false); minimumFontSizeSpinBox->setValue(9); diff --git a/src/sourceviewer.cpp b/src/sourceviewer.cpp index 222675e0..aae56499 100644 --- a/src/sourceviewer.cpp +++ b/src/sourceviewer.cpp @@ -28,8 +28,7 @@ #include #include #include -#include -#include +#include #include #include "browserapplication.h" @@ -93,15 +92,20 @@ SourceViewer::~SourceViewer() void SourceViewer::loadingFinished() { - QWebPage page; + QWebEnginePage page; QByteArray response = m_reply->readAll(); - page.mainFrame()->setContent(response, QString(), m_reply->request().url()); + QEventLoop loop; + connect(&page, &QWebEnginePage::loadFinished, &loop, &QEventLoop::quit); + page.setContent(response, QString(), m_reply->request().url()); + loop.exec(); +/* + If original request was POST or a different problem is there, fall + back to modified version of QWebFrame.toHtml() - /* If original request was POST or a different problem is there, fall - back to modified version of QWebFrame.toHtml() */ if (page.mainFrame()->toHtml() != m_source) m_edit->setPlainText(m_source); else +*/ m_edit->setPlainText(QLatin1String(response)); m_reply->close(); diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 008c49e6..55471b0e 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -92,7 +92,7 @@ #include #include #include -#include +#include #include @@ -233,7 +233,7 @@ void TabWidget::moveTab(int fromIndex, int toIndex) m_locationBars->insertWidget(toIndex, lineEdit); } -void TabWidget::addWebAction(QAction *action, QWebPage::WebAction webAction) +void TabWidget::addWebAction(QAction *action, QWebEnginePage::WebAction webAction) { if (!action) return; @@ -412,8 +412,8 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) this, SLOT(loadUrl(const QUrl&, TabWidget::OpenUrlIn))); connect(webView->page(), SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested())); - connect(webView->page(), SIGNAL(printRequested(QWebFrame *)), - this, SIGNAL(printRequested(QWebFrame *))); + connect(webView->page(), SIGNAL(printRequested(QWebEnginePage *)), + this, SIGNAL(printRequested(QWebEnginePage *))); connect(webView->page(), SIGNAL(geometryChangeRequested(const QRect &)), this, SLOT(geometryChangeRequestedCheck(const QRect &))); connect(webView->page(), SIGNAL(menuBarVisibilityChangeRequested(bool)), @@ -560,6 +560,7 @@ void TabWidget::closeTab(int index) WebView *tab = webView(index); if (tab && !tab->url().isEmpty()) { + /* if (tab->isModified()) { QMessageBox closeConfirmation(tab); closeConfirmation.setWindowFlags(Qt::Sheet); @@ -573,6 +574,7 @@ void TabWidget::closeTab(int index) if (closeConfirmation.exec() == QMessageBox::No) return; } + */ hasFocus = tab->hasFocus(); m_recentlyClosedTabsAction->setEnabled(true); @@ -645,9 +647,10 @@ void TabWidget::webViewLoadProgress(int progress) || index < 0) return; - double totalBytes = (double) webView->webPage()->totalBytes() / 1024; + //double totalBytes = (double) webView->webPage()->totalBytes() / 1024; - QString message = tr("Loading %1% (%2 %3)...").arg(progress).arg(totalBytes, 0, 'f', 2).arg(QLatin1String("kB")); + //QString message = tr("Loading %1% (%2 %3)...").arg(progress).arg(totalBytes, 0, 'f', 2).arg(QLatin1String("kB")); + QString message = tr("Loading ..."); emit showStatusBarMessage(message); } diff --git a/src/tabwidget.h b/src/tabwidget.h index 644d23be..b19a13bd 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -65,7 +65,7 @@ #include -#include +#include #include QT_BEGIN_NAMESPACE @@ -107,7 +107,7 @@ class TabWidget : public QTabWidget void menuBarVisibilityChangeRequested(bool visible); void statusBarVisibilityChangeRequested(bool visible); void toolBarVisibilityChangeRequested(bool visible); - void printRequested(QWebFrame *frame); + void printRequested(QWebEnginePage *page); public: enum OpenUrlIn { @@ -124,7 +124,7 @@ class TabWidget : public QTabWidget void loadSettings(); TabBar *tabBar() { return m_tabBar; } void clear(); - void addWebAction(QAction *action, QWebPage::WebAction webAction); + void addWebAction(QAction *action, QWebEnginePage::WebAction webAction); QAction *newTabAction() const; QAction *closeTabAction() const; diff --git a/src/toolbarsearch.cpp b/src/toolbarsearch.cpp index 81ef254a..0016a743 100644 --- a/src/toolbarsearch.cpp +++ b/src/toolbarsearch.cpp @@ -81,7 +81,7 @@ #include #include #include -#include +#include #include OpenSearchManager *ToolbarSearch::s_openSearchManager = 0; @@ -253,8 +253,8 @@ void ToolbarSearch::searchNow() QString searchText = text(); - QWebSettings *globalSettings = QWebSettings::globalSettings(); - if (!globalSettings->testAttribute(QWebSettings::PrivateBrowsingEnabled)) { +// QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); +// if (!globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) { QStringList newList = m_recentSearches; if (newList.contains(searchText)) newList.removeAt(newList.indexOf(searchText)); @@ -264,7 +264,7 @@ void ToolbarSearch::searchNow() m_recentSearches = newList; m_autosaver->changeOccurred(); - } +// } QUrl searchUrl = engine->searchUrl(searchText); TabWidget::OpenUrlIn tab = TabWidget::CurrentTab; @@ -316,7 +316,7 @@ void ToolbarSearch::showEnginesMenu() action->setChecked(true); } } - +/* WebView *webView = BrowserMainWindow::parentWindow(this)->currentTab(); QList engines = webView->webPage()->linkedResources(QLatin1String("search")); @@ -342,7 +342,7 @@ void ToolbarSearch::showEnginesMenu() action->setData(url); action->setIcon(webView->icon()); } - +*/ menu.addSeparator(); if (BrowserMainWindow *window = BrowserMainWindow::parentWindow(this)) menu.addAction(window->searchManagerAction()); diff --git a/src/webactionmapper.cpp b/src/webactionmapper.cpp index 8ea6da44..fbfef366 100644 --- a/src/webactionmapper.cpp +++ b/src/webactionmapper.cpp @@ -64,7 +64,7 @@ #include -WebActionMapper::WebActionMapper(QAction *root, QWebPage::WebAction webAction, QObject *parent) +WebActionMapper::WebActionMapper(QAction *root, QWebEnginePage::WebAction webAction, QObject *parent) : QObject(parent) , m_currentParent(0) , m_root(root) @@ -94,7 +94,7 @@ void WebActionMapper::addChild(QAction *action) connect(action, SIGNAL(changed()), this, SLOT(childChanged())); } -QWebPage::WebAction WebActionMapper::webAction() const +QWebEnginePage::WebAction WebActionMapper::webAction() const { return m_webAction; } @@ -119,7 +119,7 @@ void WebActionMapper::childChanged() } } -void WebActionMapper::updateCurrent(QWebPage *currentParent) +void WebActionMapper::updateCurrent(QWebEnginePage *currentParent) { if (m_currentParent) disconnect(m_currentParent, SIGNAL(destroyed(QObject *)), diff --git a/src/webactionmapper.h b/src/webactionmapper.h index 9d4b2ed7..5e73f527 100644 --- a/src/webactionmapper.h +++ b/src/webactionmapper.h @@ -63,7 +63,7 @@ #ifndef WEBACTIONMAPPER_H #define WEBACTIONMAPPER_H -#include +#include QT_BEGIN_NAMESPACE class QAction; @@ -81,10 +81,10 @@ class WebActionMapper : public QObject Q_OBJECT public: - WebActionMapper(QAction *root, QWebPage::WebAction webAction, QObject *parent); - QWebPage::WebAction webAction() const; + WebActionMapper(QAction *root, QWebEnginePage::WebAction webAction, QObject *parent); + QWebEnginePage::WebAction webAction() const; void addChild(QAction *action); - void updateCurrent(QWebPage *currentParent); + void updateCurrent(QWebEnginePage *currentParent); private slots: void rootTriggered(); @@ -93,9 +93,9 @@ private slots: void currentDestroyed(); private: - QWebPage *m_currentParent; + QWebEnginePage *m_currentParent; QAction *m_root; - QWebPage::WebAction m_webAction; + QWebEnginePage::WebAction m_webAction; }; #endif // WEBACTIONMAPPER_H diff --git a/src/webpage.cpp b/src/webpage.cpp index 5d9decf4..bc1b6405 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -35,15 +35,14 @@ #include #include #include -#include #include -#include +#include QString WebPage::s_userAgent; WebPage::WebPage(QObject *parent) - : QWebPage(parent) + : QWebEnginePage(parent) , m_openTargetBlankLinksIn(TabWidget::NewWindow) { connect(this, SIGNAL(unsupportedContent(QNetworkReply *)), @@ -54,7 +53,7 @@ WebPage::WebPage(QObject *parent) WebPage::~WebPage() { } - +/* QList WebPage::linkedResources(const QString &relation) { QList resources; @@ -85,7 +84,7 @@ QList WebPage::linkedResources(const QString &relation) return resources; } - +*/ QString WebPage::userAgent() { return s_userAgent; @@ -108,25 +107,31 @@ void WebPage::setUserAgent(const QString &userAgent) QString WebPage::userAgentForUrl(const QUrl &url) const { + if (s_userAgent.isEmpty()) - s_userAgent = QWebPage::userAgentForUrl(url); + //s_userAgent = QWebEnginePage::userAgentForUrl(url); + s_userAgent = ""; return s_userAgent; } +/* bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) +*/ +bool WebPage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame) { +/* lastRequest = request; lastRequestType = type; - - QString scheme = request.url().scheme(); +*/ + QString scheme = url.scheme(); if (scheme == QLatin1String("mailto") || scheme == QLatin1String("ftp")) { - BrowserApplication::instance()->askDesktopToOpenUrl(request.url()); + BrowserApplication::instance()->askDesktopToOpenUrl(url); return false; } - - if (type == QWebPage::NavigationTypeFormResubmitted) { +/* + if (type == QWebEnginePage::NavigationTypeFormResubmitted) { QMessageBox::StandardButton button = QMessageBox::warning(view(), tr("Resending POST request"), tr("In order to display the site, the request along with all the data must be sent once again, " "which may lead to some unexpected behaviour of the site e.g. the same action might be " @@ -134,33 +139,33 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r if (button != QMessageBox::Yes) return false; } - - TabWidget::OpenUrlIn openIn = frame ? TabWidget::CurrentTab : TabWidget::NewWindow; +*/ + TabWidget::OpenUrlIn openIn = isMainFrame ? TabWidget::CurrentTab : TabWidget::NewWindow; openIn = TabWidget::modifyWithUserBehavior(openIn); // handle the case where we want to do something different then - // what qwebpage would do + // what QWebEnginePage would do if (openIn == TabWidget::NewSelectedTab || openIn == TabWidget::NewNotSelectedTab - || (frame && openIn == TabWidget::NewWindow)) { + || (openIn == TabWidget::NewWindow)) { if (WebView *webView = qobject_cast(view())) { TabWidget *tabWidget = webView->tabWidget(); if (tabWidget) { WebView *newView = tabWidget->getView(openIn, webView); - QWebPage *page = 0; + QWebEnginePage *page = 0; if (newView) page = newView->page(); - if (page && page->mainFrame()) - page->mainFrame()->load(request); + if (page) + page->load(url); } } return false; } - bool accepted = QWebPage::acceptNavigationRequest(frame, request, type); - if (accepted && frame == mainFrame()) { - m_requestedUrl = request.url(); - emit aboutToLoadUrl(request.url()); + bool accepted = QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); + if (accepted && isMainFrame) { + m_requestedUrl = url; + emit aboutToLoadUrl(url); } return accepted; @@ -176,7 +181,7 @@ void WebPage::loadSettings() s_userAgent = settings.value(QLatin1String("userAgent")).toString(); } -QWebPage *WebPage::createWindow(QWebPage::WebWindowType type) +QWebEnginePage *WebPage::createWindow(QWebEnginePage::WebWindowType type) { Q_UNUSED(type); if (WebView *webView = qobject_cast(view())) { @@ -255,15 +260,11 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) if (replyUrl.isEmpty() || replyUrl != m_requestedUrl) return; - QWebFrame *notFoundFrame = mainFrame(); - if (!notFoundFrame) - return; - if (reply->header(QNetworkRequest::ContentTypeHeader).toString().isEmpty()) { // do evil QByteArray data = reply->readAll(); if (contentSniff(data)) { - notFoundFrame->setHtml(QLatin1String(data), replyUrl); + setHtml(QLatin1String(data), replyUrl); return; } } @@ -287,8 +288,8 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) tr("Check the address for errors such as ww.example.com instead of www.example.com"), tr("If the address is correct, try checking the network connection."), tr("If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network.")); - notFoundFrame->setHtml(html, replyUrl); + setHtml(html, replyUrl); // Don't put error pages to the history. - BrowserApplication::instance()->historyManager()->removeHistoryEntry(replyUrl, notFoundFrame->title()); +// BrowserApplication::instance()->historyManager()->removeHistoryEntry(replyUrl, notFoundFrame->title()); } diff --git a/src/webpage.h b/src/webpage.h index f528f4c3..0623cb94 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -20,7 +20,7 @@ #ifndef WEBPAGE_H #define WEBPAGE_H -#include "QWebPage" +#include "QWebEnginePage" #include "tabwidget.h" #include @@ -38,7 +38,7 @@ class WebPageLinkedResource class OpenSearchEngine; class QNetworkReply; -class WebPage : public QWebPage +class WebPage : public QWebEnginePage { Q_OBJECT @@ -51,16 +51,19 @@ class WebPage : public QWebPage void loadSettings(); - QList linkedResources(const QString &relation = QString()); +// QList linkedResources(const QString &relation = QString()); static QString userAgent(); static void setUserAgent(const QString &userAgent); protected: QString userAgentForUrl(const QUrl &url) const; +/* bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type); - QWebPage *createWindow(QWebPage::WebWindowType type); +*/ + bool acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame); + QWebEnginePage *createWindow(QWebEnginePage::WebWindowType type); protected slots: void handleUnsupportedContent(QNetworkReply *reply); @@ -72,7 +75,7 @@ protected slots: private: QNetworkRequest lastRequest; - QWebPage::NavigationType lastRequestType; + QWebEnginePage::NavigationType lastRequestType; }; diff --git a/src/webview.cpp b/src/webview.cpp index e9d105e3..60e8c233 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -80,27 +80,28 @@ #include #include #include -#include #include #include #include #include #include -#include #include #include #include +#include +#include + WebView::WebView(QWidget *parent) - : QWebView(parent) + : QWebEngineView(parent) , m_progress(0) , m_currentZoom(100) , m_page(new WebPage(this)) - , m_enableAccessKeys(true) - , m_accessKeysPressed(false) +// , m_enableAccessKeys(true) +// , m_accessKeysPressed(false) { setPage(m_page); QPalette p; @@ -116,28 +117,32 @@ WebView::WebView(QWidget *parent) this, SLOT(downloadRequested(const QNetworkRequest &))); connect(BrowserApplication::instance(), SIGNAL(zoomTextOnlyChanged(bool)), this, SLOT(applyZoom())); - page()->setForwardUnsupportedContent(true); +// page()->setForwardUnsupportedContent(true); setAcceptDrops(true); // the zoom values (in percent) are chosen to be like in Mozilla Firefox 3 m_zoomLevels << 30 << 50 << 67 << 80 << 90; m_zoomLevels << 100; m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300; +/* connect(m_page, SIGNAL(loadStarted()), this, SLOT(hideAccessKeys())); connect(m_page, SIGNAL(scrollRequested(int, int, const QRect &)), this, SLOT(hideAccessKeys())); +*/ loadSettings(); } void WebView::loadSettings() { + /* QSettings settings; settings.beginGroup(QLatin1String("WebView")); m_enableAccessKeys = settings.value(QLatin1String("enableAccessKeys"), m_enableAccessKeys).toBool(); if (!m_enableAccessKeys) hideAccessKeys(); + */ m_page->loadSettings(); } @@ -156,38 +161,36 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) { QMenu *menu = new QMenu(this); - QWebHitTestResult r = page()->mainFrame()->hitTestContent(event->pos()); - - if (!r.linkUrl().isEmpty()) { + if (!page()->contextMenuData().linkUrl().isEmpty()) { QAction *newWindowAction = menu->addAction(tr("Open in New &Window"), this, SLOT(openActionUrlInNewWindow())); - newWindowAction->setData(r.linkUrl()); + newWindowAction->setData(page()->contextMenuData().linkUrl()); QAction *newTabAction = menu->addAction(tr("Open in New &Tab"), this, SLOT(openActionUrlInNewTab())); - newTabAction->setData(r.linkUrl()); + newTabAction->setData(page()->contextMenuData().linkUrl()); menu->addSeparator(); menu->addAction(tr("Save Lin&k"), this, SLOT(downloadLinkToDisk())); - menu->addAction(tr("&Bookmark This Link"), this, SLOT(bookmarkLink()))->setData(r.linkUrl()); + menu->addAction(tr("&Bookmark This Link"), this, SLOT(bookmarkLink()))->setData(page()->contextMenuData().linkUrl()); menu->addSeparator(); if (!page()->selectedText().isEmpty()) - menu->addAction(pageAction(QWebPage::Copy)); + menu->addAction(pageAction(QWebEnginePage::Copy)); menu->addAction(tr("&Copy Link Location"), this, SLOT(copyLinkToClipboard())); } - if (!r.imageUrl().isEmpty()) { + if (page()->contextMenuData().mediaType() == QWebEngineContextMenuData::MediaTypeImage) { if (!menu->isEmpty()) menu->addSeparator(); QAction *newWindowAction = menu->addAction(tr("Open Image in New &Window"), this, SLOT(openActionUrlInNewWindow())); - newWindowAction->setData(r.imageUrl()); + newWindowAction->setData(page()->contextMenuData().mediaUrl()); QAction *newTabAction = menu->addAction(tr("Open Image in New &Tab"), this, SLOT(openActionUrlInNewTab())); - newTabAction->setData(r.imageUrl()); + newTabAction->setData(page()->contextMenuData().mediaUrl()); menu->addSeparator(); menu->addAction(tr("&Save Image"), this, SLOT(downloadImageToDisk())); menu->addAction(tr("&Copy Image"), this, SLOT(copyImageToClipboard())); - menu->addAction(tr("C&opy Image Location"), this, SLOT(copyImageLocationToClipboard()))->setData(r.imageUrl().toString()); + menu->addAction(tr("C&opy Image Location"), this, SLOT(copyImageLocationToClipboard()))->setData(page()->contextMenuData().mediaUrl().toString()); } if (!page()->selectedText().isEmpty()) { if (menu->isEmpty()) { - menu->addAction(pageAction(QWebPage::Copy)); + menu->addAction(pageAction(QWebEnginePage::Copy)); } else { menu->addSeparator(); } @@ -204,13 +207,13 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) connect(searchMenu, SIGNAL(triggered(QAction *)), this, SLOT(searchRequested(QAction *))); } - +/* QWebElement element = r.element(); if (!element.isNull() && element.tagName().toLower() == QLatin1String("input") && element.attribute(QLatin1String("type"), QLatin1String("text")) == QLatin1String("text")) { if (menu->isEmpty()) { - menu->addAction(pageAction(QWebPage::Copy)); + menu->addAction(pageAction(QWebEnginePage::Copy)); } else { menu->addSeparator(); } @@ -219,13 +222,15 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) variant.setValue(element); menu->addAction(tr("Add to the toolbar search"), this, SLOT(addSearchEngine()))->setData(variant); } - +*/ if (menu->isEmpty()) { delete menu; menu = page()->createStandardContextMenu(); } else { - if (page()->settings()->testAttribute(QWebSettings::DeveloperExtrasEnabled)) - menu->addAction(pageAction(QWebPage::InspectElement)); +/* + if (page()->settings()->testAttribute(QWebEngineSettings::DeveloperExtrasEnabled)) + menu->addAction(pageAction(QWebEnginePage::InspectElement)); +*/ } if (!menu->isEmpty()) { @@ -240,7 +245,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) } delete menu; - QWebView::contextMenuEvent(event); + QWebEngineView::contextMenuEvent(event); } void WebView::wheelEvent(QWheelEvent *event) @@ -253,62 +258,60 @@ void WebView::wheelEvent(QWheelEvent *event) event->accept(); return; } - QWebView::wheelEvent(event); + QWebEngineView::wheelEvent(event); } void WebView::resizeEvent(QResizeEvent *event) { +/* int offset = event->size().height() - event->oldSize().height(); int currentValue = page()->mainFrame()->scrollBarValue(Qt::Vertical); setUpdatesEnabled(false); page()->mainFrame()->setScrollBarValue(Qt::Vertical, currentValue - offset); setUpdatesEnabled(true); - QWebView::resizeEvent(event); +*/ + QWebEngineView::resizeEvent(event); } void WebView::downloadLinkToDisk() { - pageAction(QWebPage::DownloadLinkToDisk)->trigger(); + pageAction(QWebEnginePage::DownloadLinkToDisk)->trigger(); } void WebView::copyLinkToClipboard() { - pageAction(QWebPage::CopyLinkToClipboard)->trigger(); + pageAction(QWebEnginePage::CopyLinkToClipboard)->trigger(); } void WebView::openActionUrlInNewTab() { if (QAction *action = qobject_cast(sender())) { - QWebPage *page = tabWidget()->getView(TabWidget::NewNotSelectedTab, this)->page(); - QNetworkRequest request(action->data().toUrl()); - request.setRawHeader("Referer", url().toEncoded()); - page->mainFrame()->load(request); + QWebEnginePage *page = tabWidget()->getView(TabWidget::NewNotSelectedTab, this)->page(); + page->load(action->data().toUrl()); } } void WebView::openActionUrlInNewWindow() { if (QAction *action = qobject_cast(sender())) { - QWebPage *page = tabWidget()->getView(TabWidget::NewWindow, this)->page(); - QNetworkRequest request(action->data().toUrl()); - request.setRawHeader("Referer", url().toEncoded()); - page->mainFrame()->load(request); + QWebEnginePage *page = tabWidget()->getView(TabWidget::NewWindow, this)->page(); + page->load(action->data().toUrl()); } } void WebView::openImageInNewWindow() { - pageAction(QWebPage::OpenImageInNewWindow)->trigger(); + //pageAction(QWebEnginePage::OpenImageInNewWindow)->trigger(); } void WebView::downloadImageToDisk() { - pageAction(QWebPage::DownloadImageToDisk)->trigger(); + pageAction(QWebEnginePage::DownloadImageToDisk)->trigger(); } void WebView::copyImageToClipboard() { - pageAction(QWebPage::CopyImageToClipboard)->trigger(); + pageAction(QWebEnginePage::CopyImageToClipboard)->trigger(); } void WebView::copyImageLocationToClipboard() @@ -341,7 +344,7 @@ void WebView::searchRequested(QAction *action) emit search(engine->searchUrl(searchText), TabWidget::NewSelectedTab); } } - +/* void WebView::addSearchEngine() { QAction *action = qobject_cast(sender()); @@ -436,7 +439,7 @@ void WebView::addSearchEngine() ToolbarSearch::openSearchManager()->addEngine(engine); } - +*/ void WebView::setProgress(int progress) { m_progress = progress; @@ -507,7 +510,13 @@ void WebView::loadUrl(const QUrl &url, const QString &title) { if (url.scheme() == QLatin1String("javascript")) { QString scriptSource = QUrl::fromPercentEncoding(url.toString(Q_FLAGS(QUrl::TolerantMode|QUrl::RemoveScheme)).toLatin1()); - QVariant result = page()->mainFrame()->evaluateJavaScript(scriptSource); + QEventLoop loop; + QObject::connect(this, SIGNAL(notifyRanJavaScript()), &loop, SLOT(quit())); + page()->runJavaScript(scriptSource, [this](const QVariant &v) + { + this->ranJavaScript(); + }); + loop.exec(); return; } m_initialUrl = url; @@ -528,6 +537,11 @@ void WebView::loadUrl(const QUrl &url, const QString &title) load(newurl); } +void WebView::ranJavaScript() +{ + emit notifyRanJavaScript(); +} + QString WebView::lastStatusBarText() const { return m_statusBarText; @@ -535,7 +549,7 @@ QString WebView::lastStatusBarText() const QUrl WebView::url() const { - QUrl url = QWebView::url(); + QUrl url = QWebEngineView::url(); if (!url.isEmpty()) return url; @@ -555,7 +569,7 @@ void WebView::mousePressEvent(QMouseEvent *event) pageAction(WebPage::Forward)->trigger(); break; default: - QWebView::mousePressEvent(event); + QWebEngineView::mousePressEvent(event); break; } } @@ -578,13 +592,13 @@ void WebView::dragMoveEvent(QDragMoveEvent *event) } } if (!event->isAccepted()) { - QWebView::dragMoveEvent(event); + QWebEngineView::dragMoveEvent(event); } } void WebView::dropEvent(QDropEvent *event) { - QWebView::dropEvent(event); + QWebEngineView::dropEvent(event); if (!event->isAccepted() && event->source() != this && event->possibleActions() & Qt::CopyAction) { @@ -628,6 +642,7 @@ void WebView::downloadRequested(const QNetworkRequest &request) void WebView::keyPressEvent(QKeyEvent *event) { + /* if (m_enableAccessKeys) { m_accessKeysPressed = (event->modifiers() == Qt::ControlModifier && event->key() == Qt::Key_Control); @@ -642,9 +657,10 @@ void WebView::keyPressEvent(QKeyEvent *event) QTimer::singleShot(300, this, SLOT(accessKeyShortcut())); } } - QWebView::keyPressEvent(event); + */ + QWebEngineView::keyPressEvent(event); } - +/* void WebView::accessKeyShortcut() { if (!hasFocus() @@ -658,23 +674,28 @@ void WebView::accessKeyShortcut() } m_accessKeysPressed = false; } - +*/ void WebView::keyReleaseEvent(QKeyEvent *event) { +/* if (m_enableAccessKeys) m_accessKeysPressed = event->key() == Qt::Key_Control; - QWebView::keyReleaseEvent(event); +*/ + QWebEngineView::keyReleaseEvent(event); } void WebView::focusOutEvent(QFocusEvent *event) { +/* if (m_accessKeysPressed) { hideAccessKeys(); m_accessKeysPressed = false; } - QWebView::focusOutEvent(event); +*/ + QWebEngineView::focusOutEvent(event); } +/* bool WebView::checkForAccessKey(QKeyEvent *event) { if (m_accessKeyLabels.isEmpty()) @@ -815,3 +836,4 @@ void WebView::makeAccessKeyLabel(const QChar &accessKey, const QWebElement &elem m_accessKeyLabels.append(label); m_accessKeyNodes[accessKey] = element; } +*/ diff --git a/src/webview.h b/src/webview.h index 16914e34..79ad1729 100644 --- a/src/webview.h +++ b/src/webview.h @@ -64,17 +64,17 @@ #ifndef WEBVIEW_H #define WEBVIEW_H -#include +#include #include "tabwidget.h" -#include class QLabel; class BrowserMainWindow; class TabWidget; class WebPage; -class WebView : public QWebView +//class QWebElement; +class WebView : public QWebEngineView { Q_OBJECT @@ -93,9 +93,11 @@ class WebView : public QWebView QString lastStatusBarText() const; inline int progress() const { return m_progress; } TabWidget *tabWidget() const; + void ranJavaScript(); signals: void search(const QUrl &searchUrl, TabWidget::OpenUrlIn openIn); + void notifyRanJavaScript(); public slots: void zoomIn(); @@ -132,9 +134,9 @@ private slots: void copyImageLocationToClipboard(); void bookmarkLink(); void searchRequested(QAction *action); - void addSearchEngine(); - void hideAccessKeys(); - void accessKeyShortcut(); +// void addSearchEngine(); +// void hideAccessKeys(); +// void accessKeyShortcut(); private: QString m_statusBarText; @@ -144,13 +146,13 @@ private slots: QList m_zoomLevels; WebPage *m_page; - bool m_enableAccessKeys; - bool checkForAccessKey(QKeyEvent *event); - void showAccessKeys(); - void makeAccessKeyLabel(const QChar &accessKey, const QWebElement &element); - QList m_accessKeyLabels; - QHash m_accessKeyNodes; - bool m_accessKeysPressed; + //bool m_enableAccessKeys; + //bool checkForAccessKey(QKeyEvent *event); + //void showAccessKeys(); + //void makeAccessKeyLabel(const QChar &accessKey, const QWebElement &element); + //QList m_accessKeyLabels; + //QHash m_accessKeyNodes; + //bool m_accessKeysPressed; }; #endif diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index a494c3e8..44734fdc 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -23,12 +23,11 @@ #include #include -#include -#include +#include #include -WebViewSearch::WebViewSearch(QWebView *webView, QWidget *parent) +WebViewSearch::WebViewSearch(QWebEngineView *webView, QWidget *parent) : SearchBar(parent) { setSearchObject(webView); @@ -41,36 +40,38 @@ WebViewSearch::WebViewSearch(QWebView *webView, QWidget *parent) void WebViewSearch::findNext() { - find(QWebPage::FindWrapsAroundDocument); + find(nullptr); } void WebViewSearch::findPrevious() { - find(QWebPage::FindBackward | QWebPage::FindWrapsAroundDocument); + find(QWebEnginePage::FindBackward); } void WebViewSearch::highlightAll() { - webView()->findText(QString(), QWebPage::HighlightAllOccurrences); + webView()->findText(QString(), nullptr); +/* if (ui.highlightAllButton->isChecked()) - find(QWebPage::HighlightAllOccurrences); + find(QWebEnginePage::HighlightAllOccurrences); +*/ } -void WebViewSearch::find(QWebPage::FindFlags flags) +void WebViewSearch::find(QWebEnginePage::FindFlags flags) { QString searchString = ui.searchLineEdit->text(); if (!searchObject() || searchString.isEmpty()) return; QString infoString; - if (!webView()->findText(searchString, flags)) - infoString = tr("Not Found"); + //if (!webView()->findText(searchString, flags)) + //infoString = tr("Not Found"); ui.searchInfo->setText(infoString); } -QWebView *WebViewSearch::webView() const +QWebEngineView *WebViewSearch::webView() const { - return qobject_cast(searchObject()); + return qobject_cast(searchObject()); } WebViewWithSearch::WebViewWithSearch(WebView *webView, QWidget *parent) diff --git a/src/webviewsearch.h b/src/webviewsearch.h index 67d84d23..a71bd683 100644 --- a/src/webviewsearch.h +++ b/src/webviewsearch.h @@ -22,10 +22,10 @@ #include "searchbar.h" -#include +#include QT_BEGIN_NAMESPACE -class QWebView; +class QWebEngineView; QT_END_NAMESPACE class WebViewSearch : public SearchBar @@ -33,7 +33,7 @@ class WebViewSearch : public SearchBar Q_OBJECT public: - WebViewSearch(QWebView *webView, QWidget *parent = 0); + WebViewSearch(QWebEngineView *webView, QWidget *parent = 0); public slots: void findNext(); @@ -41,8 +41,8 @@ public slots: void highlightAll(); private: - void find(QWebPage::FindFlags flags); - QWebView *webView() const; + void find(QWebEnginePage::FindFlags flags); + QWebEngineView *webView() const; }; #include "webview.h" diff --git a/tools/placesimport/CMakeLists.txt b/tools/placesimport/CMakeLists.txt index d954e8ee..f2bf168c 100644 --- a/tools/placesimport/CMakeLists.txt +++ b/tools/placesimport/CMakeLists.txt @@ -2,8 +2,8 @@ project(endorphin-placesimport) find_package(Qt5Core REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5Sql REQUIRED) -find_package(Qt5WebKit REQUIRED) -find_package(Qt5WebKitWidgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../src ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils) add_definitions(-DNO_BROWSERAPPLICATION) set(placesimport_SRCS @@ -19,5 +19,5 @@ add_executable(endorphin-placesimport ${placesimport_SRCS} ${UIS} ${RSCS} ${TRS} qt5_use_modules(endorphin-placesimport Core) qt5_use_modules(endorphin-placesimport Widgets) qt5_use_modules(endorphin-placesimport Sql) -qt5_use_modules(endorphin-placesimport WebKit) -qt5_use_modules(endorphin-placesimport WebKitWidgets) +qt5_use_modules(endorphin-placesimport WebEngine) +qt5_use_modules(endorphin-placesimport WebEngineWidgets) From 0937921cb2cf2ef89551de893ec1fa256c4658f2 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 19:46:23 +0200 Subject: [PATCH 04/64] Use new Domain --- src/browserapplication.cpp | 2 +- src/data/defaultbookmarks.xbel | 2 +- src/htmls/startpage.html | 2 +- tools/cacheinfo/main.cpp | 2 +- tools/placesimport/main_placesimport.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index 90df1f12..88b5929e 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -184,7 +184,7 @@ BrowserApplication::BrowserApplication(int &argc, char **argv) : SingleApplication(argc, argv) , quitting(false) { - QCoreApplication::setOrganizationDomain(QLatin1String("aarondewes.github.io/endorphin/")); + QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.github.io/")); QCoreApplication::setApplicationName(QLatin1String("Endorphin")); QCoreApplication::setApplicationVersion(QLatin1String("0.12.1" #ifdef GITVERSION diff --git a/src/data/defaultbookmarks.xbel b/src/data/defaultbookmarks.xbel index 56e92d6d..03abdb97 100644 --- a/src/data/defaultbookmarks.xbel +++ b/src/data/defaultbookmarks.xbel @@ -3,7 +3,7 @@ Bookmarks Bar - + Endorphin diff --git a/src/htmls/startpage.html b/src/htmls/startpage.html index 0be497d2..728c1399 100644 --- a/src/htmls/startpage.html +++ b/src/htmls/startpage.html @@ -9,7 +9,7 @@ document.title = 'Welcome to Endorphin!'; document.getElementById('headerTitle').innerHTML = 'Endorphin Start'; document.getElementById('searchButton').value = 'Search!'; - document.getElementById('footer').innerHTML = 'Search results provided by Google | About Endorphin'; + document.getElementById('footer').innerHTML = 'Search results provided by Google | About Endorphin'; document.getElementById('lineEdit').placeholder = 'Search the Web with Google'; } diff --git a/tools/cacheinfo/main.cpp b/tools/cacheinfo/main.cpp index 1ef19ea6..151b0698 100644 --- a/tools/cacheinfo/main.cpp +++ b/tools/cacheinfo/main.cpp @@ -32,7 +32,7 @@ class NetworkDiskCache : public QNetworkDiskCache int main(int argc, char **argv) { QCoreApplication application(argc, argv); - QCoreApplication::setOrganizationDomain(QLatin1String("aarondewes.github.io/endorphin/")); + QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.github.io/")); QCoreApplication::setApplicationName(QLatin1String("Endorphin")); QStringList args = application.arguments(); diff --git a/tools/placesimport/main_placesimport.cpp b/tools/placesimport/main_placesimport.cpp index 7e30f9e8..37a58bdc 100644 --- a/tools/placesimport/main_placesimport.cpp +++ b/tools/placesimport/main_placesimport.cpp @@ -42,7 +42,7 @@ static HistoryEntry formatEntry(QByteArray url, QByteArray title, qlonglong prda int main(int argc, char **argv) { SingleApplication application(argc, argv); - QCoreApplication::setOrganizationDomain(QLatin1String("aarondewes.github.io/endorphin/")); + QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.github.io/")); QCoreApplication::setApplicationName(QLatin1String("Endorphin")); if (application.sendMessage(QByteArray())) { From c9738f685ccf650e37f7b345543bf2ac2fc04e7b Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 19:50:15 +0200 Subject: [PATCH 05/64] Update copyright --- autotests/adblock/adblockmanager/tst_adblockmanager.cpp | 2 +- autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp | 2 +- autotests/adblock/adblockpage/tst_adblockpage.cpp | 2 +- autotests/adblock/adblockrule/tst_adblockrule.cpp | 2 +- .../adblock/adblocksubscription/tst_adblocksubscription.cpp | 2 +- autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp | 2 +- autotests/autosaver/tst_autosaver.cpp | 2 +- autotests/bookmarknode/tst_bookmarknode.cpp | 4 ++-- autotests/cookiejar/tst_cookiejar.cpp | 2 +- autotests/downloadmanager/tst_downloadmanager.cpp | 2 +- autotests/historyfiltermodel/tst_historyfiltermodel.cpp | 2 +- autotests/historymanager/tst_historymanager.cpp | 2 +- autotests/opensearchengine/tst_opensearchengine.cpp | 2 +- autotests/qtest_endorphin.h | 2 +- autotests/qtry.h | 2 +- autotests/searchlineedit/tst_searchlineedit.cpp | 2 +- autotests/tabbar/tst_tabbar.cpp | 2 +- autotests/tabwidget/tst_tabwidget.cpp | 2 +- autotests/utils/editlistview/tst_editlistview.cpp | 2 +- autotests/utils/edittreeview/tst_edittreeview.cpp | 2 +- autotests/utils/languagemanager/tst_languagemanager.cpp | 2 +- autotests/utils/lineedit/tst_lineedit.cpp | 2 +- .../tst_networkaccessmanagerproxy.cpp | 2 +- autotests/utils/webpageproxy/tst_webpageproxy.cpp | 2 +- autotests/webactionmapper/tst_webactionmapper.cpp | 2 +- autotests/webpage/tst_webpage.cpp | 2 +- autotests/xbel/tst_xbel.cpp | 2 +- debian/copyright | 2 +- manualtests/adblock/adblockdialog/main_adblockdialog.cpp | 2 +- manualtests/adblock/adblockmodel/main_adblockmodel.cpp | 2 +- manualtests/bookmarks/main_bookmarks.cpp | 2 +- manualtests/downloadmanager/main_downloadmanager.cpp | 2 +- manualtests/history/main_history.cpp | 2 +- manualtests/locationbar/main_locationbar.cpp | 2 +- manualtests/modelmenu/main_modelmenu.cpp | 2 +- manualtests/searchlineedit/main_searchlineedit.cpp | 2 +- manualtests/utils/editview/main_editview.cpp | 2 +- manualtests/utils/lineedit/main_lineedit.cpp | 2 +- .../utils/singleapplication/main_singleapplication.cpp | 2 +- manualtests/utils/squeezelabel/main_squeezelabel.cpp | 2 +- .../main_treesortfilterproxymodel.cpp | 2 +- manualtests/webviewsearch/main_webviewsearch.cpp | 2 +- src/aboutdialog.cpp | 2 +- src/aboutdialog.h | 2 +- src/acceptlanguagedialog.cpp | 2 +- src/acceptlanguagedialog.h | 2 +- src/autosaver.cpp | 2 +- src/autosaver.h | 2 +- src/bookmarks/addbookmarkdialog.cpp | 2 +- src/bookmarks/addbookmarkdialog.h | 2 +- src/bookmarks/bookmarknode.cpp | 2 +- src/bookmarks/bookmarknode.h | 2 +- src/bookmarks/bookmarksdialog.cpp | 2 +- src/bookmarks/bookmarksdialog.h | 2 +- src/bookmarks/bookmarksmanager.cpp | 2 +- src/bookmarks/bookmarksmanager.h | 2 +- src/bookmarks/bookmarksmenu.cpp | 2 +- src/bookmarks/bookmarksmenu.h | 2 +- src/bookmarks/bookmarksmodel.cpp | 2 +- src/bookmarks/bookmarksmodel.h | 2 +- src/bookmarks/bookmarkstoolbar.cpp | 2 +- src/bookmarks/bookmarkstoolbar.h | 2 +- src/bookmarks/xbel/xbelreader.cpp | 2 +- src/bookmarks/xbel/xbelreader.h | 2 +- src/bookmarks/xbel/xbelwriter.cpp | 2 +- src/bookmarks/xbel/xbelwriter.h | 2 +- src/browserapplication.cpp | 2 +- src/browserapplication.h | 2 +- src/browsermainwindow.cpp | 2 +- src/browsermainwindow.h | 2 +- src/clearbutton.cpp | 2 +- src/clearbutton.h | 2 +- src/downloadmanager.cpp | 2 +- src/downloadmanager.h | 2 +- src/history/history.cpp | 2 +- src/history/history.h | 2 +- src/history/historycompleter.h | 2 +- src/history/historymanager.cpp | 2 +- src/history/historymanager.h | 2 +- src/locationbar/locationbar.cpp | 2 +- src/locationbar/locationbar.h | 2 +- src/locationbar/locationbarsiteicon.cpp | 2 +- src/locationbar/locationbarsiteicon.h | 2 +- src/locationbar/privacyindicator.cpp | 2 +- src/locationbar/privacyindicator.h | 2 +- src/main.cpp | 2 +- src/modelmenu.cpp | 2 +- src/modelmenu.h | 2 +- src/opensearch/opensearchengineaction.cpp | 2 +- src/opensearch/opensearchengineaction.h | 2 +- src/searchbar.cpp | 2 +- src/searchbar.h | 2 +- src/searchbutton.cpp | 2 +- src/searchbutton.h | 2 +- src/searchlineedit.cpp | 2 +- src/searchlineedit.h | 2 +- src/settings.cpp | 2 +- src/settings.h | 2 +- src/sourceviewer.cpp | 2 +- src/tabbar.cpp | 2 +- src/tabbar.h | 2 +- src/tabwidget.cpp | 2 +- src/tabwidget.h | 2 +- src/toolbarsearch.cpp | 2 +- src/toolbarsearch.h | 2 +- src/utils/editlistview.cpp | 2 +- src/utils/editlistview.h | 2 +- src/utils/edittableview.cpp | 2 +- src/utils/edittableview.h | 2 +- src/utils/edittreeview.cpp | 2 +- src/utils/edittreeview.h | 2 +- src/utils/explorerstyle.cpp | 2 +- src/utils/explorerstyle.h | 2 +- src/utils/languagemanager.cpp | 4 ++-- src/utils/languagemanager.h | 4 ++-- src/utils/lineedit.cpp | 2 +- src/utils/lineedit.h | 2 +- src/utils/lineedit_p.h | 2 +- src/utils/singleapplication.cpp | 2 +- src/utils/singleapplication.h | 2 +- src/utils/squeezelabel.cpp | 2 +- src/utils/squeezelabel.h | 2 +- src/utils/treesortfilterproxymodel.cpp | 2 +- src/utils/treesortfilterproxymodel.h | 2 +- src/webactionmapper.cpp | 2 +- src/webactionmapper.h | 2 +- src/webpage.cpp | 2 +- src/webpage.h | 2 +- src/webview.cpp | 2 +- src/webview.h | 2 +- src/webviewsearch.cpp | 2 +- src/webviewsearch.h | 2 +- tools/cacheinfo/main.cpp | 2 +- tools/placesimport/main_placesimport.cpp | 2 +- 134 files changed, 137 insertions(+), 137 deletions(-) diff --git a/autotests/adblock/adblockmanager/tst_adblockmanager.cpp b/autotests/adblock/adblockmanager/tst_adblockmanager.cpp index 658b9f6f..66656290 100644 --- a/autotests/adblock/adblockmanager/tst_adblockmanager.cpp +++ b/autotests/adblock/adblockmanager/tst_adblockmanager.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp b/autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp index 9ade541f..d1bb5ad0 100644 --- a/autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp +++ b/autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/autotests/adblock/adblockpage/tst_adblockpage.cpp b/autotests/adblock/adblockpage/tst_adblockpage.cpp index a8071830..d8d2a62c 100644 --- a/autotests/adblock/adblockpage/tst_adblockpage.cpp +++ b/autotests/adblock/adblockpage/tst_adblockpage.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/autotests/adblock/adblockrule/tst_adblockrule.cpp b/autotests/adblock/adblockrule/tst_adblockrule.cpp index 25896c2a..0d38da59 100644 --- a/autotests/adblock/adblockrule/tst_adblockrule.cpp +++ b/autotests/adblock/adblockrule/tst_adblockrule.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Zsombor Gegesy * * This program is free software; you can redistribute it and/or modify diff --git a/autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp b/autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp index 475ee467..b903d586 100644 --- a/autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp +++ b/autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp index 0f2e6d49..3b4dc6e9 100644 --- a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp +++ b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/autosaver/tst_autosaver.cpp b/autotests/autosaver/tst_autosaver.cpp index 5e942746..9c77da51 100644 --- a/autotests/autosaver/tst_autosaver.cpp +++ b/autotests/autosaver/tst_autosaver.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/bookmarknode/tst_bookmarknode.cpp b/autotests/bookmarknode/tst_bookmarknode.cpp index 15cdda19..23239a3b 100644 --- a/autotests/bookmarknode/tst_bookmarknode.cpp +++ b/autotests/bookmarknode/tst_bookmarknode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Aaron Dewes + * Copyright (c) 2020 Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/autotests/cookiejar/tst_cookiejar.cpp b/autotests/cookiejar/tst_cookiejar.cpp index e7a99a67..2f5ea90d 100644 --- a/autotests/cookiejar/tst_cookiejar.cpp +++ b/autotests/cookiejar/tst_cookiejar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/downloadmanager/tst_downloadmanager.cpp b/autotests/downloadmanager/tst_downloadmanager.cpp index 6e142f6c..ca0ca42b 100644 --- a/autotests/downloadmanager/tst_downloadmanager.cpp +++ b/autotests/downloadmanager/tst_downloadmanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp index b753239f..96186025 100644 --- a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp +++ b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index a64da4b2..8a6f3f1b 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2014 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/opensearchengine/tst_opensearchengine.cpp b/autotests/opensearchengine/tst_opensearchengine.cpp index 3a3bd205..4a34b710 100644 --- a/autotests/opensearchengine/tst_opensearchengine.cpp +++ b/autotests/opensearchengine/tst_opensearchengine.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/autotests/qtest_endorphin.h b/autotests/qtest_endorphin.h index fa6bd9db..2312ee40 100644 --- a/autotests/qtest_endorphin.h +++ b/autotests/qtest_endorphin.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/qtry.h b/autotests/qtry.h index db402728..20c7e8b9 100644 --- a/autotests/qtry.h +++ b/autotests/qtry.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/autotests/searchlineedit/tst_searchlineedit.cpp b/autotests/searchlineedit/tst_searchlineedit.cpp index 245249e1..85a2113b 100644 --- a/autotests/searchlineedit/tst_searchlineedit.cpp +++ b/autotests/searchlineedit/tst_searchlineedit.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/tabbar/tst_tabbar.cpp b/autotests/tabbar/tst_tabbar.cpp index aa173062..03661278 100644 --- a/autotests/tabbar/tst_tabbar.cpp +++ b/autotests/tabbar/tst_tabbar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/tabwidget/tst_tabwidget.cpp b/autotests/tabwidget/tst_tabwidget.cpp index a59ee908..2807a741 100644 --- a/autotests/tabwidget/tst_tabwidget.cpp +++ b/autotests/tabwidget/tst_tabwidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/utils/editlistview/tst_editlistview.cpp b/autotests/utils/editlistview/tst_editlistview.cpp index e3a939da..e8ca2991 100644 --- a/autotests/utils/editlistview/tst_editlistview.cpp +++ b/autotests/utils/editlistview/tst_editlistview.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/utils/edittreeview/tst_edittreeview.cpp b/autotests/utils/edittreeview/tst_edittreeview.cpp index 8bcfce3f..ed2b44db 100644 --- a/autotests/utils/edittreeview/tst_edittreeview.cpp +++ b/autotests/utils/edittreeview/tst_edittreeview.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/utils/languagemanager/tst_languagemanager.cpp b/autotests/utils/languagemanager/tst_languagemanager.cpp index 09d3a8f6..3639adf7 100644 --- a/autotests/utils/languagemanager/tst_languagemanager.cpp +++ b/autotests/utils/languagemanager/tst_languagemanager.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/autotests/utils/lineedit/tst_lineedit.cpp b/autotests/utils/lineedit/tst_lineedit.cpp index f44c71e1..39f9abcd 100644 --- a/autotests/utils/lineedit/tst_lineedit.cpp +++ b/autotests/utils/lineedit/tst_lineedit.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp b/autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp index 56c04049..379ca8b6 100644 --- a/autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp +++ b/autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/utils/webpageproxy/tst_webpageproxy.cpp b/autotests/utils/webpageproxy/tst_webpageproxy.cpp index e66d6b83..986382b7 100644 --- a/autotests/utils/webpageproxy/tst_webpageproxy.cpp +++ b/autotests/utils/webpageproxy/tst_webpageproxy.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/webactionmapper/tst_webactionmapper.cpp b/autotests/webactionmapper/tst_webactionmapper.cpp index 3622a602..49145a00 100644 --- a/autotests/webactionmapper/tst_webactionmapper.cpp +++ b/autotests/webactionmapper/tst_webactionmapper.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/webpage/tst_webpage.cpp b/autotests/webpage/tst_webpage.cpp index bf3941e5..058ffba9 100644 --- a/autotests/webpage/tst_webpage.cpp +++ b/autotests/webpage/tst_webpage.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/autotests/xbel/tst_xbel.cpp b/autotests/xbel/tst_xbel.cpp index d74bda56..638b8af2 100644 --- a/autotests/xbel/tst_xbel.cpp +++ b/autotests/xbel/tst_xbel.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/debian/copyright b/debian/copyright index d5e2a493..bef05a9f 100644 --- a/debian/copyright +++ b/debian/copyright @@ -11,7 +11,7 @@ Copyright: Copyright 1998-1999 Netscape Communications Corporation. All Copyright 2005-2008 Trolltech ASA. All rights reserved. Copyright 2006 Junio C Hamano - Copyright 2007-2009 Aaron Dewes + Copyright 2020 Aaron Dewes Copyright 2008 Ariya Hidayat Copyright 2008-2009 Christian Franke Copyright 2008 Diego Iastrubni, elcuco, at, kde.org diff --git a/manualtests/adblock/adblockdialog/main_adblockdialog.cpp b/manualtests/adblock/adblockdialog/main_adblockdialog.cpp index ede8d54b..1aa9f834 100644 --- a/manualtests/adblock/adblockdialog/main_adblockdialog.cpp +++ b/manualtests/adblock/adblockdialog/main_adblockdialog.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/manualtests/adblock/adblockmodel/main_adblockmodel.cpp b/manualtests/adblock/adblockmodel/main_adblockmodel.cpp index 6e255a6a..6d6ef58a 100644 --- a/manualtests/adblock/adblockmodel/main_adblockmodel.cpp +++ b/manualtests/adblock/adblockmodel/main_adblockmodel.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/manualtests/bookmarks/main_bookmarks.cpp b/manualtests/bookmarks/main_bookmarks.cpp index f30c6f00..bf36472a 100644 --- a/manualtests/bookmarks/main_bookmarks.cpp +++ b/manualtests/bookmarks/main_bookmarks.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/downloadmanager/main_downloadmanager.cpp b/manualtests/downloadmanager/main_downloadmanager.cpp index 50c4dc79..e6c9a3d5 100644 --- a/manualtests/downloadmanager/main_downloadmanager.cpp +++ b/manualtests/downloadmanager/main_downloadmanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/history/main_history.cpp b/manualtests/history/main_history.cpp index 1c45c4d9..7da85aeb 100644 --- a/manualtests/history/main_history.cpp +++ b/manualtests/history/main_history.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/locationbar/main_locationbar.cpp b/manualtests/locationbar/main_locationbar.cpp index c3b5a07e..bf36c19c 100644 --- a/manualtests/locationbar/main_locationbar.cpp +++ b/manualtests/locationbar/main_locationbar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/modelmenu/main_modelmenu.cpp b/manualtests/modelmenu/main_modelmenu.cpp index 279c342c..c054c0ad 100644 --- a/manualtests/modelmenu/main_modelmenu.cpp +++ b/manualtests/modelmenu/main_modelmenu.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/manualtests/searchlineedit/main_searchlineedit.cpp b/manualtests/searchlineedit/main_searchlineedit.cpp index 53b7c971..da547c83 100644 --- a/manualtests/searchlineedit/main_searchlineedit.cpp +++ b/manualtests/searchlineedit/main_searchlineedit.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/utils/editview/main_editview.cpp b/manualtests/utils/editview/main_editview.cpp index 578f1983..81b01f70 100644 --- a/manualtests/utils/editview/main_editview.cpp +++ b/manualtests/utils/editview/main_editview.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/manualtests/utils/lineedit/main_lineedit.cpp b/manualtests/utils/lineedit/main_lineedit.cpp index 2403cff0..3992d0df 100644 --- a/manualtests/utils/lineedit/main_lineedit.cpp +++ b/manualtests/utils/lineedit/main_lineedit.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/utils/singleapplication/main_singleapplication.cpp b/manualtests/utils/singleapplication/main_singleapplication.cpp index fc9a24ae..65facf57 100644 --- a/manualtests/utils/singleapplication/main_singleapplication.cpp +++ b/manualtests/utils/singleapplication/main_singleapplication.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/manualtests/utils/squeezelabel/main_squeezelabel.cpp b/manualtests/utils/squeezelabel/main_squeezelabel.cpp index eb9c07d5..178954a8 100644 --- a/manualtests/utils/squeezelabel/main_squeezelabel.cpp +++ b/manualtests/utils/squeezelabel/main_squeezelabel.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp b/manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp index 46c3ec83..5692131b 100644 --- a/manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp +++ b/manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/manualtests/webviewsearch/main_webviewsearch.cpp b/manualtests/webviewsearch/main_webviewsearch.cpp index 1c3dfeef..bcbbeaf2 100644 --- a/manualtests/webviewsearch/main_webviewsearch.cpp +++ b/manualtests/webviewsearch/main_webviewsearch.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index 64435ae1..b413f17d 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2007-2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2008 Matvey Kozhev * * This program is free software; you can redistribute it and/or modify diff --git a/src/aboutdialog.h b/src/aboutdialog.h index d58f9341..ce6622c1 100644 --- a/src/aboutdialog.h +++ b/src/aboutdialog.h @@ -1,5 +1,5 @@ /* - * Copyright 2007-2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/acceptlanguagedialog.cpp b/src/acceptlanguagedialog.cpp index fe7c952b..234e2b26 100644 --- a/src/acceptlanguagedialog.cpp +++ b/src/acceptlanguagedialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/acceptlanguagedialog.h b/src/acceptlanguagedialog.h index 00afea26..521fa027 100644 --- a/src/acceptlanguagedialog.h +++ b/src/acceptlanguagedialog.h @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/autosaver.cpp b/src/autosaver.cpp index de7794ac..53c79b29 100644 --- a/src/autosaver.cpp +++ b/src/autosaver.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/autosaver.h b/src/autosaver.h index f39b64cc..fc82ed09 100644 --- a/src/autosaver.h +++ b/src/autosaver.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/addbookmarkdialog.cpp b/src/bookmarks/addbookmarkdialog.cpp index bd0f0ac2..67009fac 100644 --- a/src/bookmarks/addbookmarkdialog.cpp +++ b/src/bookmarks/addbookmarkdialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/bookmarks/addbookmarkdialog.h b/src/bookmarks/addbookmarkdialog.h index d50381c6..b9820ad3 100644 --- a/src/bookmarks/addbookmarkdialog.h +++ b/src/bookmarks/addbookmarkdialog.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/bookmarks/bookmarknode.cpp b/src/bookmarks/bookmarknode.cpp index 1d927dfb..6cd6b3ef 100644 --- a/src/bookmarks/bookmarknode.cpp +++ b/src/bookmarks/bookmarknode.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2014 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarknode.h b/src/bookmarks/bookmarknode.h index ef766546..06dce322 100644 --- a/src/bookmarks/bookmarknode.h +++ b/src/bookmarks/bookmarknode.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2014 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksdialog.cpp b/src/bookmarks/bookmarksdialog.cpp index 4c81b121..5430d794 100644 --- a/src/bookmarks/bookmarksdialog.cpp +++ b/src/bookmarks/bookmarksdialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksdialog.h b/src/bookmarks/bookmarksdialog.h index 513e6e4f..a99d2b5b 100644 --- a/src/bookmarks/bookmarksdialog.h +++ b/src/bookmarks/bookmarksdialog.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp index 4544766a..4a0a11b9 100644 --- a/src/bookmarks/bookmarksmanager.cpp +++ b/src/bookmarks/bookmarksmanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksmanager.h b/src/bookmarks/bookmarksmanager.h index 63d90021..3f46fb19 100644 --- a/src/bookmarks/bookmarksmanager.h +++ b/src/bookmarks/bookmarksmanager.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksmenu.cpp b/src/bookmarks/bookmarksmenu.cpp index af09382d..0873024a 100644 --- a/src/bookmarks/bookmarksmenu.cpp +++ b/src/bookmarks/bookmarksmenu.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksmenu.h b/src/bookmarks/bookmarksmenu.h index 9513e923..5465d484 100644 --- a/src/bookmarks/bookmarksmenu.h +++ b/src/bookmarks/bookmarksmenu.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksmodel.cpp b/src/bookmarks/bookmarksmodel.cpp index df5c9f8e..69b97216 100644 --- a/src/bookmarks/bookmarksmodel.cpp +++ b/src/bookmarks/bookmarksmodel.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarksmodel.h b/src/bookmarks/bookmarksmodel.h index 3960524d..a1a1d1cc 100644 --- a/src/bookmarks/bookmarksmodel.h +++ b/src/bookmarks/bookmarksmodel.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index ea7d6964..11faf906 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/bookmarks/bookmarkstoolbar.h b/src/bookmarks/bookmarkstoolbar.h index b18570ff..1e74cef3 100644 --- a/src/bookmarks/bookmarkstoolbar.h +++ b/src/bookmarks/bookmarkstoolbar.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/bookmarks/xbel/xbelreader.cpp b/src/bookmarks/xbel/xbelreader.cpp index 5c9818f0..14847bb4 100644 --- a/src/bookmarks/xbel/xbelreader.cpp +++ b/src/bookmarks/xbel/xbelreader.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/xbel/xbelreader.h b/src/bookmarks/xbel/xbelreader.h index 43fb31a7..e9ad8916 100644 --- a/src/bookmarks/xbel/xbelreader.h +++ b/src/bookmarks/xbel/xbelreader.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/xbel/xbelwriter.cpp b/src/bookmarks/xbel/xbelwriter.cpp index c81cee6f..f4342b6f 100644 --- a/src/bookmarks/xbel/xbelwriter.cpp +++ b/src/bookmarks/xbel/xbelwriter.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/bookmarks/xbel/xbelwriter.h b/src/bookmarks/xbel/xbelwriter.h index 0d62ac8a..75e54070 100644 --- a/src/bookmarks/xbel/xbelwriter.h +++ b/src/bookmarks/xbel/xbelwriter.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index 88b5929e..d4ca38ee 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/browserapplication.h b/src/browserapplication.h index 1af00bdb..7d519519 100644 --- a/src/browserapplication.h +++ b/src/browserapplication.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index ee8692dc..f8174b3b 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2008 Jason A. Donenfeld * Copyright 2008 Ariya Hidayat * diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index 326370a1..67e0dbb0 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/clearbutton.cpp b/src/clearbutton.cpp index b4d1c050..e7cf6f0f 100644 --- a/src/clearbutton.cpp +++ b/src/clearbutton.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/clearbutton.h b/src/clearbutton.h index 5df47f52..7ea24d0a 100644 --- a/src/clearbutton.h +++ b/src/clearbutton.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 6f2c9f4e..55decb38 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2008 Jason A. Donenfeld * * This program is free software; you can redistribute it and/or modify diff --git a/src/downloadmanager.h b/src/downloadmanager.h index aecba983..b4144cc6 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2008 Jason A. Donenfeld * * This program is free software; you can redistribute it and/or modify diff --git a/src/history/history.cpp b/src/history/history.cpp index a6ac791b..fe959fbe 100644 --- a/src/history/history.cpp +++ b/src/history/history.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/history/history.h b/src/history/history.h index e496f35d..eb106e5c 100644 --- a/src/history/history.h +++ b/src/history/history.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/history/historycompleter.h b/src/history/historycompleter.h index 44f32f0f..211389cc 100644 --- a/src/history/historycompleter.h +++ b/src/history/historycompleter.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Benjamin K. Stuhl * * This program is free software; you can redistribute it and/or modify diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index 67e95c2c..2e24c041 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/history/historymanager.h b/src/history/historymanager.h index 11bef9b0..35484278 100644 --- a/src/history/historymanager.h +++ b/src/history/historymanager.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/locationbar/locationbar.cpp b/src/locationbar/locationbar.cpp index d422f906..bdf2238d 100644 --- a/src/locationbar/locationbar.cpp +++ b/src/locationbar/locationbar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/locationbar/locationbar.h b/src/locationbar/locationbar.h index 77fc1ca8..1ddd5923 100644 --- a/src/locationbar/locationbar.h +++ b/src/locationbar/locationbar.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/locationbar/locationbarsiteicon.cpp b/src/locationbar/locationbarsiteicon.cpp index de40a7ea..61da516a 100644 --- a/src/locationbar/locationbarsiteicon.cpp +++ b/src/locationbar/locationbarsiteicon.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/locationbar/locationbarsiteicon.h b/src/locationbar/locationbarsiteicon.h index 6b5d3df8..16c4521c 100644 --- a/src/locationbar/locationbarsiteicon.h +++ b/src/locationbar/locationbarsiteicon.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/locationbar/privacyindicator.cpp b/src/locationbar/privacyindicator.cpp index bb4905d9..fe09fe7d 100644 --- a/src/locationbar/privacyindicator.cpp +++ b/src/locationbar/privacyindicator.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009-2010 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/locationbar/privacyindicator.h b/src/locationbar/privacyindicator.h index 58e5c183..06928ea7 100644 --- a/src/locationbar/privacyindicator.h +++ b/src/locationbar/privacyindicator.h @@ -1,5 +1,5 @@ /* - * Copyright 2009-2010 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/main.cpp b/src/main.cpp index a8d0e78c..815d8a98 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/modelmenu.cpp b/src/modelmenu.cpp index ab2cdddb..f8c6c52a 100644 --- a/src/modelmenu.cpp +++ b/src/modelmenu.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/modelmenu.h b/src/modelmenu.h index e72a9d22..fc6e8630 100644 --- a/src/modelmenu.h +++ b/src/modelmenu.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/opensearch/opensearchengineaction.cpp b/src/opensearch/opensearchengineaction.cpp index 667dfe2d..758c07ee 100644 --- a/src/opensearch/opensearchengineaction.cpp +++ b/src/opensearch/opensearchengineaction.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/opensearch/opensearchengineaction.h b/src/opensearch/opensearchengineaction.h index 553f79a8..78c3dd89 100644 --- a/src/opensearch/opensearchengineaction.h +++ b/src/opensearch/opensearchengineaction.h @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/searchbar.cpp b/src/searchbar.cpp index e2ed93d0..59074e43 100644 --- a/src/searchbar.cpp +++ b/src/searchbar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/searchbar.h b/src/searchbar.h index 21865282..a726c781 100644 --- a/src/searchbar.h +++ b/src/searchbar.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/searchbutton.cpp b/src/searchbutton.cpp index 89ba0a34..7a1bc699 100644 --- a/src/searchbutton.cpp +++ b/src/searchbutton.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/searchbutton.h b/src/searchbutton.h index 347cac53..393cee53 100644 --- a/src/searchbutton.h +++ b/src/searchbutton.h @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/searchlineedit.cpp b/src/searchlineedit.cpp index f6dd469a..4183a340 100644 --- a/src/searchlineedit.cpp +++ b/src/searchlineedit.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/searchlineedit.h b/src/searchlineedit.h index 9b7f4ec7..dcc40404 100644 --- a/src/searchlineedit.h +++ b/src/searchlineedit.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/settings.cpp b/src/settings.cpp index eac420af..d83359a4 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/settings.h b/src/settings.h index a3dd2f87..4f386744 100644 --- a/src/settings.h +++ b/src/settings.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/sourceviewer.cpp b/src/sourceviewer.cpp index aae56499..f49604a9 100644 --- a/src/sourceviewer.cpp +++ b/src/sourceviewer.cpp @@ -1,6 +1,6 @@ /* * Copyright 2008 Christian Franke - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/tabbar.cpp b/src/tabbar.cpp index c08e7819..2f40051e 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/tabbar.h b/src/tabbar.h index 8438c60a..78d8c467 100644 --- a/src/tabbar.h +++ b/src/tabbar.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 55471b0e..729dba77 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/tabwidget.h b/src/tabwidget.h index b19a13bd..da0ab461 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/toolbarsearch.cpp b/src/toolbarsearch.cpp index 0016a743..3eecdc2c 100644 --- a/src/toolbarsearch.cpp +++ b/src/toolbarsearch.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/toolbarsearch.h b/src/toolbarsearch.h index c4d74bce..64d781e5 100644 --- a/src/toolbarsearch.h +++ b/src/toolbarsearch.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/utils/editlistview.cpp b/src/utils/editlistview.cpp index 68749d18..be57b4fb 100644 --- a/src/utils/editlistview.cpp +++ b/src/utils/editlistview.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/editlistview.h b/src/utils/editlistview.h index e719ea1f..fe79681e 100644 --- a/src/utils/editlistview.h +++ b/src/utils/editlistview.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/edittableview.cpp b/src/utils/edittableview.cpp index b2438ded..da94f3ca 100644 --- a/src/utils/edittableview.cpp +++ b/src/utils/edittableview.cpp @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/edittableview.h b/src/utils/edittableview.h index 9ec1a0b0..a7817ea8 100644 --- a/src/utils/edittableview.h +++ b/src/utils/edittableview.h @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/edittreeview.cpp b/src/utils/edittreeview.cpp index d5377146..982bd5cc 100644 --- a/src/utils/edittreeview.cpp +++ b/src/utils/edittreeview.cpp @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/edittreeview.h b/src/utils/edittreeview.h index 5a037545..e12ec68e 100644 --- a/src/utils/edittreeview.h +++ b/src/utils/edittreeview.h @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/explorerstyle.cpp b/src/utils/explorerstyle.cpp index 9bd1fd3f..482d2038 100644 --- a/src/utils/explorerstyle.cpp +++ b/src/utils/explorerstyle.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/explorerstyle.h b/src/utils/explorerstyle.h index f3a51452..a4e97831 100644 --- a/src/utils/explorerstyle.h +++ b/src/utils/explorerstyle.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/languagemanager.cpp b/src/utils/languagemanager.cpp index eeaf5c3b..d60e1af3 100644 --- a/src/utils/languagemanager.cpp +++ b/src/utils/languagemanager.cpp @@ -1,6 +1,6 @@ /* * Copyright 2008-2009 Diego Iastrubni, elcuco, at, kde.org - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/languagemanager.h b/src/utils/languagemanager.h index 76ad3b16..c954be7c 100644 --- a/src/utils/languagemanager.h +++ b/src/utils/languagemanager.h @@ -1,6 +1,6 @@ /* * Copyright 2008-2009 Diego Iastrubni, elcuco, at, kde.org - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -10,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/lineedit.cpp b/src/utils/lineedit.cpp index b98183d4..42d5c4f8 100644 --- a/src/utils/lineedit.cpp +++ b/src/utils/lineedit.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/lineedit.h b/src/utils/lineedit.h index c42a4d87..7eceb1db 100644 --- a/src/utils/lineedit.h +++ b/src/utils/lineedit.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/lineedit_p.h b/src/utils/lineedit_p.h index a03a5ba2..bc5af286 100644 --- a/src/utils/lineedit_p.h +++ b/src/utils/lineedit_p.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/singleapplication.cpp b/src/utils/singleapplication.cpp index 4b98afee..fb9708b4 100644 --- a/src/utils/singleapplication.cpp +++ b/src/utils/singleapplication.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/singleapplication.h b/src/utils/singleapplication.h index 4d9048fd..e0fbc56f 100644 --- a/src/utils/singleapplication.h +++ b/src/utils/singleapplication.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/squeezelabel.cpp b/src/utils/squeezelabel.cpp index 196f8d85..b1298c90 100644 --- a/src/utils/squeezelabel.cpp +++ b/src/utils/squeezelabel.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/squeezelabel.h b/src/utils/squeezelabel.h index 3cac3d1f..fb4eaccf 100644 --- a/src/utils/squeezelabel.h +++ b/src/utils/squeezelabel.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/treesortfilterproxymodel.cpp b/src/utils/treesortfilterproxymodel.cpp index 166a7c53..8762fd6c 100644 --- a/src/utils/treesortfilterproxymodel.cpp +++ b/src/utils/treesortfilterproxymodel.cpp @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/utils/treesortfilterproxymodel.h b/src/utils/treesortfilterproxymodel.h index 859ab713..f551c836 100644 --- a/src/utils/treesortfilterproxymodel.h +++ b/src/utils/treesortfilterproxymodel.h @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Aaron Dewes nor the names of its contributors + * 3. Neither the name of Endorphin nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * diff --git a/src/webactionmapper.cpp b/src/webactionmapper.cpp index fbfef366..28227613 100644 --- a/src/webactionmapper.cpp +++ b/src/webactionmapper.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/webactionmapper.h b/src/webactionmapper.h index 5e73f527..28d2e9c1 100644 --- a/src/webactionmapper.h +++ b/src/webactionmapper.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/webpage.cpp b/src/webpage.cpp index bc1b6405..9b67a71a 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify diff --git a/src/webpage.h b/src/webpage.h index 0623cb94..ed99655f 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -1,5 +1,5 @@ /* - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/webview.cpp b/src/webview.cpp index 60e8c233..c6bf4a15 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2008 Jason A. Donenfeld * Copyright 2008 Ariya Hidayat * diff --git a/src/webview.h b/src/webview.h index 79ad1729..5fa62a14 100644 --- a/src/webview.h +++ b/src/webview.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * Copyright 2008 Ariya Hidayat * * This program is free software; you can redistribute it and/or modify diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index 44734fdc..3b47754c 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/src/webviewsearch.h b/src/webviewsearch.h index a71bd683..7db6d4ae 100644 --- a/src/webviewsearch.h +++ b/src/webviewsearch.h @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/tools/cacheinfo/main.cpp b/tools/cacheinfo/main.cpp index 151b0698..a9cc939d 100644 --- a/tools/cacheinfo/main.cpp +++ b/tools/cacheinfo/main.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 diff --git a/tools/placesimport/main_placesimport.cpp b/tools/placesimport/main_placesimport.cpp index 37a58bdc..72adcc66 100644 --- a/tools/placesimport/main_placesimport.cpp +++ b/tools/placesimport/main_placesimport.cpp @@ -1,6 +1,6 @@ /* * Copyright 2008-2009 Benjamin K. Stuhl - * Copyright 2009 Aaron Dewes + * Copyright 2020 Aaron Dewes * * 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 From 0b4c5abc690e05c870539384ed1152c711b6648c Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 20:09:20 +0200 Subject: [PATCH 06/64] Add permissionbar The first feature that is exclusive to WebEngine. WebEngine does not only remove features, but also makes new features possible. --- src/CMakeLists.txt | 2 + src/permissionbar.cpp | 137 ++++++++++++++++++++++++++++++++++++++++++ src/permissionbar.h | 83 +++++++++++++++++++++++++ src/webview.cpp | 63 +++++++++++++++++++ src/webview.h | 2 + 5 files changed, 287 insertions(+) create mode 100644 src/permissionbar.cpp create mode 100644 src/permissionbar.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c00fe87a..19dc10c9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,6 +61,7 @@ set(Endorphin_SRCS downloadmanager.cpp modelmenu.cpp modeltoolbar.cpp + permissionbar.cpp plaintexteditsearch.cpp searchbar.cpp searchbutton.cpp @@ -144,6 +145,7 @@ set(Endorphin_MOCS downloadmanager.h modelmenu.h modeltoolbar.h + permissionbar.h plaintexteditsearch.h searchbar.h searchbutton.h diff --git a/src/permissionbar.cpp b/src/permissionbar.cpp new file mode 100644 index 00000000..86862544 --- /dev/null +++ b/src/permissionbar.cpp @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "permissionbar.h" + +#include +#include +#include +#include +#include + +static const int defaultHeight = 30; + +static QString textForPermissionType(QWebEnginePage::Feature type) +{ + switch (type) { + case QWebEnginePage::Notifications: + return QObject::tr("use desktop notifications"); + case QWebEnginePage::Geolocation: + return QObject::tr("use your position"); + case QWebEnginePage::MediaAudioCapture: + return QObject::tr("use your microphone"); + case QWebEnginePage::MediaVideoCapture: + return QObject::tr("use your camera"); + case QWebEnginePage::MediaAudioVideoCapture: + return QObject::tr("use your camera and microphone"); + case QWebEnginePage::MouseLock: + return QObject::tr("lock your mouse"); + default: + Q_UNREACHABLE(); + } + return QString(); +} + +PermissionBar::PermissionBar(QWidget *view) + : QWidget(view) + , m_messageLabel(new QLabel(this)) +{ + setAutoFillBackground(true); + QHBoxLayout *l = new QHBoxLayout; + setLayout(l); + l->setContentsMargins(defaultHeight, 0, 0, 0); + l->addWidget(m_messageLabel); + l->addStretch(); + QPushButton *allowButton = new QPushButton(tr("Allow"), this); + QPushButton *denyButton = new QPushButton(tr("Deny"), this); + QPushButton *discardButton = new QPushButton(QIcon(QStringLiteral(":closetab.png")), QString(), this); + connect(allowButton, &QPushButton::clicked, this, &PermissionBar::permissionGranted); + connect(denyButton, &QPushButton::clicked, this, &PermissionBar::permissionDenied); + connect(discardButton, &QPushButton::clicked, this, &PermissionBar::permissionUnknown); + connect(allowButton, &QPushButton::clicked, this, &QObject::deleteLater); + connect(denyButton, &QPushButton::clicked, this, &QObject::deleteLater); + connect(discardButton, &QPushButton::clicked, this, &QObject::deleteLater); + l->addWidget(denyButton); + l->addWidget(allowButton); + l->addWidget(discardButton); + setGeometry(0, -defaultHeight, view->width(), defaultHeight); +} + +void PermissionBar::requestPermission(const QUrl &securityOrigin, QWebEnginePage::Feature feature) +{ + m_securityOrigin = securityOrigin; + m_feature = feature; + m_messageLabel->setText(tr("%1 wants to %2.").arg(securityOrigin.host()).arg(textForPermissionType(feature))); + show(); + // Ease in + QPropertyAnimation *animation = new QPropertyAnimation(this); + animation->setTargetObject(this); + animation->setPropertyName(QByteArrayLiteral("pos")); + animation->setDuration(300); + animation->setStartValue(QVariant::fromValue(pos())); + animation->setEndValue(QVariant::fromValue(QPoint(0,0))); + animation->setEasingCurve(QEasingCurve::InOutQuad); + animation->start(QPropertyAnimation::DeleteWhenStopped); +} + +void PermissionBar::permissionDenied() +{ + emit featurePermissionProvided(m_securityOrigin, m_feature, QWebEnginePage::PermissionDeniedByUser); +} + +void PermissionBar::permissionGranted() +{ + emit featurePermissionProvided(m_securityOrigin, m_feature, QWebEnginePage::PermissionGrantedByUser); +} + +void PermissionBar::permissionUnknown() +{ + emit featurePermissionProvided(m_securityOrigin, m_feature, QWebEnginePage::PermissionUnknown); +} diff --git a/src/permissionbar.h b/src/permissionbar.h new file mode 100644 index 00000000..3a5e4421 --- /dev/null +++ b/src/permissionbar.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWebEngine module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef PERMISSIONBAR_H +#define PERMISSIONBAR_H + +#include +#include + +QT_BEGIN_NAMESPACE +class QLabel; +class QPushButton; +QT_END_NAMESPACE + +class PermissionBar : public QWidget { + Q_OBJECT + +public: + PermissionBar(QWidget*); + void requestPermission(const QUrl &, QWebEnginePage::Feature feature); + +signals: + void featurePermissionProvided(const QUrl &securityOrigin, QWebEnginePage::Feature, QWebEnginePage::PermissionPolicy); + +private slots: + void permissionDenied(); + void permissionGranted(); + void permissionUnknown(); + +private: + QWebEnginePage::Feature m_feature; + QLabel *m_messageLabel; + QUrl m_securityOrigin; +}; + +#endif // PERMISSIONBAR_H diff --git a/src/webview.cpp b/src/webview.cpp index c6bf4a15..2e3c1736 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -62,6 +62,56 @@ ** ****************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + #include "webview.h" #include "addbookmarkdialog.h" @@ -74,6 +124,7 @@ #include "opensearchmanager.h" #include "toolbarsearch.h" #include "webpage.h" +#include "permissionbar.h" #include #include @@ -104,6 +155,7 @@ WebView::WebView(QWidget *parent) // , m_accessKeysPressed(false) { setPage(m_page); + connect(page(), &WebPage::featurePermissionRequested, this, &WebView::onFeaturePermissionRequested); QPalette p; connect(page(), SIGNAL(statusBarMessage(const QString&)), SLOT(setStatusBarText(const QString&))); @@ -837,3 +889,14 @@ void WebView::makeAccessKeyLabel(const QChar &accessKey, const QWebElement &elem m_accessKeyNodes[accessKey] = element; } */ + +void WebView::onFeaturePermissionRequested(const QUrl &securityOrigin, QWebEnginePage::Feature feature) +{ + PermissionBar *permissionBar = new PermissionBar(this); + connect(permissionBar, &PermissionBar::featurePermissionProvided, page(), &QWebEnginePage::setFeaturePermission); + + // Discard the bar on new loads (if we navigate away or reload). + connect(page(), &QWebEnginePage::loadStarted, permissionBar, &QObject::deleteLater); + + permissionBar->requestPermission(securityOrigin, feature); +} \ No newline at end of file diff --git a/src/webview.h b/src/webview.h index 5fa62a14..eff0f27a 100644 --- a/src/webview.h +++ b/src/webview.h @@ -146,6 +146,8 @@ private slots: QList m_zoomLevels; WebPage *m_page; + void onFeaturePermissionRequested(const QUrl &securityOrigin, QWebEnginePage::Feature); + //bool m_enableAccessKeys; //bool checkForAccessKey(QKeyEvent *event); //void showAccessKeys(); From d6a936d9fa8c867f499f47fd836b2f794af08e36 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 20:16:37 +0200 Subject: [PATCH 07/64] Optimize code Formatting using astyle Update nullptr usage using clang-tidy --- src/aboutdialog.h | 2 +- src/acceptlanguagedialog.cpp | 10 +-- src/acceptlanguagedialog.h | 2 +- src/bookmarks/addbookmarkdialog.cpp | 4 +- src/bookmarks/addbookmarkdialog.h | 4 +- src/bookmarks/bookmarknode.cpp | 20 ++--- src/bookmarks/bookmarknode.h | 2 +- src/bookmarks/bookmarksdialog.cpp | 12 +-- src/bookmarks/bookmarksdialog.h | 2 +- src/bookmarks/bookmarksmanager.cpp | 52 ++++++------ src/bookmarks/bookmarksmanager.h | 2 +- src/bookmarks/bookmarksmenu.cpp | 2 +- src/bookmarks/bookmarksmenu.h | 4 +- src/bookmarks/bookmarksmodel.cpp | 28 ++++--- src/bookmarks/bookmarksmodel.h | 2 +- src/bookmarks/bookmarkstoolbar.cpp | 2 +- src/bookmarks/bookmarkstoolbar.h | 2 +- src/bookmarks/xbel/xbelreader.cpp | 4 +- src/browserapplication.cpp | 64 +++++++-------- src/browsermainwindow.cpp | 40 ++++----- src/browsermainwindow.h | 6 +- src/clearbutton.cpp | 4 +- src/clearbutton.h | 2 +- src/clearprivatedata.h | 2 +- src/downloadmanager.cpp | 38 ++++----- src/downloadmanager.h | 10 ++- src/history/history.cpp | 80 +++++++++--------- src/history/history.h | 12 +-- src/history/historycompleter.h | 8 +- src/history/historymanager.cpp | 8 +- src/history/historymanager.h | 2 +- src/locationbar/locationbar.cpp | 10 +-- src/locationbar/locationbar.h | 2 +- src/locationbar/locationbarsiteicon.cpp | 6 +- src/locationbar/locationbarsiteicon.h | 2 +- src/locationbar/privacyindicator.h | 2 +- src/modelmenu.cpp | 4 +- src/modelmenu.h | 4 +- src/modeltoolbar.cpp | 4 +- src/modeltoolbar.h | 4 +- src/opensearch/opensearchdialog.cpp | 12 +-- src/opensearch/opensearchdialog.h | 2 +- src/opensearch/opensearchengine.cpp | 12 +-- src/opensearch/opensearchengine.h | 2 +- src/opensearch/opensearchengineaction.h | 2 +- src/opensearch/opensearchenginemodel.cpp | 6 +- src/opensearch/opensearchenginemodel.h | 2 +- src/opensearch/opensearchmanager.cpp | 16 ++-- src/opensearch/opensearchmanager.h | 2 +- src/opensearch/opensearchreader.cpp | 20 ++--- src/plaintexteditsearch.h | 2 +- src/searchbar.cpp | 8 +- src/searchbar.h | 2 +- src/searchbutton.h | 2 +- src/searchlineedit.h | 2 +- src/settings.cpp | 56 +++++++++---- src/settings.h | 2 +- src/sourcehighlighter.cpp | 20 ++--- src/sourceviewer.cpp | 16 ++-- src/sourceviewer.h | 2 +- src/tabbar.cpp | 10 +-- src/tabbar.h | 2 +- src/tabwidget.cpp | 100 +++++++++++------------ src/tabwidget.h | 6 +- src/toolbarsearch.cpp | 76 ++++++++--------- src/toolbarsearch.h | 2 +- src/useragent/useragentmenu.cpp | 6 +- src/useragent/useragentmenu.h | 2 +- src/utils/editlistview.h | 2 +- src/utils/edittableview.h | 2 +- src/utils/edittreeview.h | 2 +- src/utils/explorerstyle.cpp | 18 ++-- src/utils/explorerstyle.h | 2 +- src/utils/languagemanager.cpp | 38 ++++----- src/utils/languagemanager.h | 2 +- src/utils/lineedit.cpp | 12 +-- src/utils/lineedit.h | 4 +- src/utils/lineedit_p.h | 2 +- src/utils/singleapplication.cpp | 6 +- src/utils/squeezelabel.h | 2 +- src/utils/treesortfilterproxymodel.h | 2 +- src/webactionmapper.cpp | 10 +-- src/webpage.cpp | 74 ++++++++--------- src/webpage.h | 10 +-- src/webview.cpp | 94 ++++++++++----------- src/webview.h | 10 ++- src/webviewsearch.cpp | 10 +-- src/webviewsearch.h | 4 +- 88 files changed, 607 insertions(+), 561 deletions(-) diff --git a/src/aboutdialog.h b/src/aboutdialog.h index ce6622c1..a4a532e6 100644 --- a/src/aboutdialog.h +++ b/src/aboutdialog.h @@ -28,7 +28,7 @@ class AboutDialog : public QDialog, private Ui_AboutDialog Q_OBJECT public: - AboutDialog(QWidget *parent = 0); + AboutDialog(QWidget *parent = nullptr); private slots: void authorsButtonClicked(); diff --git a/src/acceptlanguagedialog.cpp b/src/acceptlanguagedialog.cpp index 234e2b26..f577d293 100644 --- a/src/acceptlanguagedialog.cpp +++ b/src/acceptlanguagedialog.cpp @@ -53,13 +53,13 @@ QStringList AcceptLanguageDialog::expand(const QLocale::Language language) QString languageString; if (countries.count() == 1) { languageString = QString(QLatin1String("%1 [%2]")) - .arg(QLocale::languageToString(language)) - .arg(QLocale(language).name().split(QLatin1Char('_')).at(0)); + .arg(QLocale::languageToString(language)) + .arg(QLocale(language).name().split(QLatin1Char('_')).at(0)); } else { languageString = QString(QLatin1String("%1/%2 [%3]")) - .arg(QLocale::languageToString(language)) - .arg(QLocale::countryToString(countries.at(j))) - .arg(QLocale(language, countries.at(j)).name().split(QLatin1Char('_')).join(QLatin1String("-")).toLower()); + .arg(QLocale::languageToString(language)) + .arg(QLocale::countryToString(countries.at(j))) + .arg(QLocale(language, countries.at(j)).name().split(QLatin1Char('_')).join(QLatin1String("-")).toLower()); } if (!allLanguages.contains(languageString)) diff --git a/src/acceptlanguagedialog.h b/src/acceptlanguagedialog.h index 521fa027..770ca403 100644 --- a/src/acceptlanguagedialog.h +++ b/src/acceptlanguagedialog.h @@ -30,7 +30,7 @@ class AcceptLanguageDialog : public QDialog, public Ui_AcceptLanguage Q_OBJECT public: - AcceptLanguageDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0); + AcceptLanguageDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = nullptr); void accept(); static QByteArray httpString(const QStringList &list); static QStringList defaultAcceptList(); diff --git a/src/bookmarks/addbookmarkdialog.cpp b/src/bookmarks/addbookmarkdialog.cpp index 67009fac..5b4a7693 100644 --- a/src/bookmarks/addbookmarkdialog.cpp +++ b/src/bookmarks/addbookmarkdialog.cpp @@ -90,8 +90,8 @@ bool AddBookmarkProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &s AddBookmarkDialog::AddBookmarkDialog(QWidget *parent, BookmarksManager *bookmarksManager) : QDialog(parent) , m_bookmarksManager(bookmarksManager) - , m_addedNode(0) - , m_proxyModel(0) + , m_addedNode(nullptr) + , m_proxyModel(nullptr) , m_addFolder(false) { setWindowFlags(Qt::Sheet); diff --git a/src/bookmarks/addbookmarkdialog.h b/src/bookmarks/addbookmarkdialog.h index b9820ad3..5469c71e 100644 --- a/src/bookmarks/addbookmarkdialog.h +++ b/src/bookmarks/addbookmarkdialog.h @@ -73,7 +73,7 @@ class AddBookmarkProxyModel : public QSortFilterProxyModel Q_OBJECT public: - AddBookmarkProxyModel(QObject *parent = 0); + AddBookmarkProxyModel(QObject *parent = nullptr); int columnCount(const QModelIndex &parent = QModelIndex()) const; protected: @@ -88,7 +88,7 @@ class AddBookmarkDialog : public QDialog, public Ui_AddBookmarkDialog Q_OBJECT public: - AddBookmarkDialog(QWidget *parent = 0, BookmarksManager *bookmarksManager = 0); + AddBookmarkDialog(QWidget *parent = nullptr, BookmarksManager *bookmarksManager = nullptr); void setUrl(const QString &url); QString url() const; diff --git a/src/bookmarks/bookmarknode.cpp b/src/bookmarks/bookmarknode.cpp index 6cd6b3ef..4f6fa523 100644 --- a/src/bookmarks/bookmarknode.cpp +++ b/src/bookmarks/bookmarknode.cpp @@ -63,9 +63,9 @@ #include "bookmarknode.h" BookmarkNode::BookmarkNode(BookmarkNode::Type type, BookmarkNode *parent) : - expanded(false) - , m_parent(parent) - , m_type(type) + expanded(false) + , m_parent(parent) + , m_type(type) { if (parent) parent->add(this); @@ -77,18 +77,18 @@ BookmarkNode::~BookmarkNode() m_parent->remove(this); for (int i = m_children.count() -1; i >= 0; --i) delete m_children[i]; - m_parent = 0; + m_parent = nullptr; m_type = BookmarkNode::Root; } bool BookmarkNode::operator==(const BookmarkNode &other) const { if (url != other.url - || title != other.title - || desc != other.desc - || expanded != other.expanded - || m_type != other.m_type - || m_children.count() != other.m_children.count()) + || title != other.title + || desc != other.desc + || expanded != other.expanded + || m_type != other.m_type + || m_children.count() != other.m_children.count()) return false; for (int i = 0; i < m_children.count(); ++i) @@ -136,7 +136,7 @@ void BookmarkNode::remove(BookmarkNode *child) { if (!child) return; - child->m_parent = 0; + child->m_parent = nullptr; m_children.removeAll(child); } diff --git a/src/bookmarks/bookmarknode.h b/src/bookmarks/bookmarknode.h index 06dce322..a97a6578 100644 --- a/src/bookmarks/bookmarknode.h +++ b/src/bookmarks/bookmarknode.h @@ -76,7 +76,7 @@ class BookmarkNode Separator }; - BookmarkNode(Type type = Root, BookmarkNode *parent = 0); + BookmarkNode(Type type = Root, BookmarkNode *parent = nullptr); ~BookmarkNode(); bool operator==(const BookmarkNode &other) const; diff --git a/src/bookmarks/bookmarksdialog.cpp b/src/bookmarks/bookmarksdialog.cpp index 5430d794..30947a7c 100644 --- a/src/bookmarks/bookmarksdialog.cpp +++ b/src/bookmarks/bookmarksdialog.cpp @@ -73,9 +73,9 @@ BookmarksDialog::BookmarksDialog(QWidget *parent, BookmarksManager *manager) : QDialog(parent) - , m_bookmarksManager(0) - , m_bookmarksModel(0) - , m_proxyModel(0) + , m_bookmarksManager(nullptr) + , m_bookmarksModel(nullptr) + , m_proxyModel(nullptr) { m_bookmarksManager = manager; if (!m_bookmarksManager) @@ -181,9 +181,9 @@ void BookmarksDialog::openBookmark(TabWidget::OpenUrlIn tab) if (!index.parent().isValid() || !node || node->type() == BookmarkNode::Folder) return; emit openUrl( - index.sibling(index.row(), 1).data(BookmarksModel::UrlRole).toUrl(), - tab, - index.sibling(index.row(), 0).data(Qt::DisplayRole).toString()); + index.sibling(index.row(), 1).data(BookmarksModel::UrlRole).toUrl(), + tab, + index.sibling(index.row(), 0).data(Qt::DisplayRole).toString()); } void BookmarksDialog::openBookmark() diff --git a/src/bookmarks/bookmarksdialog.h b/src/bookmarks/bookmarksdialog.h index a99d2b5b..43398ab3 100644 --- a/src/bookmarks/bookmarksdialog.h +++ b/src/bookmarks/bookmarksdialog.h @@ -83,7 +83,7 @@ class BookmarksDialog : public QDialog, public Ui_BookmarksDialog void openUrl(const QUrl &url, TabWidget::OpenUrlIn tab, const QString &title); public: - BookmarksDialog(QWidget *parent = 0, BookmarksManager *manager = 0); + BookmarksDialog(QWidget *parent = nullptr, BookmarksManager *manager = nullptr); ~BookmarksDialog(); private slots: diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp index 4a0a11b9..4c16fa9b 100644 --- a/src/bookmarks/bookmarksmanager.cpp +++ b/src/bookmarks/bookmarksmanager.cpp @@ -93,10 +93,10 @@ BookmarksManager::BookmarksManager(QObject *parent) : QObject(parent) , m_loaded(false) , m_saveTimer(new AutoSaver(this)) - , m_bookmarkRootNode(0) - , m_toolbar(0) - , m_menu(0) - , m_bookmarkModel(0) + , m_bookmarkRootNode(nullptr) + , m_toolbar(nullptr) + , m_menu(nullptr) + , m_bookmarkModel(nullptr) { connect(this, SIGNAL(entryAdded(BookmarkNode *)), m_saveTimer, SLOT(changeOccurred())); @@ -131,9 +131,9 @@ void BookmarksManager::load() XbelReader reader; m_bookmarkRootNode = reader.read(bookmarkFile); if (reader.error() != QXmlStreamReader::NoError) { - QMessageBox::warning(0, QLatin1String("Loading Bookmark"), - tr("Error when loading bookmarks on line %1, column %2:\n" - "%3").arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.errorString())); + QMessageBox::warning(nullptr, QLatin1String("Loading Bookmark"), + tr("Error when loading bookmarks on line %1, column %2:\n" + "%3").arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.errorString())); } QList others; @@ -142,7 +142,7 @@ void BookmarksManager::load() if (node->type() == BookmarkNode::Folder) { // Automatically convert if ((node->title == tr("Toolbar Bookmarks") - || node->title == QLatin1String(BOOKMARKBAR)) && !m_toolbar) { + || node->title == QLatin1String(BOOKMARKBAR)) && !m_toolbar) { node->title = tr(BOOKMARKBAR); m_toolbar = node; @@ -150,7 +150,7 @@ void BookmarksManager::load() // Automatically convert if ((node->title == tr("Menu") - || node->title == QLatin1String(BOOKMARKMENU)) && !m_menu) { + || node->title == QLatin1String(BOOKMARKMENU)) && !m_menu) { node->title = tr(BOOKMARKMENU); m_menu = node; } @@ -282,13 +282,13 @@ void BookmarksManager::importBookmarks() supportedFormats << tr("XBEL bookmarks").append(QLatin1String("(*.xbel *.xml)")); supportedFormats << tr("HTML Netscape bookmarks").append(QLatin1String("(*.html)")); - QString fileName = QFileDialog::getOpenFileName(0, tr("Open File"), - QString(), supportedFormats.join(QLatin1String(";;"))); + QString fileName = QFileDialog::getOpenFileName(nullptr, tr("Open File"), + QString(), supportedFormats.join(QLatin1String(";;"))); if (fileName.isEmpty()) return; XbelReader reader; - BookmarkNode *importRootNode = 0; + BookmarkNode *importRootNode = nullptr; if (fileName.endsWith(QLatin1String(".html"))) { QString program = QLatin1String("htmlToXBel"); QStringList arguments; @@ -298,12 +298,12 @@ void BookmarksManager::importBookmarks() process.waitForFinished(-1); if (process.error() != QProcess::UnknownError) { if (process.error() == QProcess::FailedToStart) { - QMessageBox::warning(0, tr("htmlToXBel tool required"), - tr("htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, " - "is not installed or not available in the search paths.")); + QMessageBox::warning(nullptr, tr("htmlToXBel tool required"), + tr("htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, " + "is not installed or not available in the search paths.")); } else { - QMessageBox::warning(0, tr("Loading Bookmark"), - tr("Error when loading HTML bookmarks: %1\n").arg(process.errorString())); + QMessageBox::warning(nullptr, tr("Loading Bookmark"), + tr("Error when loading HTML bookmarks: %1\n").arg(process.errorString())); } return; } @@ -312,9 +312,9 @@ void BookmarksManager::importBookmarks() importRootNode = reader.read(fileName); } if (reader.error() != QXmlStreamReader::NoError) { - QMessageBox::warning(0, QLatin1String("Loading Bookmark"), - tr("Error when loading bookmarks on line %1, column %2:\n" - "%3").arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.errorString())); + QMessageBox::warning(nullptr, QLatin1String("Loading Bookmark"), + tr("Error when loading bookmarks on line %1, column %2:\n" + "%3").arg(reader.lineNumber()).arg(reader.columnNumber()).arg(reader.errorString())); delete importRootNode; return; } @@ -326,15 +326,15 @@ void BookmarksManager::importBookmarks() void BookmarksManager::exportBookmarks() { - QString fileName = QFileDialog::getSaveFileName(0, tr("Save File"), - tr("%1 Bookmarks.xbel").arg(QCoreApplication::applicationName()), - tr("XBEL bookmarks").append(QLatin1String("(*.xbel *.xml)"))); + QString fileName = QFileDialog::getSaveFileName(nullptr, tr("Save File"), + tr("%1 Bookmarks.xbel").arg(QCoreApplication::applicationName()), + tr("XBEL bookmarks").append(QLatin1String("(*.xbel *.xml)"))); if (fileName.isEmpty()) return; XbelWriter writer; if (!writer.write(fileName, m_bookmarkRootNode)) - QMessageBox::critical(0, tr("Export error"), tr("error saving bookmarks")); + QMessageBox::critical(nullptr, tr("Export error"), tr("error saving bookmarks")); } RemoveBookmarksCommand::RemoveBookmarksCommand(BookmarksManager *m_bookmarkManagaer, BookmarkNode *parent, int row) @@ -369,7 +369,7 @@ void RemoveBookmarksCommand::redo() } InsertBookmarksCommand::InsertBookmarksCommand(BookmarksManager *m_bookmarkManagaer, - BookmarkNode *parent, BookmarkNode *node, int row) + BookmarkNode *parent, BookmarkNode *node, int row) : RemoveBookmarksCommand(m_bookmarkManagaer, parent, row) { setText(BookmarksManager::tr("Insert Bookmark")); @@ -377,7 +377,7 @@ InsertBookmarksCommand::InsertBookmarksCommand(BookmarksManager *m_bookmarkManag } ChangeBookmarkCommand::ChangeBookmarkCommand(BookmarksManager *m_bookmarkManagaer, BookmarkNode *node, - const QString &newValue, bool title) + const QString &newValue, bool title) : QUndoCommand() , m_bookmarkManagaer(m_bookmarkManagaer) , m_title(title) diff --git a/src/bookmarks/bookmarksmanager.h b/src/bookmarks/bookmarksmanager.h index 3f46fb19..8f4c5023 100644 --- a/src/bookmarks/bookmarksmanager.h +++ b/src/bookmarks/bookmarksmanager.h @@ -39,7 +39,7 @@ class BookmarksManager : public QObject void entryChanged(BookmarkNode *item); public: - BookmarksManager(QObject *parent = 0); + BookmarksManager(QObject *parent = nullptr); ~BookmarksManager(); void addBookmark(BookmarkNode *parent, BookmarkNode *node, int row = -1); diff --git a/src/bookmarks/bookmarksmenu.cpp b/src/bookmarks/bookmarksmenu.cpp index 0873024a..97885701 100644 --- a/src/bookmarks/bookmarksmenu.cpp +++ b/src/bookmarks/bookmarksmenu.cpp @@ -141,7 +141,7 @@ void BookmarksMenu::openAll() BookmarksMenuBarMenu::BookmarksMenuBarMenu(QWidget *parent) : BookmarksMenu(parent) - , m_bookmarksManager(0) + , m_bookmarksManager(nullptr) { } diff --git a/src/bookmarks/bookmarksmenu.h b/src/bookmarks/bookmarksmenu.h index 5465d484..594863b3 100644 --- a/src/bookmarks/bookmarksmenu.h +++ b/src/bookmarks/bookmarksmenu.h @@ -82,7 +82,7 @@ class BookmarksMenu : public ModelMenu void openUrl(const QUrl &url, TabWidget::OpenUrlIn tab, const QString &title); public: - BookmarksMenu(QWidget *parent = 0); + BookmarksMenu(QWidget *parent = nullptr); protected: void postPopulated(); @@ -100,7 +100,7 @@ class BookmarksMenuBarMenu : public BookmarksMenu Q_OBJECT public: - BookmarksMenuBarMenu(QWidget *parent = 0); + BookmarksMenuBarMenu(QWidget *parent = nullptr); void setInitialActions(QList actions); protected: diff --git a/src/bookmarks/bookmarksmodel.cpp b/src/bookmarks/bookmarksmodel.cpp index 69b97216..ac125f8f 100644 --- a/src/bookmarks/bookmarksmodel.cpp +++ b/src/bookmarks/bookmarksmodel.cpp @@ -131,7 +131,7 @@ bool BookmarksModel::removeRows(int row, int count, const QModelIndex &parent) for (int i = row + count - 1; i >= row; --i) { BookmarkNode *node = bookmarkNode->children().at(i); if (node == m_bookmarksManager->menu() - || node == m_bookmarksManager->toolbar()) + || node == m_bookmarksManager->toolbar()) continue; m_bookmarksManager->removeBookmark(node); @@ -147,8 +147,10 @@ QVariant BookmarksModel::headerData(int section, Qt::Orientation orientation, in { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { switch (section) { - case 0: return tr("Title"); - case 1: return tr("Address"); + case 0: + return tr("Title"); + case 1: + return tr("Address"); } } return QAbstractItemModel::headerData(section, orientation, role); @@ -165,14 +167,18 @@ QVariant BookmarksModel::data(const QModelIndex &index, int role) const case Qt::DisplayRole: if (bookmarkNode->type() == BookmarkNode::Separator) { switch (index.column()) { - case 0: return QString(50, 0xB7); - case 1: return QString(); + case 0: + return QString(50, 0xB7); + case 1: + return QString(); } } switch (index.column()) { - case 0: return bookmarkNode->title; - case 1: return bookmarkNode->url; + case 0: + return bookmarkNode->title; + case 1: + return bookmarkNode->url; } break; case BookmarksModel::UrlRole: @@ -231,7 +237,7 @@ QModelIndex BookmarksModel::parent(const QModelIndex &index) const return QModelIndex(); BookmarkNode *itemNode = node(index); - BookmarkNode *parentNode = (itemNode ? itemNode->parent() : 0); + BookmarkNode *parentNode = (itemNode ? itemNode->parent() : nullptr); if (!parentNode || parentNode == m_bookmarksManager->bookmarks()) return QModelIndex(); @@ -263,13 +269,13 @@ Qt::ItemFlags BookmarksModel::flags(const QModelIndex &index) const flags |= Qt::ItemIsDropEnabled; if (node == m_bookmarksManager->menu() - || node == m_bookmarksManager->toolbar()) + || node == m_bookmarksManager->toolbar()) return flags; flags |= Qt::ItemIsDragEnabled; if ((index.column() == 0 && type != BookmarkNode::Separator) - || (index.column() == 1 && type == BookmarkNode::Bookmark)) + || (index.column() == 1 && type == BookmarkNode::Bookmark)) flags |= Qt::ItemIsEditable; return flags; @@ -314,7 +320,7 @@ QMimeData *BookmarksModel::mimeData(const QModelIndexList &indexes) const } bool BookmarksModel::dropMimeData(const QMimeData *data, - Qt::DropAction action, int row, int column, const QModelIndex &parent) + Qt::DropAction action, int row, int column, const QModelIndex &parent) { if (action == Qt::IgnoreAction) return true; diff --git a/src/bookmarks/bookmarksmodel.h b/src/bookmarks/bookmarksmodel.h index a1a1d1cc..c2b41e99 100644 --- a/src/bookmarks/bookmarksmodel.h +++ b/src/bookmarks/bookmarksmodel.h @@ -86,7 +86,7 @@ public slots: SeparatorRole = Qt::UserRole + 4 }; - BookmarksModel(BookmarksManager *bookmarkManager, QObject *parent = 0); + BookmarksModel(BookmarksManager *bookmarkManager, QObject *parent = nullptr); inline BookmarksManager *bookmarksManager() const { return m_bookmarksManager; } diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index 11faf906..437bf646 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -57,7 +57,7 @@ void BookmarksToolBar::contextMenuRequested(const QPoint &position) QVariant variant = action->data(); Q_ASSERT(variant.canConvert()); - QAction *menuAction = 0; + QAction *menuAction = nullptr; if (!action->menu()) { menuAction = menu.addAction(tr("Open"), this, SLOT(openBookmarkInCurrentTab())); diff --git a/src/bookmarks/bookmarkstoolbar.h b/src/bookmarks/bookmarkstoolbar.h index 1e74cef3..99d48ba8 100644 --- a/src/bookmarks/bookmarkstoolbar.h +++ b/src/bookmarks/bookmarkstoolbar.h @@ -39,7 +39,7 @@ class BookmarksToolBar : public ModelToolBar void openUrl(const QUrl &url, TabWidget::OpenUrlIn tab, const QString &title); public: - BookmarksToolBar(BookmarksModel *model, QWidget *parent = 0); + BookmarksToolBar(BookmarksModel *model, QWidget *parent = nullptr); protected: virtual ModelMenu *createMenu(); diff --git a/src/bookmarks/xbel/xbelreader.cpp b/src/bookmarks/xbel/xbelreader.cpp index 14847bb4..cfdb44cc 100644 --- a/src/bookmarks/xbel/xbelreader.cpp +++ b/src/bookmarks/xbel/xbelreader.cpp @@ -75,7 +75,7 @@ QString XmlEntityResolver::resolveUndeclaredEntity(const QString &entity) } XbelReader::XbelReader() - : m_entityResolver(0) + : m_entityResolver(nullptr) { m_entityResolver = new XmlEntityResolver(); setEntityResolver(m_entityResolver); @@ -105,7 +105,7 @@ BookmarkNode *XbelReader::read(QIODevice *device) if (isStartElement()) { QString version = attributes().value(QLatin1String("version")).toString(); if (name() == QLatin1String("xbel") - && (version.isEmpty() || version == QLatin1String("1.0"))) { + && (version.isEmpty() || version == QLatin1String("1.0"))) { readXBEL(root); } else { raiseError(QObject::tr("The file is not an XBEL version 1.0 file.")); diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index d4ca38ee..ccf8c81a 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -139,13 +139,13 @@ // #define BROWSERAPPLICATION_DEBUG -DownloadManager *BrowserApplication::s_downloadManager = 0; -HistoryManager *BrowserApplication::s_historyManager = 0; -BookmarksManager *BrowserApplication::s_bookmarksManager = 0; -LanguageManager *BrowserApplication::s_languageManager = 0; +DownloadManager *BrowserApplication::s_downloadManager = nullptr; +HistoryManager *BrowserApplication::s_historyManager = nullptr; +BookmarksManager *BrowserApplication::s_bookmarksManager = nullptr; +LanguageManager *BrowserApplication::s_languageManager = nullptr; -static void setUserStyleSheet(QWebEngineProfile *profile, const QString &styleSheet, BrowserMainWindow *mainWindow = 0) +static void setUserStyleSheet(QWebEngineProfile *profile, const QString &styleSheet, BrowserMainWindow *mainWindow = nullptr) { Q_ASSERT(profile); QString scriptName(QStringLiteral("userStyleSheet")); @@ -188,9 +188,9 @@ BrowserApplication::BrowserApplication(int &argc, char **argv) QCoreApplication::setApplicationName(QLatin1String("Endorphin")); QCoreApplication::setApplicationVersion(QLatin1String("0.12.1" #ifdef GITVERSION - " (Git: " GITCHANGENUMBER " " GITVERSION ")" + " (Git: " GITCHANGENUMBER " " GITVERSION ")" #endif - )); + )); #ifndef AUTOTESTS connect(this, SIGNAL(messageReceived(QLocalSocket *)), @@ -314,34 +314,34 @@ void BrowserApplication::messageReceived(QLocalSocket *socket) return; } else { if (message.startsWith(QLatin1String("endorphin://getwinid"))) { - #ifdef Q_OS_WIN +#ifdef Q_OS_WIN QString winid = QString(QLatin1String("%1")).arg((qlonglong)mainWindow()->winId()); - #else +#else mainWindow()->show(); mainWindow()->setFocus(); mainWindow()->raise(); mainWindow()->activateWindow(); alert(mainWindow()); QString winid; - #endif - #ifdef BROWSERAPPLICATION_DEBUG +#endif +#ifdef BROWSERAPPLICATION_DEBUG qDebug() << "BrowserApplication::" << __FUNCTION__ << "sending win id" << winid << mainWindow()->winId(); - #endif +#endif QString message = QLatin1String("endorphin://winid/") + winid; socket->write(message.toUtf8()); socket->waitForBytesWritten(); return; - } + } - if (message.startsWith(QLatin1String("endorphin://winid"))) { + if (message.startsWith(QLatin1String("endorphin://winid"))) { QString winid = message.mid(21); - #ifdef BROWSERAPPLICATION_DEBUG +#ifdef BROWSERAPPLICATION_DEBUG qDebug() << "BrowserApplication::" << __FUNCTION__ << "got win id:" << winid; - #endif - #ifdef Q_OS_WIN +#endif +#ifdef Q_OS_WIN WId wid = (WId)winid.toLongLong(); SetForegroundWindow(wid); - #endif +#endif return; } QSettings settings; @@ -374,10 +374,10 @@ void BrowserApplication::quitBrowser() QWidget *widget = mainWindow(); QApplication::alert(widget); int ret = QMessageBox::warning(widget, QString(), - tr("There are %1 windows and %2 tabs open\n" - "Do you want to quit anyway?").arg(m_mainWindows.count()).arg(tabCount), - QMessageBox::Yes | QMessageBox::No, - QMessageBox::No); + tr("There are %1 windows and %2 tabs open\n" + "Do you want to quit anyway?").arg(m_mainWindows.count()).arg(tabCount), + QMessageBox::Yes | QMessageBox::No, + QMessageBox::No); if (ret == QMessageBox::No) return; } @@ -448,7 +448,7 @@ void BrowserApplication::loadSettings() defaultSettings->setFontFamily(QWebEngineSettings::StandardFont, standardFont.family()); defaultSettings->setFontSize(QWebEngineSettings::DefaultFontSize, standardFont.pointSize()); int minimumFontSize = settings.value(QLatin1String("minimumFontSize"), - defaultSettings->fontSize(QWebEngineSettings::MinimumFontSize)).toInt(); + defaultSettings->fontSize(QWebEngineSettings::MinimumFontSize)).toInt(); defaultSettings->setFontSize(QWebEngineSettings::MinimumFontSize, minimumFontSize); QString fixedFontFamily = defaultSettings->fontFamily(QWebEngineSettings::FixedFont); @@ -514,11 +514,11 @@ void BrowserApplication::saveSession() settings.setValue(QLatin1String("restoring"), false); settings.endGroup(); -/* - QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); - if (globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) - return; -*/ + /* + QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); + if (globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) + return; + */ clean(); settings.beginGroup(QLatin1String("sessions")); @@ -551,8 +551,8 @@ bool BrowserApplication::restoreLastSession() QSettings settings; settings.beginGroup(QLatin1String("MainWindow")); if (settings.value(QLatin1String("restoring"), false).toBool()) { - QMessageBox::StandardButton result = QMessageBox::question(0, tr("Restore failed"), - tr("Endorphin crashed while trying to restore this session. Should I try again?"), QMessageBox::Yes | QMessageBox::No); + QMessageBox::StandardButton result = QMessageBox::question(nullptr, tr("Restore failed"), + tr("Endorphin crashed while trying to restore this session. Should I try again?"), QMessageBox::Yes | QMessageBox::No); if (result == QMessageBox::No) return false; } @@ -581,7 +581,7 @@ bool BrowserApplication::restoreLastSession() windows.append(windowState); } for (int i = 0; i < windows.count(); ++i) { - BrowserMainWindow *newWindow = 0; + BrowserMainWindow *newWindow = nullptr; if (i == 0 && m_mainWindows.count() >= 1) { newWindow = mainWindow(); } else { @@ -649,7 +649,7 @@ BrowserMainWindow *BrowserApplication::mainWindow() { clean(); - BrowserMainWindow *activeWindow = 0; + BrowserMainWindow *activeWindow = nullptr; if (m_mainWindows.isEmpty()) { activeWindow = newMainWindow(); diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index f8174b3b..784908a6 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -109,13 +109,13 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) - , m_navigationBar(0) - , m_navigationSplitter(0) - , m_toolbarSearch(0) + , m_navigationBar(nullptr) + , m_navigationSplitter(nullptr) + , m_toolbarSearch(nullptr) #if defined(Q_WS_MAC) , m_bookmarksToolbarFrame(0) #endif - , m_bookmarksToolbar(0) + , m_bookmarksToolbar(nullptr) , m_tabWidget(new TabWidget(this)) , m_autoSaver(new AutoSaver(this)) { @@ -1004,7 +1004,7 @@ void BrowserMainWindow::setupToolBar() m_navigationBar->setObjectName(QLatin1String("NavigationToolBar")); addToolBar(m_navigationBar); - m_historyBackAction->setIcon(style()->standardIcon(QStyle::SP_ArrowBack, 0, this)); + m_historyBackAction->setIcon(style()->standardIcon(QStyle::SP_ArrowBack, nullptr, this)); m_historyBackMenu = new QMenu(this); m_historyBackAction->setMenu(m_historyBackMenu); connect(m_historyBackMenu, SIGNAL(aboutToShow()), @@ -1013,7 +1013,7 @@ void BrowserMainWindow::setupToolBar() this, SLOT(openActionUrl(QAction *))); m_navigationBar->addAction(m_historyBackAction); - m_historyForwardAction->setIcon(style()->standardIcon(QStyle::SP_ArrowForward, 0, this)); + m_historyForwardAction->setIcon(style()->standardIcon(QStyle::SP_ArrowForward, nullptr, this)); m_historyForwardMenu = new QMenu(this); connect(m_historyForwardMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowForwardMenu())); @@ -1222,7 +1222,7 @@ void BrowserMainWindow::printRequested(QWebEnginePage *page) dialog.setWindowTitle(tr("Print Document")); if (dialog.exec() != QDialog::Accepted) return; - page->print(&printer, [](bool a){}); + page->print(&printer, [](bool a) {}); } void BrowserMainWindow::privateBrowsing() @@ -1246,8 +1246,8 @@ void BrowserMainWindow::privateBrowsing() .arg(title, text1, actions.join(QLatin1String("
  • ")), text2); QMessageBox::StandardButton button = QMessageBox::question(this, tr("Private Browsing"), message, - QMessageBox::Ok | QMessageBox::Cancel, - QMessageBox::Ok); + QMessageBox::Ok | QMessageBox::Cancel, + QMessageBox::Ok); if (button == QMessageBox::Ok) BrowserApplication::setPrivate(true); else @@ -1422,18 +1422,18 @@ void BrowserMainWindow::clearPrivateData() void BrowserMainWindow::toggleInspector(bool enable) { -/* - QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::DeveloperExtrasEnabled, enable); - if (enable) { - int result = QMessageBox::question(this, tr("Web Inspector"), - tr("The web inspector will only work correctly for pages that were loaded after enabling.\n" - "Do you want to reload all pages?"), - QMessageBox::Yes | QMessageBox::No); - if (result == QMessageBox::Yes) { - m_tabWidget->reloadAllTabs(); + /* + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::DeveloperExtrasEnabled, enable); + if (enable) { + int result = QMessageBox::question(this, tr("Web Inspector"), + tr("The web inspector will only work correctly for pages that were loaded after enabling.\n" + "Do you want to reload all pages?"), + QMessageBox::Yes | QMessageBox::No); + if (result == QMessageBox::Yes) { + m_tabWidget->reloadAllTabs(); + } } - } - */ + */ QSettings settings; settings.beginGroup(QLatin1String("websettings")); settings.setValue(QLatin1String("enableInspector"), enable); diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index 67e0dbb0..911f8050 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -87,7 +87,7 @@ class BrowserMainWindow : public QMainWindow Q_OBJECT public: - BrowserMainWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0); + BrowserMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = nullptr); ~BrowserMainWindow(); QSize sizeHint() const; @@ -100,7 +100,9 @@ class BrowserMainWindow : public QMainWindow QByteArray saveState(bool withTabs = true) const; bool restoreState(const QByteArray &state); QAction *showMenuBarAction() const; - QAction *searchManagerAction() const { return m_toolsSearchManagerAction; } + QAction *searchManagerAction() const { + return m_toolsSearchManagerAction; + } public slots: void goHome(); diff --git a/src/clearbutton.cpp b/src/clearbutton.cpp index e7cf6f0f..25623db7 100644 --- a/src/clearbutton.cpp +++ b/src/clearbutton.cpp @@ -42,8 +42,8 @@ ClearButton::ClearButton(QWidget *parent) // First check for a style icon, current KDE provides one if (m_styleImage.isNull()) { QLatin1String iconName = (layoutDirection() == Qt::RightToLeft) - ? QLatin1String("edit-clear-locationbar-ltr") - : QLatin1String("edit-clear-locationbar-rtl"); + ? QLatin1String("edit-clear-locationbar-ltr") + : QLatin1String("edit-clear-locationbar-rtl"); QIcon icon = QIcon::fromTheme(iconName); if (!icon.isNull()) m_styleImage = icon.pixmap(16, 16).toImage(); diff --git a/src/clearbutton.h b/src/clearbutton.h index 7ea24d0a..9f30b437 100644 --- a/src/clearbutton.h +++ b/src/clearbutton.h @@ -36,7 +36,7 @@ class ClearButton : public QAbstractButton Q_OBJECT public: - ClearButton(QWidget *parent = 0); + ClearButton(QWidget *parent = nullptr); public slots: void textChanged(const QString &text); diff --git a/src/clearprivatedata.h b/src/clearprivatedata.h index db5d823e..86c43e33 100644 --- a/src/clearprivatedata.h +++ b/src/clearprivatedata.h @@ -29,7 +29,7 @@ class ClearPrivateData : public QDialog Q_OBJECT public: - ClearPrivateData(QWidget *parent = 0); + ClearPrivateData(QWidget *parent = nullptr); public slots: void accept(); diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 55decb38..f3480afe 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -292,7 +292,7 @@ void DownloadItem::downloadReadyRead() getFileName(); if (!m_output.open(QIODevice::WriteOnly)) { downloadInfoLabel->setText(tr("Error opening output file: %1") - .arg(m_output.errorString())); + .arg(m_output.errorString())); stop(); emit statusChanged(); return; @@ -301,7 +301,7 @@ void DownloadItem::downloadReadyRead() } if (-1 == m_output.write(m_reply->readAll())) { downloadInfoLabel->setText(tr("Error saving: %1") - .arg(m_output.errorString())); + .arg(m_output.errorString())); stopButton->click(); } else { m_startedSaving = true; @@ -414,17 +414,17 @@ void DownloadItem::updateInfoLabel() } info = QString(tr("%1 of %2 (%3/sec) - %4")) - .arg(DownloadManager::dataString(m_bytesReceived)) - .arg(bytesTotal == 0 ? tr("?") : DownloadManager::dataString(bytesTotal)) - .arg(DownloadManager::dataString((int)speed)) - .arg(remaining); + .arg(DownloadManager::dataString(m_bytesReceived)) + .arg(bytesTotal == 0 ? tr("?") : DownloadManager::dataString(bytesTotal)) + .arg(DownloadManager::dataString((int)speed)) + .arg(remaining); } else { if (m_bytesReceived == bytesTotal) info = DownloadManager::dataString(m_output.size()); else info = tr("%1 of %2 - Download Complete") - .arg(DownloadManager::dataString(m_bytesReceived)) - .arg(DownloadManager::dataString(bytesTotal)); + .arg(DownloadManager::dataString(m_bytesReceived)) + .arg(DownloadManager::dataString(bytesTotal)); } downloadInfoLabel->setText(info); } @@ -466,7 +466,7 @@ DownloadManager::DownloadManager(QWidget *parent) , m_autoSaver(new AutoSaver(this)) , m_model(new DownloadModel(this)) , m_manager(new QNetworkAccessManager()) - , m_iconProvider(0) + , m_iconProvider(nullptr) , m_removePolicy(Never) { setupUi(this); @@ -509,10 +509,10 @@ bool DownloadManager::allowQuit() { if (activeDownloads() >= 1) { int choice = QMessageBox::warning(this, QString(), - tr("There are %1 downloads in progress\n" - "Do you want to quit anyway?").arg(activeDownloads()), - QMessageBox::Yes | QMessageBox::No, - QMessageBox::No); + tr("There are %1 downloads in progress\n" + "Do you want to quit anyway?").arg(activeDownloads()), + QMessageBox::Yes | QMessageBox::No, + QMessageBox::No); if (choice == QMessageBox::No) { show(); return false; @@ -651,7 +651,7 @@ void DownloadManager::updateRow(DownloadItem *item) remove = true; if (item->downloadedSuccessfully() - && removePolicy() == DownloadManager::SuccessFullDownload) { + && removePolicy() == DownloadManager::SuccessFullDownload) { remove = true; } if (remove) @@ -709,8 +709,8 @@ void DownloadManager::load() QByteArray value = settings.value(QLatin1String("removeDownloadsPolicy"), QLatin1String("Never")).toByteArray(); QMetaEnum removePolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("RemovePolicy")); m_removePolicy = removePolicyEnum.keyToValue(value) == -1 ? - Never : - static_cast(removePolicyEnum.keyToValue(value)); + Never : + static_cast(removePolicyEnum.keyToValue(value)); int i = 0; QString key = QString(QLatin1String("download_%1_")).arg(i); @@ -719,7 +719,7 @@ void DownloadManager::load() QString fileName = settings.value(key + QLatin1String("location")).toString(); bool done = settings.value(key + QLatin1String("done"), true).toBool(); if (!url.isEmpty() && !fileName.isEmpty()) { - DownloadItem *item = new DownloadItem(0, this); + DownloadItem *item = new DownloadItem(nullptr, this); item->m_output.setFileName(fileName); item->fileNameLabel->setText(QFileInfo(item->m_output.fileName()).fileName()); item->m_url = url; @@ -745,7 +745,7 @@ void DownloadManager::cleanup() updateActiveItemCount(); if (m_downloads.isEmpty() && m_iconProvider) { delete m_iconProvider; - m_iconProvider = 0; + m_iconProvider = nullptr; } m_autoSaver->changeOccurred(); } @@ -836,7 +836,7 @@ bool DownloadModel::removeRows(int row, int count, const QModelIndex &parent) int lastRow = row + count - 1; for (int i = lastRow; i >= row; --i) { if (m_downloadManager->m_downloads.at(i)->downloadedSuccessfully() - || m_downloadManager->m_downloads.at(i)->tryAgainButton->isEnabled()) { + || m_downloadManager->m_downloads.at(i)->tryAgainButton->isEnabled()) { beginRemoveRows(parent, i, i); m_downloadManager->m_downloads.takeAt(i)->deleteLater(); endRemoveRows(); diff --git a/src/downloadmanager.h b/src/downloadmanager.h index b4144cc6..83171495 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -83,7 +83,7 @@ class DownloadItem : public QWidget, public Ui_DownloadItem void downloadFinished(); public: - DownloadItem(QNetworkReply *reply = 0, bool requestFileName = false, QWidget *parent = 0); + DownloadItem(QNetworkReply *reply = nullptr, bool requestFileName = false, QWidget *parent = nullptr); bool downloading() const; bool downloadedSuccessfully() const; @@ -147,7 +147,7 @@ class DownloadManager : public QDialog, public Ui_DownloadDialog SuccessFullDownload }; - DownloadManager(QWidget *parent = 0); + DownloadManager(QWidget *parent = nullptr); ~DownloadManager(); int activeDownloads() const; bool allowQuit(); @@ -164,7 +164,9 @@ class DownloadManager : public QDialog, public Ui_DownloadDialog public slots: void download(const QNetworkRequest &request, bool requestFileName = false); inline void download(const QUrl &url, bool requestFileName = false) - { download(QNetworkRequest(url), requestFileName); } + { + download(QNetworkRequest(url), requestFileName); + } void handleUnsupportedContent(QNetworkReply *reply, bool requestFileName = false); void cleanup(); @@ -198,7 +200,7 @@ class DownloadModel : public QAbstractListModel Q_OBJECT public: - DownloadModel(DownloadManager *downloadManager, QObject *parent = 0); + DownloadModel(DownloadManager *downloadManager, QObject *parent = nullptr); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); diff --git a/src/history/history.cpp b/src/history/history.cpp index fe959fbe..b8621450 100644 --- a/src/history/history.cpp +++ b/src/history/history.cpp @@ -129,10 +129,12 @@ void HistoryModel::entryUpdated(int offset) QVariant HistoryModel::headerData(int section, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal - && role == Qt::DisplayRole) { + && role == Qt::DisplayRole) { switch (section) { - case 0: return tr("Title"); - case 1: return tr("Address"); + case 0: + return tr("Title"); + case 1: + return tr("Address"); } } return QAbstractTableModel::headerData(section, orientation, role); @@ -235,7 +237,7 @@ int HistoryMenuModel::rowCount(const QModelIndex &parent) const int folders = sourceModel()->rowCount(); int bumpedItems = bumpedRows(); if (bumpedItems <= MOVEDROWS - && bumpedItems == sourceModel()->rowCount(sourceModel()->index(0, 0))) + && bumpedItems == sourceModel()->rowCount(sourceModel()->index(0, 0))) --folders; return bumpedItems + folders; } @@ -287,8 +289,8 @@ QModelIndex HistoryMenuModel::mapToSource(const QModelIndex &proxyIndex) const QModelIndex HistoryMenuModel::index(int row, int column, const QModelIndex &parent) const { if (row < 0 - || column < 0 || column >= columnCount(parent) - || parent.column() > 0) + || column < 0 || column >= columnCount(parent) + || parent.column() > 0) return QModelIndex(); if (!parent.isValid()) return createIndex(row, column, -1); @@ -338,8 +340,8 @@ QMimeData *HistoryMenuModel::mimeData(const QModelIndexList &indexes) const #ifndef NO_BROWSERAPPLICATION HistoryMenu::HistoryMenu(QWidget *parent) : ModelMenu(parent) - , m_history(0) - , m_historyMenuModel(0) + , m_history(nullptr) + , m_historyMenuModel(nullptr) { setMaxRows(7); connect(this, SIGNAL(activated(const QModelIndex &)), @@ -398,8 +400,8 @@ void HistoryMenu::showHistoryDialog() void HistoryMenu::clearHistoryDialog() { - if (m_history && QMessageBox::question(0, tr("Clear History"), tr("Do you want to clear the history?"), - QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) { + if (m_history && QMessageBox::question(nullptr, tr("Clear History"), tr("Do you want to clear the history?"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) { m_history->clear(); } } @@ -601,7 +603,7 @@ QModelIndex HistoryFilterModel::mapFromSource(const QModelIndex &sourceIndex) co int sourceOffset = sourceModel()->rowCount() - sourceIndex.row(); QList::iterator pos = std::lower_bound(m_filteredRows.begin(), - m_filteredRows.end(), HistoryData(sourceOffset, -1)); + m_filteredRows.end(), HistoryData(sourceOffset, -1)); if (pos == m_filteredRows.end()) return QModelIndex(); @@ -613,7 +615,7 @@ QModelIndex HistoryFilterModel::index(int row, int column, const QModelIndex &pa { load(); if (row < 0 || row >= rowCount(parent) - || column < 0 || column >= columnCount(parent)) + || column < 0 || column >= columnCount(parent)) return QModelIndex(); return createIndex(row, column, m_filteredRows[row].tailOffset); @@ -642,7 +644,7 @@ void HistoryFilterModel::load() const } else { // we already know about this url: just increment its frecency score QList::iterator pos = std::lower_bound(m_filteredRows.begin(), - m_filteredRows.end(), HistoryData(m_historyHash[url], -1)); + m_filteredRows.end(), HistoryData(m_historyHash[url], -1)); Q_ASSERT(pos != m_filteredRows.end()); pos->frecency += frecencyScore(idx); } @@ -661,7 +663,7 @@ void HistoryFilterModel::sourceRowsInserted(const QModelIndex &parent, int start int currentFrecency = 0; if (m_historyHash.contains(url)) { QList::iterator pos = std::lower_bound(m_filteredRows.begin(), - m_filteredRows.end(), HistoryData(m_historyHash[url], -1)); + m_filteredRows.end(), HistoryData(m_historyHash[url], -1)); Q_ASSERT(pos != m_filteredRows.end()); int realRow = pos - m_filteredRows.begin(); currentFrecency = pos->frecency; @@ -783,8 +785,8 @@ int HistoryTreeModel::columnCount(const QModelIndex &parent) const int HistoryTreeModel::rowCount(const QModelIndex &parent) const { if (parent.internalId() != 0 - || parent.column() > 0 - || !sourceModel()) + || parent.column() > 0 + || !sourceModel()) return 0; // row count OF dates @@ -842,12 +844,12 @@ QModelIndex HistoryTreeModel::mapToSource(const QModelIndex &proxyIndex) const QModelIndex HistoryTreeModel::index(int row, int column, const QModelIndex &parent) const { if (row < 0 - || column < 0 || column >= columnCount(parent) - || parent.column() > 0) + || column < 0 || column >= columnCount(parent) + || parent.column() > 0) return QModelIndex(); if (!parent.isValid()) - return createIndex(row, column, (void*) 0); + return createIndex(row, column, (void*) nullptr); return createIndex(row, column, parent.row() + 1); } @@ -856,7 +858,7 @@ QModelIndex HistoryTreeModel::parent(const QModelIndex &index) const int offset = index.internalId(); if (offset == 0 || !index.isValid()) return QModelIndex(); - return createIndex(offset - 1, 0, (void*) 0); + return createIndex(offset - 1, 0, (void*) nullptr); } bool HistoryTreeModel::hasChildren(const QModelIndex &parent) const @@ -985,26 +987,26 @@ void HistoryTreeModel::sourceRowsRemoved(const QModelIndex &parent, int start, i Q_UNUSED(parent); // Avoid warnings when compiling release Q_ASSERT(!parent.isValid()); if (!m_sourceRowCache.isEmpty()) - for (int i = end; i >= start;) { - QList::iterator it; - it = std::lower_bound(m_sourceRowCache.begin(), m_sourceRowCache.end(), i); - if (*it != i) - --it; - int row = qMax(0, it - m_sourceRowCache.begin()); - int offset = m_sourceRowCache[row]; - QModelIndex dateParent = index(row, 0); - // If we can remove all the rows in the date do that and skip over them - int rc = rowCount(dateParent); - if (i - rc + 1 == offset && start <= i - rc + 1) { - m_sourceRowCache.removeAt(row); - i -= rc + 1; - } else { - ++row; - --i; + for (int i = end; i >= start;) { + QList::iterator it; + it = std::lower_bound(m_sourceRowCache.begin(), m_sourceRowCache.end(), i); + if (*it != i) + --it; + int row = qMax(0, it - m_sourceRowCache.begin()); + int offset = m_sourceRowCache[row]; + QModelIndex dateParent = index(row, 0); + // If we can remove all the rows in the date do that and skip over them + int rc = rowCount(dateParent); + if (i - rc + 1 == offset && start <= i - rc + 1) { + m_sourceRowCache.removeAt(row); + i -= rc + 1; + } else { + ++row; + --i; + } + for (int j = row; j < m_sourceRowCache.count(); ++j) + --m_sourceRowCache[j]; } - for (int j = row; j < m_sourceRowCache.count(); ++j) - --m_sourceRowCache[j]; - } if (removingDown) { endRemoveRows(); removingDown = false; diff --git a/src/history/history.h b/src/history/history.h index eb106e5c..79e6a7dd 100644 --- a/src/history/history.h +++ b/src/history/history.h @@ -93,7 +93,7 @@ public slots: MaxRole = TitleRole }; - HistoryModel(HistoryManager *history, QObject *parent = 0); + HistoryModel(HistoryManager *history, QObject *parent = nullptr); QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; @@ -114,7 +114,7 @@ class HistoryFilterModel : public QAbstractProxyModel Q_OBJECT public: - HistoryFilterModel(QAbstractItemModel *sourceModel, QObject *parent = 0); + HistoryFilterModel(QAbstractItemModel *sourceModel, QObject *parent = nullptr); inline bool historyContains(const QString &url) const { load(); return m_historyHash.contains(url); } @@ -192,7 +192,7 @@ class HistoryMenuModel : public QAbstractProxyModel Q_OBJECT public: - HistoryMenuModel(HistoryTreeModel *sourceModel, QObject *parent = 0); + HistoryMenuModel(HistoryTreeModel *sourceModel, QObject *parent = nullptr); int columnCount(const QModelIndex &parent) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; QModelIndex mapFromSource(const QModelIndex & sourceIndex) const; @@ -219,7 +219,7 @@ class HistoryMenu : public ModelMenu void openUrl(const QUrl &url, const QString &title); public: - HistoryMenu(QWidget *parent = 0); + HistoryMenu(QWidget *parent = nullptr); void setInitialActions(QList actions); protected: @@ -246,7 +246,7 @@ class HistoryTreeModel : public QAbstractProxyModel Q_OBJECT public: - HistoryTreeModel(QAbstractItemModel *sourceModel, QObject *parent = 0); + HistoryTreeModel(QAbstractItemModel *sourceModel, QObject *parent = nullptr); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; int columnCount(const QModelIndex &parent) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; @@ -284,7 +284,7 @@ class HistoryDialog : public QDialog, public Ui_HistoryDialog void openUrl(const QUrl &url, const QString &title); public: - HistoryDialog(QWidget *parent = 0, HistoryManager *history = 0); + HistoryDialog(QWidget *parent = nullptr, HistoryManager *history = nullptr); private slots: void customContextMenuRequested(const QPoint &pos); diff --git a/src/history/historycompleter.h b/src/history/historycompleter.h index 211389cc..e0fbb7a9 100644 --- a/src/history/historycompleter.h +++ b/src/history/historycompleter.h @@ -33,7 +33,7 @@ class QResizeEvent; class HistoryCompletionView : public QTableView { public: - HistoryCompletionView(QWidget *parent = 0); + HistoryCompletionView(QWidget *parent = nullptr); int sizeHintForRow(int row) const; protected: @@ -58,7 +58,7 @@ class HistoryCompletionModel : public QSortFilterProxyModel Q_PROPERTY(QString searchString READ searchString WRITE setSearchString) public: - HistoryCompletionModel(QObject *parent = 0); + HistoryCompletionModel(QObject *parent = nullptr); enum Roles { HistoryCompletionRole = HistoryFilterModel::MaxRole + 1 }; @@ -86,8 +86,8 @@ class HistoryCompleter : public QCompleter Q_OBJECT public: - HistoryCompleter(QObject *parent = 0); - HistoryCompleter(QAbstractItemModel *model, QObject *parent = 0); + HistoryCompleter(QObject *parent = nullptr); + HistoryCompleter(QAbstractItemModel *model, QObject *parent = nullptr); virtual QString pathFromIndex(const QModelIndex &index) const; virtual QStringList splitPath(const QString &path) const; diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index 2e24c041..aef29098 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -105,9 +105,9 @@ HistoryManager::HistoryManager(QObject *parent) : QObject(parent) , m_saveTimer(new AutoSaver(this)) , m_daysToExpire(30) - , m_historyModel(0) - , m_historyFilterModel(0) - , m_historyTreeModel(0) + , m_historyModel(nullptr) + , m_historyFilterModel(nullptr) + , m_historyTreeModel(nullptr) { m_expiredTimer.setSingleShot(true); connect(&m_expiredTimer, SIGNAL(timeout()), @@ -253,7 +253,7 @@ void HistoryManager::removeHistoryEntry(const QUrl &url, const QString &title) { for (int i = 0; i < m_history.count(); ++i) { if (url == m_history.at(i).url - && (title.isEmpty() || title == m_history.at(i).title)) { + && (title.isEmpty() || title == m_history.at(i).title)) { removeHistoryEntry(m_history.at(i)); break; } diff --git a/src/history/historymanager.h b/src/history/historymanager.h index 35484278..2e895176 100644 --- a/src/history/historymanager.h +++ b/src/history/historymanager.h @@ -110,7 +110,7 @@ class HistoryManager : public QObject void entryUpdated(int offset); public: - HistoryManager(QObject *parent = 0); + HistoryManager(QObject *parent = nullptr); ~HistoryManager(); bool historyContains(const QString &url) const; diff --git a/src/locationbar/locationbar.cpp b/src/locationbar/locationbar.cpp index bdf2238d..1d83bb61 100644 --- a/src/locationbar/locationbar.cpp +++ b/src/locationbar/locationbar.cpp @@ -36,9 +36,9 @@ LocationBar::LocationBar(QWidget *parent) : LineEdit(parent) - , m_webView(0) - , m_siteIcon(0) - , m_privacyIndicator(0) + , m_webView(nullptr) + , m_siteIcon(nullptr) + , m_privacyIndicator(nullptr) { // Urls are always LeftToRight setLayoutDirection(Qt::LeftToRight); @@ -106,7 +106,7 @@ void LocationBar::paintEvent(QPaintEvent *event) QColor defaultBaseColor = QApplication::palette().color(QPalette::Base); QColor backgroundColor = defaultBaseColor; if (m_webView && m_webView->url().scheme() == QLatin1String("https") - && p.color(QPalette::Text).value() < 128) { + && p.color(QPalette::Text).value() < 128) { QColor lightYellow(248, 248, 210); backgroundColor = lightYellow; } @@ -157,7 +157,7 @@ void LocationBar::keyPressEvent(QKeyEvent *event) QString currentText = text().trimmed(); if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) - && !currentText.startsWith(QLatin1String("http://"), Qt::CaseInsensitive)) { + && !currentText.startsWith(QLatin1String("http://"), Qt::CaseInsensitive)) { QString append; if (event->modifiers() == Qt::ControlModifier) append = QLatin1String(".com"); diff --git a/src/locationbar/locationbar.h b/src/locationbar/locationbar.h index 1ddd5923..5e8467c5 100644 --- a/src/locationbar/locationbar.h +++ b/src/locationbar/locationbar.h @@ -33,7 +33,7 @@ class LocationBar : public LineEdit Q_OBJECT public: - LocationBar(QWidget *parent = 0); + LocationBar(QWidget *parent = nullptr); void setWebView(WebView *webView); WebView *webView() const; diff --git a/src/locationbar/locationbarsiteicon.cpp b/src/locationbar/locationbarsiteicon.cpp index 61da516a..c23ec8c2 100644 --- a/src/locationbar/locationbarsiteicon.cpp +++ b/src/locationbar/locationbarsiteicon.cpp @@ -29,7 +29,7 @@ LocationBarSiteIcon::LocationBarSiteIcon(QWidget *parent) : QLabel(parent) - , m_webView(0) + , m_webView(nullptr) { resize(QSize(16, 16)); webViewSiteIconChanged(); @@ -64,8 +64,8 @@ void LocationBarSiteIcon::mousePressEvent(QMouseEvent *event) void LocationBarSiteIcon::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() == Qt::LeftButton - && (event->pos() - m_dragStartPos).manhattanLength() > QApplication::startDragDistance() - && m_webView) { + && (event->pos() - m_dragStartPos).manhattanLength() > QApplication::startDragDistance() + && m_webView) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; QString title = m_webView->title(); diff --git a/src/locationbar/locationbarsiteicon.h b/src/locationbar/locationbarsiteicon.h index 16c4521c..09646305 100644 --- a/src/locationbar/locationbarsiteicon.h +++ b/src/locationbar/locationbarsiteicon.h @@ -28,7 +28,7 @@ class LocationBarSiteIcon : public QLabel Q_OBJECT public: - LocationBarSiteIcon(QWidget *parent = 0); + LocationBarSiteIcon(QWidget *parent = nullptr); void setWebView(WebView *webView); protected: diff --git a/src/locationbar/privacyindicator.h b/src/locationbar/privacyindicator.h index 06928ea7..2f59bd7d 100644 --- a/src/locationbar/privacyindicator.h +++ b/src/locationbar/privacyindicator.h @@ -27,7 +27,7 @@ class PrivacyIndicator : public QLabel Q_OBJECT public: - PrivacyIndicator(QWidget *parent = 0); + PrivacyIndicator(QWidget *parent = nullptr); protected: void mousePressEvent(QMouseEvent *event); diff --git a/src/modelmenu.cpp b/src/modelmenu.cpp index f8c6c52a..d24c2a14 100644 --- a/src/modelmenu.cpp +++ b/src/modelmenu.cpp @@ -84,7 +84,7 @@ ModelMenu::ModelMenu(QWidget *parent) , m_maxWidth(-1) , m_statusBarTextRole(0) , m_separatorRole(0) - , m_model(0) + , m_model(nullptr) { setAcceptDrops(true); @@ -214,7 +214,7 @@ void ModelMenu::createMenu(const QModelIndex &parent, int max, QMenu *parentMenu createMenu(idx, -1, menu); } else { if (m_separatorRole != 0 - && idx.data(m_separatorRole).toBool()) + && idx.data(m_separatorRole).toBool()) addSeparator(); else menu->addAction(makeAction(idx)); diff --git a/src/modelmenu.h b/src/modelmenu.h index fc6e8630..2d0ca7b2 100644 --- a/src/modelmenu.h +++ b/src/modelmenu.h @@ -76,7 +76,7 @@ class ModelMenu : public QMenu void activated(const QModelIndex &index); public: - ModelMenu(QWidget *parent = 0); + ModelMenu(QWidget *parent = nullptr); void setModel(QAbstractItemModel *model); QAbstractItemModel *model() const; @@ -108,7 +108,7 @@ class ModelMenu : public QMenu virtual ModelMenu *createBaseMenu(); // put all of the children of parent into menu up to max - void createMenu(const QModelIndex &parent, int max, QMenu *parentMenu = 0, QMenu *menu = 0); + void createMenu(const QModelIndex &parent, int max, QMenu *parentMenu = nullptr, QMenu *menu = nullptr); void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); diff --git a/src/modeltoolbar.cpp b/src/modeltoolbar.cpp index c27005fa..e73bb44e 100644 --- a/src/modeltoolbar.cpp +++ b/src/modeltoolbar.cpp @@ -30,7 +30,7 @@ ModelToolBar::ModelToolBar(QWidget *parent) : QToolBar(parent) - , m_model(0) + , m_model(nullptr) { if (isVisible()) build(); @@ -40,7 +40,7 @@ ModelToolBar::ModelToolBar(QWidget *parent) ModelToolBar::ModelToolBar(const QString &title, QWidget *parent) : QToolBar(title, parent) - , m_model(0) + , m_model(nullptr) { if (isVisible()) build(); diff --git a/src/modeltoolbar.h b/src/modeltoolbar.h index 820b7a77..df3046a8 100644 --- a/src/modeltoolbar.h +++ b/src/modeltoolbar.h @@ -36,8 +36,8 @@ class ModelToolBar : public QToolBar void activated(const QModelIndex &index); public: - ModelToolBar(QWidget *parent = 0); - ModelToolBar(const QString &title, QWidget *parent = 0); + ModelToolBar(QWidget *parent = nullptr); + ModelToolBar(const QString &title, QWidget *parent = nullptr); void setModel(QAbstractItemModel *model); QAbstractItemModel *model() const; diff --git a/src/opensearch/opensearchdialog.cpp b/src/opensearch/opensearchdialog.cpp index 94fdf8d8..1fc00921 100644 --- a/src/opensearch/opensearchdialog.cpp +++ b/src/opensearch/opensearchdialog.cpp @@ -30,7 +30,7 @@ OpenSearchDialog::OpenSearchDialog(QWidget *parent) : QDialog(parent) - , m_model(0) + , m_model(nullptr) { setModal(true); setupUi(this); @@ -58,14 +58,14 @@ OpenSearchDialog::OpenSearchDialog(QWidget *parent) void OpenSearchDialog::addButtonClicked() { QStringList fileNames = QFileDialog::getOpenFileNames(this, - tr("Open File"), - QString(), - tr("OpenSearch") + QLatin1String(" (*.xml)")); + tr("Open File"), + QString(), + tr("OpenSearch") + QLatin1String(" (*.xml)")); foreach (const QString &fileName, fileNames) { if (!ToolbarSearch::openSearchManager()->addEngine(fileName)) { QMessageBox::critical(this, tr("Error"), - tr("%1 is not a valid OpenSearch 1.1 description or is already on your list.").arg(fileName)); + tr("%1 is not a valid OpenSearch 1.1 description or is already on your list.").arg(fileName)); } } } @@ -74,7 +74,7 @@ void OpenSearchDialog::deleteButtonClicked() { if (m_tableView->model()->rowCount() == 1) { QMessageBox::critical(this, tr("Error"), - tr("You must have at least one search engine in here.")); + tr("You must have at least one search engine in here.")); return; } diff --git a/src/opensearch/opensearchdialog.h b/src/opensearch/opensearchdialog.h index 5f50e974..5804984f 100644 --- a/src/opensearch/opensearchdialog.h +++ b/src/opensearch/opensearchdialog.h @@ -32,7 +32,7 @@ class OpenSearchDialog : public QDialog, public Ui_OpenSearchDialog Q_OBJECT public: - OpenSearchDialog(QWidget *parent = 0); + OpenSearchDialog(QWidget *parent = nullptr); protected slots: void addButtonClicked(); diff --git a/src/opensearch/opensearchengine.cpp b/src/opensearch/opensearchengine.cpp index b979917a..f6a14521 100644 --- a/src/opensearch/opensearchengine.cpp +++ b/src/opensearch/opensearchengine.cpp @@ -85,10 +85,10 @@ OpenSearchEngine::OpenSearchEngine(QObject *parent) : QObject(parent) , m_searchMethod(QLatin1String("get")) , m_suggestionsMethod(QLatin1String("get")) - , m_networkAccessManager(0) - , m_suggestionsReply(0) - , m_scriptEngine(0) - , m_delegate(0) + , m_networkAccessManager(nullptr) + , m_suggestionsReply(nullptr) + , m_scriptEngine(nullptr) + , m_delegate(nullptr) { m_requestMethods.insert(QLatin1String("get"), QNetworkAccessManager::GetOperation); m_requestMethods.insert(QLatin1String("post"), QNetworkAccessManager::PostOperation); @@ -473,7 +473,7 @@ void OpenSearchEngine::requestSuggestions(const QString &searchTerm) m_suggestionsReply->disconnect(this); m_suggestionsReply->abort(); m_suggestionsReply->deleteLater(); - m_suggestionsReply = 0; + m_suggestionsReply = nullptr; } Q_ASSERT(m_requestMethods.contains(m_suggestionsMethod)); @@ -534,7 +534,7 @@ void OpenSearchEngine::suggestionsObtained() m_suggestionsReply->close(); m_suggestionsReply->deleteLater(); - m_suggestionsReply = 0; + m_suggestionsReply = nullptr; if (response.isEmpty()) return; diff --git a/src/opensearch/opensearchengine.h b/src/opensearch/opensearchengine.h index 3ec63d22..864ac902 100644 --- a/src/opensearch/opensearchengine.h +++ b/src/opensearch/opensearchengine.h @@ -56,7 +56,7 @@ class OpenSearchEngine : public QObject Q_PROPERTY(bool valid READ isValid) Q_PROPERTY(QNetworkAccessManager *networkAccessManager READ networkAccessManager WRITE setNetworkAccessManager) - OpenSearchEngine(QObject *parent = 0); + OpenSearchEngine(QObject *parent = nullptr); ~OpenSearchEngine(); QString name() const; diff --git a/src/opensearch/opensearchengineaction.h b/src/opensearch/opensearchengineaction.h index 78c3dd89..8635028c 100644 --- a/src/opensearch/opensearchengineaction.h +++ b/src/opensearch/opensearchengineaction.h @@ -28,7 +28,7 @@ class OpenSearchEngineAction : public QAction Q_OBJECT public: - OpenSearchEngineAction(OpenSearchEngine *engine, QObject *parent = 0); + OpenSearchEngineAction(OpenSearchEngine *engine, QObject *parent = nullptr); private slots: void imageChanged(); diff --git a/src/opensearch/opensearchenginemodel.cpp b/src/opensearch/opensearchenginemodel.cpp index 85559b15..6284269b 100644 --- a/src/opensearch/opensearchenginemodel.cpp +++ b/src/opensearch/opensearchenginemodel.cpp @@ -97,13 +97,13 @@ QVariant OpenSearchEngineModel::data(const QModelIndex &index, int role) const switch (role) { case Qt::DisplayRole: return engine->name(); - break; + break; case Qt::DecorationRole: { QImage image = engine->image(); if (image.isNull()) return BrowserApplication::icon(engine->imageUrl()); return image; - break; + break; } case Qt::ToolTipRole: QString description = tr("Description: %1").arg(engine->description()); @@ -114,7 +114,7 @@ QVariant OpenSearchEngineModel::data(const QModelIndex &index, int role) const } return description; - break; + break; } break; diff --git a/src/opensearch/opensearchenginemodel.h b/src/opensearch/opensearchenginemodel.h index 23001cfd..582cb4df 100644 --- a/src/opensearch/opensearchenginemodel.h +++ b/src/opensearch/opensearchenginemodel.h @@ -32,7 +32,7 @@ class OpenSearchEngineModel : public QAbstractTableModel Q_OBJECT public: - OpenSearchEngineModel(OpenSearchManager *manager, QObject *parent = 0); + OpenSearchEngineModel(OpenSearchManager *manager, QObject *parent = nullptr); bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; diff --git a/src/opensearch/opensearchmanager.cpp b/src/opensearch/opensearchmanager.cpp index 54bf5681..df3499a9 100644 --- a/src/opensearch/opensearchmanager.cpp +++ b/src/opensearch/opensearchmanager.cpp @@ -74,7 +74,7 @@ void OpenSearchManager::setCurrentEngineName(const QString &name) OpenSearchEngine *OpenSearchManager::currentEngine() const { if (m_current.isEmpty() || !m_engines.contains(m_current)) - return 0; + return nullptr; return m_engines[m_current]; } @@ -90,7 +90,7 @@ void OpenSearchManager::setCurrentEngine(OpenSearchEngine *engine) OpenSearchEngine *OpenSearchManager::engine(const QString &name) { if (!m_engines.contains(name)) - return 0; + return nullptr; return m_engines[name]; } @@ -309,10 +309,10 @@ bool OpenSearchManager::confirmAddition(OpenSearchEngine *engine) QString host = QUrl(engine->searchUrlTemplate()).host(); - QMessageBox::StandardButton button = QMessageBox::question(0, QString(), - tr("Do you want to add the following engine to your list of search engines?

    " - "Name: %1
    Searches on: %2").arg(engine->name(), host), - QMessageBox::Yes | QMessageBox::No, QMessageBox::No); + QMessageBox::StandardButton button = QMessageBox::question(nullptr, QString(), + tr("Do you want to add the following engine to your list of search engines?

    " + "Name: %1
    Searches on: %2").arg(engine->name(), host), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No); return (button == QMessageBox::Yes); } @@ -376,9 +376,9 @@ QUrl OpenSearchManager::convertKeywordSearchToUrl(const QString &string) OpenSearchEngine *OpenSearchManager::engineForKeyword(const QString &keyword) const { if (keyword.isEmpty()) - return 0; + return nullptr; if (!m_keywords.contains(keyword)) - return 0; + return nullptr; return m_keywords.value(keyword); } diff --git a/src/opensearch/opensearchmanager.h b/src/opensearch/opensearchmanager.h index 1d3f33c9..a9a84b52 100644 --- a/src/opensearch/opensearchmanager.h +++ b/src/opensearch/opensearchmanager.h @@ -44,7 +44,7 @@ class OpenSearchManager : public QObject void currentEngineChanged(); public: - OpenSearchManager(QObject *parent = 0); + OpenSearchManager(QObject *parent = nullptr); ~OpenSearchManager(); QStringList allEnginesNames() const; diff --git a/src/opensearch/opensearchreader.cpp b/src/opensearch/opensearchreader.cpp index 7b88578a..a9af8066 100644 --- a/src/opensearch/opensearchreader.cpp +++ b/src/opensearch/opensearchreader.cpp @@ -85,7 +85,7 @@ OpenSearchEngine *OpenSearchReader::read() readNext(); if (name() != QLatin1String("OpenSearchDescription") - || namespaceUri() != QLatin1String("http://a9.com/-/spec/opensearch/1.1/")) { + || namespaceUri() != QLatin1String("http://a9.com/-/spec/opensearch/1.1/")) { raiseError(QObject::tr("The file is not an OpenSearch 1.1 file.")); return engine; } @@ -107,13 +107,13 @@ OpenSearchEngine *OpenSearchReader::read() QString method = attributes().value(QLatin1String("method")).toString(); if (type == QLatin1String("application/x-suggestions+json") - && !engine->suggestionsUrlTemplate().isEmpty()) + && !engine->suggestionsUrlTemplate().isEmpty()) continue; if ((type.isEmpty() - || type == QLatin1String("text/html") - || type == QLatin1String("application/xhtml+xml")) - && !engine->searchUrlTemplate().isEmpty()) + || type == QLatin1String("text/html") + || type == QLatin1String("application/xhtml+xml")) + && !engine->searchUrlTemplate().isEmpty()) continue; if (url.isEmpty()) @@ -150,14 +150,14 @@ OpenSearchEngine *OpenSearchReader::read() } } else if (name() == QLatin1String("Image")) { - engine->setImageUrl(readElementText()); + engine->setImageUrl(readElementText()); } if (!engine->name().isEmpty() - && !engine->description().isEmpty() - && !engine->suggestionsUrlTemplate().isEmpty() - && !engine->searchUrlTemplate().isEmpty() - && !engine->imageUrl().isEmpty()) + && !engine->description().isEmpty() + && !engine->suggestionsUrlTemplate().isEmpty() + && !engine->searchUrlTemplate().isEmpty() + && !engine->imageUrl().isEmpty()) break; } diff --git a/src/plaintexteditsearch.h b/src/plaintexteditsearch.h index 95527517..50d51982 100644 --- a/src/plaintexteditsearch.h +++ b/src/plaintexteditsearch.h @@ -30,7 +30,7 @@ class PlainTextEditSearch : public SearchBar Q_OBJECT public: - PlainTextEditSearch(QPlainTextEdit *plainTextEdit, QWidget *parent = 0); + PlainTextEditSearch(QPlainTextEdit *plainTextEdit, QWidget *parent = nullptr); public slots: void findNext(); diff --git a/src/searchbar.cpp b/src/searchbar.cpp index 59074e43..508a4f45 100644 --- a/src/searchbar.cpp +++ b/src/searchbar.cpp @@ -27,8 +27,8 @@ SearchBar::SearchBar(QWidget *parent) : QWidget(parent) - , m_object(0) - , m_widget(0) + , m_object(nullptr) + , m_widget(nullptr) , m_timeLine(new QTimeLine(150, this)) { initializeSearchWidget(); @@ -61,9 +61,9 @@ void SearchBar::initializeSearchWidget() m_widget->setContentsMargins(0, 0, 0, 0); ui.setupUi(m_widget); ui.previousButton->setText(m_widget->layoutDirection() - == Qt::LeftToRight? QChar(9664): QChar(9654)); + == Qt::LeftToRight? QChar(9664): QChar(9654)); ui.nextButton->setText(m_widget->layoutDirection() - == Qt::LeftToRight? QChar(9654): QChar(9664)); + == Qt::LeftToRight? QChar(9654): QChar(9664)); ui.searchInfo->setText(QString()); setMinimumWidth(m_widget->minimumWidth()); setMaximumWidth(m_widget->maximumWidth()); diff --git a/src/searchbar.h b/src/searchbar.h index a726c781..8ad612e4 100644 --- a/src/searchbar.h +++ b/src/searchbar.h @@ -33,7 +33,7 @@ class SearchBar : public QWidget Q_OBJECT public: - SearchBar(QWidget *parent = 0); + SearchBar(QWidget *parent = nullptr); void setSearchObject(QObject *object); QObject *searchObject() const; diff --git a/src/searchbutton.h b/src/searchbutton.h index 393cee53..074cbb5f 100644 --- a/src/searchbutton.h +++ b/src/searchbutton.h @@ -28,7 +28,7 @@ class SearchButton : public QAbstractButton Q_OBJECT public: - SearchButton(QWidget *parent = 0); + SearchButton(QWidget *parent = nullptr); void setImage(const QImage &image); void setShowMenuTriangle(bool show); bool showMenuTriangle() const; diff --git a/src/searchlineedit.h b/src/searchlineedit.h index dcc40404..e6e081d5 100644 --- a/src/searchlineedit.h +++ b/src/searchlineedit.h @@ -38,7 +38,7 @@ class SearchLineEdit : public LineEdit Q_OBJECT public: - SearchLineEdit(QWidget *parent = 0); + SearchLineEdit(QWidget *parent = nullptr); ClearButton *clearButton() const; SearchButton *searchButton() const; diff --git a/src/settings.cpp b/src/settings.cpp index d83359a4..55ef85a5 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -136,13 +136,27 @@ void SettingsDialog::loadFromSettings() int historyExpire = settings.value(QLatin1String("historyLimit")).toInt(); int idx = 0; switch (historyExpire) { - case 1: idx = 0; break; - case 7: idx = 1; break; - case 14: idx = 2; break; - case 30: idx = 3; break; - case 365: idx = 4; break; - case -1: idx = 5; break; - case -2: idx = 6; break; + case 1: + idx = 0; + break; + case 7: + idx = 1; + break; + case 14: + idx = 2; + break; + case 30: + idx = 3; + break; + case 365: + idx = 4; + break; + case -1: + idx = 5; + break; + case -2: + idx = 6; + break; default: idx = 5; } @@ -238,13 +252,27 @@ void SettingsDialog::saveToSettings() int historyExpire = expireHistory->currentIndex(); int idx = -1; switch (historyExpire) { - case 0: idx = 1; break; - case 1: idx = 7; break; - case 2: idx = 14; break; - case 3: idx = 30; break; - case 4: idx = 365; break; - case 5: idx = -1; break; - case 6: idx = -2; break; + case 0: + idx = 1; + break; + case 1: + idx = 7; + break; + case 2: + idx = 14; + break; + case 3: + idx = 30; + break; + case 4: + idx = 365; + break; + case 5: + idx = -1; + break; + case 6: + idx = -2; + break; } settings.setValue(QLatin1String("historyLimit"), idx); settings.endGroup(); diff --git a/src/settings.h b/src/settings.h index 4f386744..62fe8589 100644 --- a/src/settings.h +++ b/src/settings.h @@ -71,7 +71,7 @@ class SettingsDialog : public QDialog, public Ui_Settings Q_OBJECT public: - SettingsDialog(QWidget *parent = 0); + SettingsDialog(QWidget *parent = nullptr); void accept(); private slots: diff --git a/src/sourcehighlighter.cpp b/src/sourcehighlighter.cpp index d61ffa07..98a2975d 100644 --- a/src/sourcehighlighter.cpp +++ b/src/sourcehighlighter.cpp @@ -32,9 +32,9 @@ SourceHighlighter::SourceHighlighter(QTextDocument *document) QColor entityColor; entityColor.setRed((foreground.red() + background.red()) / 2); entityColor.setGreen( - (foreground.green() + background.green()) / 2); + (foreground.green() + background.green()) / 2); entityColor.setBlue( - (foreground.blue() + background.blue()) / 2); + (foreground.blue() + background.blue()) / 2); if (abs(entityColor.red() - background.red()) > 80) entityColor.setRed(foreground.red()); else if (abs(entityColor.green()-background.green()) > 80) @@ -48,9 +48,9 @@ SourceHighlighter::SourceHighlighter(QTextDocument *document) QColor tagColor; tagColor.setRed(foreground.red() + (background.red() - foreground.red()) / 4); tagColor.setGreen( - foreground.green() + (background.green() - foreground.green()) / 4); + foreground.green() + (background.green() - foreground.green()) / 4); tagColor.setBlue( - foreground.blue() + (background.blue() - foreground.blue()) / 4); + foreground.blue() + (background.blue() - foreground.blue()) / 4); tagFormat.setForeground(tagColor); tagFormat.setFontWeight(QFont::Bold); setFormatFor(Tag, tagFormat); @@ -59,9 +59,9 @@ SourceHighlighter::SourceHighlighter(QTextDocument *document) QColor commentColor; commentColor.setRed(background.red() + (foreground.red() - background.red()) / 3); commentColor.setGreen( - background.green() + (foreground.green() - background.green()) / 3); + background.green() + (foreground.green() - background.green()) / 3); commentColor.setBlue( - background.blue() + (foreground.blue() - background.blue()) / 3); + background.blue() + (foreground.blue() - background.blue()) / 3); commentFormat.setForeground(commentColor); commentFormat.setFontWeight(QFont::Normal); setFormatFor(Comment, commentFormat); @@ -70,9 +70,9 @@ SourceHighlighter::SourceHighlighter(QTextDocument *document) QColor attributeColor; attributeColor.setRed((foreground.red() + background.red()) / 2); attributeColor.setGreen( - (foreground.green() + background.green()) / 2); + (foreground.green() + background.green()) / 2); attributeColor.setBlue( - (foreground.blue() + background.blue()) / 2); + (foreground.blue() + background.blue()) / 2); if (abs(attributeColor.red() - background.red()) > 80) attributeColor.setRed(background.red()); else if (abs(attributeColor.green() - background.green()) > 80) @@ -89,7 +89,7 @@ QTextCharFormat SourceHighlighter::getFormatFor(Construct construct) } void SourceHighlighter::setFormatFor(Construct construct, - QTextCharFormat &format) + QTextCharFormat &format) { formats[construct] = format; } @@ -138,7 +138,7 @@ void SourceHighlighter::highlightBlock(const QString &text) setFormat(start, len - start, formats[Comment]); } break; - case InTag: + case InTag: regex.setPattern(QLatin1String("[>\"]")); pos = regex.indexIn(text, pos); if (pos >= 0) { diff --git a/src/sourceviewer.cpp b/src/sourceviewer.cpp index f49604a9..1f495467 100644 --- a/src/sourceviewer.cpp +++ b/src/sourceviewer.cpp @@ -98,15 +98,15 @@ void SourceViewer::loadingFinished() connect(&page, &QWebEnginePage::loadFinished, &loop, &QEventLoop::quit); page.setContent(response, QString(), m_reply->request().url()); loop.exec(); -/* - If original request was POST or a different problem is there, fall - back to modified version of QWebFrame.toHtml() + /* + If original request was POST or a different problem is there, fall + back to modified version of QWebFrame.toHtml() - if (page.mainFrame()->toHtml() != m_source) - m_edit->setPlainText(m_source); - else -*/ - m_edit->setPlainText(QLatin1String(response)); + if (page.mainFrame()->toHtml() != m_source) + m_edit->setPlainText(m_source); + else + */ + m_edit->setPlainText(QLatin1String(response)); m_reply->close(); } diff --git a/src/sourceviewer.h b/src/sourceviewer.h index a4b654a3..a6fb8752 100644 --- a/src/sourceviewer.h +++ b/src/sourceviewer.h @@ -37,7 +37,7 @@ class SourceViewer : public QDialog public: SourceViewer(const QString &source, const QString &title, - const QUrl &url, QWidget *parent = 0); + const QUrl &url, QWidget *parent = nullptr); ~SourceViewer(); private: diff --git a/src/tabbar.cpp b/src/tabbar.cpp index 2f40051e..931b0c56 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -89,7 +89,7 @@ int TabShortcut::tab() TabBar::TabBar(QWidget *parent) : QTabBar(parent) - , m_viewTabBarAction(0) + , m_viewTabBarAction(nullptr) , m_showTabBarWhenOneTab(true) { setContextMenuPolicy(Qt::CustomContextMenu); @@ -132,7 +132,7 @@ QAction *TabBar::viewTabBarAction() const QTabBar::ButtonPosition TabBar::freeSide() { - QTabBar::ButtonPosition side = (QTabBar::ButtonPosition)style()->styleHint(QStyle::SH_TabBar_CloseButtonPosition, 0, this); + QTabBar::ButtonPosition side = (QTabBar::ButtonPosition)style()->styleHint(QStyle::SH_TabBar_CloseButtonPosition, nullptr, this); side = (side == QTabBar::LeftSide) ? QTabBar::RightSide : QTabBar::LeftSide; return side; } @@ -222,7 +222,7 @@ void TabBar::closeOtherTabs() void TabBar::mouseDoubleClickEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton - && tabAt(event->pos()) == -1) { + && tabAt(event->pos()) == -1) { emit newTab(); return; } @@ -259,8 +259,8 @@ void TabBar::mouseMoveEvent(QMouseEvent *event) int diffX = event->pos().x() - m_dragStartPos.x(); int diffY = event->pos().y() - m_dragStartPos.y(); if ((event->pos() - m_dragStartPos).manhattanLength() > QApplication::startDragDistance() - && diffX < 3 && diffX > -3 - && diffY < -10) { + && diffX < 3 && diffX > -3 + && diffY < -10) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; QList urls; diff --git a/src/tabbar.h b/src/tabbar.h index 78d8c467..315ff944 100644 --- a/src/tabbar.h +++ b/src/tabbar.h @@ -84,7 +84,7 @@ class TabBar : public QTabBar void loadUrl(const QUrl &url, TabWidget::OpenUrlIn tab); public: - TabBar(QWidget *parent = 0); + TabBar(QWidget *parent = nullptr); bool showTabBarWhenOneTab() const; void setShowTabBarWhenOneTab(bool enabled); diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 729dba77..97da1770 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -100,18 +100,18 @@ TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) - , m_recentlyClosedTabsAction(0) - , m_newTabAction(0) - , m_closeTabAction(0) - , m_bookmarkTabsAction(0) - , m_nextTabAction(0) - , m_previousTabAction(0) - , m_recentlyClosedTabsMenu(0) - , m_lineEditCompleter(0) - , m_locationBars(0) + , m_recentlyClosedTabsAction(nullptr) + , m_newTabAction(nullptr) + , m_closeTabAction(nullptr) + , m_bookmarkTabsAction(nullptr) + , m_nextTabAction(nullptr) + , m_previousTabAction(nullptr) + , m_recentlyClosedTabsMenu(nullptr) + , m_lineEditCompleter(nullptr) + , m_locationBars(nullptr) , m_tabBar(new TabBar(this)) - , addTabButton(0) - , closeTabButton(0) + , addTabButton(nullptr) + , closeTabButton(nullptr) { setElideMode(Qt::ElideRight); @@ -187,7 +187,7 @@ TabWidget::TabWidget(QWidget *parent) m_locationBars = new QStackedWidget(this); connect(BrowserApplication::historyManager(), SIGNAL(historyCleared()), - this, SLOT(historyCleared())); + this, SLOT(historyCleared())); // Initialize Actions' labels retranslate(); @@ -336,7 +336,7 @@ WebView *TabWidget::webView(int index) const if (WebViewWithSearch *webViewWithSearch = qobject_cast(widget)) { return webViewWithSearch->m_webView; } - return 0; + return nullptr; } WebViewSearch *TabWidget::webViewSearch(int index) const @@ -345,7 +345,7 @@ WebViewSearch *TabWidget::webViewSearch(int index) const if (WebViewWithSearch *webViewWithSearch = qobject_cast(widget)) { return webViewWithSearch->m_webViewSearch; } - return 0; + return nullptr; } int TabWidget::webViewIndex(WebView *webView) const @@ -399,7 +399,7 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) connect(webView, SIGNAL(loadStarted()), this, SLOT(webViewLoadStarted())); connect(webView, SIGNAL(loadProgress(int)), - this, SLOT(webViewLoadProgress(int))); + this, SLOT(webViewLoadProgress(int))); connect(webView, SIGNAL(loadFinished(bool)), this, SLOT(webViewLoadFinished(bool))); connect(webView, SIGNAL(iconChanged()), @@ -592,7 +592,7 @@ void TabWidget::closeTab(int index) QWidget *webViewWithSearch = widget(index); removeTab(index); - webViewWithSearch->setParent(0); + webViewWithSearch->setParent(nullptr); webViewWithSearch->deleteLater(); emit tabsChanged(); @@ -605,7 +605,7 @@ void TabWidget::closeTab(int index) QLabel *TabWidget::animationLabel(int index, bool addMovie) { if (-1 == index) - return 0; + return nullptr; QTabBar::ButtonPosition side = m_tabBar->freeSide(); QLabel *loadingAnimation = qobject_cast(m_tabBar->tabButton(index, side)); if (!loadingAnimation) { @@ -617,7 +617,7 @@ QLabel *TabWidget::animationLabel(int index, bool addMovie) loadingAnimation->setMovie(movie); movie->start(); } - m_tabBar->setTabButton(index, side, 0); + m_tabBar->setTabButton(index, side, nullptr); m_tabBar->setTabButton(index, side, loadingAnimation); return loadingAnimation; } @@ -644,7 +644,7 @@ void TabWidget::webViewLoadProgress(int progress) int index = webViewIndex(webView); if (index != currentIndex() - || index < 0) + || index < 0) return; //double totalBytes = (double) webView->webPage()->totalBytes() / 1024; @@ -690,7 +690,7 @@ void TabWidget::webViewIconChanged() QLabel *label = animationLabel(index, false); QMovie *movie = label->movie(); delete movie; - label->setMovie(0); + label->setMovie(nullptr); label->setPixmap(icon.pixmap(16, 16)); #endif } @@ -811,7 +811,7 @@ QUrl TabWidget::guessUrlFromString(const QString &string) url = QUrl::fromUserInput(string); if (url.scheme() == QLatin1String("about") - && url.path() == QLatin1String("home")) + && url.path() == QLatin1String("home")) url = QUrl(QLatin1String("qrc:/startpage.html")); // QUrl::isValid() is too much tolerant. @@ -871,7 +871,7 @@ void TabWidget::loadSettings() setCornerWidget(closeTabButton, newTabButtonInRightCorner ? Qt::TopLeftCorner : Qt::TopRightCorner); closeTabButton->setVisible(oneCloseButton); } else { - setCornerWidget(0, newTabButtonInRightCorner ? Qt::TopLeftCorner : Qt::TopRightCorner); + setCornerWidget(nullptr, newTabButtonInRightCorner ? Qt::TopLeftCorner : Qt::TopRightCorner); } m_tabBar->setTabsClosable(!oneCloseButton); } @@ -905,7 +905,7 @@ TabWidget::OpenUrlIn TabWidget::modifyWithUserBehavior(OpenUrlIn tab) { #ifdef USERMODIFIEDBEHAVIOR_DEBUG qDebug() << __FUNCTION__ << "end" << modifiers << buttons << tab; #endif - BrowserApplication::instance()->setEventKeyboardModifiers(0); + BrowserApplication::instance()->setEventKeyboardModifiers(nullptr); BrowserApplication::instance()->setEventMouseButtons(Qt::NoButton); return tab; } @@ -936,45 +936,45 @@ void TabWidget::loadUrl(const QUrl &url, OpenUrlIn tab, const QString &title) */ WebView *TabWidget::getView(OpenUrlIn tab, WebView *currentView) { - WebView *webView = 0; + WebView *webView = nullptr; switch (tab) { - case NewWindow: { + case NewWindow: { #ifdef USERMODIFIEDBEHAVIOR_DEBUG - qDebug() << __FUNCTION__ << "NewWindow"; + qDebug() << __FUNCTION__ << "NewWindow"; #endif - BrowserMainWindow *newMainWindow = BrowserApplication::instance()->newMainWindow(); - webView = newMainWindow->currentTab(); - webView->setFocus(); - break; - } + BrowserMainWindow *newMainWindow = BrowserApplication::instance()->newMainWindow(); + webView = newMainWindow->currentTab(); + webView->setFocus(); + break; + } - case NewSelectedTab: { + case NewSelectedTab: { #ifdef USERMODIFIEDBEHAVIOR_DEBUG - qDebug() << __FUNCTION__ << "NewSelectedTab"; + qDebug() << __FUNCTION__ << "NewSelectedTab"; #endif - webView = makeNewTab(true); - webView->setFocus(); - break; - } + webView = makeNewTab(true); + webView->setFocus(); + break; + } - case NewNotSelectedTab: { + case NewNotSelectedTab: { #ifdef USERMODIFIEDBEHAVIOR_DEBUG - qDebug() << __FUNCTION__ << "NewNotSelectedTab"; + qDebug() << __FUNCTION__ << "NewNotSelectedTab"; #endif - webView = makeNewTab(false); - break; - } + webView = makeNewTab(false); + break; + } - case CurrentTab: - default: + case CurrentTab: + default: #ifdef USERMODIFIEDBEHAVIOR_DEBUG - qDebug() << __FUNCTION__ << "CurrentTab"; + qDebug() << __FUNCTION__ << "CurrentTab"; #endif - webView = currentView; - if (!webView) - return 0; - webView->setFocus(); - break; + webView = currentView; + if (!webView) + return nullptr; + webView->setFocus(); + break; } return webView; } diff --git a/src/tabwidget.h b/src/tabwidget.h index da0ab461..2affa03f 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -119,10 +119,12 @@ class TabWidget : public QTabWidget NewTab = NewNotSelectedTab }; - TabWidget(QWidget *parent = 0); + TabWidget(QWidget *parent = nullptr); void loadSettings(); - TabBar *tabBar() { return m_tabBar; } + TabBar *tabBar() { + return m_tabBar; + } void clear(); void addWebAction(QAction *action, QWebEnginePage::WebAction webAction); diff --git a/src/toolbarsearch.cpp b/src/toolbarsearch.cpp index 3eecdc2c..289ae9bf 100644 --- a/src/toolbarsearch.cpp +++ b/src/toolbarsearch.cpp @@ -84,7 +84,7 @@ #include #include -OpenSearchManager *ToolbarSearch::s_openSearchManager = 0; +OpenSearchManager *ToolbarSearch::s_openSearchManager = nullptr; /* ToolbarSearch is a search widget that also contains a small history @@ -96,10 +96,10 @@ ToolbarSearch::ToolbarSearch(QWidget *parent) , m_autosaver(new AutoSaver(this)) , m_maxSavedSearches(10) , m_model(new QStandardItemModel(this)) - , m_suggestionsItem(0) - , m_recentSearchesItem(0) - , m_suggestTimer(0) - , m_completer(0) + , m_suggestionsItem(nullptr) + , m_recentSearchesItem(nullptr) + , m_suggestTimer(nullptr) + , m_completer(nullptr) { connect(openSearchManager(), SIGNAL(currentEngineChanged()), this, SLOT(currentEngineChanged())); @@ -255,15 +255,15 @@ void ToolbarSearch::searchNow() // QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); // if (!globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) { - QStringList newList = m_recentSearches; - if (newList.contains(searchText)) - newList.removeAt(newList.indexOf(searchText)); - newList.prepend(searchText); - if (newList.size() >= m_maxSavedSearches) - newList.removeLast(); - - m_recentSearches = newList; - m_autosaver->changeOccurred(); + QStringList newList = m_recentSearches; + if (newList.contains(searchText)) + newList.removeAt(newList.indexOf(searchText)); + newList.prepend(searchText); + if (newList.size() >= m_maxSavedSearches) + newList.removeLast(); + + m_recentSearches = newList; + m_autosaver->changeOccurred(); // } QUrl searchUrl = engine->searchUrl(searchText); @@ -316,33 +316,33 @@ void ToolbarSearch::showEnginesMenu() action->setChecked(true); } } -/* - WebView *webView = BrowserMainWindow::parentWindow(this)->currentTab(); - QList engines = webView->webPage()->linkedResources(QLatin1String("search")); + /* + WebView *webView = BrowserMainWindow::parentWindow(this)->currentTab(); + QList engines = webView->webPage()->linkedResources(QLatin1String("search")); - if (!engines.empty()) - menu.addSeparator(); + if (!engines.empty()) + menu.addSeparator(); - for (int i = 0; i < engines.count(); ++i) { - WebPageLinkedResource engine = engines.at(i); + for (int i = 0; i < engines.count(); ++i) { + WebPageLinkedResource engine = engines.at(i); - QUrl url = engine.href; - QString title = engine.title; - QString mimetype = engine.type; + QUrl url = engine.href; + QString title = engine.title; + QString mimetype = engine.type; - if (mimetype != QLatin1String("application/opensearchdescription+xml")) - continue; - if (url.isEmpty()) - continue; + if (mimetype != QLatin1String("application/opensearchdescription+xml")) + continue; + if (url.isEmpty()) + continue; - if (title.isEmpty()) - title = webView->title().isEmpty() ? url.host() : webView->title(); + if (title.isEmpty()) + title = webView->title().isEmpty() ? url.host() : webView->title(); - QAction *action = menu.addAction(tr("Add '%1'").arg(title), this, SLOT(addEngineFromUrl())); - action->setData(url); - action->setIcon(webView->icon()); - } -*/ + QAction *action = menu.addAction(tr("Add '%1'").arg(title), this, SLOT(addEngineFromUrl())); + action->setData(url); + action->setIcon(webView->icon()); + } + */ menu.addSeparator(); if (BrowserMainWindow *window = BrowserMainWindow::parentWindow(this)) menu.addAction(window->searchManagerAction()); @@ -377,10 +377,10 @@ void ToolbarSearch::addEngineFromUrl() void ToolbarSearch::setupList() { if (m_suggestions.isEmpty() - || (m_model->rowCount() > 0 - && m_model->item(0) != m_suggestionsItem)) { + || (m_model->rowCount() > 0 + && m_model->item(0) != m_suggestionsItem)) { m_model->clear(); - m_suggestionsItem = 0; + m_suggestionsItem = nullptr; } else { m_model->removeRows(1, m_model->rowCount() - 1); } diff --git a/src/toolbarsearch.h b/src/toolbarsearch.h index 64d781e5..b099c4f3 100644 --- a/src/toolbarsearch.h +++ b/src/toolbarsearch.h @@ -83,7 +83,7 @@ class ToolbarSearch : public SearchLineEdit void search(const QUrl &url, TabWidget::OpenUrlIn tab); public: - ToolbarSearch(QWidget *parent = 0); + ToolbarSearch(QWidget *parent = nullptr); ~ToolbarSearch(); static OpenSearchManager *openSearchManager(); diff --git a/src/useragent/useragentmenu.cpp b/src/useragent/useragentmenu.cpp index d6fc497b..289a299f 100644 --- a/src/useragent/useragentmenu.cpp +++ b/src/useragent/useragentmenu.cpp @@ -110,7 +110,7 @@ void UserAgentMenu::addActionsFromFile(const QString &fileName) } if (xml.hasError()) { qDebug() << "Error reading custom user agents" << xml.errorString(); - // ... do error handling + // ... do error handling } } @@ -130,8 +130,8 @@ void UserAgentMenu::switchToOtherUserAgent() { bool ok; QString text = QInputDialog::getText(this, tr("Custom user agent"), - tr("User agent:"), QLineEdit::Normal, - WebPage::userAgent(), &ok, Qt::Sheet); + tr("User agent:"), QLineEdit::Normal, + WebPage::userAgent(), &ok, Qt::Sheet); if (ok) { WebPage::setUserAgent(text); } diff --git a/src/useragent/useragentmenu.h b/src/useragent/useragentmenu.h index b5ddfc3a..a3b7ab06 100644 --- a/src/useragent/useragentmenu.h +++ b/src/useragent/useragentmenu.h @@ -37,7 +37,7 @@ class UserAgentMenu : public QMenu Q_OBJECT public: - UserAgentMenu(QWidget *parent = 0); + UserAgentMenu(QWidget *parent = nullptr); private slots: void populateMenu(); diff --git a/src/utils/editlistview.h b/src/utils/editlistview.h index fe79681e..2349fada 100644 --- a/src/utils/editlistview.h +++ b/src/utils/editlistview.h @@ -36,7 +36,7 @@ class EditListView : public QListView Q_OBJECT public: - EditListView(QWidget *parent = 0); + EditListView(QWidget *parent = nullptr); void keyPressEvent(QKeyEvent *event); public slots: diff --git a/src/utils/edittableview.h b/src/utils/edittableview.h index a7817ea8..44a9a125 100644 --- a/src/utils/edittableview.h +++ b/src/utils/edittableview.h @@ -37,7 +37,7 @@ class EditTableView : public QTableView Q_OBJECT public: - EditTableView(QWidget *parent = 0); + EditTableView(QWidget *parent = nullptr); void keyPressEvent(QKeyEvent *event); public slots: diff --git a/src/utils/edittreeview.h b/src/utils/edittreeview.h index e12ec68e..b07c500c 100644 --- a/src/utils/edittreeview.h +++ b/src/utils/edittreeview.h @@ -37,7 +37,7 @@ class EditTreeView : public QTreeView Q_OBJECT public: - EditTreeView(QWidget *parent = 0); + EditTreeView(QWidget *parent = nullptr); void keyPressEvent(QKeyEvent *event); public slots: diff --git a/src/utils/explorerstyle.cpp b/src/utils/explorerstyle.cpp index 482d2038..5fc08e0b 100644 --- a/src/utils/explorerstyle.cpp +++ b/src/utils/explorerstyle.cpp @@ -56,7 +56,7 @@ typedef HANDLE (WINAPI *PtrOpenThemeData)(HWND hwnd, LPCWSTR pszClassList); typedef HRESULT (WINAPI *PtrDrawThemeBackground)(HANDLE hTheme, HDC hdc, int iPartId, int iStateId, - const RECT *pRect, OPTIONAL const RECT *pClipRect); + const RECT *pRect, OPTIONAL const RECT *pClipRect); typedef bool (WINAPI *PtrIsAppThemed)(); static PtrDrawThemeBackground pDrawThemeBackground = 0; @@ -96,7 +96,7 @@ void drawRebarBackground(const QRect &rect, QPainter *painter) { if (rect.isEmpty()) return; QString cacheKey = QLatin1String("q_rebar_") + QString::number(rect.size().width()) - + QLatin1Char('x') + QString::number(rect.size().height()); + + QLatin1Char('x') + QString::number(rect.size().height()); QPixmap pixmap; if (!QPixmapCache::find(cacheKey, pixmap)) { pixmap = QPixmap(rect.size()); @@ -116,7 +116,7 @@ void drawRebarBackground(const QRect &rect, QPainter *painter) { } void ExplorerStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, - QPainter *painter, const QWidget *widget) const + QPainter *painter, const QWidget *widget) const { QRect rect = option->rect; switch (element) { @@ -179,7 +179,7 @@ void ExplorerStyle::drawPrimitive(PrimitiveElement element, const QStyleOption * } void ExplorerStyle::drawControl(ControlElement element, const QStyleOption *option, - QPainter *painter, const QWidget *widget) const + QPainter *painter, const QWidget *widget) const { QColor shadow = option->palette.dark().color(); shadow.setAlpha(120); @@ -233,7 +233,7 @@ void ExplorerStyle::drawControl(ControlElement element, const QStyleOption *opti adjustedToolBar.palette.setBrush(QPalette::All, QPalette::Dark, shadow); QWindowsXPStyle::drawControl(element, &adjustedToolBar, painter, widget); } - break; + break; } //fall through default: @@ -246,7 +246,7 @@ void ExplorerStyle::drawControl(ControlElement element, const QStyleOption *opti } void ExplorerStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, - QPainter *painter, const QWidget *widget) const + QPainter *painter, const QWidget *widget) const { if (vista) QWindowsVistaStyle::drawComplexControl(control, option, painter, widget); @@ -255,7 +255,7 @@ void ExplorerStyle::drawComplexControl(ComplexControl control, const QStyleOptio } QSize ExplorerStyle::sizeFromContents(ContentsType type, const QStyleOption *option, - const QSize &size, const QWidget *widget) const + const QSize &size, const QWidget *widget) const { if (vista) return QWindowsVistaStyle::sizeFromContents(type, option, size, widget); @@ -272,7 +272,7 @@ QRect ExplorerStyle::subElementRect(SubElement element, const QStyleOption *opti } QRect ExplorerStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option, - SubControl subControl, const QWidget *widget) const + SubControl subControl, const QWidget *widget) const { if (vista) return QWindowsVistaStyle::subControlRect(control, option, subControl, widget); @@ -281,7 +281,7 @@ QRect ExplorerStyle::subControlRect(ComplexControl control, const QStyleOptionCo } QStyle::SubControl ExplorerStyle::hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, - const QPoint &pos, const QWidget *widget) const + const QPoint &pos, const QWidget *widget) const { if (vista) return QWindowsVistaStyle::hitTestComplexControl(control, option, pos, widget); diff --git a/src/utils/explorerstyle.h b/src/utils/explorerstyle.h index a4e97831..540f5c14 100644 --- a/src/utils/explorerstyle.h +++ b/src/utils/explorerstyle.h @@ -58,7 +58,7 @@ class ExplorerStyle : public QWindowsVistaStyle QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const; SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, - const QPoint &pos, const QWidget *widget = 0) const; + const QPoint &pos, const QWidget *widget = 0) const; QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = 0) const; int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const; diff --git a/src/utils/languagemanager.cpp b/src/utils/languagemanager.cpp index d60e1af3..d2863d8d 100644 --- a/src/utils/languagemanager.cpp +++ b/src/utils/languagemanager.cpp @@ -46,8 +46,8 @@ LanguageManager::LanguageManager(QObject *parent) : QObject(parent) - , m_sysTranslator(0) - , m_appTranslator(0) + , m_sysTranslator(nullptr) + , m_appTranslator(nullptr) , m_loaded(false) { #ifdef LANGUAGEMANAGER_DEBUG @@ -110,7 +110,7 @@ QString LanguageManager::convertStringToLanguageFile(const QString &string) cons #endif loadAvailableLanguages(); if (m_languages.contains(string)) - return string; + return string; QLocale locale(string); QString fallback = locale.name().split(QLatin1Char('_')).value(0); if (!string.contains(fallback)) @@ -137,7 +137,7 @@ bool LanguageManager::setCurrentLanguage(const QString &language) qDebug() << "LanguageManager::" << __FUNCTION__ << language; #endif if (m_currentLanguage == language - || !isLanguageAvailable(language)) + || !isLanguageAvailable(language)) return false; m_currentLanguage = language; @@ -149,8 +149,8 @@ bool LanguageManager::setCurrentLanguage(const QString &language) if (m_currentLanguage.isEmpty()) { delete m_appTranslator; delete m_sysTranslator; - m_appTranslator = 0; - m_sysTranslator = 0; + m_appTranslator = nullptr; + m_sysTranslator = nullptr; emit languageChanged(currentLanguage()); return true; } @@ -169,7 +169,7 @@ bool LanguageManager::setCurrentLanguage(const QString &language) QString translatorFileName = QLatin1String("qt_") + languageFile; if (!newSysTranslator->load(translatorFileName, resourceDir)) { delete newSysTranslator; - newSysTranslator = 0; + newSysTranslator = nullptr; } if (!loaded) { @@ -238,7 +238,7 @@ void LanguageManager::chooseNewLanguage() QMessageBox messageBox; QLatin1String separator = QLatin1String(", "); messageBox.setText(tr("No translation files are installed at %1.") - .arg(m_localeDirectories.join(separator))); + .arg(m_localeDirectories.join(separator))); messageBox.setStandardButtons(QMessageBox::Ok); messageBox.exec(); return; @@ -250,11 +250,11 @@ void LanguageManager::chooseNewLanguage() foreach (const QString &name, m_languages) { QLocale locale(name); QString string = QString(QLatin1String("%1, %2 (%3) %4")) - .arg(QLocale::languageToString(locale.language())) - .arg(QLocale::countryToString(locale.country())) - .arg(name) - // this is for pretty RTL support - .arg(QChar(0x200E)); // LRM = 0x200E + .arg(QLocale::languageToString(locale.language())) + .arg(QLocale::countryToString(locale.country())) + .arg(name) + // this is for pretty RTL support + .arg(QChar(0x200E)); // LRM = 0x200E if (name == current) defaultItem = items.count(); items << string; @@ -264,12 +264,12 @@ void LanguageManager::chooseNewLanguage() defaultItem = items.count() - 1; bool ok; - QString item = QInputDialog::getItem(0, - tr("Choose language"), - tr("

    You can run with a different language than
    " - "the operating system default.

    " - "

    Please choose the language which should be used

    "), - items, defaultItem, false, &ok); + QString item = QInputDialog::getItem(nullptr, + tr("Choose language"), + tr("

    You can run with a different language than
    " + "the operating system default.

    " + "

    Please choose the language which should be used

    "), + items, defaultItem, false, &ok); if (!ok) return; diff --git a/src/utils/languagemanager.h b/src/utils/languagemanager.h index c954be7c..868985e7 100644 --- a/src/utils/languagemanager.h +++ b/src/utils/languagemanager.h @@ -44,7 +44,7 @@ class LanguageManager : public QObject void languageChanged(const QString &language); public: - LanguageManager(QObject *parent = 0); + LanguageManager(QObject *parent = nullptr); void addLocaleDirectory(const QString &directory); QStringList localeDirectories() const; diff --git a/src/utils/lineedit.cpp b/src/utils/lineedit.cpp index 42d5c4f8..5e893046 100644 --- a/src/utils/lineedit.cpp +++ b/src/utils/lineedit.cpp @@ -50,18 +50,18 @@ bool SideWidget::event(QEvent *event) LineEdit::LineEdit(QWidget *parent) : QLineEdit(parent) - , m_leftLayout(0) - , m_rightLayout(0) + , m_leftLayout(nullptr) + , m_rightLayout(nullptr) { init(); } LineEdit::LineEdit(const QString &contents, QWidget *parent) : QLineEdit(contents, parent) - , m_leftWidget(0) - , m_rightWidget(0) - , m_leftLayout(0) - , m_rightLayout(0) + , m_leftWidget(nullptr) + , m_rightWidget(nullptr) + , m_leftLayout(nullptr) + , m_rightLayout(nullptr) { init(); } diff --git a/src/utils/lineedit.h b/src/utils/lineedit.h index 7eceb1db..ace3fedd 100644 --- a/src/utils/lineedit.h +++ b/src/utils/lineedit.h @@ -55,8 +55,8 @@ class LineEdit : public QLineEdit RightSide }; - LineEdit(QWidget *parent = 0); - LineEdit(const QString &contents, QWidget *parent = 0); + LineEdit(QWidget *parent = nullptr); + LineEdit(const QString &contents, QWidget *parent = nullptr); void addWidget(QWidget *widget, WidgetPosition position); void removeWidget(QWidget *widget); diff --git a/src/utils/lineedit_p.h b/src/utils/lineedit_p.h index bc5af286..0462453e 100644 --- a/src/utils/lineedit_p.h +++ b/src/utils/lineedit_p.h @@ -39,7 +39,7 @@ class SideWidget : public QWidget void sizeHintChanged(); public: - SideWidget(QWidget *parent = 0); + SideWidget(QWidget *parent = nullptr); protected: bool event(QEvent *event); diff --git a/src/utils/singleapplication.cpp b/src/utils/singleapplication.cpp index fb9708b4..d1768d36 100644 --- a/src/utils/singleapplication.cpp +++ b/src/utils/singleapplication.cpp @@ -44,7 +44,7 @@ SingleApplication::SingleApplication(int &argc, char **argv) : QApplication(argc, argv) - , m_localServer(0) + , m_localServer(nullptr) { } @@ -114,14 +114,14 @@ bool SingleApplication::startSingleServer() if (!success) { delete m_localServer; - m_localServer = 0; + m_localServer = nullptr; } return success; } bool SingleApplication::isRunning() const { - return (0 != m_localServer); + return (nullptr != m_localServer); } void SingleApplication::newConnection() diff --git a/src/utils/squeezelabel.h b/src/utils/squeezelabel.h index fb4eaccf..0183db66 100644 --- a/src/utils/squeezelabel.h +++ b/src/utils/squeezelabel.h @@ -40,7 +40,7 @@ class SqueezeLabel : public QLabel Q_OBJECT public: - SqueezeLabel(QWidget *parent = 0); + SqueezeLabel(QWidget *parent = nullptr); protected: void paintEvent(QPaintEvent *event); diff --git a/src/utils/treesortfilterproxymodel.h b/src/utils/treesortfilterproxymodel.h index f551c836..f92b2008 100644 --- a/src/utils/treesortfilterproxymodel.h +++ b/src/utils/treesortfilterproxymodel.h @@ -36,7 +36,7 @@ class TreeSortFilterProxyModel : public QSortFilterProxyModel Q_OBJECT public: - TreeSortFilterProxyModel(QObject *parent = 0); + TreeSortFilterProxyModel(QObject *parent = nullptr); protected: bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; diff --git a/src/webactionmapper.cpp b/src/webactionmapper.cpp index 28227613..9cbed5f0 100644 --- a/src/webactionmapper.cpp +++ b/src/webactionmapper.cpp @@ -66,7 +66,7 @@ WebActionMapper::WebActionMapper(QAction *root, QWebEnginePage::WebAction webAction, QObject *parent) : QObject(parent) - , m_currentParent(0) + , m_currentParent(nullptr) , m_root(root) , m_webAction(webAction) { @@ -79,12 +79,12 @@ WebActionMapper::WebActionMapper(QAction *root, QWebEnginePage::WebAction webAct void WebActionMapper::rootDestroyed() { - m_root = 0; + m_root = nullptr; } void WebActionMapper::currentDestroyed() { - updateCurrent(0); + updateCurrent(nullptr); } void WebActionMapper::addChild(QAction *action) @@ -111,8 +111,8 @@ void WebActionMapper::childChanged() { if (QAction *source = qobject_cast(sender())) { if (m_root - && m_currentParent - && source->parent() == m_currentParent) { + && m_currentParent + && source->parent() == m_currentParent) { m_root->setChecked(source->isChecked()); m_root->setEnabled(source->isEnabled()); } diff --git a/src/webpage.cpp b/src/webpage.cpp index 9b67a71a..786f7f4e 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -120,39 +120,39 @@ bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &r */ bool WebPage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame) { -/* - lastRequest = request; - lastRequestType = type; -*/ + /* + lastRequest = request; + lastRequestType = type; + */ QString scheme = url.scheme(); if (scheme == QLatin1String("mailto") - || scheme == QLatin1String("ftp")) { + || scheme == QLatin1String("ftp")) { BrowserApplication::instance()->askDesktopToOpenUrl(url); return false; } -/* - if (type == QWebEnginePage::NavigationTypeFormResubmitted) { - QMessageBox::StandardButton button = QMessageBox::warning(view(), tr("Resending POST request"), - tr("In order to display the site, the request along with all the data must be sent once again, " - "which may lead to some unexpected behaviour of the site e.g. the same action might be " - "performed once again. Do you want to continue anyway?"), QMessageBox::Yes | QMessageBox::No); - if (button != QMessageBox::Yes) - return false; - } -*/ + /* + if (type == QWebEnginePage::NavigationTypeFormResubmitted) { + QMessageBox::StandardButton button = QMessageBox::warning(view(), tr("Resending POST request"), + tr("In order to display the site, the request along with all the data must be sent once again, " + "which may lead to some unexpected behaviour of the site e.g. the same action might be " + "performed once again. Do you want to continue anyway?"), QMessageBox::Yes | QMessageBox::No); + if (button != QMessageBox::Yes) + return false; + } + */ TabWidget::OpenUrlIn openIn = isMainFrame ? TabWidget::CurrentTab : TabWidget::NewWindow; openIn = TabWidget::modifyWithUserBehavior(openIn); // handle the case where we want to do something different then // what QWebEnginePage would do if (openIn == TabWidget::NewSelectedTab - || openIn == TabWidget::NewNotSelectedTab - || (openIn == TabWidget::NewWindow)) { + || openIn == TabWidget::NewNotSelectedTab + || (openIn == TabWidget::NewWindow)) { if (WebView *webView = qobject_cast(view())) { TabWidget *tabWidget = webView->tabWidget(); if (tabWidget) { WebView *newView = tabWidget->getView(openIn, webView); - QWebEnginePage *page = 0; + QWebEnginePage *page = nullptr; if (newView) page = newView->page(); if (page) @@ -176,7 +176,7 @@ void WebPage::loadSettings() QSettings settings; settings.beginGroup(QLatin1String("tabs")); m_openTargetBlankLinksIn = (TabWidget::OpenUrlIn)settings.value(QLatin1String("openTargetBlankLinksIn"), - TabWidget::NewSelectedTab).toInt(); + TabWidget::NewSelectedTab).toInt(); settings.endGroup(); s_userAgent = settings.value(QLatin1String("userAgent")).toString(); } @@ -192,7 +192,7 @@ QWebEnginePage *WebPage::createWindow(QWebEnginePage::WebWindowType type) return tabWidget->getView(openIn, webView)->page(); } } - return 0; + return nullptr; } // The chromium guys have documented many examples of incompatibilities that @@ -205,22 +205,22 @@ QWebEnginePage *WebPage::createWindow(QWebEnginePage::WebWindowType type) static bool contentSniff(const QByteArray &data) { if (data.contains("style()->standardIcon(QStyle::SP_MessageBoxWarning, 0, view()).pixmap(QSize(32, 32)); + QPixmap pixmap = qApp->style()->standardIcon(QStyle::SP_MessageBoxWarning, nullptr, view()).pixmap(QSize(32, 32)); QBuffer imageBuffer; imageBuffer.open(QBuffer::ReadWrite); if (pixmap.save(&imageBuffer, "PNG")) { diff --git a/src/webpage.h b/src/webpage.h index ed99655f..8bd2a0e6 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -46,7 +46,7 @@ class WebPage : public QWebEnginePage void aboutToLoadUrl(const QUrl &url); public: - WebPage(QObject *parent = 0); + WebPage(QObject *parent = nullptr); ~WebPage(); void loadSettings(); @@ -58,10 +58,10 @@ class WebPage : public QWebEnginePage protected: QString userAgentForUrl(const QUrl &url) const; -/* - bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, - NavigationType type); -*/ + /* + bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, + NavigationType type); + */ bool acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame); QWebEnginePage *createWindow(QWebEnginePage::WebWindowType type); diff --git a/src/webview.cpp b/src/webview.cpp index 2e3c1736..f71c54ed 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -176,12 +176,12 @@ WebView::WebView(QWidget *parent) m_zoomLevels << 30 << 50 << 67 << 80 << 90; m_zoomLevels << 100; m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300; -/* - connect(m_page, SIGNAL(loadStarted()), - this, SLOT(hideAccessKeys())); - connect(m_page, SIGNAL(scrollRequested(int, int, const QRect &)), - this, SLOT(hideAccessKeys())); -*/ + /* + connect(m_page, SIGNAL(loadStarted()), + this, SLOT(hideAccessKeys())); + connect(m_page, SIGNAL(scrollRequested(int, int, const QRect &)), + this, SLOT(hideAccessKeys())); + */ loadSettings(); } @@ -206,7 +206,7 @@ TabWidget *WebView::tabWidget() const return tw; widget = widget->parent(); } - return 0; + return nullptr; } void WebView::contextMenuEvent(QContextMenuEvent *event) @@ -259,30 +259,30 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) connect(searchMenu, SIGNAL(triggered(QAction *)), this, SLOT(searchRequested(QAction *))); } -/* - QWebElement element = r.element(); - if (!element.isNull() - && element.tagName().toLower() == QLatin1String("input") - && element.attribute(QLatin1String("type"), QLatin1String("text")) == QLatin1String("text")) { - if (menu->isEmpty()) { - menu->addAction(pageAction(QWebEnginePage::Copy)); - } else { - menu->addSeparator(); - } + /* + QWebElement element = r.element(); + if (!element.isNull() + && element.tagName().toLower() == QLatin1String("input") + && element.attribute(QLatin1String("type"), QLatin1String("text")) == QLatin1String("text")) { + if (menu->isEmpty()) { + menu->addAction(pageAction(QWebEnginePage::Copy)); + } else { + menu->addSeparator(); + } - QVariant variant; - variant.setValue(element); - menu->addAction(tr("Add to the toolbar search"), this, SLOT(addSearchEngine()))->setData(variant); - } -*/ + QVariant variant; + variant.setValue(element); + menu->addAction(tr("Add to the toolbar search"), this, SLOT(addSearchEngine()))->setData(variant); + } + */ if (menu->isEmpty()) { delete menu; menu = page()->createStandardContextMenu(); } else { -/* - if (page()->settings()->testAttribute(QWebEngineSettings::DeveloperExtrasEnabled)) - menu->addAction(pageAction(QWebEnginePage::InspectElement)); -*/ + /* + if (page()->settings()->testAttribute(QWebEngineSettings::DeveloperExtrasEnabled)) + menu->addAction(pageAction(QWebEnginePage::InspectElement)); + */ } if (!menu->isEmpty()) { @@ -315,13 +315,13 @@ void WebView::wheelEvent(QWheelEvent *event) void WebView::resizeEvent(QResizeEvent *event) { -/* - int offset = event->size().height() - event->oldSize().height(); - int currentValue = page()->mainFrame()->scrollBarValue(Qt::Vertical); - setUpdatesEnabled(false); - page()->mainFrame()->setScrollBarValue(Qt::Vertical, currentValue - offset); - setUpdatesEnabled(true); -*/ + /* + int offset = event->size().height() - event->oldSize().height(); + int currentValue = page()->mainFrame()->scrollBarValue(Qt::Vertical); + setUpdatesEnabled(false); + page()->mainFrame()->setScrollBarValue(Qt::Vertical, currentValue - offset); + setUpdatesEnabled(true); + */ QWebEngineView::resizeEvent(event); } @@ -564,7 +564,7 @@ void WebView::loadUrl(const QUrl &url, const QString &title) QString scriptSource = QUrl::fromPercentEncoding(url.toString(Q_FLAGS(QUrl::TolerantMode|QUrl::RemoveScheme)).toLatin1()); QEventLoop loop; QObject::connect(this, SIGNAL(notifyRanJavaScript()), &loop, SLOT(quit())); - page()->runJavaScript(scriptSource, [this](const QVariant &v) + page()->runJavaScript(scriptSource, [this](const QVariant &v) { this->ranJavaScript(); }); @@ -652,8 +652,8 @@ void WebView::dropEvent(QDropEvent *event) { QWebEngineView::dropEvent(event); if (!event->isAccepted() - && event->source() != this - && event->possibleActions() & Qt::CopyAction) { + && event->source() != this + && event->possibleActions() & Qt::CopyAction) { QUrl url; if (!event->mimeData()->urls().isEmpty()) @@ -672,7 +672,7 @@ void WebView::mouseReleaseEvent(QMouseEvent *event) const bool isAccepted = event->isAccepted(); m_page->event(event); if (!event->isAccepted() - && (BrowserApplication::instance()->eventMouseButtons() & Qt::MidButton)) { + && (BrowserApplication::instance()->eventMouseButtons() & Qt::MidButton)) { QUrl url(QApplication::clipboard()->text(QClipboard::Selection)); if (!url.isEmpty() && url.isValid() && !url.scheme().isEmpty()) { BrowserApplication::instance()->setEventMouseButtons(Qt::NoButton); @@ -729,21 +729,21 @@ void WebView::accessKeyShortcut() */ void WebView::keyReleaseEvent(QKeyEvent *event) { -/* - if (m_enableAccessKeys) - m_accessKeysPressed = event->key() == Qt::Key_Control; -*/ + /* + if (m_enableAccessKeys) + m_accessKeysPressed = event->key() == Qt::Key_Control; + */ QWebEngineView::keyReleaseEvent(event); } void WebView::focusOutEvent(QFocusEvent *event) { -/* - if (m_accessKeysPressed) { - hideAccessKeys(); - m_accessKeysPressed = false; - } -*/ + /* + if (m_accessKeysPressed) { + hideAccessKeys(); + m_accessKeysPressed = false; + } + */ QWebEngineView::focusOutEvent(event); } diff --git a/src/webview.h b/src/webview.h index eff0f27a..5d3b3e09 100644 --- a/src/webview.h +++ b/src/webview.h @@ -79,8 +79,10 @@ class WebView : public QWebEngineView Q_OBJECT public: - WebView(QWidget *parent = 0); - WebPage *webPage() const { return m_page; } + WebView(QWidget *parent = nullptr); + WebPage *webPage() const { + return m_page; + } void loadSettings(); @@ -91,7 +93,9 @@ class WebView : public QWebEngineView QUrl url() const; QString lastStatusBarText() const; - inline int progress() const { return m_progress; } + inline int progress() const { + return m_progress; + } TabWidget *tabWidget() const; void ranJavaScript(); diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index 3b47754c..8fac5da5 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -52,10 +52,10 @@ void WebViewSearch::highlightAll() { webView()->findText(QString(), nullptr); -/* - if (ui.highlightAllButton->isChecked()) - find(QWebEnginePage::HighlightAllOccurrences); -*/ + /* + if (ui.highlightAllButton->isChecked()) + find(QWebEnginePage::HighlightAllOccurrences); + */ } void WebViewSearch::find(QWebEnginePage::FindFlags flags) @@ -65,7 +65,7 @@ void WebViewSearch::find(QWebEnginePage::FindFlags flags) return; QString infoString; //if (!webView()->findText(searchString, flags)) - //infoString = tr("Not Found"); + //infoString = tr("Not Found"); ui.searchInfo->setText(infoString); } diff --git a/src/webviewsearch.h b/src/webviewsearch.h index 7db6d4ae..82afea6a 100644 --- a/src/webviewsearch.h +++ b/src/webviewsearch.h @@ -33,7 +33,7 @@ class WebViewSearch : public SearchBar Q_OBJECT public: - WebViewSearch(QWebEngineView *webView, QWidget *parent = 0); + WebViewSearch(QWebEngineView *webView, QWidget *parent = nullptr); public slots: void findNext(); @@ -52,7 +52,7 @@ class WebViewWithSearch : public QWidget Q_OBJECT public: - WebViewWithSearch(WebView *webView, QWidget *parent = 0); + WebViewWithSearch(WebView *webView, QWidget *parent = nullptr); WebView *m_webView; WebViewSearch *m_webViewSearch; }; From 8cc38a82505cb05553422161fa9fe48495e9a789 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 21:35:58 +0200 Subject: [PATCH 08/64] Reduce htmlToXBel depenencies --- tools/htmlToXBel/CMakeLists.txt | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tools/htmlToXBel/CMakeLists.txt b/tools/htmlToXBel/CMakeLists.txt index d031b8f0..15a0be1b 100644 --- a/tools/htmlToXBel/CMakeLists.txt +++ b/tools/htmlToXBel/CMakeLists.txt @@ -1,14 +1,9 @@ +cmake_minimum_required(VERSION 3.13) project(htmlToXBel) -find_package(Qt5Widgets REQUIRED) find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) find_package(Qt5WebEngine REQUIRED) -find_package(Qt5Network REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) add_executable(htmlToXBel main.cpp mainapp.cpp source.qrc) qt5_use_modules(htmlToXBel Core) -qt5_use_modules(htmlToXBel Widgets) -qt5_use_modules(htmlToXBel Sql) qt5_use_modules(htmlToXBel WebEngine) -qt5_use_modules(htmlToXBel Network) -qt5_use_modules(htmlToXBel WebEngineWidgets) +qt5_use_modules(htmlToXBel WebEngineWidgets) \ No newline at end of file From a1ce8b79527957dd7d2389c638702943dd5242f0 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 10 Sep 2020 21:42:17 +0200 Subject: [PATCH 09/64] Minor cleanups in tools --- tools/cacheinfo/main.cpp | 5 ++--- tools/htmlToXBel/main.cpp | 3 ++- tools/htmlToXBel/mainapp.h | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/cacheinfo/main.cpp b/tools/cacheinfo/main.cpp index a9cc939d..35428ac3 100644 --- a/tools/cacheinfo/main.cpp +++ b/tools/cacheinfo/main.cpp @@ -17,9 +17,8 @@ * Boston, MA 02110-1301 USA */ -#include -#include -#include +#include +#include class NetworkDiskCache : public QNetworkDiskCache { diff --git a/tools/htmlToXBel/main.cpp b/tools/htmlToXBel/main.cpp index cbee06a8..1f1a928a 100644 --- a/tools/htmlToXBel/main.cpp +++ b/tools/htmlToXBel/main.cpp @@ -17,11 +17,12 @@ * Boston, MA 02110-1301 USA */ +#include "mainapp.h" + #include #include #include #include -#include /*! A tool to convert html bookmark files into the xbel format. diff --git a/tools/htmlToXBel/mainapp.h b/tools/htmlToXBel/mainapp.h index 64aa4be7..cf257f04 100644 --- a/tools/htmlToXBel/mainapp.h +++ b/tools/htmlToXBel/mainapp.h @@ -21,7 +21,6 @@ #define MAINAPP_H #include -#include class QWebEngineView; class QPushButton; From 067b23537d4e5ae9307226b2dae762df7f7369ea Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 11 Sep 2020 16:00:10 +0200 Subject: [PATCH 10/64] Start working on porting the tests to cmake This breaks the qmake system, but it will be removed soon, so fixing it isn't really needed --- CMakeLists.txt | 4 + autotests/CMakeLists.txt | 2 + autotests/adblock/adblock.pro | 9 - autotests/adblock/adblockmanager/.gitignore | 1 - .../adblock/adblockmanager/adblockmanager.pro | 10 - .../adblockmanager/tst_adblockmanager.cpp | 240 -------- autotests/adblock/adblocknetwork/.gitignore | 1 - .../adblock/adblocknetwork/adblocknetwork.pro | 10 - .../adblocknetwork/tst_adblocknetwork.cpp | 224 ------- autotests/adblock/adblockpage/.gitignore | 1 - autotests/adblock/adblockpage/adblockpage.pro | 10 - autotests/adblock/adblockpage/test.html | 8 - .../adblock/adblockpage/tst_adblockpage.cpp | 160 ----- autotests/adblock/adblockrule/.gitignore | 1 - autotests/adblock/adblockrule/adblockrule.pro | 10 - .../adblock/adblockrule/tst_adblockrule.cpp | 385 ------------ .../adblock/adblocksubscription/.gitignore | 2 - .../adblocksubscription.pro | 10 - .../adblock/adblocksubscription/rules.txt | 3 - .../tst_adblocksubscription.cpp | 358 ----------- autotests/addbookmarkdialog/CMakeLists.txt | 61 ++ .../tst_addbookmarkdialog.cpp | 40 +- .../addbookmarkdialog/tst_addbookmarkdialog.h | 54 ++ autotests/autotests.pro | 2 - autotests/cookiejar/.gitignore | 1 - autotests/cookiejar/cookiejar.pro | 10 - autotests/cookiejar/tst_cookiejar.cpp | 556 ------------------ src/bookmarks/addbookmarkdialog.cpp | 14 + src/bookmarks/bookmarksmenu.cpp | 14 + src/bookmarks/bookmarksmodel.cpp | 4 + src/bookmarks/bookmarkstoolbar.cpp | 15 + src/modeltoolbar.cpp | 5 + 32 files changed, 185 insertions(+), 2040 deletions(-) create mode 100644 autotests/CMakeLists.txt delete mode 100644 autotests/adblock/adblock.pro delete mode 100644 autotests/adblock/adblockmanager/.gitignore delete mode 100644 autotests/adblock/adblockmanager/adblockmanager.pro delete mode 100644 autotests/adblock/adblockmanager/tst_adblockmanager.cpp delete mode 100644 autotests/adblock/adblocknetwork/.gitignore delete mode 100644 autotests/adblock/adblocknetwork/adblocknetwork.pro delete mode 100644 autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp delete mode 100644 autotests/adblock/adblockpage/.gitignore delete mode 100644 autotests/adblock/adblockpage/adblockpage.pro delete mode 100644 autotests/adblock/adblockpage/test.html delete mode 100644 autotests/adblock/adblockpage/tst_adblockpage.cpp delete mode 100644 autotests/adblock/adblockrule/.gitignore delete mode 100644 autotests/adblock/adblockrule/adblockrule.pro delete mode 100644 autotests/adblock/adblockrule/tst_adblockrule.cpp delete mode 100644 autotests/adblock/adblocksubscription/.gitignore delete mode 100644 autotests/adblock/adblocksubscription/adblocksubscription.pro delete mode 100644 autotests/adblock/adblocksubscription/rules.txt delete mode 100644 autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp create mode 100644 autotests/addbookmarkdialog/CMakeLists.txt create mode 100644 autotests/addbookmarkdialog/tst_addbookmarkdialog.h delete mode 100644 autotests/cookiejar/.gitignore delete mode 100644 autotests/cookiejar/cookiejar.pro delete mode 100644 autotests/cookiejar/tst_cookiejar.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f1c34a3..e964ab6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,9 @@ project(Endorphin) cmake_minimum_required(VERSION 3.16) +include(CTest) +if(BUILD_TESTING) + add_subdirectory(autotests) +endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt new file mode 100644 index 00000000..a9e70139 --- /dev/null +++ b/autotests/CMakeLists.txt @@ -0,0 +1,2 @@ +project(autotests) +add_subdirectory(addbookmarkdialog) \ No newline at end of file diff --git a/autotests/adblock/adblock.pro b/autotests/adblock/adblock.pro deleted file mode 100644 index e00136d1..00000000 --- a/autotests/adblock/adblock.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - adblockmanager \ - adblocknetwork \ - adblockpage \ - adblockrule \ - adblocksubscription - -CONFIG += ordered diff --git a/autotests/adblock/adblockmanager/.gitignore b/autotests/adblock/adblockmanager/.gitignore deleted file mode 100644 index 956108dc..00000000 --- a/autotests/adblock/adblockmanager/.gitignore +++ /dev/null @@ -1 +0,0 @@ -adblockmanager diff --git a/autotests/adblock/adblockmanager/adblockmanager.pro b/autotests/adblock/adblockmanager/adblockmanager.pro deleted file mode 100644 index 025c3a5a..00000000 --- a/autotests/adblock/adblockmanager/adblockmanager.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES += tst_adblockmanager.cpp -HEADERS += diff --git a/autotests/adblock/adblockmanager/tst_adblockmanager.cpp b/autotests/adblock/adblockmanager/tst_adblockmanager.cpp deleted file mode 100644 index 66656290..00000000 --- a/autotests/adblock/adblockmanager/tst_adblockmanager.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "adblockdialog.h" -#include "adblockmanager.h" -#include "adblocksubscription.h" - -#include -#include -#include -#include - - -class tst_AdBlockManager : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void adblockmanager_data(); - void adblockmanager(); - - void addSubscription(); - void customRules(); - void isEnabled_data(); - void isEnabled(); - void load(); - void removeSubscription(); - void showDialog(); - void rulesChanged(); -}; - -// Subclass that exposes the protected functions. -class SubAdBlockManager : public AdBlockManager -{ -public: - ~SubAdBlockManager() { - QList list = subscriptions(); - foreach (AdBlockSubscription *s, list) - removeSubscription(s); - setEnabled(false); - } - - void call_rulesChanged() - { return SubAdBlockManager::rulesChanged(); } -}; - -// This will be called before the first test function is executed. -// It is only called once. -void tst_AdBlockManager::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_AdBlockManager::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_AdBlockManager::init() -{ -} - -// This will be called after every test function. -void tst_AdBlockManager::cleanup() -{ -} - -void tst_AdBlockManager::adblockmanager_data() -{ -} - -void tst_AdBlockManager::adblockmanager() -{ - SubAdBlockManager manager; - manager.addSubscription((AdBlockSubscription*)0); - QVERIFY(manager.customRules()); - QVERIFY(manager.instance() != (AdBlockManager*)0); - QCOMPARE(manager.isEnabled(), true); - manager.load(); - QVERIFY(manager.network()); - QVERIFY(manager.page()); - manager.removeSubscription((AdBlockSubscription*)0); - manager.setEnabled(false); - QVERIFY(manager.showDialog()); - QList list; - list.append(manager.customRules()); - QCOMPARE(manager.subscriptions(), list); -} - -// public void addSubscription(AdBlockSubscription *subscription) -void tst_AdBlockManager::addSubscription() -{ - SubAdBlockManager manager; - - QList list = manager.subscriptions(); - - QSignalSpy spy0(&manager, SIGNAL(rulesChanged())); - - AdBlockSubscription *subscription = new AdBlockSubscription(QUrl(), &manager); - manager.addSubscription(subscription); - QCOMPARE(manager.subscriptions(), (list += subscription)); - - QCOMPARE(spy0.count(), 1); -} - -// public AdBlockSubscription *customRules() -void tst_AdBlockManager::customRules() -{ - SubAdBlockManager manager; - QSignalSpy spy0(&manager, SIGNAL(rulesChanged())); - - AdBlockSubscription *subscription = manager.customRules(); - QVERIFY(subscription); - QVERIFY(!subscription->title().isEmpty()); - QVERIFY(subscription->allRules().isEmpty()); - - QCOMPARE(spy0.count(), 1); - - subscription = manager.customRules(); - QCOMPARE(spy0.count(), 1); -} - -void tst_AdBlockManager::isEnabled_data() -{ - QTest::addColumn("isEnabled"); - QTest::newRow("true") << true; - QTest::newRow("false") << false; -} - -// public bool isEnabled() const -void tst_AdBlockManager::isEnabled() -{ - QFETCH(bool, isEnabled); - - SubAdBlockManager manager; - - QSignalSpy spy0(&manager, SIGNAL(rulesChanged())); - - bool before = manager.isEnabled(); - - manager.setEnabled(isEnabled); - manager.setEnabled(isEnabled); - QCOMPARE(manager.isEnabled(), isEnabled); - - QCOMPARE(spy0.count(), before == isEnabled ? 0 : 1); -} - -// public void load() -void tst_AdBlockManager::load() -{ - SubAdBlockManager manager; - - QSignalSpy spy0(&manager, SIGNAL(rulesChanged())); - - manager.load(); - - QCOMPARE(spy0.count(), 0); -} - -// public void removeSubscription(AdBlockSubscription *subscription) -void tst_AdBlockManager::removeSubscription() -{ - SubAdBlockManager manager; - - QSignalSpy spy0(&manager, SIGNAL(rulesChanged())); - - QList list = manager.subscriptions(); - AdBlockSubscription *subscription = new AdBlockSubscription(QUrl(), &manager); - manager.addSubscription(subscription); - manager.removeSubscription(subscription); - QCOMPARE(manager.subscriptions(), list); - - QCOMPARE(spy0.count(), 2); -} - - -// public AdBlockDialog *showDialog() -void tst_AdBlockManager::showDialog() -{ - SubAdBlockManager manager; - - QSignalSpy spy0(&manager, SIGNAL(rulesChanged())); - - AdBlockDialog *dialog = manager.showDialog(); - QVERIFY(dialog); - QTRY_VERIFY(dialog->isVisible()); -} - -void tst_AdBlockManager::rulesChanged() -{ - SubAdBlockManager manager; - - QSignalSpy spy0(&manager, SIGNAL(rulesChanged())); - - - AdBlockSubscription *subscription = new AdBlockSubscription(QUrl(), &manager); - manager.addSubscription(subscription); - subscription->setEnabled(true); - subscription->addRule(AdBlockRule()); - - QCOMPARE(spy0.count(), 3); -} - -QTEST_MAIN(tst_AdBlockManager) -#include "tst_adblockmanager.moc" - diff --git a/autotests/adblock/adblocknetwork/.gitignore b/autotests/adblock/adblocknetwork/.gitignore deleted file mode 100644 index dcb473fd..00000000 --- a/autotests/adblock/adblocknetwork/.gitignore +++ /dev/null @@ -1 +0,0 @@ -adblocknetwork diff --git a/autotests/adblock/adblocknetwork/adblocknetwork.pro b/autotests/adblock/adblocknetwork/adblocknetwork.pro deleted file mode 100644 index 2ae14cc2..00000000 --- a/autotests/adblock/adblocknetwork/adblocknetwork.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES += tst_adblocknetwork.cpp -HEADERS += diff --git a/autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp b/autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp deleted file mode 100644 index d1bb5ad0..00000000 --- a/autotests/adblock/adblocknetwork/tst_adblocknetwork.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "adblocknetwork.h" -#include "adblockmanager.h" -#include "adblocksubscription.h" -#include "adblockrule.h" - -#include - -class tst_AdBlockNetwork : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void adblocknetwork_data(); - void adblocknetwork(); - - void data(); - - void enabled_data(); - void enabled(); - - void block_data(); - void block(); -}; - -// Subclass that exposes the protected functions. -class SubAdBlockNetwork : public AdBlockNetwork -{ -public: - -}; - -// This will be called before the first test function is executed. -// It is only called once. -void tst_AdBlockNetwork::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_AdBlockNetwork::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_AdBlockNetwork::init() -{ -} - -// This will be called after every test function. -void tst_AdBlockNetwork::cleanup() -{ - AdBlockManager *manager = AdBlockManager::instance(); - QList list = manager->subscriptions(); - foreach (AdBlockSubscription *s, list) - manager->removeSubscription(s); -} - -void tst_AdBlockNetwork::adblocknetwork_data() -{ -} - -void tst_AdBlockNetwork::adblocknetwork() -{ - SubAdBlockNetwork network; - QCOMPARE(network.block(QNetworkRequest()), (QNetworkReply*)0); -} - -void tst_AdBlockNetwork::data() -{ - SubAdBlockNetwork network; - - AdBlockManager *manager = AdBlockManager::instance(); - manager->setEnabled(true); - - AdBlockSubscription *subscription = new AdBlockSubscription(QUrl(), manager); - subscription->setEnabled(true); - manager->addSubscription(subscription); - - AdBlockRule rule("/"); - rule.setEnabled(true); - subscription->addRule(rule); - - QNetworkReply *reply = 0; - QNetworkRequest request = QNetworkRequest(QUrl("data://foobar")); - - reply = network.block(request); - QVERIFY(!reply); -} - -void tst_AdBlockNetwork::enabled_data() -{ - QTest::addColumn("enableManager"); - QTest::addColumn("enableSubscription"); - QTest::addColumn("enableRule"); - QTest::addColumn("block"); - QTest::newRow("null") << true << true << true << true; - QTest::newRow("m") << false << true << true << false; - QTest::newRow("s") << true << false << true << false; - QTest::newRow("r") << true << true << false << false; -} - -void tst_AdBlockNetwork::enabled() -{ - QFETCH(bool, enableManager); - QFETCH(bool, enableSubscription); - QFETCH(bool, enableRule); - QFETCH(bool, block); - - SubAdBlockNetwork network; - - AdBlockManager *manager = AdBlockManager::instance(); - manager->setEnabled(enableManager); - - AdBlockSubscription *subscription = new AdBlockSubscription(QUrl(), manager); - subscription->setEnabled(enableSubscription); - manager->addSubscription(subscription); - - AdBlockRule rule("/"); - rule.setEnabled(enableRule); - subscription->addRule(rule); - - QNetworkReply *reply = 0; - QNetworkRequest grequest = QNetworkRequest(QUrl("http://www.google.com")); - - reply = network.block(grequest); - QCOMPARE((reply != 0), block); -} - -// check that block block and !block blocks other sites -void tst_AdBlockNetwork::block_data() -{ - QTest::addColumn("ruleList"); - QTest::addColumn("url"); - QTest::addColumn("block"); - - QTest::newRow("null") << QString() - << QUrl() - << false; - - QUrl google("http://www.google.com"); - QTest::newRow("google") << QString("/") - << google - << true; - - // defining exception rules - QTest::newRow("exception0") << QString("@@advice,advice") - << QUrl("http://example.com/advice.html") - << false; - QTest::newRow("exception1") << QString("@@|http://example.com") - << QUrl("http://example.com/advice.html") - << false; - QTest::newRow("exception2") << QString("@@http://example.com") - << QUrl("http://example.com/advice.html") - << false; - - QTest::newRow("order0") << QString("advice,@@advice") - << QUrl("http://example.com/advice.html") - << false; -} - -// public QNetworkReply *block(QNetworkRequest const &request) -void tst_AdBlockNetwork::block() -{ - QFETCH(QString, ruleList); - QFETCH(QUrl, url); - QFETCH(bool, block); - - SubAdBlockNetwork network; - - AdBlockManager *manager = AdBlockManager::instance(); - manager->setEnabled(true); - - AdBlockSubscription *subscription = new AdBlockSubscription(QUrl(), manager); - subscription->setEnabled(true); - manager->addSubscription(subscription); - - QStringList rules = ruleList.split(","); - foreach (const QString &rule, rules) - subscription->addRule(AdBlockRule(rule)); - - QNetworkReply *reply = network.block(QNetworkRequest(url)); - bool blocked = (reply != 0); - QCOMPARE(blocked, block); -} - -QTEST_MAIN(tst_AdBlockNetwork) -#include "tst_adblocknetwork.moc" - diff --git a/autotests/adblock/adblockpage/.gitignore b/autotests/adblock/adblockpage/.gitignore deleted file mode 100644 index ed880152..00000000 --- a/autotests/adblock/adblockpage/.gitignore +++ /dev/null @@ -1 +0,0 @@ -adblockpage diff --git a/autotests/adblock/adblockpage/adblockpage.pro b/autotests/adblock/adblockpage/adblockpage.pro deleted file mode 100644 index a6a6b207..00000000 --- a/autotests/adblock/adblockpage/adblockpage.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES += tst_adblockpage.cpp -HEADERS += diff --git a/autotests/adblock/adblockpage/test.html b/autotests/adblock/adblockpage/test.html deleted file mode 100644 index 39cb99d1..00000000 --- a/autotests/adblock/adblockpage/test.html +++ /dev/null @@ -1,8 +0,0 @@ - -
    Cheapest tofu, only here and now!
    -
    Really cheap tofu, click here!
    -Only here you get the best tofu! -
    tofu!
    -
    Cheapest tofu, only here and now!
    -
    Cheapest tofu, only here and now!
    -
    tofu!
    diff --git a/autotests/adblock/adblockpage/tst_adblockpage.cpp b/autotests/adblock/adblockpage/tst_adblockpage.cpp deleted file mode 100644 index d8d2a62c..00000000 --- a/autotests/adblock/adblockpage/tst_adblockpage.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "adblockpage.h" - -#include "adblockmanager.h" -#include "adblocksubscription.h" -#include "adblockrule.h" - -#include -#include -#include -#include - -class tst_AdBlockPage : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void adblockpage_data(); - void adblockpage(); - - void applyRulesToPage_data(); - void applyRulesToPage(); -}; - -// Subclass that exposes the protected functions. -class SubAdBlockPage : public AdBlockPage -{ -public: - -}; - -// This will be called before the first test function is executed. -// It is only called once. -void tst_AdBlockPage::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_AdBlockPage::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_AdBlockPage::init() -{ -} - -// This will be called after every test function. -void tst_AdBlockPage::cleanup() -{ - AdBlockManager *manager = AdBlockManager::instance(); - QList list = manager->subscriptions(); - foreach (AdBlockSubscription *s, list) - manager->removeSubscription(s); -} - -void tst_AdBlockPage::adblockpage_data() -{ -} - -void tst_AdBlockPage::adblockpage() -{ - SubAdBlockPage page; - page.applyRulesToPage((QWebPage*)0); -} - -void tst_AdBlockPage::applyRulesToPage_data() -{ - QTest::addColumn("ruleList"); - QTest::addColumn("count"); - - int start = 7; - QTest::newRow("null") << QString() << start; - - //Examples taken from http://adblockplus.org/en/filters - - QTest::newRow("basic-0") << QString("##div.textad") << start - 1; - QTest::newRow("basic-1") << QString("##div#sponsorad") << start - 1; - QTest::newRow("basic-2") << QString("##*#sponsorad") << start - 1; - QTest::newRow("basic-3") << QString("##textad") << start -1; - - // Attribute selectors - QTest::newRow("attribute-0") << QString("##table[width=\"80%\"]") << start - 2; - QTest::newRow("attribute-1") << QString("##table[width=\"80%\"][bgcolor=\"white\"]") << start - 1; - QTest::newRow("attribute-2") << QString("##div[title*=\"adv\"]") << start - 2; - QTest::newRow("attribute-3") << QString("##div[title^=\"adv\"][title$=\"ert\"]") << start - 1; - - // Advanced selectors -} - -// public void applyRulesToPage(QWebPage *page) -void tst_AdBlockPage::applyRulesToPage() -{ - QFETCH(QString, ruleList); - QFETCH(int, count); - - AdBlockManager *manager = AdBlockManager::instance(); - manager->setEnabled(true); - - AdBlockSubscription *subscription = new AdBlockSubscription(QUrl(), manager); - subscription->setEnabled(true); - manager->addSubscription(subscription); - - QStringList rules = ruleList.split(","); - foreach (const QString &rule, rules) - subscription->addRule(AdBlockRule(rule)); - - QWebView view; - QSignalSpy spy1(view.page(), SIGNAL(loadFinished(bool))); - view.load(QUrl::fromLocalFile(QDir::currentPath() + "/test.html")); - QTRY_COMPARE(spy1.count(), 1); - - SubAdBlockPage page; - page.applyRulesToPage(view.page()); - if (view.page()->mainFrame()->toHtml().count("tofu") != count) - qDebug() << view.page()->mainFrame()->toHtml(); - QCOMPARE(view.page()->mainFrame()->toHtml().count("tofu"), count); -} - -QTEST_MAIN(tst_AdBlockPage) -#include "tst_adblockpage.moc" - diff --git a/autotests/adblock/adblockrule/.gitignore b/autotests/adblock/adblockrule/.gitignore deleted file mode 100644 index 3b9e3229..00000000 --- a/autotests/adblock/adblockrule/.gitignore +++ /dev/null @@ -1 +0,0 @@ -adblockrule diff --git a/autotests/adblock/adblockrule/adblockrule.pro b/autotests/adblock/adblockrule/adblockrule.pro deleted file mode 100644 index 52435394..00000000 --- a/autotests/adblock/adblockrule/adblockrule.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES += tst_adblockrule.cpp -HEADERS += diff --git a/autotests/adblock/adblockrule/tst_adblockrule.cpp b/autotests/adblock/adblockrule/tst_adblockrule.cpp deleted file mode 100644 index 0d38da59..00000000 --- a/autotests/adblock/adblockrule/tst_adblockrule.cpp +++ /dev/null @@ -1,385 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * Copyright 2009 Zsombor Gegesy - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include - -#include "adblockrule.h" - -#include -#include - -class tst_AdBlockRule : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void regexpCreation_data(); - void regexpCreation(); - void networkMatch_data(); - void networkMatch(); - -}; - -// Subclass that exposes the protected functions. -class SubAdBlockRule : public AdBlockRule -{ -public: - SubAdBlockRule(const QString &filter); -}; - -SubAdBlockRule::SubAdBlockRule(const QString &filter) - : AdBlockRule(filter) -{ -} - -// This will be called before the first test function is executed. -// It is only called once. -void tst_AdBlockRule::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_AdBlockRule::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_AdBlockRule::init() -{ -} - -// This will be called after every test function. -void tst_AdBlockRule::cleanup() -{ -} - -void tst_AdBlockRule::networkMatch_data() -{ - QTest::addColumn("filter"); - QTest::addColumn("url"); - QTest::addColumn("networkMatch"); - QTest::newRow("null") << QString() << QUrl() << false; - - //Examples taken from http://adblockplus.org/en/filters - - // Basic filter rules - QTest::newRow("basic0") << QString("http://example.com/ads/banner123.gif") - << QUrl("http://example.com/ads/banner123.gif") - << true; - QTest::newRow("basic1") << QString("http://example.com/ads/banner*.gif") - << QUrl("http://example.com/ads/banner123.gif") - << true; - QTest::newRow("basic2") << QString("http://example.com/ads/*") - << QUrl("http://example.com/ads/banner123.gif") - << true; - QTest::newRow("basic3") << QString("http://example.com/*") - << QUrl("http://example.com/ads/banner123.gif") - << true; - - // defining exception rules - QTest::newRow("exception0") << QString("@@advice") - << QUrl("http://example.com/advice.html") - << true; - QTest::newRow("exception1") << QString("@@|http://example.com") - << QUrl("http://example.com/advice.html") - << true; - QTest::newRow("exception2") << QString("@@http://example.com") - << QUrl("http://example.com/advice.html") - << true; - - // matching at beginning/end of an address - QTest::newRow("m0") << QString("ad") - << QUrl("http://example.com/advice.html") - << true; - QTest::newRow("m1") << QString("*ad*") - << QUrl("http://example.com/advice.html") - << true; - QTest::newRow("m2") << QString("swf") - << QUrl("http://example.com/swf/index.html") - << true; - QTest::newRow("m3") << QString("swf|") - << QUrl("http://example.com/annoyingflash.swf") - << true; - QTest::newRow("m4") << QString("swf|") - << QUrl("http://example.com/swf/index.html") - << false; - - QTest::newRow("m5") << QString("http://baddomain.example/") - << QUrl("http://baddomain.example/banner.gif") - << true; - QTest::newRow("m6") << QString("http://baddomain.example/") - << QUrl("http://gooddomain.example/analyze?http://baddomain.example.") - << false; - - QTest::newRow("m7") << QString("||example.com/banner.gif") - << QUrl("http://example.com/banner.gif") - << true; - QTest::newRow("m8") << QString("||example.com/banner.gif") - << QUrl("https://example.com/banner.gif") - << true; - QTest::newRow("m9") << QString("||example.com/banner.gif") - << QUrl("http://www.example.com/banner.gif") - << true; - - QTest::newRow("m10") << QString("||example.com/banner.gif") - << QUrl("http://badexample.com/banner.gif") - << false; - QTest::newRow("m10") << QString("||example.com/banner.gif") - << QUrl("http://gooddomain.example/analyze?http://example.com/banner.gif") - << false; - - QTest::newRow("m11") << QString("/getad.php|") - << QUrl("http://adblockplus.mozdev.org/easylist/easylist.txt") - << false; - - // Matching separators - QTest::newRow("sep_1") << QString("a^") - << QUrl("a/") - << true; - QTest::newRow("sep_2") << QString("a^") - << QUrl("a:") - << true; - QTest::newRow("sep_3") << QString("a^") - << QUrl("a.") - << false; - QTest::newRow("sep_4") << QString("a^") - << QUrl("a?") - << true; - QTest::newRow("sep_5") << QString("a^") - << QUrl("a=") - << true; - QTest::newRow("sep_6") << QString("a^") - << QUrl("a&") - << true; - - QTest::newRow("s1_s") << QString("com^") - << QUrl("com:") - << true; - QTest::newRow("s2_s") << QString("ab^cd") - << QUrl("ab.cd") - << false; - - // Marking separate characters - QTest::newRow("s0") << QString("http://example.com^") - << QUrl("http://example.com/") - << true; - QTest::newRow("s1") << QString("http://example.com^") - << QUrl("http://example.com:8000/") - << true; - QTest::newRow("s2") << QString("http://example.com^") - << QUrl("http://example.com.ar/") - << false; - QTest::newRow("s3") << QString("^example.com^") - << QUrl("http://example.com:8000/foo.bar?a=12&b=%D1%82%D0%B5%D1%81%D1%82") - << true; - QTest::newRow("s4") << QString("^%D1^") - << QUrl::fromEncoded("http://example.com:8000/foo.bar?a=12&b=%D1") - << true; - QTest::newRow("s5") << QString("^foo.bar^") - << QUrl("http://example.com:8000/foo.bar?a=12&b=%D1%82%D0%B5%D1%81%D1%82") - << true; - QTest::newRow("s6") << QString("^%D1%82%D0%B5%D1%81%D1%82^") - << QUrl::fromEncoded("http://example.com:8000/foo.bar?a=12&b=%D1%82%D0%B5%D1%81%D1%82") - << true; - // Comments - QTest::newRow("c0") << QString("!foo.bar") - << QUrl("!foo.bar") - << false; - QTest::newRow("c1") << QString("!foo.bar") - << QUrl("foo.bar") - << false; - - // Specifying filter options - // type - QTest::newRow("o0") << QString("*/ads/*$script,image,background,stylesheet,object,xbl,ping,xmlhttprequest,object-subrequest,object-subrequest,dtd,subdocument,document,other") - << QUrl("foo.bar/ads/foo.jpg") - << false; - // Inverse type - QTest::newRow("o1") << QString("*/ads/*$~script, ~image, ~background, ~stylesheet, ~object, ~xbl, ~ping, ~xmlhttprequest, ~object-subrequest, ~dtd, ~subdocument, ~document, ~other") - << QUrl("foo.bar/ads/foo.jpg") - << false; - // Restriction to third-party/first-party requests - QTest::newRow("o2") << QString("*/ads/*$third-party") - << QUrl("foo.bar/ads/foo.jpg") - << false; - QTest::newRow("o3") << QString("*/ads/*$first-party") - << QUrl("foo.bar/ads/foo.jpg") - << false; - // Domain restrictions - QTest::newRow("o4") << QString("*/ads/*$domain=example.com|example.net") - << QUrl("http://example.com/ads/foo.jpg") - << true; - QTest::newRow("o5") << QString("*/ads/*$domain=example.com") - << QUrl("http://foo.com/ads/foo.jpg") - << false; - - QTest::newRow("o6") << QString("*/ads/*$domain=~example.com") - << QUrl("http://foo.com/ads/foo.jpg") - << true; - QTest::newRow("o7") << QString("*/ads/*$domain=~example.com") - << QUrl("http://example.com/ads/foo.jpg") - << false; - QTest::newRow("o8") << QString("*/ads/*$domain=example.com|~foo.example.com") - << QUrl("http://example.com/ads/foo.jpg") - << true; - QTest::newRow("o9") << QString("*/ads/*$domain=example.com|~foo.example.com") - << QUrl("http://foo.example.com/ads/foo.jpg") - << false; - QTest::newRow("o10") << QString("*/ads/*$domain=example.com|~foo.example.com") - << QUrl("http://bar.example.com/ads/foo.jpg") - << true; - // match-case - QTest::newRow("o11") << QString("*/BannerAd.gif$match-case") - << QUrl("http://example.com/BannerAd.gif") - << true; - QTest::newRow("o12") << QString("*/BannerAd.gif$match-case") - << QUrl("http://example.com/bannerad.gif") - << false; - // collapse - // TODO test collapse somehow - QTest::newRow("o13") << QString("*/BannerAd.gif$collapse") - << QUrl("http://example.com/bannerad.gif") - << false; - QTest::newRow("o14") << QString("*/BannerAd.gif$~collapse") - << QUrl("http://example.com/bannerad.gif") - << false; - // Regular expressions - QTest::newRow("r0") << QString("/banner\\d+/") - << QUrl("banner123") - << true; - QTest::newRow("r1") << QString("/banner\\d+/") - << QUrl("banner321") - << true; - QTest::newRow("r2") << QString("/banner\\d+/") - << QUrl("banners") - << false; - - // See the AdBlockPage autotest for CSS testing - // Basic Element hiding the network matching should never pass - QTest::newRow("e0") << QString("##div.textad") - << QUrl() - << false; - QTest::newRow("e1") << QString("##div#sponsorad") - << QUrl() - << false; - QTest::newRow("e1") << QString("##*#sponsorad") - << QUrl() - << false; - QTest::newRow("e1") << QString("##textad") - << QUrl() - << false; - QTest::newRow("e1") << QString("example.com##*.sponsor") - << QUrl("example.com") - << false; - QTest::newRow("e1") << QString("example.com,example.net##*.sponsor") - << QUrl("example.com") - << false; - - // Seen on the internet - QTest::newRow("i0") << QString("||snap.com^$third-party") - << QUrl("http://spa.snap.com/snap_preview_anywhere.js?ap=1&key=89743df349c6c38afc3094e9566cb98e&sb=1&link_icon=off&domain=pub-6332280-www.techcrunch.com") - << true; - - QTest::newRow("i1") << QString("|http://ads.") - << QUrl("http://ads.cnn.com/html.ng/site=cnn&cnn_pagetype=main&cnn_position=336x280_adlinks&cnn_rollup=homepage&page.allowcompete=yes¶ms.styles=fs&tile=8837285713521&domId=463050") - << true; - - QTest::newRow("i2") << QString("/adverti$~object_subrequest,~stylesheet,domain=~advertise4free.org|~amarillas.cl|~bnet.com|~catalysttelecom.com|~cod4central.com|~scansource.com|~scansourcecommunications.com|~scansourcesecurity.com") - << QUrl("http://i2.cdn.turner.com/cnn/.element/img/2.0/content/ads/advertisement.gif") - << true; - - QTest::newRow("i3") << QString("/adspace") - << QUrl("http://i.cdn.turner.com/cnn/cnn_adspaces/cnn_adspaces.js") - << false; -} - -// public bool networkMatch(const QUrl &url) const -void tst_AdBlockRule::networkMatch() -{ - QFETCH(QString, filter); - QFETCH(QUrl, url); - QFETCH(bool, networkMatch); - - SubAdBlockRule AdBlockRule(filter); - bool result = AdBlockRule.networkMatch(url.toEncoded()); - if (result != networkMatch) { - qDebug() << "Match error."; - qDebug() << "\tFilter:" << filter; - qDebug() << "\tUrl: " << url; - qDebug() << "\tResult : " << (result ? "match" : "NOT match"); - } - QCOMPARE(AdBlockRule.networkMatch(url.toEncoded()), networkMatch); -} - -void tst_AdBlockRule::regexpCreation_data() -{ - QTest::addColumn("input"); - QTest::addColumn("output"); - - QTest::newRow("null") << QString("test") << QString("test"); - QTest::newRow("m1") << QString("abc*") << QString("abc"); - QTest::newRow("m2") << QString("*abc*") << QString("abc"); - QTest::newRow("m3") << QString("abc**") << QString("abc"); - QTest::newRow("m4") << QString("abc***") << QString("abc"); - QTest::newRow("m5") << QString("**abc**") << QString("abc"); - QTest::newRow("m6") << QString("**a*bc**") << QString("a.*bc"); - QTest::newRow("h1") << QString("abc.com") << QString("abc\\.com"); - - QTest::newRow("a2") << QString("abc^|def") << QString("abc(?:[^\\w\\d\\-.%]|$)\\|def"); - QTest::newRow("a3") << QString("^|def") << QString("(?:[^\\w\\d\\-.%]|$)\\|def"); - - QTest::newRow("s1") << QString("de|f") << QString("de\\|f"); - - QTest::newRow("e1") << QString("|abc") << QString("^abc"); - QTest::newRow("e2") << QString("d|abc") << QString("d\\|abc"); - QTest::newRow("e3") << QString("abc|") << QString("abc$"); - - QTest::newRow("z1") << QString("^abc") << QString("(?:[^\\w\\d\\-.%]|$)abc"); - QTest::newRow("z2") << QString("a^bc") << QString("a(?:[^\\w\\d\\-.%]|$)bc"); - QTest::newRow("z3") << QString("abc^|") << QString("abc(?:[^\\w\\d\\-.%]|$)"); - QTest::newRow("z4") << QString("http://example.com^") - << QString("http\\:\\/\\/example\\.com(?:[^\\w\\d\\-.%]|$)"); - - - QTest::newRow("d0") << QString("||example.com") - << QString("^[\\w\\-]+:\\/+(?!\\/)(?:[^\\/]+\\.)?example\\.com"); - QTest::newRow("d1") << QString("||example.com/banner.gif") - << QString("^[\\w\\-]+:\\/+(?!\\/)(?:[^\\/]+\\.)?example\\.com\\/banner\\.gif"); -} - -void tst_AdBlockRule::regexpCreation() -{ - QFETCH(QString, input); - QFETCH(QString, output); - - SubAdBlockRule rule(input); - QCOMPARE(rule.regExpPattern(), output); -} - -QTEST_MAIN(tst_AdBlockRule) -#include "tst_adblockrule.moc" - diff --git a/autotests/adblock/adblocksubscription/.gitignore b/autotests/adblock/adblocksubscription/.gitignore deleted file mode 100644 index aea23ae2..00000000 --- a/autotests/adblock/adblocksubscription/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -adblocksubscription -rules2.txt diff --git a/autotests/adblock/adblocksubscription/adblocksubscription.pro b/autotests/adblock/adblocksubscription/adblocksubscription.pro deleted file mode 100644 index 2ad5e053..00000000 --- a/autotests/adblock/adblocksubscription/adblocksubscription.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES += tst_adblocksubscription.cpp -HEADERS += diff --git a/autotests/adblock/adblocksubscription/rules.txt b/autotests/adblock/adblocksubscription/rules.txt deleted file mode 100644 index 6a13a94c..00000000 --- a/autotests/adblock/adblocksubscription/rules.txt +++ /dev/null @@ -1,3 +0,0 @@ -[Adblock Plus 0.7.1] -http://example.com/ads/* -@@advice diff --git a/autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp b/autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp deleted file mode 100644 index b903d586..00000000 --- a/autotests/adblock/adblocksubscription/tst_adblocksubscription.cpp +++ /dev/null @@ -1,358 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include - -#include - -class tst_AdBlockSubscription : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void adblocksubscription_data(); - void adblocksubscription(); - - void isEnabled_data(); - void isEnabled(); - void location_data(); - void location(); - void saveRules_data(); - void saveRules(); - void title_data(); - void title(); - void updateNow_data(); - void updateNow(); - void allow_data(); - void allow(); - void block_data(); - void block(); - void addRule(); - void removeRule(); -}; - -// Subclass that exposes the protected functions. -class SubAdBlockSubscription : public AdBlockSubscription -{ -public: - SubAdBlockSubscription(const QUrl &url = QUrl()) : AdBlockSubscription(url) {} - -}; - -// This will be called before the first test function is executed. -// It is only called once. -void tst_AdBlockSubscription::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_AdBlockSubscription::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_AdBlockSubscription::init() -{ -} - -// This will be called after every test function. -void tst_AdBlockSubscription::cleanup() -{ -} - -void tst_AdBlockSubscription::adblocksubscription_data() -{ - QTest::addColumn("url"); - QTest::addColumn("title"); - QTest::addColumn("location"); - QTest::addColumn("enabled"); - QTest::addColumn("lastUpdate"); - QTest::newRow("basic0") << QUrl::fromEncoded("abp:subscribe?location=http://easylist.adblockplus.org/easylist.txt&title=EasyList") - << "EasyList" - << QUrl("http://easylist.adblockplus.org/easylist.txt") - << true - << QDateTime(); - - - QTest::addColumn("url"); - QTest::addColumn("title"); - QTest::addColumn("location"); - QTest::addColumn("enabled"); - QTest::addColumn("lastUpdate"); - QTest::newRow("basic1") << QUrl::fromEncoded("abp:subscribe?location=http://easylist.adblockplus.org/easylist.txt&title=EasyList&enabled=false&lastUpdate=2009-01-16T12%3A10%3A55") - << "EasyList" - << QUrl("http://easylist.adblockplus.org/easylist.txt") - << false - << QDateTime(QDate(2009, 1, 16), QTime(12, 10, 55)); -} - -void tst_AdBlockSubscription::adblocksubscription() -{ - QFETCH(QUrl, url); - QFETCH(QString, title); - QFETCH(QUrl, location); - QFETCH(bool, enabled); - QFETCH(QDateTime, lastUpdate); - - SubAdBlockSubscription subscription(url); - QCOMPARE(subscription.title(), title); - QCOMPARE(subscription.location(), location); - QCOMPARE(subscription.isEnabled(), enabled); - QCOMPARE(subscription.lastUpdate(), lastUpdate); - QVERIFY(subscription.url().isValid()); - //QCOMPARE(subscription.url(), url); - QCOMPARE(subscription.block(QString()), (AdBlockRule const*)0); - subscription.saveRules(); - subscription.setEnabled(false); - subscription.setLocation(QUrl()); - subscription.setTitle(QString()); - subscription.updateNow(); - subscription.allRules(); - subscription.removeRule(-1); - subscription.removeRule(0); - subscription.removeRule(1); - subscription.addRule(AdBlockRule()); -} - -Q_DECLARE_METATYPE(AdBlockRule const*) -void tst_AdBlockSubscription::allow_data() -{ - QTest::addColumn("url"); - QTest::addColumn("allow"); - QTest::newRow("block") << QUrl("http://example.com/ads/banner123.gif") << false; - QTest::newRow("allow") << QUrl("http://example.com/ads/advice.html") << true; -} - -// public AdBlockRule const *block(QString const &urlString) const -void tst_AdBlockSubscription::allow() -{ - QFETCH(QUrl, url); - QFETCH(bool, allow); - - SubAdBlockSubscription subscription; - subscription.setLocation(QUrl::fromLocalFile(QDir::currentPath() + "/rules.txt")); - subscription.setEnabled(true); - subscription.updateNow(); - - const AdBlockRule *rule = subscription.allow(QString::fromUtf8(url.toEncoded())); - if (rule) - QVERIFY(rule->isException()); - QCOMPARE((0 != rule), allow); -} - -void tst_AdBlockSubscription::block_data() -{ - QTest::addColumn("url"); - QTest::addColumn("block"); - QTest::newRow("block") << QUrl("http://example.com/ads/banner123.gif") << true; - QTest::newRow("allow") << QUrl("http://example.com/ads/advice.html") << true; -} - -// public AdBlockRule const *block(QString const &urlString) const -void tst_AdBlockSubscription::block() -{ - QFETCH(QUrl, url); - QFETCH(bool, block); - - SubAdBlockSubscription subscription; - subscription.setLocation(QUrl::fromLocalFile(QDir::currentPath() + "/rules.txt")); - subscription.setEnabled(true); - subscription.updateNow(); - - const AdBlockRule *rule = subscription.block(QString::fromUtf8(url.toEncoded())); - if (rule) - QVERIFY(!rule->isException()); - QCOMPARE((0 != rule), block); -} - -void tst_AdBlockSubscription::isEnabled_data() -{ - QTest::addColumn("isEnabled"); - QTest::newRow("true") << true; - QTest::newRow("false") << false; -} - -// public bool isEnabled() const -void tst_AdBlockSubscription::isEnabled() -{ - QFETCH(bool, isEnabled); - - SubAdBlockSubscription subscription; - - QSignalSpy spy0(&subscription, SIGNAL(rulesChanged())); - QSignalSpy spy1(&subscription, SIGNAL(changed())); - - bool changed = subscription.isEnabled() != isEnabled; - subscription.setEnabled(isEnabled); - QCOMPARE(subscription.isEnabled(), isEnabled); - - QCOMPARE(spy0.count(), 0); - QCOMPARE(spy1.count(), changed ? 1 : 0); -} - -void tst_AdBlockSubscription::location_data() -{ - QTest::addColumn("location"); - QTest::newRow("null") << QUrl(); - QTest::newRow("x") << QUrl("x"); -} - -// public QUrl location() const -void tst_AdBlockSubscription::location() -{ - QFETCH(QUrl, location); - - SubAdBlockSubscription subscription(QUrl("abp:subscribe")); - - QSignalSpy spy0(&subscription, SIGNAL(rulesChanged())); - QSignalSpy spy1(&subscription, SIGNAL(changed())); - - bool changed = location != subscription.location(); - subscription.setLocation(location); - QCOMPARE(subscription.location(), location); - QCOMPARE(subscription.url(), QUrl(QString("abp:subscribe?location=%1&title=").arg(location.toString()))); - - QCOMPARE(spy0.count(), 0); - QCOMPARE(spy1.count(), changed ? 1 : 0); -} - -void tst_AdBlockSubscription::saveRules_data() -{ - QTest::addColumn("location"); - QTest::newRow("file") << QUrl::fromLocalFile(QDir::currentPath() + "/rules2.txt"); -} - -// public void saveRules() -void tst_AdBlockSubscription::saveRules() -{ - QFETCH(QUrl, location); - SubAdBlockSubscription subscription; - subscription.setLocation(location); - - subscription.addRule(AdBlockRule()); - subscription.saveRules(); - subscription.removeRule(0); - subscription.updateNow(); - QCOMPARE(subscription.allRules().count(), 1); -} - -void tst_AdBlockSubscription::title_data() -{ - QTest::addColumn("title"); - QTest::newRow("null") << QString(); - QTest::newRow("foo") << QString("foo"); -} - -// public QString title() const -void tst_AdBlockSubscription::title() -{ - QFETCH(QString, title); - - SubAdBlockSubscription subscription; - - QSignalSpy spy0(&subscription, SIGNAL(rulesChanged())); - QSignalSpy spy1(&subscription, SIGNAL(changed())); - - bool changed = title != subscription.title(); - subscription.setTitle(title); - QCOMPARE(subscription.title(), title); - - QCOMPARE(spy0.count(), 0); - QCOMPARE(spy1.count(), changed ? 1 : 0); -} - -void tst_AdBlockSubscription::updateNow_data() -{ - QTest::addColumn("location"); - QTest::newRow("file") << QUrl::fromLocalFile(QDir::currentPath() + "/rules.txt"); -} - -// public void updateNow() -void tst_AdBlockSubscription::updateNow() -{ - QFETCH(QUrl, location); - - SubAdBlockSubscription subscription; - subscription.setLocation(location); - - QSignalSpy spy0(&subscription, SIGNAL(rulesChanged())); - QSignalSpy spy1(&subscription, SIGNAL(changed())); - - subscription.updateNow(); - - QTRY_COMPARE(spy0.count(), 1); - QCOMPARE(spy1.count(), 1); - QVERIFY(subscription.lastUpdate() != QDateTime()); - QCOMPARE(subscription.allRules().count(), 2); -} - -void tst_AdBlockSubscription::addRule() -{ - SubAdBlockSubscription subscription; - - QSignalSpy spy0(&subscription, SIGNAL(rulesChanged())); - QSignalSpy spy1(&subscription, SIGNAL(changed())); - - subscription.addRule(AdBlockRule()); - subscription.addRule(AdBlockRule("/test")); - - QTRY_COMPARE(spy0.count(), 2); - QCOMPARE(spy1.count(), 0); - QCOMPARE(subscription.allRules().count(), 2); -} - -void tst_AdBlockSubscription::removeRule() -{ - SubAdBlockSubscription subscription; - - QSignalSpy spy0(&subscription, SIGNAL(rulesChanged())); - QSignalSpy spy1(&subscription, SIGNAL(changed())); - - subscription.addRule(AdBlockRule("/test")); - subscription.removeRule(0); - - QTRY_COMPARE(spy0.count(), 2); - QCOMPARE(spy1.count(), 0); - QCOMPARE(subscription.allRules().count(), 0); -} - - -QTEST_MAIN(tst_AdBlockSubscription) -#include "tst_adblocksubscription.moc" - diff --git a/autotests/addbookmarkdialog/CMakeLists.txt b/autotests/addbookmarkdialog/CMakeLists.txt new file mode 100644 index 00000000..9aabe50d --- /dev/null +++ b/autotests/addbookmarkdialog/CMakeLists.txt @@ -0,0 +1,61 @@ +project(test-addbookmarkdialog) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5Sql REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks/xbel + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_addbookmarkdialog.cpp + ../../src/bookmarks/addbookmarkdialog.cpp + ../../src/bookmarks/bookmarksmanager.cpp + ../../src/bookmarks/bookmarksmenu.cpp + ../../src/bookmarks/bookmarksmodel.cpp + ../../src/bookmarks/bookmarknode.cpp + ../../src/bookmarks/bookmarkstoolbar.cpp + ../../src/bookmarks/xbel/xbelreader.cpp + ../../src/bookmarks/xbel/xbelwriter.cpp + ../../src/history/history.cpp + ../../src/history/historymanager.cpp + ../../src/utils/lineedit.cpp + ../../src/autosaver.cpp + ../../src/modelmenu.cpp + ../../src/modeltoolbar.cpp +) +QT5_WRAP_UI(UIS ../../src/bookmarks/addbookmarkdialog.ui) +QT5_WRAP_CPP(MOCS + tst_addbookmarkdialog.h + ../../src/autosaver.h + ../../src/modelmenu.h + ../../src/modeltoolbar.h + ../../src/bookmarks/addbookmarkdialog.h + ../../src/bookmarks/bookmarksmanager.h + ../../src/bookmarks/bookmarksmenu.h + ../../src/bookmarks/bookmarksmodel.h + ../../src/bookmarks/bookmarknode.h + ../../src/bookmarks/bookmarkstoolbar.h + ../../src/history/history.h + ../../src/history/historymanager.h + ../../src/utils/lineedit.h + ../../src/utils/lineedit_p.h +) + +add_executable(test-addbookmarkdialog ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-addbookmarkdialog Core) +qt5_use_modules(test-addbookmarkdialog Test) +qt5_use_modules(test-addbookmarkdialog Widgets) +qt5_use_modules(test-addbookmarkdialog Sql) +qt5_use_modules(test-addbookmarkdialog WebEngine) +qt5_use_modules(test-addbookmarkdialog WebEngineWidgets) diff --git a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp index 3b4dc6e9..854270e9 100644 --- a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp +++ b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp @@ -22,35 +22,21 @@ #include "addbookmarkdialog.h" #include "bookmarksmanager.h" #include "bookmarknode.h" -#include "browserapplication.h" +#include "tst_addbookmarkdialog.h" #include #include -class tst_AddBookmarkDialog : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); +BookmarksManager *tst_AddBookmarkDialog::s_bookmarksManager = nullptr; -private slots: - void addbookmarkdialog_data(); - void addbookmarkdialog(); -}; - -// Subclass that exposes the protected functions. -class SubAddBookmarkDialog : public AddBookmarkDialog +// Normally, Browserapplication is used, but this makes it possible +// to speperate tests from browserapplication and only include everything the test needs. +BookmarksManager *tst_AddBookmarkDialog::bookmarksManager() { - -public: - SubAddBookmarkDialog(QWidget *parent, BookmarksManager *manager) - : AddBookmarkDialog(parent, manager) {} - -}; + if (!s_bookmarksManager) + s_bookmarksManager = new BookmarksManager; + return s_bookmarksManager; +} // This will be called before the first test function is executed. // It is only called once. @@ -68,7 +54,7 @@ void tst_AddBookmarkDialog::cleanupTestCase() // This will be called before each test function is executed. void tst_AddBookmarkDialog::init() { - BookmarksManager *manager = BrowserApplication::bookmarksManager(); + BookmarksManager *manager = bookmarksManager(); BookmarkNode *root = manager->bookmarks(); QList nodes = root->children(); BookmarkNode *menu = nodes[0]; @@ -110,7 +96,7 @@ void tst_AddBookmarkDialog::addbookmarkdialog() QFETCH(int, toolbarCount); QFETCH(int, select); - BookmarksManager *manager = BrowserApplication::bookmarksManager(); + BookmarksManager *manager = bookmarksManager(); qRegisterMetaType("BookmarkNode *"); QSignalSpy spy(manager, SIGNAL(entryAdded(BookmarkNode *))); BookmarkNode *menu = manager->menu(); @@ -147,6 +133,4 @@ void tst_AddBookmarkDialog::addbookmarkdialog() } } -QTEST_MAIN(tst_AddBookmarkDialog) -#include "tst_addbookmarkdialog.moc" - +QTEST_MAIN(tst_AddBookmarkDialog) \ No newline at end of file diff --git a/autotests/addbookmarkdialog/tst_addbookmarkdialog.h b/autotests/addbookmarkdialog/tst_addbookmarkdialog.h new file mode 100644 index 00000000..468d16f5 --- /dev/null +++ b/autotests/addbookmarkdialog/tst_addbookmarkdialog.h @@ -0,0 +1,54 @@ +/* + * Copyright 2020 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#include +#include "addbookmarkdialog.h" + +#ifndef TST_ADDBOOKMARKDIALOG_H +#define TST_ADDBOOKMARKDIALOG_H + +class tst_AddBookmarkDialog : public QObject +{ + Q_OBJECT + +public: + static BookmarksManager *bookmarksManager(); + static BookmarksManager *s_bookmarksManager; + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void addbookmarkdialog_data(); + void addbookmarkdialog(); +}; + +// Subclass that exposes the protected functions. +class SubAddBookmarkDialog : public AddBookmarkDialog +{ +public: + SubAddBookmarkDialog(QWidget *parent, BookmarksManager *manager) + : AddBookmarkDialog(parent, manager) {} + +}; + +#endif // TST_ADDBOOKMARKDIALOG_H \ No newline at end of file diff --git a/autotests/autotests.pro b/autotests/autotests.pro index fdd32901..ca955e7d 100644 --- a/autotests/autotests.pro +++ b/autotests/autotests.pro @@ -1,10 +1,8 @@ TEMPLATE = subdirs SUBDIRS = \ - adblock \ addbookmarkdialog \ autosaver \ bookmarknode \ - cookiejar \ historyfiltermodel \ historymanager \ modeltoolbar \ diff --git a/autotests/cookiejar/.gitignore b/autotests/cookiejar/.gitignore deleted file mode 100644 index b4440a70..00000000 --- a/autotests/cookiejar/.gitignore +++ /dev/null @@ -1 +0,0 @@ -cookiejar diff --git a/autotests/cookiejar/cookiejar.pro b/autotests/cookiejar/cookiejar.pro deleted file mode 100644 index bc4d22b0..00000000 --- a/autotests/cookiejar/cookiejar.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES += tst_cookiejar.cpp -HEADERS += diff --git a/autotests/cookiejar/tst_cookiejar.cpp b/autotests/cookiejar/tst_cookiejar.cpp deleted file mode 100644 index 2f5ea90d..00000000 --- a/autotests/cookiejar/tst_cookiejar.cpp +++ /dev/null @@ -1,556 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include - -class tst_CookieJar : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void cookiejar_data(); - void cookiejar(); - - void acceptPolicy_data(); - void acceptPolicy(); - void allowedCookies_data(); - void allowedCookies(); - void allowForSessionCookies_data(); - void allowForSessionCookies(); - void blockedCookies_data(); - void blockedCookies(); - void clear_data(); - void clear(); - void cookiesForUrl_data(); - void cookiesForUrl(); - void keepPolicy_data(); - void keepPolicy(); - void loadSettings_data(); - void loadSettings(); - void setAcceptPolicy_data(); - void setAcceptPolicy(); - void setAllowedCookies_data(); - void setAllowedCookies(); - void setAllowForSessionCookies_data(); - void setAllowForSessionCookies(); - void setBlockedCookies_data(); - void setBlockedCookies(); - void setCookiesFromUrl_data(); - void setCookiesFromUrl(); - void setKeepPolicy_data(); - void setKeepPolicy(); - void cookiesChanged_data(); - void cookiesChanged(); - void isOnDomainList_data(); - void isOnDomainList(); -}; - -// Subclass that exposes the protected functions. -class SubCookieJar : public CookieJar -{ -public: - void call_cookiesChanged() - { return SubCookieJar::cookiesChanged(); } - - static bool call_isOnDomainList(QStringList const &list, QString const &domain) - { return SubCookieJar::isOnDomainList(list, domain); } -}; - -// This will be called before the first test function is executed. -// It is only called once. -void tst_CookieJar::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_CookieJar::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_CookieJar::init() -{ -} - -// This will be called after every test function. -void tst_CookieJar::cleanup() -{ -} - -void tst_CookieJar::cookiejar_data() -{ -} - -void tst_CookieJar::cookiejar() -{ - SubCookieJar jar; -#if 0 - QCOMPARE(jar.acceptPolicy(), CookieJar::AcceptPolicy); - QCOMPARE(jar.allowedCookies(), QStringList); - QCOMPARE(jar.allowForSessionCookies(), QStringList); - QCOMPARE(jar.blockedCookies(), QStringList); - jar.clear(); - QCOMPARE(jar.cookiesForUrl(QUrl()), QList()); - QCOMPARE(jar.keepPolicy(), CookieJar::KeepPolicy); - jar.loadSettings(); - jar.setAcceptPolicy(CookieJar::AcceptPolicy); - jar.setAllowedCookies(QStringList()); - jar.setAllowForSessionCookies(QStringList()); - jar.setBlockedCookies(QStringList()); - QCOMPARE(jar.setCookiesFromUrl(QList(), QUrl()), false); - jar.setKeepPolicy(CookieJar::KeepPolicy); - jar.call_cookiesChanged(); - QCOMPARE(jar.call_isOnDomainList(QStringList(), QString()), false); -#endif - QSKIP("Test is not implemented."); -} - -Q_DECLARE_METATYPE(CookieJar::AcceptPolicy) -void tst_CookieJar::acceptPolicy_data() -{ -#if 0 - QTest::addColumn("acceptPolicy"); - QTest::newRow("null") << CookieJar::AcceptPolicy(); -#endif -} - -// public CookieJar::AcceptPolicy acceptPolicy() const -void tst_CookieJar::acceptPolicy() -{ -#if 0 - QFETCH(CookieJar::AcceptPolicy, acceptPolicy); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - QCOMPARE(jar.acceptPolicy(), acceptPolicy); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::allowedCookies_data() -{ -#if 0 - QTest::addColumn("allowedCookies"); - QTest::newRow("null") << QStringList(); -#endif -} - -// public QStringList allowedCookies() const -void tst_CookieJar::allowedCookies() -{ -#if 0 - QFETCH(QStringList, allowedCookies); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - QCOMPARE(jar.allowedCookies(), allowedCookies); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::allowForSessionCookies_data() -{ -#if 0 - QTest::addColumn("allowForSessionCookies"); - QTest::newRow("null") << QStringList(); -#endif -} - -// public QStringList allowForSessionCookies() const -void tst_CookieJar::allowForSessionCookies() -{ -#if 0 - QFETCH(QStringList, allowForSessionCookies); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - QCOMPARE(jar.allowForSessionCookies(), allowForSessionCookies); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::blockedCookies_data() -{ -#if 0 - QTest::addColumn("blockedCookies"); - QTest::newRow("null") << QStringList(); -#endif -} - -// public QStringList blockedCookies() const -void tst_CookieJar::blockedCookies() -{ -#if 0 - QFETCH(QStringList, blockedCookies); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - QCOMPARE(jar.blockedCookies(), blockedCookies); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::clear_data() -{ - QTest::addColumn("foo"); - QTest::newRow("0") << 0; - QTest::newRow("-1") << -1; -} - -// public void clear() -void tst_CookieJar::clear() -{ -#if 0 - QFETCH(int, foo); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.clear(); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::cookiesForUrl_data() -{ -#if 0 - QTest::addColumn("url"); - QTest::addColumn>("cookiesForUrl"); - QTest::newRow("null") << QUrl() << QList(); -#endif -} - -// public QList cookiesForUrl(QUrl const &url) const -void tst_CookieJar::cookiesForUrl() -{ -#if 0 - QFETCH(QUrl, url); - QFETCH(QList, cookiesForUrl); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - QCOMPARE(jar.cookiesForUrl(url), cookiesForUrl); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -Q_DECLARE_METATYPE(CookieJar::KeepPolicy) -void tst_CookieJar::keepPolicy_data() -{ -#if 0 - QTest::addColumn("keepPolicy"); - QTest::newRow("null") << CookieJar::KeepPolicy(); -#endif -} - -// public CookieJar::KeepPolicy keepPolicy() const -void tst_CookieJar::keepPolicy() -{ -#if 0 - QFETCH(CookieJar::KeepPolicy, keepPolicy); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - QCOMPARE(jar.keepPolicy(), keepPolicy); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::loadSettings_data() -{ - QTest::addColumn("foo"); - QTest::newRow("0") << 0; - QTest::newRow("-1") << -1; -} - -// public void loadSettings() -void tst_CookieJar::loadSettings() -{ -#if 0 - QFETCH(int, foo); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.loadSettings(); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::setAcceptPolicy_data() -{ -#if 0 - QTest::addColumn("policy"); - QTest::newRow("null") << CookieJar::AcceptPolicy(); -#endif -} - -// public void setAcceptPolicy(CookieJar::AcceptPolicy policy) -void tst_CookieJar::setAcceptPolicy() -{ -#if 0 - QFETCH(CookieJar::AcceptPolicy, policy); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.setAcceptPolicy(policy); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::setAllowedCookies_data() -{ -#if 0 - QTest::addColumn("list"); - QTest::newRow("null") << QStringList(); -#endif -} - -// public void setAllowedCookies(QStringList const &list) -void tst_CookieJar::setAllowedCookies() -{ -#if 0 - QFETCH(QStringList, list); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.setAllowedCookies(list); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::setAllowForSessionCookies_data() -{ -#if 0 - QTest::addColumn("list"); - QTest::newRow("null") << QStringList(); -#endif -} - -// public void setAllowForSessionCookies(QStringList const &list) -void tst_CookieJar::setAllowForSessionCookies() -{ -#if 0 - QFETCH(QStringList, list); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.setAllowForSessionCookies(list); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::setBlockedCookies_data() -{ -#if 0 - QTest::addColumn("list"); - QTest::newRow("null") << QStringList(); -#endif -} - -// public void setBlockedCookies(QStringList const &list) -void tst_CookieJar::setBlockedCookies() -{ -#if 0 - QFETCH(QStringList, list); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.setBlockedCookies(list); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::setCookiesFromUrl_data() -{ -#if 0 - QTest::addColumn>("cookieList"); - QTest::addColumn("url"); - QTest::addColumn("setCookiesFromUrl"); - QTest::newRow("null") << QList() << QUrl() << false; -#endif -} - -// public bool setCookiesFromUrl(QList const &cookieList, QUrl const &url) -void tst_CookieJar::setCookiesFromUrl() -{ -#if 0 - QFETCH(QList, cookieList); - QFETCH(QUrl, url); - QFETCH(bool, setCookiesFromUrl); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - QCOMPARE(jar.setCookiesFromUrl(cookieList, url), setCookiesFromUrl); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::setKeepPolicy_data() -{ -#if 0 - QTest::addColumn("policy"); - QTest::newRow("null") << CookieJar::KeepPolicy(); -#endif -} - -// public void setKeepPolicy(CookieJar::KeepPolicy policy) -void tst_CookieJar::setKeepPolicy() -{ -#if 0 - QFETCH(CookieJar::KeepPolicy, policy); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.setKeepPolicy(policy); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::cookiesChanged_data() -{ - QTest::addColumn("foo"); - QTest::newRow("0") << 0; - QTest::newRow("-1") << -1; -} - -// protected void cookiesChanged() -void tst_CookieJar::cookiesChanged() -{ -#if 0 - QFETCH(int, foo); - - SubCookieJar jar; - - QSignalSpy spy0(&jar, SIGNAL(cookiesChanged())); - - jar.call_cookiesChanged(); - - QCOMPARE(spy0.count(), 0); -#endif - QSKIP("Test is not implemented."); -} - -void tst_CookieJar::isOnDomainList_data() -{ - QTest::addColumn("list"); - QTest::addColumn("domain"); - QTest::addColumn("isOnDomainList"); - - QTest::newRow("null") << QStringList() << QString() << false; - QTest::newRow("exact-match") << (QStringList() << "foo.com") << "foo.com" << true; - - QTest::newRow("check-0") << (QStringList() << "foo.com") << "foo.com" << true; - QTest::newRow("check-1") << (QStringList() << "foo.com") << ".foo.com" << true; - QTest::newRow("check-2") << (QStringList() << ".foo.com") << "foo.com" << true; - QTest::newRow("check-3") << (QStringList() << ".foo.com") << ".foo.com" << true; - QTest::newRow("check-4") << (QStringList() << "foo.com") << "abcfoo.com" << false; - QTest::newRow("check-5") << (QStringList() << "foo.com") << "abc.foo.com" << true; - QTest::newRow("check-6") << (QStringList() << ".foo.com") << "abcfoo.com" << false; - QTest::newRow("check-7") << (QStringList() << ".foo.com") << "abc.foo.com" << true; - - QTest::newRow("check-4") << (QStringList() << "abc.foo.com") << "foo.com" << false; - QTest::newRow("check-5") << (QStringList() << "abc.foo.com") << ".foo.com" << false; - - - QTest::newRow("edgecheck-0") << (QStringList() << "") << ".foo.com" << false; - QTest::newRow("edgecheck-1") << (QStringList() << "") << "foo.com" << false; - QTest::newRow("edgecheck-2") << (QStringList() << ".") << ".foo.com" << false; - QTest::newRow("edgecheck-3") << (QStringList() << ".") << "foo.com" << false; - QTest::newRow("edgecheck-4") << (QStringList() << "abc.foo.com") << "" << false; - QTest::newRow("edgecheck-5") << (QStringList() << "a") << "ab" << false; -} - -// protected static bool isOnDomainList(QStringList const &list, QString const &domain) -void tst_CookieJar::isOnDomainList() -{ - QFETCH(QStringList, list); - QFETCH(QString, domain); - QFETCH(bool, isOnDomainList); - - SubCookieJar jar; - - QCOMPARE(jar.call_isOnDomainList(list, domain), isOnDomainList); -} - -QTEST_MAIN(tst_CookieJar) -#include "tst_cookiejar.moc" - diff --git a/src/bookmarks/addbookmarkdialog.cpp b/src/bookmarks/addbookmarkdialog.cpp index 5b4a7693..b990d59e 100644 --- a/src/bookmarks/addbookmarkdialog.cpp +++ b/src/bookmarks/addbookmarkdialog.cpp @@ -66,7 +66,13 @@ #include "bookmarknode.h" #include "bookmarksmanager.h" #include "bookmarksmodel.h" +#ifndef NO_BROWSERAPPLICATION #include "browserapplication.h" +#else +#ifdef FOR_AUTOTEST +#include "tst_addbookmarkdialog.h" +#endif +#endif #include #include @@ -98,7 +104,15 @@ AddBookmarkDialog::AddBookmarkDialog(QWidget *parent, BookmarksManager *bookmark setupUi(this); if (!m_bookmarksManager) +#ifndef NO_BROWSERAPPLICATION m_bookmarksManager = BrowserApplication::bookmarksManager(); +#else + #ifdef FOR_AUTOTEST + m_bookmarksManager = tst_AddBookmarkDialog::bookmarksManager(); + #else + #error "Nothing provides a bookmarksmanager" + #endif +#endif m_proxyModel = new AddBookmarkProxyModel(this); BookmarksModel *model = m_bookmarksManager->bookmarksModel(); diff --git a/src/bookmarks/bookmarksmenu.cpp b/src/bookmarks/bookmarksmenu.cpp index 97885701..18e16a45 100644 --- a/src/bookmarks/bookmarksmenu.cpp +++ b/src/bookmarks/bookmarksmenu.cpp @@ -65,7 +65,13 @@ #include "bookmarknode.h" #include "bookmarksmanager.h" #include "bookmarksmodel.h" +#ifndef NO_BROWSERAPPLICATION #include "browserapplication.h" +#else +#ifdef FOR_AUTOTEST +#include "tst_addbookmarkdialog.h" +#endif +#endif BookmarksMenu::BookmarksMenu(QWidget *parent) : ModelMenu(parent) @@ -147,7 +153,15 @@ BookmarksMenuBarMenu::BookmarksMenuBarMenu(QWidget *parent) bool BookmarksMenuBarMenu::prePopulated() { +#ifndef NO_BROWSERAPPLICATION m_bookmarksManager = BrowserApplication::bookmarksManager(); +#else + #ifdef FOR_AUTOTEST + m_bookmarksManager = tst_AddBookmarkDialog::bookmarksManager(); + #else + #error "Nothing provides a bookmarksmanager" + #endif +#endif setModel(m_bookmarksManager->bookmarksModel()); setRootIndex(m_bookmarksManager->bookmarksModel()->index(m_bookmarksManager->menu())); // initial actions diff --git a/src/bookmarks/bookmarksmodel.cpp b/src/bookmarks/bookmarksmodel.cpp index ac125f8f..54a492eb 100644 --- a/src/bookmarks/bookmarksmodel.cpp +++ b/src/bookmarks/bookmarksmodel.cpp @@ -65,7 +65,9 @@ #include "addbookmarkdialog.h" #include "bookmarknode.h" #include "bookmarksmanager.h" +#ifndef NO_BROWSERAPPLICATION #include "browserapplication.h" +#endif #include "xbelreader.h" #include "xbelwriter.h" @@ -197,7 +199,9 @@ QVariant BookmarksModel::data(const QModelIndex &index, int role) const if (index.column() == 0) { if (bookmarkNode->type() == BookmarkNode::Folder) return QApplication::style()->standardIcon(QStyle::SP_DirIcon); +#ifndef NO_BROWSERAPPLICATION return BrowserApplication::instance()->icon(bookmarkNode->url); +#endif } } diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index 437bf646..50f15514 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -25,7 +25,13 @@ #include "bookmarksmanager.h" #include "bookmarksmenu.h" #include "bookmarksmodel.h" +#ifndef NO_BROWSERAPPLICATION #include "browserapplication.h" +#else +#ifdef FOR_AUTOTEST +#include "tst_addbookmarkdialog.h" +#endif +#endif #include "modelmenu.h" #include @@ -35,7 +41,16 @@ BookmarksToolBar::BookmarksToolBar(BookmarksModel *model, QWidget *parent) , m_bookmarksModel(model) { setModel(model); + +#ifndef NO_BROWSERAPPLICATION setRootIndex(model->index(BrowserApplication::bookmarksManager()->toolbar())); +#else + #ifdef FOR_AUTOTEST + setRootIndex(model->index(tst_AddBookmarkDialog::bookmarksManager()->toolbar())); + #else + #error "Nothing provides a bookmarksmanager" + #endif +#endif setContextMenuPolicy(Qt::CustomContextMenu); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), diff --git a/src/modeltoolbar.cpp b/src/modeltoolbar.cpp index e73bb44e..4d6efe8e 100644 --- a/src/modeltoolbar.cpp +++ b/src/modeltoolbar.cpp @@ -19,13 +19,16 @@ #include "modeltoolbar.h" +#ifndef NO_BROWSERAPPLICATION #include "browserapplication.h" +#endif #include "modelmenu.h" #include #include #include #include +#include ModelToolBar::ModelToolBar(QWidget *parent) @@ -150,8 +153,10 @@ bool ModelToolBar::eventFilter(QObject *object, QEvent *event) QMouseEvent *mouseEvent = static_cast(event); +#ifndef NO_BROWSERAPPLICATION BrowserApplication::instance()->setEventMouseButtons(mouseEvent->button()); BrowserApplication::instance()->setEventKeyboardModifiers(mouseEvent->modifiers()); +#endif QAction *action = button->defaultAction(); Q_ASSERT(action); QModelIndex index = this->index(action); From 58a89c9dc2cd2479d48ecfa0c0677553a85c793d Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 11 Sep 2020 17:45:23 +0200 Subject: [PATCH 11/64] Port more tests to WebEngine DownloadManager is currently broken, but I'll fix that. --- autotests/CMakeLists.txt | 5 +- autotests/addbookmarkdialog/CMakeLists.txt | 2 - autotests/autosaver/CMakeLists.txt | 22 ++++++ autotests/autosaver/tst_autosaver.cpp | 57 +------------ autotests/autosaver/tst_autosaver.h | 79 +++++++++++++++++++ autotests/bookmarknode/CMakeLists.txt | 24 ++++++ autotests/bookmarknode/tst_bookmarknode.cpp | 29 +------ autotests/bookmarknode/tst_bookmarknode.h | 62 +++++++++++++++ autotests/downloadmanager/CMakeLists.txt | 39 +++++++++ .../downloadmanager/tst_downloadmanager.cpp | 42 ++-------- .../downloadmanager/tst_downloadmanager.h | 57 +++++++++++++ src/CMakeLists.txt | 1 + src/downloadmanager.cpp | 8 ++ 13 files changed, 303 insertions(+), 124 deletions(-) create mode 100644 autotests/autosaver/CMakeLists.txt create mode 100644 autotests/autosaver/tst_autosaver.h create mode 100644 autotests/bookmarknode/CMakeLists.txt create mode 100644 autotests/bookmarknode/tst_bookmarknode.h create mode 100644 autotests/downloadmanager/CMakeLists.txt create mode 100644 autotests/downloadmanager/tst_downloadmanager.h diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index a9e70139..e31e4602 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -1,2 +1,5 @@ project(autotests) -add_subdirectory(addbookmarkdialog) \ No newline at end of file +add_subdirectory(addbookmarkdialog) +add_subdirectory(autosaver) +add_subdirectory(bookmarknode) +add_subdirectory(downloadmanager) \ No newline at end of file diff --git a/autotests/addbookmarkdialog/CMakeLists.txt b/autotests/addbookmarkdialog/CMakeLists.txt index 9aabe50d..fa8c55fe 100644 --- a/autotests/addbookmarkdialog/CMakeLists.txt +++ b/autotests/addbookmarkdialog/CMakeLists.txt @@ -3,7 +3,6 @@ project(test-addbookmarkdialog) find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) find_package(Qt5Widgets REQUIRED) -find_package(Qt5Sql REQUIRED) find_package(Qt5WebEngine REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -56,6 +55,5 @@ add_executable(test-addbookmarkdialog ${SRCS} ${UIS} ${MOCS}) qt5_use_modules(test-addbookmarkdialog Core) qt5_use_modules(test-addbookmarkdialog Test) qt5_use_modules(test-addbookmarkdialog Widgets) -qt5_use_modules(test-addbookmarkdialog Sql) qt5_use_modules(test-addbookmarkdialog WebEngine) qt5_use_modules(test-addbookmarkdialog WebEngineWidgets) diff --git a/autotests/autosaver/CMakeLists.txt b/autotests/autosaver/CMakeLists.txt new file mode 100644 index 00000000..a123ebb7 --- /dev/null +++ b/autotests/autosaver/CMakeLists.txt @@ -0,0 +1,22 @@ +project(test-autosaver) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src +) +add_definitions(-DNO_BROWSERAPPLICATION) +set(SRCS + tst_autosaver.cpp + ../../src/autosaver.cpp +) +QT5_WRAP_CPP(MOCS + tst_autosaver.h + ../../src/autosaver.h +) + +add_executable(test-autosaver ${SRCS} ${MOCS}) +qt5_use_modules(test-autosaver Core) +qt5_use_modules(test-autosaver Test) diff --git a/autotests/autosaver/tst_autosaver.cpp b/autotests/autosaver/tst_autosaver.cpp index 9c77da51..172971ec 100644 --- a/autotests/autosaver/tst_autosaver.cpp +++ b/autotests/autosaver/tst_autosaver.cpp @@ -19,60 +19,7 @@ #include #include - -class tst_AutoSaver : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - - void save(); - -private slots: - void AutoSaver_data(); - void AutoSaver(); - void changeOccurred_data(); - void changeOccurred(); - void deleted(); -}; - -// Subclass that exposes the protected functions. -class SubAutoSaver : public AutoSaver -{ -public: - SubAutoSaver(QObject *parent = 0) : AutoSaver(parent) {} - void call_timerEvent(QTimerEvent *event) - { return SubAutoSaver::timerEvent(event); } -}; - -class TestClass : public QObject -{ -Q_OBJECT - -signals: - void saveCalled(); - -public: - TestClass(QObject *parent = 0) : QObject(parent), AutoSaver(new SubAutoSaver(this)) - { - } - - ~TestClass() - { - AutoSaver->saveIfNeccessary(); - } - - SubAutoSaver *AutoSaver; - -public slots: - void save() { - emit saveCalled(); - } -}; +#include "tst_autosaver.h" // This will be called before the first test function is executed. // It is only called once. @@ -150,5 +97,3 @@ void tst_AutoSaver::deleted() } QTEST_MAIN(tst_AutoSaver) -#include "tst_autosaver.moc" - diff --git a/autotests/autosaver/tst_autosaver.h b/autotests/autosaver/tst_autosaver.h new file mode 100644 index 00000000..3ec51536 --- /dev/null +++ b/autotests/autosaver/tst_autosaver.h @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#include + +#ifndef TST_AUTOSAVER_H +#define TST_AUTOSAVER_H + +class tst_AutoSaver : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + + void save(); + +private slots: + void AutoSaver_data(); + void AutoSaver(); + void changeOccurred_data(); + void changeOccurred(); + void deleted(); +}; + +// Subclass that exposes the protected functions. +class SubAutoSaver : public AutoSaver +{ +public: + SubAutoSaver(QObject *parent = 0) : AutoSaver(parent) {} + void call_timerEvent(QTimerEvent *event) + { return SubAutoSaver::timerEvent(event); } +}; + +class TestClass : public QObject +{ +Q_OBJECT + +signals: + void saveCalled(); + +public: + TestClass(QObject *parent = 0) : QObject(parent), AutoSaver(new SubAutoSaver(this)) + { + } + + ~TestClass() + { + AutoSaver->saveIfNeccessary(); + } + + SubAutoSaver *AutoSaver; + +public slots: + void save() { + emit saveCalled(); + } +}; + +#endif //TST_AUTOSAVER_H diff --git a/autotests/bookmarknode/CMakeLists.txt b/autotests/bookmarknode/CMakeLists.txt new file mode 100644 index 00000000..a875d163 --- /dev/null +++ b/autotests/bookmarknode/CMakeLists.txt @@ -0,0 +1,24 @@ +project(test-bookmarknode) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks/xbel +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_bookmarknode.cpp + ../../src/bookmarks/bookmarknode.cpp +) +QT5_WRAP_CPP(MOCS + tst_bookmarknode.h +) + +add_executable(test-bookmarknode ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-bookmarknode Core) +qt5_use_modules(test-bookmarknode Test) diff --git a/autotests/bookmarknode/tst_bookmarknode.cpp b/autotests/bookmarknode/tst_bookmarknode.cpp index 23239a3b..651048cc 100644 --- a/autotests/bookmarknode/tst_bookmarknode.cpp +++ b/autotests/bookmarknode/tst_bookmarknode.cpp @@ -28,33 +28,7 @@ #include #include - -class tst_BookmarkNode : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void bookmarknode_data(); - void bookmarknode(); - - void add_duplicate(); - void add_to_bookmark(); - void add_move(); - void add_data(); - void add(); - void equal(); - void remove(); - void deleteNode(); - void deleteChildren(); - void type_data(); - void type(); -}; +#include // This will be called before the first test function is executed. // It is only called once. @@ -269,4 +243,3 @@ void tst_BookmarkNode::type() } QTEST_MAIN(tst_BookmarkNode) -#include "tst_bookmarknode.moc" diff --git a/autotests/bookmarknode/tst_bookmarknode.h b/autotests/bookmarknode/tst_bookmarknode.h new file mode 100644 index 00000000..1920fe58 --- /dev/null +++ b/autotests/bookmarknode/tst_bookmarknode.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2020 Aaron Dewes + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of Endorphin nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef TST_BOOKMARKNODE_H +#define TST_BOOKMARKNODE_H + +#include +#include + +class tst_BookmarkNode : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void bookmarknode_data(); + void bookmarknode(); + + void add_duplicate(); + void add_to_bookmark(); + void add_move(); + void add_data(); + void add(); + void equal(); + void remove(); + void deleteNode(); + void deleteChildren(); + void type_data(); + void type(); +}; + +#endif // TST_BOOKMARKNODE_H \ No newline at end of file diff --git a/autotests/downloadmanager/CMakeLists.txt b/autotests/downloadmanager/CMakeLists.txt new file mode 100644 index 00000000..51827b62 --- /dev/null +++ b/autotests/downloadmanager/CMakeLists.txt @@ -0,0 +1,39 @@ +project(test-downloadmanager) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_downloadmanager.cpp + ../../src/autosaver.cpp + ../../src/downloadmanager.cpp + ../../src/utils/edittableview.cpp + ../../src/utils/squeezelabel.cpp +) +QT5_WRAP_UI(UIS ../../src/downloaditem.ui ../../src/downloads.ui) +QT5_WRAP_CPP(MOCS + tst_downloadmanager.h + ../../src/autosaver.h + ../../src/downloadmanager.h + ../../src/utils/edittableview.h + ../../src/utils/squeezelabel.h +) + +add_executable(test-downloadmanager ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-downloadmanager Core) +qt5_use_modules(test-downloadmanager Test) +qt5_use_modules(test-downloadmanager Widgets) +qt5_use_modules(test-downloadmanager Gui) +qt5_use_modules(test-downloadmanager WebEngine) +qt5_use_modules(test-downloadmanager WebEngineWidgets) diff --git a/autotests/downloadmanager/tst_downloadmanager.cpp b/autotests/downloadmanager/tst_downloadmanager.cpp index ca0ca42b..a233fb35 100644 --- a/autotests/downloadmanager/tst_downloadmanager.cpp +++ b/autotests/downloadmanager/tst_downloadmanager.cpp @@ -21,41 +21,11 @@ #include #include #include "downloadmanager.h" +#include "tst_downloadmanager.h" -#define BIGFILE "http://10.0.0.3/~ben/distccKNOPPIX-1.3-2004-08-20-gcc-3.3.iso" -#define BIGFILENAME "distccKNOPPIX-1.3-2004-08-20-gcc-3.3.iso" -#define BIGFILENAME2 "distccKNOPPIX-1.3-2004-08-20-gcc-3.3-1.iso" - -class tst_DownloadManager : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void downloadmanager_data(); - void downloadmanager(); - void cleanupButton_data(); - void cleanupButton(); - void download_data(); - void download(); - void removePolicy_data(); - void removePolicy(); -}; - -// Subclass that exposes the protected functions. -class SubDownloadManager : public DownloadManager -{ -public: - SubDownloadManager(QWidget *parent = 0) - : DownloadManager(parent) - {} - -}; +#define BIGFILE "https://cdimage.debian.org/debian-cd/10.5.0/amd64/iso-cd/debian-10.5.0-amd64-netinst.iso" +#define BIGFILENAME "debian-10.5.0-amd64-netinst.iso" +#define BIGFILENAME2 "debian-10.5.0-amd64-netinst-1.iso" // This will be called before the first test function is executed. // It is only called once. @@ -246,6 +216,4 @@ void tst_DownloadManager::removePolicy() QCOMPARE(view->model()->rowCount(), removePolicy == DownloadManager::Never ? 1 : 0); } -QTEST_MAIN(tst_DownloadManager) -#include "tst_downloadmanager.moc" - +QTEST_MAIN(tst_DownloadManager) \ No newline at end of file diff --git a/autotests/downloadmanager/tst_downloadmanager.h b/autotests/downloadmanager/tst_downloadmanager.h new file mode 100644 index 00000000..cdd17d58 --- /dev/null +++ b/autotests/downloadmanager/tst_downloadmanager.h @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#ifndef TST_DOWNLOADMANAGER_H +#define TST_DOWNLOADMANAGER_H + +#include +#include "downloadmanager.h" + +class tst_DownloadManager : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void downloadmanager_data(); + void downloadmanager(); + void cleanupButton_data(); + void cleanupButton(); + void download_data(); + void download(); + void removePolicy_data(); + void removePolicy(); +}; + +// Subclass that exposes the protected functions. +class SubDownloadManager : public DownloadManager +{ +public: + SubDownloadManager(QWidget *parent = 0) + : DownloadManager(parent) + {} + +}; + +#endif \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 19dc10c9..4408ab0a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -101,6 +101,7 @@ set(Endorphin_SRCS opensearch/opensearchreader.cpp opensearch/opensearchwriter.cpp useragent/useragentmenu.cpp + utils/explorerstyle.cpp utils/editlistview.cpp utils/edittableview.cpp utils/edittreeview.cpp diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index f3480afe..123368e7 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -64,7 +64,9 @@ #include "downloadmanager.h" #include "autosaver.h" +#ifndef NO_BROWSERAPPLICATION #include "browserapplication.h" +#endif #include @@ -161,7 +163,11 @@ void DownloadItem::getFileName() if (m_gettingFileName) return; +#ifndef NO_BROWSERAPPLICATION QString downloadDirectory = BrowserApplication::downloadManager()->downloadDirectory(); +#else + QString downloadDirectory = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + '/'; +#endif QString defaultFileName = saveFileName(downloadDirectory); QString fileName = defaultFileName; @@ -177,7 +183,9 @@ void DownloadItem::getFileName() return; } QFileInfo fileInfo = QFileInfo(fileName); +#ifndef NO_BROWSERAPPLICATION BrowserApplication::downloadManager()->setDownloadDirectory(fileInfo.absoluteDir().absolutePath()); +#endif fileNameLabel->setText(fileInfo.fileName()); } m_output.setFileName(fileName); From 31b4ae74a754df96dde261a63947228d9b7ab0b8 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 11 Sep 2020 18:55:44 +0200 Subject: [PATCH 12/64] Update changelog --- ChangeLog => CHANGELOG.arora.md | 317 ++++++++++++++------------------ CHANGELOG.md | 59 ++++++ 2 files changed, 196 insertions(+), 180 deletions(-) rename ChangeLog => CHANGELOG.arora.md (77%) create mode 100644 CHANGELOG.md diff --git a/ChangeLog b/CHANGELOG.arora.md similarity index 77% rename from ChangeLog rename to CHANGELOG.arora.md index b48bb743..5acbf78b 100644 --- a/ChangeLog +++ b/CHANGELOG.arora.md @@ -1,131 +1,82 @@ -UNRELEASED: - -Fixed issues: - endorphin-placesimport sometimes resulted in an "Invalid cross-device link" error. - -Behind the scene: - Add alternative CMake build system - This is not final yet, and currently only works on Linux. - When it is finished, it will replace qmake. - CMake currently reduces the size of endorphin-placesimport from about 2 MB to about 250 KB. - This improvement will be added to QMake later. - -Other: - Remove ClickToFlash - Flash will reach its end-of-life soon, and shouldn't be used at all, so this feature was removed. - Remove usage of some deprecated QT features - -Fixed issues: - Fix many "invalid certificate" errors - -0.12.1 - -Interface: - Add note about this being an inofficial fork - Update included user agents - Improve placeholder text of the searchbox on the front page - -Fixed issues: - Fix language fallback - -0.12.0 - -Interface: - Show the number of downloads in the download manager dialog title - -Fixed issues: - When the 'delete' button is pressed, the downloaded item count was not updated. - Issue: 912: Autofill manager was always storing forms. - Issue: 915: Fixed ssl certificate problem with sites like https://webmail.us.army.mil - By default QSSLConfiguration was only accepting SSLv3 while we want to - accept all of them. - Issue: 918: "Autofill webforms" in Preferences was always checked. - Issue: 931: Fix for fullscreen on Mac - Issue: 957: Workaround for a bug in QCompleter - -Behind the scene: - Support persistent data storage (HTML5 localStorage) - Update to QT5 & latest WebKit to fix many issues with modern websites - Update some internal pages to HTML5 - Code cleanup - -Other: - Remove OS2 support - -This is not an official update to this browser. - -0.11.0 -Interface: - When the privacy indicator is visible clicking on it will result in private mode being turned off. - Add a way to modify the user agent string from within the application. - Support arguments for the external download program - Tweak the adblock dialog spacing and size. - Change the AdBlock dialog to use a simple check box instead of a group box. - Replace Stopped with Download Complete (like in ffx it's less confusing ) - Update the copyright year in the about dialog to include 2010 - Issue: 768: Fix spelling mistake - Issue: 821: Sort columns in cookie dialog by data values instead of string value. This fixes the dates being alphanumerically sorted. - -Behind the scene: - Issue: 891: Fix Text Encoding to work correctly - Issue: 826: Correctly save the history state of a tab when using Qt 4.6 - Fix build breakage with QtWebKit 2.0. - Remove remnant of delayed QWebView creation. Fixes tab restore again. - Style fix: convert tabs to spaces. - -Build system: - Add an application icon for os2. - For finding the locale tools on os2 behave like win32 - When building in debug mode on OS2 just like with Windows enable the console. - Move Endorphin's hooks to the git-hooks format to utilize git-hooks (See: http://github.com/icefox/git-hooks) - Default to lrelease and not lrelease-qt4 on non unix platforms. - QMAKE_EXTRA_UNIX_TARGETS is deprecated; use QMAKE_EXTRA_TARGETS instead. - Enable the raster graphics system by default for X11 - -Translation: - Make "Show Hidden Files" translatable. - Issue: 811: Fix typos in the German translation - Replaced "leichtgewichtiger" with "schlanker" in translation with source "Lightweight WebKit-based wen browser" - Fixed capitalization typo whare the word "Tab" began with a lowercase "t" - Renamed Dutch translation file from nl_BE to nl. - - -0.10.2 -The major issues: - - When compiling with Qt 4.6 Endorphin had been using some API that changes +# Arora Changelog + +This is the changelog of the Arora browser. Arora had a different issue log (not accessible anymore) +and it might be confusing if we used the Endorphin and Arora issue log in the changelog, so the Changelog +was moved to another file. + +## 0.11.0 + +### Interface +- When the privacy indicator is visible clicking on it will result in private mode being turned off. +- Add a way to modify the user agent string from within the application. +- Support arguments for the external download program +- Tweak the adblock dialog spacing and size. +- Change the AdBlock dialog to use a simple check box instead of a group box. +- Replace Stopped with Download Complete (like in ffx it's less confusing ) +- Update the copyright year in the about dialog to include 2010 +- Issue: 768: Fix spelling mistake +- Issue: 821: Sort columns in cookie dialog by data values instead of string value. This fixes the dates being alphanumerically sorted. + +### Behind the scene +- Issue: 891: Fix Text Encoding to work correctly +- Issue: 826: Correctly save the history state of a tab when using Qt 4.6 +- Fix build breakage with QtWebKit 2.0. +- Remove remnant of delayed QWebView creation. Fixes tab restore again. +- Style fix: convert tabs to spaces. + +#### Build system +- Add an application icon for os2. +- For finding the locale tools on os2 behave like win32 +- When building in debug mode on OS2 just like with Windows enable the console. +- Move Arora's hooks to the git-hooks format to utilize git-hooks (See: http://github.com/icefox/git-hooks) +- Default to lrelease and not lrelease-qt4 on non unix platforms. +- QMAKE_EXTRA_UNIX_TARGETS is deprecated; use QMAKE_EXTRA_TARGETS instead. +- Enable the raster graphics system by default for X11 + +### Translation +- Make "Show Hidden Files" translatable. +- Issue: 811: Fix typos in the German translation +- Replaced "leichtgewichtiger" with "schlanker" in translation with source "Lightweight WebKit-based wen browser" +- Fixed capitalization typo whare the word "Tab" began with a lowercase "t" +- Renamed Dutch translation file from nl_BE to nl. + + +## 0.10.2 +### The major issues +- When compiling with Qt 4.6 Arora had been using some API that changes shortly before the release of Qt 4.6.0 after an API review was done for the new API in QtWebKit. This release changes the code to build with the final API that is found in Qt 4.6.0 - - A segfault that could occur when opening a URL on a new window from the command-line. +- A segfault that could occur when opening a URL on a new window from the command-line. -0.10.1 -The major issues: - Issue: 666 Sites were showing a "SSL handshake failure". With the new NetworkAccessManagerProxy the signals were being sent to the proxy and not the primary networkaccessmanager. - Issue: 683: Endorphin crashes when using privacy mode. +## 0.10.1 +### The major issues +- Issue: 666 Sites were showing a "SSL handshake failure". With the new NetworkAccessManagerProxy the signals were being sent to the proxy and not the primary networkaccessmanager. +- Issue: 683: Arora crashes when using privacy mode. When switching to private mode the primary networkaccessmanagers swaps cookiejar's which caused a segfault. Introduce a CookieJarProxy class which will pass the cookie requests to the primary networkaccessmanager's cookiejar. -Translations: - Add Portuguese translation from Américo Monteiro - Updated Turkish translation from Mehmet Nur Olcay - Issue: 682,677 Fix several FR spelling mistakes. - -Fixed Issues: - Issue: 79 Only tab down the completer when the popup is visible. - Issue: 221 When using Qt 4.6 hardcode a webpage to have a white background even when using a dark theme. - Issue: 472 Set the url on the location bar that matches the webview that we are loading the url in, not in the current location bar which might not be the correct one. - Issue: 637 Startup Crash with Qt 4.5.0 (not with any other version) - Issue: 679 Selecting Show only one close button instead of one for each tab requires an application restart to be applied. - Issue: 676 Fix openstreetmap.org's login saving and improve the Wallet password dialog when finding the login name. +### Translations +- Add Portuguese translation from Américo Monteiro +- Updated Turkish translation from Mehmet Nur Olcay +- Issue: 682,677 Fix several FR spelling mistakes. + +### Fixed Issues +- Issue: 79 Only tab down the completer when the popup is visible. +- Issue: 221 When using Qt 4.6 hardcode a webpage to have a white background even when using a dark theme. +- Issue: 472 Set the url on the location bar that matches the webview that we are loading the url in, not in the current location bar which might not be the correct one. +- Issue: 637 Startup Crash with Qt 4.5.0 (not with any other version) +- Issue: 679 Selecting Show only one close button instead of one for each tab requires an application restart to be applied. +- Issue: 676 Fix openstreetmap.org's login saving and improve the Wallet password dialog when finding the login name. Rather than using the document.form[0].name use document.form[0].elements["name"] this allows the name to contain things such as []'s without causing a problem. -Other issues / changes - Add support for the home, favorites, search, and openurl multimedia keys found on some keyboards - Turn on AutoFill by default - Remove the accidental 100MB limit on the disk cache size in the settings dialog. - Make source viewer remember the window size and not block access to the main window +### Other issues / changes +- Add support for the home, favorites, search, and openurl multimedia keys found on some keyboards +- Turn on AutoFill by default +- Remove the accidental 100MB limit on the disk cache size in the settings dialog. +- Make source viewer remember the window size and not block access to the main window -0.10.0 +## 0.10.0 Interface - Issue #24: Add support for AdBlock - Issue #40: Support several common modifiers in the location bar for modifying the typed in url. @@ -140,30 +91,30 @@ Interface - Issue #650: Save the toolbar location allowing the toolbars to be next to each other - Add ctrl-z shortcut to undo the closing of the last tab. - Behave better when access keys are enabled by adding a slight delay to make sure that the ctrl is actually for access keys and not for another shortcut such as ctrl-tab or ctrl-a -- When endorphin crashed on the previous startup give the user a way to bypass the failsafe and restore their session if they really want. +- When Arora crashed on the previous startup give the user a way to bypass the failsafe and restore their session if they really want. - Add the ability to set the length of a session cookie - Enable DNS prefetching and WebKit version in the about dialog when building against Qt 4.6. - Remember what tab you were on when you close the settings dialog - Add a browse button next to the style sheet line edit to help users find files and automatically translate them into url's. - Add icons to the menu actions on freedesktop systems. - Show the configure search engines action in the tools menu -- Change default bookmarks to only have a link to htpp://endorphin-browser.org +- Change default bookmarks to only have a link to htpp://Arora-browser.org Removed all of Qt development type entries - From discussion on http://endorphinbrowser.blogspot.com/2009/08/endorphin-090.html and also the Kubuntu guys strip the bookmarks in their release so it make sense. + From discussion on http://Arorabrowser.blogspot.com/2009/08/Arora-090.html and also the Kubuntu guys strip the bookmarks in their release so it make sense. - Move the Preferences menu item to Tools|Options - Set placeholder text for the start page search box - Add a checkbox to hide/show hidden files in the directory listing. - Change the about dialog text so it can be selected with a mouse so users can copy the application version. - Allow urls to be dropped on the bookmark bar and bookmark menu -Behind the scenes +### Behind the scenes - Force the history completer to be LTR: same as the url line. - Create a new stills class, NetworkAcessManagerProxy that is useful for tracking what QWebPage a QWebReply came from. - Load QWebView settings when the View is created so m_enableAccessKeys will be read from settings - Rename lineedit -> locationbar functions & variables - Enhance SingleApplication so that the host can send messages back to the second application. On Windows this is used to send the window id back to the application that was just started - so it can raise the endorphin window to the front. + so it can raise the Arora window to the front. - Fix some old MSVC compile warnings - Make it possible to retranslate the bookmarks toolbar title - Set the maximumPagesInCache to 3 (default is 0) and provide a way for users to set this value through QSettings. @@ -181,7 +132,7 @@ Behind the scenes - Fix character encoding in directory listing. - Clean up the private browsing message box to make it easier to translate. -Build system +#### Build system - Allow building against a shadow-built WebKit trunk - Ignore more misc generated build files on windows - Add Git hook to check commits for the proper copyright year @@ -190,17 +141,18 @@ Build system - Re-enable sharing the temporary compilation objects for all subprojects. Use the 'ordered' configuration to make sure that we walk through the subdirectories one by one and not all simultaneously when building in parallel. -0.9.0 +## 0.9.0 + Drop support for Qt 4.4. -Interface -FEATURES: +### Interface +#### Features - Add support for search keywords in the location bar. - POST support for OpenSearch suggestion requests. - Add WebKit version to the About dialog [WebKit trunk only]. - Use HTTP pipelining for all network requests [Qt 4.6 only]. -IMPROVEMENTS: +#### Improvements - Remember last used save directory. - Added file dialog to download location settings. - Restrict drag and drop to the same page unless a QWebView accepts it. @@ -214,7 +166,7 @@ IMPROVEMENTS: - Add Planet Qt to the default set of bookmarks. - Remove the text wrapping option from the source viewer's menu and instead enable it by default. -BUGFIXES: +### Bug fixes - Avoid duplicated and contradictory rules on the cookie rule list. - Change the shortcut for showing the bookmark toolbar as it was conflicting with the show bookmark dialog shortcut. - Encode the user input before inserting it into an URL template. @@ -237,7 +189,7 @@ BUGFIXES: - Avoid overwriting the user agent string in the WebPage autotest. - Fix non-ASCII characters displayed garbled for Authors. -Behind the scenes +### Behind the scenes - Merge two blocks of code that deals with oneCloseButton policy. - Make parentWindow() prettier. - Simplify updates of actions in view menu. @@ -245,14 +197,14 @@ Behind the scenes - Save UI changes in the active window before creating a new one. - Move all network related files into one directory. -Build system +#### Build system - When building on osx use qmake -r. - Ignore generated files built on windows. -0.8.0 -Interface -FEATURES: +## 0.8.0 +### Interface +#### Features - When the ctrl key is pressed show keyboard accelerators on the screen. [Qt 4.6 only]. - Location bar: implement full text search and more accurate sorting. - Add a simple start page with a search box pointing at the active search engine. @@ -263,7 +215,7 @@ FEATURES: - Add a checkable push button to the search bar that allows to highlight a specific string in a website [Qt 4.6 only]. - Add a setting that specifies if the url supplied by the user should be forwarded to the default search engine if it isn't valid. -IMPROVEMENTS: +#### Improvements - Show a more verbose message when the htmlToXBel tool is not installed. - Show the complete tab title as tool tip to improve GUI usability for long website titles. - Download manager: Create the download directory as needed. @@ -274,7 +226,7 @@ IMPROVEMENTS: - When creating new windows, use the startup setting to decide if the homepage should be loaded. - Remove the network monitor tool as the current Inspector now lets you see request headers and response headers. -BUGFIXES: +### Bug fixes - Fix several memory leaks: set the Qt::WA_DeleteOnClose flag on dialogs that are executed asynchronously. - Download manager: Fix displaying file size when downloading huge files. - Download manager: Give correct name to downloaded files with no suffix. @@ -282,7 +234,7 @@ BUGFIXES: - Bookmarks manager: Don't allow to edit the url in any nodes but normal bookmarks. - Private browsing now disables the disk cache. -Behind the scenes +### Behind the scenes - Added custom network scheme handlers, i.e. a single one for listing local directories. - Add a setting so the user can swap the location of the new and close tab buttons. - Add the ability for a user to specify the userAgent through QSettings. @@ -294,19 +246,21 @@ Behind the scenes - Tweak the certToFormattedString() function. - OpenSearch: localization improvements. -Build system -- Include an additional XML file in the installation, which will make Endorphin appear in Gnome Control Center on the list of available web browsers that can be set as default. +#### Build system +- Include an additional XML file in the installation, which will make Arora appear in Gnome Control Center on the list of available web browsers that can be set as default. - Add man pages for the tools. - webkit.pri now supports building QtWebKit as a framework on mac. -0.7.1 -Fix Windows build. -Fix building in parallel (make -jX). +## 0.7.1 +### Behind the scenes +#### Build system +- Fix Windows build. +- Fix building in parallel (make -jX). -0.7.0 -Interface +## 0.7.0 +### Interface - Add support for OpenSearch to the toolbar search - Add the ability to search from the webpage context menu - Remember the boxes checked in the Clear Private Data dialog @@ -317,7 +271,7 @@ Interface - Add a setting specifying if the application should quit when last tab is closed. - Revert the check for the Oxygen style so when under KDE4 Oxygen will be used even if it has issues. -- Fix mid click to paste urls into Endorphin to have them be loaded +- Fix mid click to paste urls into Arora to have them be loaded - Fix crash in Clear Privacy Dialog when cache is disabled - In the download manager change the "Ok" Button to "Close" - Fix the positioning of new tab and close tab buttons. Comparing to 0.6 they are just swapped now. @@ -345,10 +299,10 @@ used even if it has issues. - Add subdomain checking, eg when the policy says 'block def.com', then it will block cookies from 'def.com', 'www.def.com' but not from 'abcdef.com' - Handle cookie rules with starting dot correctly -Behind the scenes +### Behind the scenes - Add a subclass of QWebPluginFactory that can be used for managing QWebPlugin's - Add a static BrowserMainWindow::parentWindow(QWidget *) method that returns a main window being one of the passed widget's parents. -- Move QTRY functions into their own header file as it has no dependency on Endorphin and can be used by tests that don't require BrowserApplication +- Move QTRY functions into their own header file as it has no dependency on Arora and can be used by tests that don't require BrowserApplication - Mark strings as not translatable where it doesn't make sense - Move location bar site icon class into its own file - Move the privacy indicator out into its own class and file @@ -366,27 +320,27 @@ Behind the scenes - Add WebPage::linkedResources(const QString&) method that returns a list of resources attached to the main document - BrowserApplication::mainWindow() returns the currently active window -Build system +#### Build system - Remove one second punishment because it didn't work and I didn't make autotests when I was punished - Add foreach() style error to look for and fix existing occurences. - When building by default don't have lrelase be verbose as it du/mps a lot of junk on the console - Add commit hook to do basic style checking on the files being commited - unset GIT_DIR to fix warnings that are printed to the console -- When building Endorphin also don't allow casts to ascii to detect bugs. -- Share compiled object files with the main endorphin binary to reduce build times +- When building Arora also don't allow casts to ascii to detect bugs. +- Share compiled object files with the main Arora binary to reduce build times -0.6.1 -When using Endorphin with Qt 4.5.1 after a little while pages will stop rendering. +## 0.6.1 +When using Arora with Qt 4.5.1 after a little while pages will stop rendering. This is because of a bug in 4.5.1 where renaming a file will cause the file descriptor to not be closed. QNetworkDiskCache is a simple cache and uses QTemporaryFile's for each new cached file and eventually the kernel wont let QNetworkDiskCache open a cache file because all of the previous files were not -closed. When running against Qt 4.5.1 Endorphin will now disable the disk cache. +closed. When running against Qt 4.5.1 Arora will now disable the disk cache. -0.6 -Interface +## 0.6 +### Interface - Save more of the main window state, window's fullscreen status, maximized status, menu bar visibility, normal size, and ensure that the menu bar and status bar are returned to their proper states if saving while the window is fullscreen. - Open a downloaded file instead of the containing directory - Add check for the Oxygen style and switch to Plastique unless the user specifies oxygen on the command line @@ -406,7 +360,7 @@ Interface - Allow to close the browser with more than one window opened, which was previously impossible (it might be useful when you restore session on startup). - Revert to the default tab selection behavior after closing a tab to match other browsers - Middle button role should be inverted when "Select tabs and windows as they created" is selected -- Add support for MidClick/Ctrl-Click/Shift-Ctrl-Click to all urls in Endorphin. Be it in menus, toolbars, links and javascript links. +- Add support for MidClick/Ctrl-Click/Shift-Ctrl-Click to all urls in Arora. Be it in menus, toolbars, links and javascript links. - Add support for XButton1 and XButton2 to be back/forward on the webview - Add the ability to turn pop-up blocking off - More control to the users! Added a possibility to control where target="_blank" links will be opened and default to a new tab. @@ -428,18 +382,20 @@ Interface - Several spelling errors in the interface and code. -Behind the scenes --Upgrade the SearchLineEdit class +### Behind the scenes +#### Upgrade the SearchLineEdit class - Rather then using a QMenu use QCompleter now that LineEdit can let you set the text margin and the completer popup takes up the whole width. - Re-code searchlineedit to just be a LineEdit subclass that has a search button and a clear button and nothing more. - Re-code the SearchButton to use the QCompleter, take up less width when there isn't one and use a QImage. - Update the toolbar search widget to use the completer rather then the old QMenu -- Significantly improve the startup time of Endorphin. + +#### Other improvementsv behind the scenes +- Significantly improve the startup time of Arora. - Add new access functions to the DownloadItem data. - Move the ClearButton and SearchButton class into its own file - Fix searchbar for special chars such as '+'. This seems a bug in Qt's addQueryItem. Workaround is to use addEncodedQueryItem. - delete the root bookmark node on exit to not generate errors in valgrind -- fix memory leaks in the autotest to confirm that Endorphin's xbel doesn't have any leaks +- fix memory leaks in the autotest to confirm that Arora's xbel doesn't have any leaks - Only clear the cookies if we have loaded them - In ModelMenu rather then all submenu's being QMenu let them be specified by the implementation and as the default use ModelMenu. - Add new menumodel manualtest @@ -454,7 +410,7 @@ Behind the scenes - Remove executable bit from html not found file - Be more vigilant about always using encoded urls when storing them in QString -Build system +#### Build system - Ignore generated files on Windows - Add a common way to install binaries and install the tools - Add commit hook commit-msg with support for aspell to check the spelling of the commit message @@ -465,8 +421,8 @@ Build system - Improve the build times of the manualtests by sharing object files and simplifying the includes -0.5 -Interface +## 0.5 +### Interface - Add new Network Access Monitor tool that shows each network request as it passes. - Added option for showing only one close Button - Don't add empty tabs if closed to recently closed tabs menu. @@ -494,7 +450,7 @@ Interface - Refined drag & drop handling in bookmarks toolbar. Fixed a bug, when page was assigned to inappropriate folder due to more than one folder having same name. - Implement simple context menu in bookmarks toolbar. Let user change bookmark URL in Add Bookmark dialog. -Behind the scenes +### Behind the scenes - Brand new more compliant, faster cookie jar - Brand new Language Manager which selects the correct language on start and lets you choose a different language via the Help menu. - Separate the cookie classes into separate files. @@ -503,23 +459,23 @@ Behind the scenes - The error web pages are now translatable. - Encode urls rather then use toString in various places to prevent loss of url data. - When using foreach try to use a const reference so a copy isn't made (slower) compared to the reference (faster). -- Add a new tool to convert bookmarks that are in the html format into the XBel format (not used in Endorphin yet). +- Add a new tool to convert bookmarks that are in the html format into the XBel format (not used in Arora yet). - Various code style and general keeping the code clean fixes - Add Implementation to get the current username on Windows for the single application -Build system +#### Build system - Add script to build OS X package using the new macdeployqt tool in Qt 4.5 - Building with QT_STRICT_ITERATORS to catch errors. - Enhance support for building with multiple WebKit trunk branches - Adds the ability to generate code documentation with doxygen -0.4 -Interface +## 0.4 +### Interface - New source viewer with search and syntax highlighting. - Make middle click on bookmarks menus open the user in a new tab. - Added the ability to change the language from the Help menu. - Double left click location bar selects all of the text. -- Incorporate Jens Explorer style into Endorphin on Window for a better look and feel on XP and Vista. http://labs.trolltech.com/blogs/2007/06/08/explorer-style-toolbars/ +- Incorporate Jens Explorer style into Arora on Window for a better look and feel on XP and Vista. http://labs.trolltech.com/blogs/2007/06/08/explorer-style-toolbars/ - Change the "icon" on the next/prev search for RTL desktops: next points to the right, and previous points to the right - Various RightToLeft fixes for for Mozilla's bug https://bugzilla.mozilla.org/show_bug.cgi?id=219070 - When the url scheme is https make the location bar background turn yellow. @@ -531,20 +487,21 @@ Interface - When dropping text on the webpage load the url - When the location bar has focus don't change the text. -Behind the scenes +### Behind the scenes - Make a dedicated SingleApplication class - Tweak HistoryManager API to be easier to read. - Improvements to the code style to be more consistent - Move the binaries for autotests and manual tests into the .gitignore in that directory rather then all in one file at the top. - Update manualtest for the location bar now that the urllineedit class has become the new location bar class and add a new git hook to make sure manual tests build. -Build system +### Build system - Move locale build instructions to its own pri file in the locale directory - Correctly detect qt3's qmake on Debian - Enhance support for building with WebKit trunk -0.3 +## 0.3 +### Interface - With Qt 4.5 use movable tabs - With Qt 4.5 use disk cache - Created a new LineEdit that handles adding side widgets in a clean, simple and elegant way. @@ -566,23 +523,23 @@ Build system - Improve a number of the strings (feedback from MentalMaelstrom) - Tweak action accelerators (the same ones were being used) -Build system -- Allow building Endorphin with both Debug/Release of WebKit trunk +### Build system +- Allow building Arora with both Debug/Release of WebKit trunk - Only include the sha1 and change number in the version when using git. -- Create utils directory to contain non-Endorphin specific classes +- Create utils directory to contain non-Arora specific classes - Run desktop file through desktop-file-validate and correct the errors -Autotests +#### Autotests - Add QTRY_COMPARE and QTRY_VERIFY for the autotests to use. -- add AUTOTESTS define when running autotests to prevent accessing running endorphin's and sending url's to it -- Fix autotest failures (test related, not endorphin) +- add AUTOTESTS define when running autotests to prevent accessing running Arora's and sending url's to it +- Fix autotest failures (test related, not Arora) - Detect which version of qmake to use when building the autotests - Give a 1 second punishment if there is no autotest for the source file that was changed - Emit a warning of a file doesn't have a matching autotest - Update modeltest code to match Trolltech's svn -0.2 +## 0.2 - Many Bug fixes and improvements. - Add make install on unix - Improved tabs @@ -590,6 +547,6 @@ Autotests - New reset dialog - New about dialog - Add search banner - - Rename to Endorphin and a new application icon + - Rename to Arora and a new application icon - Project specific git hooks - Branch from the Qt demo browser with new autotests and manualtests diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..b69a9a8a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,59 @@ +## Changelog + +## 0.13.0 + +The first official Endorphin release. Contains many new features, a new engine, and bug fixes. +**Not released yet.** + +### Fixed issues +- endorphin-placesimport sometimes resulted in an "Invalid cross-device link" error. +- Trying to access any web page resulted in an "invalid certificate" error (WebKit version only) + +### Behind the scene +- Add alternative CMake build system: + This is not final yet, and currently only works on Linux. + When it is finished, it will replace qmake. + CMake currently reduces the size of endorphin-placesimport from about 2 MB to about 250 KB. + +### Other +- Remove ClickToFlash: + Flash will reach its end-of-life soon, and shouldn't be used at all, so this feature was removed. +- Remove usage of some deprecated QT features + +## 0.12.1 + +This release contained some small changes to 0.12.0. + +### Interface +- Add note about this being an inofficial fork +- Update included user agents +- Improve placeholder text of the searchbox on the front page + +### Fixed issues + Fix language fallback + +## 0.12.0 + +An update that contains all changes that were made to Arora after 0.11.0, and QT5 support. + +### Interface +- Show the number of downloads in the download manager dialog title + +### Fixed issues +- When the 'delete' button is pressed, the downloaded item count was not updated. +- Issue: 912: Autofill manager was always storing forms. +- Issue: 915: Fixed ssl certificate problem with sites like https://webmail.us.army.mil: + By default QSSLConfiguration was only accepting SSLv3 while we want to + accept all of them. +- Issue: 918: "Autofill webforms" in Preferences was always checked. +- Issue: 931: Fix for fullscreen on Mac +- Issue: 957: Workaround for a bug in QCompleter + +### Behind the scene +- Support persistent data storage (HTML5 localStorage) +- Update to QT5 & latest WebKit +- Update some internal pages to HTML5 +- Code cleanup + +### Other +- Remove OS2 support \ No newline at end of file From 009deedad73a14d315583854ed642e961bf20708 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 11 Sep 2020 19:28:17 +0200 Subject: [PATCH 13/64] Load new Tab page from GitHub repo --- src/htmls/htmls.qrc | 2 -- src/htmls/startpage.css | 73 ---------------------------------------- src/htmls/startpage.html | 43 ----------------------- src/tabwidget.cpp | 2 +- 4 files changed, 1 insertion(+), 119 deletions(-) delete mode 100644 src/htmls/startpage.css delete mode 100644 src/htmls/startpage.html diff --git a/src/htmls/htmls.qrc b/src/htmls/htmls.qrc index da555367..5243a9a8 100644 --- a/src/htmls/htmls.qrc +++ b/src/htmls/htmls.qrc @@ -2,7 +2,5 @@ dirlist.html notfound.html - startpage.html - startpage.css diff --git a/src/htmls/startpage.css b/src/htmls/startpage.css deleted file mode 100644 index f47eda2d..00000000 --- a/src/htmls/startpage.css +++ /dev/null @@ -1,73 +0,0 @@ -* { - margin: 0; - padding: 0; - font-family: "DejaVu Sans"; -} - -body { - background: linear-gradient(90deg, #ccc, #fff 50%); - margin-top: 100px; -} - -#header, #search, #footer { - width: 500px; - margin: 10px auto; -} - -#header, #search { - border-radius: 0.8em; - padding: 25px; -} - -#header { - background: linear-gradient(0deg, #228, #66a 90%,#668); - height: 20px; -} - -#header h1 { - display: inline; - font-size: 1.7em; - color: #fff; - font-weight: bold; -} - -#header img { - display: inline; - float: right; - height: 150px; - margin-top: -80px; -} - -#search { - background: linear-gradient(90deg, #cdf, #eff 50%, #cdf); - height: 50px; - color: #000; - text-align: center; - padding-top: 40px !important; -} - -#search fieldset { - border: 0; -} - -#search input[type=text] { - width: 65%; -} - -#search input[type=submit] { - width: 25%; -} - -#footer { - text-align: center; - color: #999; -} - -#footer a { - color: #555; - text-decoration: none; -} - -#footer a:hover { - text-decoration: underline; -} diff --git a/src/htmls/startpage.html b/src/htmls/startpage.html deleted file mode 100644 index 728c1399..00000000 --- a/src/htmls/startpage.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 97da1770..8da42bc3 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -812,7 +812,7 @@ QUrl TabWidget::guessUrlFromString(const QString &string) if (url.scheme() == QLatin1String("about") && url.path() == QLatin1String("home")) - url = QUrl(QLatin1String("qrc:/startpage.html")); + url = QUrl(QLatin1String("https://endorphinbrowser.github.io/newTab/0.13.0-preview1/")); // QUrl::isValid() is too much tolerant. // We actually want to check if the url conforms to the RFC, which QUrl::isValid() doesn't state. From e86a929009eed4d736760e08564ac7846c8df045 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 11 Sep 2020 20:51:19 +0200 Subject: [PATCH 14/64] Remove unsupported test --- manualtests/adblock/adblock.pro | 6 --- manualtests/adblock/adblockdialog/.gitignore | 1 - .../adblock/adblockdialog/adblockdialog.pro | 11 ----- .../adblockdialog/main_adblockdialog.cpp | 44 ------------------ manualtests/adblock/adblockmodel/.gitignore | 1 - .../adblock/adblockmodel/adblockmodel.pro | 11 ----- .../adblockmodel/main_adblockmodel.cpp | 46 ------------------- 7 files changed, 120 deletions(-) delete mode 100644 manualtests/adblock/adblock.pro delete mode 100644 manualtests/adblock/adblockdialog/.gitignore delete mode 100644 manualtests/adblock/adblockdialog/adblockdialog.pro delete mode 100644 manualtests/adblock/adblockdialog/main_adblockdialog.cpp delete mode 100644 manualtests/adblock/adblockmodel/.gitignore delete mode 100644 manualtests/adblock/adblockmodel/adblockmodel.pro delete mode 100644 manualtests/adblock/adblockmodel/main_adblockmodel.cpp diff --git a/manualtests/adblock/adblock.pro b/manualtests/adblock/adblock.pro deleted file mode 100644 index d0811c75..00000000 --- a/manualtests/adblock/adblock.pro +++ /dev/null @@ -1,6 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - adblockdialog \ - adblockmodel - -CONFIG += ordered diff --git a/manualtests/adblock/adblockdialog/.gitignore b/manualtests/adblock/adblockdialog/.gitignore deleted file mode 100644 index ad6f3475..00000000 --- a/manualtests/adblock/adblockdialog/.gitignore +++ /dev/null @@ -1 +0,0 @@ -adblockdialog diff --git a/manualtests/adblock/adblockdialog/adblockdialog.pro b/manualtests/adblock/adblockdialog/adblockdialog.pro deleted file mode 100644 index 415d82fc..00000000 --- a/manualtests/adblock/adblockdialog/adblockdialog.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../manualtests.pri) -include(../../../autotests/modeltest/modeltest.pri) - -# Input -SOURCES += main_adblockdialog.cpp -HEADERS += diff --git a/manualtests/adblock/adblockdialog/main_adblockdialog.cpp b/manualtests/adblock/adblockdialog/main_adblockdialog.cpp deleted file mode 100644 index 1aa9f834..00000000 --- a/manualtests/adblock/adblockdialog/main_adblockdialog.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "adblockdialog.h" -#include "modeltest.h" - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - - AdBlockDialog dialog; - new ModelTest(dialog.treeView->model()); - dialog.show(); - return app.exec(); -} - diff --git a/manualtests/adblock/adblockmodel/.gitignore b/manualtests/adblock/adblockmodel/.gitignore deleted file mode 100644 index c2bb9418..00000000 --- a/manualtests/adblock/adblockmodel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -adblockmodel diff --git a/manualtests/adblock/adblockmodel/adblockmodel.pro b/manualtests/adblock/adblockmodel/adblockmodel.pro deleted file mode 100644 index 453974d1..00000000 --- a/manualtests/adblock/adblockmodel/adblockmodel.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../manualtests.pri) -include(../../../autotests/modeltest/modeltest.pri) - -# Input -SOURCES += main_adblockmodel.cpp -HEADERS += diff --git a/manualtests/adblock/adblockmodel/main_adblockmodel.cpp b/manualtests/adblock/adblockmodel/main_adblockmodel.cpp deleted file mode 100644 index 6d6ef58a..00000000 --- a/manualtests/adblock/adblockmodel/main_adblockmodel.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "adblockmodel.h" -#include "modeltest.h" - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - - QTreeView view; - AdBlockModel *model = new AdBlockModel; - new ModelTest(model); - view.setModel(model); - view.show(); - return app.exec(); -} - From c62346260f262a99e88f5ff3b6947970e8008d60 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 12 Sep 2020 11:48:21 +0200 Subject: [PATCH 15/64] Add DevTools back --- src/CMakeLists.txt | 1 + src/browsermainwindow.cpp | 45 ++++++++++++-------------------- src/browsermainwindow.h | 5 ++-- src/devtoolswindow.cpp | 54 +++++++++++++++++++++++++++++++++++++++ src/devtoolswindow.h | 50 ++++++++++++++++++++++++++++++++++++ src/tabwidget.cpp | 1 + src/tabwidget.h | 1 + src/webview.cpp | 10 ++++---- src/webview.h | 1 + 9 files changed, 132 insertions(+), 36 deletions(-) create mode 100644 src/devtoolswindow.cpp create mode 100644 src/devtoolswindow.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4408ab0a..93da6834 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -58,6 +58,7 @@ set(Endorphin_SRCS browsermainwindow.cpp clearprivatedata.cpp clearbutton.cpp + devtoolswindow.cpp downloadmanager.cpp modelmenu.cpp modeltoolbar.cpp diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 784908a6..0087eff4 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -74,6 +74,7 @@ #include "bookmarkstoolbar.h" #include "browserapplication.h" #include "clearprivatedata.h" +#include "devtoolswindow.h" #include "downloadmanager.h" #include "history.h" #include "languagemanager.h" @@ -201,6 +202,7 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) m_bookmarksToolbar, SLOT(setVisible(bool))); connect(m_tabWidget, SIGNAL(lastTabClosed()), this, SLOT(lastTabClosed())); + connect(m_tabWidget, &TabWidget::devToolsRequested, this, &BrowserMainWindow::handleDevToolsRequested); updateWindowTitle(); loadDefaultState(); @@ -815,15 +817,6 @@ void BrowserMainWindow::setupMenu() this, SLOT(clearPrivateData())); m_toolsMenu->addAction(m_toolsClearPrivateDataAction); - m_toolsEnableInspectorAction = new QAction(m_toolsMenu); - connect(m_toolsEnableInspectorAction, SIGNAL(triggered(bool)), - this, SLOT(toggleInspector(bool))); - m_toolsEnableInspectorAction->setCheckable(true); - QSettings settings; - settings.beginGroup(QLatin1String("websettings")); - m_toolsEnableInspectorAction->setChecked(settings.value(QLatin1String("enableInspector"), false).toBool()); - m_toolsMenu->addAction(m_toolsEnableInspectorAction); - m_toolsSearchManagerAction = new QAction(m_toolsMenu); m_toolsSearchManagerAction->setMenuRole(QAction::NoRole); connect(m_toolsSearchManagerAction, SIGNAL(triggered()), @@ -978,7 +971,6 @@ void BrowserMainWindow::retranslate() m_toolsWebSearchAction->setShortcut(QKeySequence(tr("Ctrl+K", "Web Search"))); m_toolsClearPrivateDataAction->setText(tr("&Clear Private Data")); m_toolsClearPrivateDataAction->setShortcut(QKeySequence(tr("Ctrl+Shift+Delete", "Clear Private Data"))); - m_toolsEnableInspectorAction->setText(tr("Enable Web &Inspector")); m_toolsPreferencesAction->setText(tr("Options...")); m_toolsPreferencesAction->setShortcut(tr("Ctrl+,")); m_toolsSearchManagerAction->setText(tr("Configure Search Engines...")); @@ -1420,25 +1412,6 @@ void BrowserMainWindow::clearPrivateData() dialog.exec(); } -void BrowserMainWindow::toggleInspector(bool enable) -{ - /* - QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::DeveloperExtrasEnabled, enable); - if (enable) { - int result = QMessageBox::question(this, tr("Web Inspector"), - tr("The web inspector will only work correctly for pages that were loaded after enabling.\n" - "Do you want to reload all pages?"), - QMessageBox::Yes | QMessageBox::No); - if (result == QMessageBox::Yes) { - m_tabWidget->reloadAllTabs(); - } - } - */ - QSettings settings; - settings.beginGroup(QLatin1String("websettings")); - settings.setValue(QLatin1String("enableInspector"), enable); -} - void BrowserMainWindow::swapFocus() { if (currentTab()->hasFocus()) { @@ -1583,3 +1556,17 @@ void BrowserMainWindow::geometryChangeRequested(const QRect &geometry) setGeometry(geometry); } + + +DevToolsWindow *BrowserMainWindow::createDevToolsWindow() +{ + auto devWindow = new DevToolsWindow(this); + devWindow->show(); + return devWindow; +} + +void BrowserMainWindow::handleDevToolsRequested(QWebEnginePage *source) +{ + source->setDevToolsPage(createDevToolsWindow()->page()); + source->triggerAction(QWebEnginePage::InspectElement); +} \ No newline at end of file diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index 911f8050..a84f30ac 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -76,6 +76,7 @@ class QFrame; class HistoryMenu; class BookmarksMenuBarMenu; class UserAgentMenu; +class DevToolsWindow; /*! The MainWindow of the Browser Application. @@ -103,6 +104,7 @@ class BrowserMainWindow : public QMainWindow QAction *searchManagerAction() const { return m_toolsSearchManagerAction; } + void handleDevToolsRequested(QWebEnginePage *source); public slots: void goHome(); @@ -151,7 +153,6 @@ private slots: void webSearch(); void clearPrivateData(); - void toggleInspector(bool enable); void aboutApplication(); void downloadManager(); void selectLineEdit(); @@ -177,6 +178,7 @@ private slots: void setupMenu(); void setupToolBar(); void updateStopReloadActionText(bool loading); + DevToolsWindow *createDevToolsWindow(); private: QMenu *m_fileMenu; @@ -235,7 +237,6 @@ private slots: QMenu *m_toolsMenu; QAction *m_toolsWebSearchAction; QAction *m_toolsClearPrivateDataAction; - QAction *m_toolsEnableInspectorAction; QAction *m_toolsPreferencesAction; QAction *m_toolsSearchManagerAction; UserAgentMenu *m_toolsUserAgentMenu; diff --git a/src/devtoolswindow.cpp b/src/devtoolswindow.cpp new file mode 100644 index 00000000..9caf6c73 --- /dev/null +++ b/src/devtoolswindow.cpp @@ -0,0 +1,54 @@ +/* + * Copyright 2020 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#include "devtoolswindow.h" +#include +#include +#include +#include +#include +#include + +DevToolsWindow::DevToolsWindow(QWidget *parent, Qt::WindowFlags flags) + : QMainWindow(parent, flags) + , m_webView(new QWebEngineView()) +{ + setCentralWidget(m_webView); +} + +DevToolsWindow::~DevToolsWindow() +{ +} + +void DevToolsWindow::geometryChangeRequested(const QRect &geometry) +{ + setGeometry(geometry); +} + +QWebEnginePage *DevToolsWindow::page() +{ + return m_webView->page(); +} + +QSize DevToolsWindow::sizeHint() const +{ + QRect desktopRect = QApplication::desktop()->screenGeometry(); + QSize size = desktopRect.size() * 0.4; + return size; +} diff --git a/src/devtoolswindow.h b/src/devtoolswindow.h new file mode 100644 index 00000000..20499643 --- /dev/null +++ b/src/devtoolswindow.h @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#ifndef DEVTOOLSWINDOW_H +#define DEVTOOLSWINDOW_H + +#include +#include + +class QWebEnginePage; +/*! + The MainWindow of the Browser Application. + + Handles the tab widget and all the actions + */ +class DevToolsWindow : public QMainWindow +{ + Q_OBJECT + +public: + DevToolsWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = nullptr); + ~DevToolsWindow(); + QWebEnginePage *page(); + QSize sizeHint() const; + +private slots: + void geometryChangeRequested(const QRect &geometry); + +private: + QWebEngineView *m_webView; +}; + +#endif // DEVTOOLSWINDOW_H + diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 8da42bc3..39ce29c4 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -422,6 +422,7 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) this, SLOT(statusBarVisibilityChangeRequestedCheck(bool))); connect(webView->page(), SIGNAL(toolBarVisibilityChangeRequested(bool)), this, SLOT(toolBarVisibilityChangeRequestedCheck(bool))); + connect(webView, &WebView::devToolsRequested, this, &TabWidget::devToolsRequested); WebViewWithSearch *webViewWithSearch = new WebViewWithSearch(webView, this); addTab(webViewWithSearch, tr("Untitled")); diff --git a/src/tabwidget.h b/src/tabwidget.h index 2affa03f..210cc94d 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -108,6 +108,7 @@ class TabWidget : public QTabWidget void statusBarVisibilityChangeRequested(bool visible); void toolBarVisibilityChangeRequested(bool visible); void printRequested(QWebEnginePage *page); + void devToolsRequested(QWebEnginePage *source); public: enum OpenUrlIn { diff --git a/src/webview.cpp b/src/webview.cpp index f71c54ed..bdddb5c8 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -278,13 +278,13 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) if (menu->isEmpty()) { delete menu; menu = page()->createStandardContextMenu(); - } else { - /* - if (page()->settings()->testAttribute(QWebEngineSettings::DeveloperExtrasEnabled)) - menu->addAction(pageAction(QWebEnginePage::InspectElement)); - */ } + QAction *action = new QAction(menu); + action->setText("Inspect Element"); + connect(action, &QAction::triggered, [this]() { emit devToolsRequested(page()); }); + menu->addAction(action); + if (!menu->isEmpty()) { if (BrowserMainWindow::parentWindow(tabWidget())->menuBar()->isHidden()) { menu->addSeparator(); diff --git a/src/webview.h b/src/webview.h index 5d3b3e09..c834f3ec 100644 --- a/src/webview.h +++ b/src/webview.h @@ -102,6 +102,7 @@ class WebView : public QWebEngineView signals: void search(const QUrl &searchUrl, TabWidget::OpenUrlIn openIn); void notifyRanJavaScript(); + void devToolsRequested(QWebEnginePage *source); public slots: void zoomIn(); From c4adfe531987cdfada125f90688c0336ca61c078 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 12 Sep 2020 17:05:13 +0200 Subject: [PATCH 16/64] Fix some warnings --- src/browsermainwindow.cpp | 16 ++-- src/browsermainwindow.h | 1 + src/locationbar/locationbarsiteicon.cpp | 2 +- src/tabwidget.cpp | 38 ++------- src/tabwidget.h | 6 -- src/webpage.cpp | 103 +----------------------- src/webpage.h | 3 - src/webview.cpp | 2 - 8 files changed, 16 insertions(+), 155 deletions(-) diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 0087eff4..1361be54 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -192,14 +192,6 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) this, SLOT(geometryChangeRequested(const QRect &))); connect(m_tabWidget, SIGNAL(printRequested(QWebEnginePage *)), this, SLOT(printRequested(QWebEnginePage *))); - connect(m_tabWidget, SIGNAL(menuBarVisibilityChangeRequested(bool)), - menuBar(), SLOT(setVisible(bool))); - connect(m_tabWidget, SIGNAL(statusBarVisibilityChangeRequested(bool)), - statusBar(), SLOT(setVisible(bool))); - connect(m_tabWidget, SIGNAL(toolBarVisibilityChangeRequested(bool)), - m_navigationBar, SLOT(setVisible(bool))); - connect(m_tabWidget, SIGNAL(toolBarVisibilityChangeRequested(bool)), - m_bookmarksToolbar, SLOT(setVisible(bool))); connect(m_tabWidget, SIGNAL(lastTabClosed()), this, SLOT(lastTabClosed())); connect(m_tabWidget, &TabWidget::devToolsRequested, this, &BrowserMainWindow::handleDevToolsRequested); @@ -1569,4 +1561,10 @@ void BrowserMainWindow::handleDevToolsRequested(QWebEnginePage *source) { source->setDevToolsPage(createDevToolsWindow()->page()); source->triggerAction(QWebEnginePage::InspectElement); -} \ No newline at end of file +} + +void BrowserMainWindow::runScriptOnOpenViews(QString source) +{ + for (int i =0; i < tabWidget()->count(); ++i) + tabWidget()->webView(i)->page()->runJavaScript(source); +} diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index a84f30ac..e289262a 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -110,6 +110,7 @@ public slots: void goHome(); void privacyChanged(bool isPrivate); void zoomTextOnlyChanged(bool textOnly); + void runScriptOnOpenViews(QString source); protected: void closeEvent(QCloseEvent *event); diff --git a/src/locationbar/locationbarsiteicon.cpp b/src/locationbar/locationbarsiteicon.cpp index c23ec8c2..f09f5b1c 100644 --- a/src/locationbar/locationbarsiteicon.cpp +++ b/src/locationbar/locationbarsiteicon.cpp @@ -42,7 +42,7 @@ void LocationBarSiteIcon::setWebView(WebView *webView) m_webView = webView; connect(webView, SIGNAL(loadFinished(bool)), this, SLOT(webViewSiteIconChanged())); - connect(webView, SIGNAL(iconChanged()), + connect(webView, SIGNAL(iconChanged(QIcon)), this, SLOT(webViewSiteIconChanged())); } diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 39ce29c4..32fa8881 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -250,17 +250,13 @@ void TabWidget::currentChanged(int index) WebView *oldWebView = this->webView(m_locationBars->currentIndex()); if (oldWebView) { - disconnect(oldWebView, SIGNAL(statusBarMessage(const QString&)), - this, SIGNAL(showStatusBarMessage(const QString&))); - disconnect(oldWebView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)), + disconnect(oldWebView->page(), SIGNAL(linkHovered(const QString&)), this, SIGNAL(linkHovered(const QString&))); disconnect(oldWebView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); } - connect(webView, SIGNAL(statusBarMessage(const QString&)), - this, SIGNAL(showStatusBarMessage(const QString&))); - connect(webView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)), + connect(webView->page(), SIGNAL(linkHovered(const QString&)), this, SIGNAL(linkHovered(const QString&))); connect(webView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); @@ -402,7 +398,7 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) this, SLOT(webViewLoadProgress(int))); connect(webView, SIGNAL(loadFinished(bool)), this, SLOT(webViewLoadFinished(bool))); - connect(webView, SIGNAL(iconChanged()), + connect(webView, SIGNAL(iconChanged(QIcon)), this, SLOT(webViewIconChanged())); connect(webView, SIGNAL(titleChanged(const QString &)), this, SLOT(webViewTitleChanged(const QString &))); @@ -412,16 +408,10 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) this, SLOT(loadUrl(const QUrl&, TabWidget::OpenUrlIn))); connect(webView->page(), SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested())); - connect(webView->page(), SIGNAL(printRequested(QWebEnginePage *)), - this, SIGNAL(printRequested(QWebEnginePage *))); + connect(webView->page(), SIGNAL(printRequested(Q)), + this, SIGNAL(printRequested(webView->page()))); connect(webView->page(), SIGNAL(geometryChangeRequested(const QRect &)), this, SLOT(geometryChangeRequestedCheck(const QRect &))); - connect(webView->page(), SIGNAL(menuBarVisibilityChangeRequested(bool)), - this, SLOT(menuBarVisibilityChangeRequestedCheck(bool))); - connect(webView->page(), SIGNAL(statusBarVisibilityChangeRequested(bool)), - this, SLOT(statusBarVisibilityChangeRequestedCheck(bool))); - connect(webView->page(), SIGNAL(toolBarVisibilityChangeRequested(bool)), - this, SLOT(toolBarVisibilityChangeRequestedCheck(bool))); connect(webView, &WebView::devToolsRequested, this, &TabWidget::devToolsRequested); WebViewWithSearch *webViewWithSearch = new WebViewWithSearch(webView, this); @@ -447,24 +437,6 @@ void TabWidget::geometryChangeRequestedCheck(const QRect &geometry) emit geometryChangeRequested(geometry); } -void TabWidget::menuBarVisibilityChangeRequestedCheck(bool visible) -{ - if (count() == 1) - emit menuBarVisibilityChangeRequested(visible); -} - -void TabWidget::statusBarVisibilityChangeRequestedCheck(bool visible) -{ - if (count() == 1) - emit statusBarVisibilityChangeRequested(visible); -} - -void TabWidget::toolBarVisibilityChangeRequestedCheck(bool visible) -{ - if (count() == 1) - emit toolBarVisibilityChangeRequested(visible); -} - void TabWidget::reloadAllTabs() { for (int i = 0; i < count(); ++i) { diff --git a/src/tabwidget.h b/src/tabwidget.h index 210cc94d..59b66e72 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -104,9 +104,6 @@ class TabWidget : public QTabWidget void linkHovered(const QString &link); void loadProgress(int progress); void geometryChangeRequested(const QRect &geometry); - void menuBarVisibilityChangeRequested(bool visible); - void statusBarVisibilityChangeRequested(bool visible); - void toolBarVisibilityChangeRequested(bool visible); void printRequested(QWebEnginePage *page); void devToolsRequested(QWebEnginePage *source); @@ -184,9 +181,6 @@ private slots: void windowCloseRequested(); void moveTab(int fromIndex, int toIndex); void geometryChangeRequestedCheck(const QRect &geometry); - void menuBarVisibilityChangeRequestedCheck(bool visible); - void statusBarVisibilityChangeRequestedCheck(bool visible); - void toolBarVisibilityChangeRequestedCheck(bool visible); void historyCleared(); private: diff --git a/src/webpage.cpp b/src/webpage.cpp index 786f7f4e..a83b713e 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -38,6 +38,8 @@ #include #include +#include +#include QString WebPage::s_userAgent; @@ -45,8 +47,6 @@ WebPage::WebPage(QObject *parent) : QWebEnginePage(parent) , m_openTargetBlankLinksIn(TabWidget::NewWindow) { - connect(this, SIGNAL(unsupportedContent(QNetworkReply *)), - this, SLOT(handleUnsupportedContent(QNetworkReply *))); loadSettings(); } @@ -194,102 +194,3 @@ QWebEnginePage *WebPage::createWindow(QWebEnginePage::WebWindowType type) } return nullptr; } - -// The chromium guys have documented many examples of incompatibilities that -// different browsers have when they mime sniff. -// http://src.chromium.org/viewvc/chrome/trunk/src/net/base/mime_sniffer.cc -// -// All WebKit ports should share a common set of rules to sniff content. -// By having this here we are yet another browser that has different behavior :( -// But sadly QtWebKit does no sniffing at all so we are forced to do something. -static bool contentSniff(const QByteArray &data) -{ - if (data.contains("url(); - - if (replyUrl.scheme() == QLatin1String("abp")) - return; - - switch (reply->error()) { - case QNetworkReply::NoError: - if (reply->header(QNetworkRequest::ContentTypeHeader).isValid()) { - BrowserApplication::downloadManager()->handleUnsupportedContent(reply); - return; - } - break; - case QNetworkReply::ProtocolUnknownError: { - QSettings settings; - settings.beginGroup(QLatin1String("WebView")); - QStringList externalSchemes = settings.value(QLatin1String("externalSchemes")).toStringList(); - if (externalSchemes.contains(replyUrl.scheme())) { - QDesktopServices::openUrl(replyUrl); - return; - } - break; - } - default: - break; - } - - // Find the frame that has the unsupported content - if (replyUrl.isEmpty() || replyUrl != m_requestedUrl) - return; - - if (reply->header(QNetworkRequest::ContentTypeHeader).toString().isEmpty()) { - // do evil - QByteArray data = reply->readAll(); - if (contentSniff(data)) { - setHtml(QLatin1String(data), replyUrl); - return; - } - } - - // Generate translated not found error page with an image - QFile notFoundErrorFile(QLatin1String(":/notfound.html")); - if (!notFoundErrorFile.open(QIODevice::ReadOnly)) - return; - QString title = tr("Error loading page: %1").arg(QString::fromUtf8(replyUrl.toEncoded())); - QString html = QLatin1String(notFoundErrorFile.readAll()); - QPixmap pixmap = qApp->style()->standardIcon(QStyle::SP_MessageBoxWarning, nullptr, view()).pixmap(QSize(32, 32)); - QBuffer imageBuffer; - imageBuffer.open(QBuffer::ReadWrite); - if (pixmap.save(&imageBuffer, "PNG")) { - html.replace(QLatin1String("IMAGE_BINARY_DATA_HERE"), - QLatin1String(imageBuffer.buffer().toBase64())); - } - html = html.arg(title, - reply->errorString(), - tr("When connecting to: %1.").arg(QString::fromUtf8(replyUrl.toEncoded())), - tr("Check the address for errors such as ww.example.com instead of www.example.com"), - tr("If the address is correct, try checking the network connection."), - tr("If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network.")); - setHtml(html, replyUrl); - // Don't put error pages to the history. -// BrowserApplication::instance()->historyManager()->removeHistoryEntry(replyUrl, notFoundFrame->title()); -} - diff --git a/src/webpage.h b/src/webpage.h index 8bd2a0e6..b574929a 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -65,9 +65,6 @@ class WebPage : public QWebEnginePage bool acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame); QWebEnginePage *createWindow(QWebEnginePage::WebWindowType type); -protected slots: - void handleUnsupportedContent(QNetworkReply *reply); - protected: static QString s_userAgent; TabWidget::OpenUrlIn m_openTargetBlankLinksIn; diff --git a/src/webview.cpp b/src/webview.cpp index bdddb5c8..98e32b98 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -157,8 +157,6 @@ WebView::WebView(QWidget *parent) setPage(m_page); connect(page(), &WebPage::featurePermissionRequested, this, &WebView::onFeaturePermissionRequested); QPalette p; - connect(page(), SIGNAL(statusBarMessage(const QString&)), - SLOT(setStatusBarText(const QString&))); connect(this, SIGNAL(loadProgress(int)), this, SLOT(setProgress(int))); connect(this, SIGNAL(loadFinished(bool)), From 2002f8fd493b1f7c2147a1b3523042f79449c679 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 12 Sep 2020 17:29:03 +0200 Subject: [PATCH 17/64] Convert the logo to the latest Inkscape --- src/data/endorphin.svg | 666 ++++++++++++++++++++--------------------- 1 file changed, 328 insertions(+), 338 deletions(-) diff --git a/src/data/endorphin.svg b/src/data/endorphin.svg index 23af42cd..d981b474 100644 --- a/src/data/endorphin.svg +++ b/src/data/endorphin.svg @@ -1,5 +1,4 @@ - + inkscape:export-filename="/home/jbache/icon/endorphin-16.png" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + sodipodi:docname="endorphin.svg" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + sodipodi:version="0.32" + id="svg2383" + height="64px" + width="64px"> + style="stop-color:#c7cde6;stop-opacity:1;" /> + style="stop-color:#adbeff;stop-opacity:0;" /> + style="stop-color:#5e86c1;stop-opacity:1;" /> + style="stop-color:#103070;stop-opacity:1;" /> + style="stop-color:#dbdbdb;stop-opacity:1;" /> + style="stop-color:#cbcbcb;stop-opacity:0;" /> + id="stop3267" /> + id="stop3269" /> + style="stop-color:#ffffff;stop-opacity:1;" /> + style="stop-color:#c7d0d2;stop-opacity:1;" /> + style="stop-color:#eaffff;stop-opacity:1;" /> + style="stop-color:#016792;stop-opacity:1;" /> + inkscape:vp_z="64 : 32 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 32 : 1" + sodipodi:type="inkscape:persp3d" /> + fy="30.985296" + fx="20.594498" + cy="30.985296" + cx="20.594498" + id="radialGradient3215" + xlink:href="#linearGradient3207" + inkscape:collect="always" /> + r="7.9169221" + fy="30.030596" + fx="23.45262" + cy="30.030596" + cx="23.45262" + id="radialGradient3542" + xlink:href="#linearGradient3536" + inkscape:collect="always" /> + width="1.421433" + x="-0.21071652" + id="filter4316" + inkscape:collect="always"> + inkscape:collect="always" /> + width="1.3576974" + x="-0.17884872" + id="filter4384" + inkscape:collect="always"> + inkscape:collect="always" /> + id="filter4654" + inkscape:collect="always"> + inkscape:collect="always" /> + id="filter4788" + inkscape:collect="always"> - - - + inkscape:collect="always" /> - + id="radialGradient3350" + xlink:href="#linearGradient3207" + inkscape:collect="always" /> + - + - + id="linearGradient3380" + xlink:href="#linearGradient3536" + inkscape:collect="always" /> + id="radialGradient3384" + xlink:href="#linearGradient3265" + inkscape:collect="always" /> + - + - + + fx="17.947458" + cy="27.263075" + cx="17.947458" + gradientTransform="matrix(1.5119908,0,0,1.9265069,-16.649017,-31.851372)" + gradientUnits="userSpaceOnUse" + id="radialGradient4003" + xlink:href="#linearGradient3265" + inkscape:collect="always" /> + width="1.30616" + x="-0.15308" + id="filter4028" + inkscape:collect="always"> + inkscape:collect="always" /> + inkscape:document-units="px" + showgrid="true" + inkscape:current-layer="layer1" + inkscape:cy="32" + inkscape:cx="26.669396" + inkscape:zoom="11.313708" + inkscape:pageshadow="2" + inkscape:pageopacity="0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> @@ -321,234 +311,234 @@ + id="layer1"> + id="g4582"> + id="path4584" + sodipodi:nodetypes="cccc" /> + id="path4586" + sodipodi:cx="31.884089" + sodipodi:cy="35.908577" + sodipodi:rx="18.834753" + sodipodi:ry="18.834753" + d="M 50.718842,35.908577 A 18.834753,18.834753 0 1 1 13.049335,35.908577 A 18.834753,18.834753 0 1 1 50.718842,35.908577 z" + transform="matrix(0.7572962,0,0,0.7572962,4.7171145,9.0365597)" /> + id="path4588" /> + id="path4590" + sodipodi:nodetypes="cccccccccccccccccccccccc" /> + id="path4592" + sodipodi:nodetypes="cccccccccccccccccc" /> + id="path4594" + sodipodi:cx="14.624254" + sodipodi:cy="35.78001" + sodipodi:rx="11.34585" + sodipodi:ry="7.1996326" + d="M 25.970104,35.78001 A 11.34585,7.1996326 0 1 1 3.2784042,35.78001 A 11.34585,7.1996326 0 1 1 25.970104,35.78001 z" + transform="matrix(1.1599619,-0.6165902,0.6730581,1.0626441,-12.182788,5.040139)" /> + id="path4596" + sodipodi:nodetypes="cccccccccccccccccc" /> + id="path4598" + sodipodi:nodetypes="cc" /> + id="path4600" /> + id="path4602" + sodipodi:nodetypes="cc" /> + id="path4604" + sodipodi:nodetypes="cc" /> + id="path4606" + sodipodi:nodetypes="cccc" /> + id="path4608" + transform="matrix(1.3532078,0,0,1.5930591,-11.463268,-11.435411)" + sodipodi:nodetypes="ccsc" /> + id="path4610" + transform="matrix(0.741485,0,0,1.5982971,5.0201391,-7.4791344)" + sodipodi:nodetypes="ccc" /> + id="path4612" + sodipodi:nodetypes="cc" /> + id="path4614" + sodipodi:nodetypes="cssscccssssc" /> + id="path4616" + sodipodi:nodetypes="csssssc" /> + id="path4618" + sodipodi:nodetypes="cccc" /> + d="M 9.5090016,22.973713 C 10.055548,22.636975 9.4256925,21.737991 9.7278156,20.95667 C 10.14478,19.611154 10.929561,19.126639 11.596916,18.368536 C 12.810535,19.295346 12.341395,20.874223 12.136569,22.914126" + style="fill:url(#radialGradient4003);fill-opacity:1;fill-rule:evenodd;stroke:#99a2b5;stroke-width:1.4074353;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + sodipodi:ry="18.834753" + sodipodi:rx="18.834753" + sodipodi:cy="35.908577" + sodipodi:cx="31.884089" + id="path2395" + style="fill:url(#radialGradient3350);fill-opacity:1;fill-rule:nonzero;stroke:#1d386c;stroke-width:1.23112547;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + style="fill:url(#linearGradient3999);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + sodipodi:ry="18.834753" + sodipodi:rx="18.834753" + sodipodi:cy="35.908577" + sodipodi:cx="31.884089" + id="path4706" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bbbdeb;stroke-width:0.86756015;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.36040608" + sodipodi:type="arc" /> + d="M 42.781052,32.752204 C 41.249236,34.07167 39.600081,35.694975 37.482839,35.623153 C 36.737277,37.146605 38.181394,38.414696 39.056233,39.430168 C 40.230532,41.080357 42.029602,42.658582 41.869227,44.934154 C 40.974195,46.337406 41.600003,48.349035 40.297679,49.554063 C 39.19752,50.29351 39.034475,53.188512 40.665815,51.56651 C 42.097709,50.463275 43.69408,49.611993 45.319439,48.900818 C 46.971663,47.56789 48.14913,45.702429 49.790122,44.354272 C 51.182276,42.831963 52.495564,41.226563 53.859434,39.679871 C 55.084628,37.840031 51.961805,37.433212 50.923092,37.022321 C 49.627534,34.474864 48.39208,36.954351 48.337387,34.732772 C 48.10893,33.094716 48.311403,32.470804 48.975692,31.216755 C 49.789434,30.133524 49.330425,28.769757 48.720013,27.730347 C 48.118355,26.219232 48.0168,24.560108 47.560138,23.003761 C 46.239001,22.347865 45.704063,24.831234 45.09834,25.736416 C 44.89478,27.076385 43.401025,27.80548 42.792718,26.313782 C 41.50471,24.852701 39.489999,24.570109 38.05769,23.30244 C 36.499642,22.100503 34.90866,20.936016 33.266347,19.878353 C 32.399028,19.116492 30.984489,16.73833 30.00574,18.121019 C 29.671168,20.04738 30.205812,22.179865 29.139259,23.925626 C 28.295773,26.029985 30.647833,26.968219 30.986678,29.173704 C 31.05546,31.198272 30.86667,33.269977 32.442632,32.687628 C 34.049136,32.398265 35.686229,32.368472 37.273519,31.93357 C 39.073612,31.598984 41.369533,31.216758 42.781052,32.752204 z" + style="fill:url(#radialGradient3995);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 49.93235,30.388552 C 47.82072,34.401319 46.727054,33.189132 48.495752,35.249835 C 50.735744,37.652922 53.495233,35.797464 56.033898,34.013806 C 55.983985,29.547881 54.870916,28.033047 53.928426,25.649299 C 52.454137,19.757964 53.853262,19.641135 53.645489,17.715364 C 53.165661,11.760338 52.179439,10.014491 46.731858,5.3869589 C 43.032791,3.9700351 36.892935,3.1349984 34.254145,3.2932536 C 30.858002,3.1370986 25.780525,10.550881 23.525133,13.763425 C 19.329393,18.146857 18.528921,18.387788 14.418995,22.941492 C 12.225576,26.138193 12.469147,25.933394 11.797219,30.412199 C 8.6838122,41.186314 8.5780129,38.979792 12.722053,40.426658 C 15.33566,38.786494 18.657883,33.882319 21.537997,32.735065 C 22.092799,28.099171 26.642405,28.042198 30.288151,25.343983 C 31.719919,25.141047 32.97845,25.359878 34.408125,28.293641 C 36.600412,35.711386 35.973593,45.014448 43.017092,36.371383 C 43.272437,33.096004 44.666975,37.899578 44.307987,34.541118 C 43.972712,31.087367 46.120083,27.966594 44.837503,24.771217 C 43.83804,22.683987 41.415554,22.464112 39.342216,18.69481" + style="fill:#001b52;fill-opacity:0.26943006;fill-rule:evenodd;stroke:none;stroke-width:0.89999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + sodipodi:ry="7.1996326" + sodipodi:rx="11.34585" + sodipodi:cy="35.78001" + sodipodi:cx="14.624254" + id="path4093" + style="opacity:0.21645023;fill:#d6d6d6;fill-opacity:0.5076142;fill-rule:nonzero;stroke:none;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:type="arc" /> + d="M 50.99577,29.364545 C 48.61105,33.377311 47.631034,32.601011 49.628473,34.661714 C 52.158156,37.064801 54.675605,33.574158 57.542584,31.7905 C 57.48622,27.324577 56.2292,25.809742 55.164821,23.425993 C 53.499867,17.534657 55.079935,17.417831 54.845291,15.492059 C 54.303409,9.5370327 53.189645,7.7911846 47.037543,3.1636536 C 42.860089,1.7467298 35.926187,0.9116931 32.946132,1.0699483 C 29.110778,0.91379344 23.376645,8.3275768 20.829572,11.54012 C 16.09121,15.923552 15.187217,16.164484 10.545767,20.718187 C 8.0686783,23.914888 8.3437519,23.71009 7.5849245,28.188895 C 4.0688721,38.963009 3.9493895,36.756486 8.6293676,38.203353 C 11.580981,36.563188 15.332857,31.659014 18.585447,30.51176 C 19.212,25.875866 24.349991,25.818892 28.467229,23.120678 C 30.084162,22.917742 32.656436,22.473661 34.271006,25.407424 C 37.745007,30.08513 35.187407,44.824075 43.141818,36.181009 C 43.430187,32.905631 42.958778,36.118214 42.553366,32.759754 C 42.17473,29.306003 44.699633,25.566511 43.251183,22.371135 C 42.122461,20.283904 41.033702,20.240807 38.692224,16.471505" + style="fill:url(#radialGradient3990);fill-opacity:1;fill-rule:evenodd;stroke:#737f98;stroke-width:1.45179427;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 8.0197082,28.956274 L 9.5750039,28.901155 L 9.5309088,28.269629 L 8.2261446,28.022015 L 8.0197082,28.956274 z" + style="fill:#727ba6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80435652;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 41.486308,12.416104 C 42.419555,14.697378 43.041722,15.73432 43.456499,17.186042 C 43.871277,18.637762 43.663887,21.541202 43.663887,21.541202 L 40.881129,18.485051 L 41.486308,12.416104 z" + style="fill:#879bc8;fill-opacity:0.34010153;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 43.980632,22.070999 C 46.365466,25.295505 49.810827,28.027927 51.015685,29.338751" + style="fill:none;fill-rule:evenodd;stroke:#737f98;stroke-width:1.1291734;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 10.93913,28.812444 C 10.82321,28.984802 10.707289,29.157158 10.59137,29.329515 C 11.109648,29.782834 11.981478,30.059378 12.455561,30.33592 C 13.860344,30.123634 13.689393,29.701892 14.065171,29.375273 C 13.359709,29.026173 13.124253,29.355199 12.344713,29.283581 C 12.03823,29.259118 11.245613,28.836908 10.93913,28.812444 z" + style="fill:#7c84ac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80435652;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4302" + d="M 39.321598,26.574697 C 41.52815,27.623432 36.702359,24.120051 36.685925,24.054314 C 36.596421,23.64407 36.467914,23.154928 36.364883,22.668486 C 36.269137,22.216441 36.195392,21.766728 36.195392,21.384828" + style="opacity:0.18297873;fill:none;fill-rule:evenodd;stroke:#fefefe;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4384)" /> + d="M 14.73884,23.8338 C 15.399556,23.495837 16.563629,22.562694 16.709032,21.759917" + style="fill:none;fill-rule:evenodd;stroke:#b0cada;stroke-width:1.61310494px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 34.256206,1.8984169 C 34.256206,1.8984169 44.198481,1.9071018 46.976443,4.1582488 C 47.881561,4.8917197 55.197633,7.8369716 54.055969,15.741188 C 53.272579,21.164926 53.771252,20.749337 54.027656,22.359429 C 54.290608,24.010643 56.42395,28.085268 56.42395,28.085268 L 56.838729,31.403486 L 52.51188,34.514316 C 52.51188,34.514316 51.060161,33.728114 51.965095,32.647818 C 52.6209,31.864928 54.869666,30.573744 54.661146,29.3296 C 54.452985,28.087588 50.485968,22.492111 50.513373,20.826666 C 50.728838,7.7321671 40.8118,-1.1871094 25.069279,7.5409861 C 25.069279,7.5409861 30.657169,0.46934798 34.256206,1.8984169 z" + style="fill:#a9b4ca;fill-opacity:0.41624367;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 34.337062,14.293925 C 34.337062,14.293925 41.699358,20.204501 42.736301,23.107941 C 43.773246,26.011382 42.42522,27.87788 41.906748,29.744377 C 41.388277,31.610875 42.321525,33.995845 42.42522,34.825398 C 42.528913,35.654953 41.803054,36.899283 40.869805,37.314062 C 40.179963,37.620658 40.517443,26.041296 40.76611,24.352273 C 40.950474,23.100021 34.648145,16.471505 34.337062,14.293925 z" + style="fill:#7891cb;fill-opacity:0.2538071;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 13.756746,23.36157 C 14.33984,23.1502 14.663525,22.585908 14.985851,22.095476 C 15.4307,21.250896 16.267965,20.946766 16.979949,20.470907 C 18.274728,21.052663 17.774212,22.043724 17.55569,23.324168" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#9fa7b9;stroke-width:1.15175676;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4764" + d="M 32.854577,16.883491 C 32.854577,16.883491 33.994965,21.606525 37.520854,25.285904 C 38.684401,26.500103 37.741825,33.373437 38.316349,34.920234 C 38.890873,36.46703 39.200232,36.99736 39.200232,36.99736 L 38.581514,37.483496 C 38.581514,37.483496 37.874407,38.190602 37.255689,33.461826 C 36.63697,28.733049 36.088334,25.46268 33.171519,23.606525 L 32.854577,16.883491 z" + style="fill:#ffffff;fill-opacity:0.44041448999999999;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4028)" /> + d="M 42.603184,14.502525 C 44.105786,16.358681 45.343222,17.949671 45.343222,20.336156 C 45.343222,22.722642 48.70198,28.114331 49.939417,28.998214 C 51.176853,29.882098 50.911688,29.882098 50.911688,29.882098 L 48.436815,33.240855 L 50.027805,29.174991 C 50.027805,29.174991 43.663844,24.40202 43.575455,22.634253 C 43.487067,20.866486 43.487067,18.038059 43.045125,16.181904 C 42.603184,14.325749 42.426407,14.23736 42.603184,14.502525 z" + style="fill:#ffffff;fill-opacity:0.44041449;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4788)" /> + d="M 43.806178,15.151521 C 45.319416,17.535271 43.397278,19.476624 44.069109,22.320326" + style="fill:none;fill-rule:evenodd;stroke:#737f98;stroke-width:1.29048383;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 6.0987963,34.478291 C 6.9237541,34.684531 6.9974108,34.669799 8.3968931,35.097009 C 8.4263568,35.921967 8.1022652,36.393372 7.9107572,36.864777 C 10.408268,35.943223 11.028966,33.449466 11.474603,33.488412 C 12.201734,34.157192 12.22176,34.693392 8.5736698,37.571884 C 7.6161295,37.32145 6.6585888,37.071017 5.7010485,36.820583 C 5.8041683,36.15767 5.7747055,36.15767 6.0987963,34.478291 z" + style="fill:#5e616f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> From 680b9648d98463ad65d60c554db40c964f6428e8 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 12 Sep 2020 17:29:17 +0200 Subject: [PATCH 18/64] Cleanup CMakeList.txt --- src/CMakeLists.txt | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 93da6834..e801bb58 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -136,35 +136,6 @@ set(Endorphin_RSCS ) QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) -set(Endorphin_MOCS - aboutdialog.h - acceptlanguagedialog.h - autosaver.h - browserapplication.h - browsermainwindow.h - clearprivatedata.h - clearbutton.h - downloadmanager.h - modelmenu.h - modeltoolbar.h - permissionbar.h - plaintexteditsearch.h - searchbar.h - searchbutton.h - searchlineedit.h - settings.h - sourcehighlighter.h - sourceviewer.h - tabbar.h - tabwidget.h - toolbarsearch.h - webactionmapper.h - webpage.h - webview.h - webviewsearch.h -) -QT5_WRAP_CPP(MOCS ${Endorphin_MOCS}) - # Translations qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ast.ts) qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ca.ts) From 87e9d2ca8fbe9ef2fd80f6419ed50f52f281ac88 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 13 Sep 2020 11:02:22 +0200 Subject: [PATCH 19/64] Port modeltest to QT5 --- autotests/modeltest/modeltest.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/autotests/modeltest/modeltest.cpp b/autotests/modeltest/modeltest.cpp index a107e661..a4d15b9e 100644 --- a/autotests/modeltest/modeltest.cpp +++ b/autotests/modeltest/modeltest.cpp @@ -22,6 +22,7 @@ ****************************************************************************/ #include +#include #include "modeltest.h" @@ -389,27 +390,27 @@ void ModelTest::data() // General Purpose roles that should return a QString QVariant variant = model->data(model->index(0, 0), Qt::ToolTipRole); if (variant.isValid()) { - Q_ASSERT(qVariantCanConvert(variant)); + Q_ASSERT(variant.canConvert(QMetaType::QString)); } variant = model->data(model->index(0, 0), Qt::StatusTipRole); if (variant.isValid()) { - Q_ASSERT(qVariantCanConvert(variant)); + Q_ASSERT(variant.canConvert(QMetaType::QString)); } variant = model->data(model->index(0, 0), Qt::WhatsThisRole); if (variant.isValid()) { - Q_ASSERT(qVariantCanConvert(variant)); + Q_ASSERT(variant.canConvert(QMetaType::QString)); } // General Purpose roles that should return a QSize variant = model->data(model->index(0, 0), Qt::SizeHintRole); if (variant.isValid()) { - Q_ASSERT(qVariantCanConvert(variant)); + Q_ASSERT(variant.canConvert(QMetaType::QSize)); } // General Purpose roles that should return a QFont QVariant fontVariant = model->data(model->index(0, 0), Qt::FontRole); if (fontVariant.isValid()) { - Q_ASSERT(qVariantCanConvert(fontVariant)); + Q_ASSERT(fontVariant.canConvert(QMetaType::QFont)); } // Check that the alignment is one we know about @@ -422,12 +423,12 @@ void ModelTest::data() // General Purpose roles that should return a QColor QVariant colorVariant = model->data(model->index(0, 0), Qt::BackgroundColorRole); if (colorVariant.isValid()) { - Q_ASSERT(qVariantCanConvert(colorVariant)); + Q_ASSERT(colorVariant.canConvert(QMetaType::QColor)); } colorVariant = model->data(model->index(0, 0), Qt::TextColorRole); if (colorVariant.isValid()) { - Q_ASSERT(qVariantCanConvert(colorVariant)); + Q_ASSERT(colorVariant.canConvert(QMetaType::QColor)); } // Check that the "check state" is one we know about. From 915ae0b21437657076fb6ccb5eae30764576bbef Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 16 Sep 2020 18:40:46 +0200 Subject: [PATCH 20/64] Using another IDE now --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2c0d7db7..9d28a012 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ ms_print.* doc/ .qmake.stash build +.vscode \ No newline at end of file From ec967dd1fc46954642f7bd1ae53318e0458d8bf3 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 16 Sep 2020 19:23:10 +0200 Subject: [PATCH 21/64] Port more tests --- autotests/CMakeLists.txt | 4 +- autotests/addbookmarkdialog/CMakeLists.txt | 1 + autotests/bookmarknode/CMakeLists.txt | 2 +- autotests/historyfiltermodel/CMakeLists.txt | 59 +++++++++++++ .../tst_historyfiltermodel.cpp | 50 +---------- .../tst_historyfiltermodel.h | 67 +++++++++++++++ autotests/historymanager/CMakeLists.txt | 49 +++++++++++ .../historymanager/tst_historymanager.cpp | 77 +---------------- autotests/historymanager/tst_historymanager.h | 82 +++++++++++++++++++ doxygen | 1 + src/history/history.cpp | 7 ++ src/history/history.h | 6 +- tools/placesimport/CMakeLists.txt | 6 ++ 13 files changed, 285 insertions(+), 126 deletions(-) create mode 100644 autotests/historyfiltermodel/CMakeLists.txt create mode 100644 autotests/historyfiltermodel/tst_historyfiltermodel.h create mode 100644 autotests/historymanager/CMakeLists.txt create mode 100644 autotests/historymanager/tst_historymanager.h create mode 160000 doxygen diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index e31e4602..a610c512 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -2,4 +2,6 @@ project(autotests) add_subdirectory(addbookmarkdialog) add_subdirectory(autosaver) add_subdirectory(bookmarknode) -add_subdirectory(downloadmanager) \ No newline at end of file +add_subdirectory(downloadmanager) +add_subdirectory(historyfiltermodel) +add_subdirectory(historymanager) \ No newline at end of file diff --git a/autotests/addbookmarkdialog/CMakeLists.txt b/autotests/addbookmarkdialog/CMakeLists.txt index fa8c55fe..5526a5eb 100644 --- a/autotests/addbookmarkdialog/CMakeLists.txt +++ b/autotests/addbookmarkdialog/CMakeLists.txt @@ -16,6 +16,7 @@ INCLUDE_DIRECTORIES( ) add_definitions(-DNO_BROWSERAPPLICATION) add_definitions(-DFOR_AUTOTEST) +add_definitions(-DNO_HISTORYDIALOG) set(SRCS tst_addbookmarkdialog.cpp ../../src/bookmarks/addbookmarkdialog.cpp diff --git a/autotests/bookmarknode/CMakeLists.txt b/autotests/bookmarknode/CMakeLists.txt index a875d163..6a0606c3 100644 --- a/autotests/bookmarknode/CMakeLists.txt +++ b/autotests/bookmarknode/CMakeLists.txt @@ -19,6 +19,6 @@ QT5_WRAP_CPP(MOCS tst_bookmarknode.h ) -add_executable(test-bookmarknode ${SRCS} ${UIS} ${MOCS}) +add_executable(test-bookmarknode ${SRCS} ${MOCS}) qt5_use_modules(test-bookmarknode Core) qt5_use_modules(test-bookmarknode Test) diff --git a/autotests/historyfiltermodel/CMakeLists.txt b/autotests/historyfiltermodel/CMakeLists.txt new file mode 100644 index 00000000..03341098 --- /dev/null +++ b/autotests/historyfiltermodel/CMakeLists.txt @@ -0,0 +1,59 @@ +project(test-historyfiltermodel) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_historyfiltermodel.cpp + ../../src/autosaver.cpp + ../../src/clearbutton.cpp + ../../src/searchbutton.cpp + ../../src/searchlineedit.cpp + ../../src/history/history.cpp + ../../src/history/historymanager.cpp + ../../src/utils/edittreeview.cpp + ../../src/utils/lineedit.cpp + ../../src/utils/treesortfilterproxymodel.cpp +) + +QT5_WRAP_CPP(MOCS + tst_historyfiltermodel.h + ../../src/autosaver.h + ../../src/clearbutton.h + ../../src/searchbutton.h + ../../src/searchlineedit.h + ../../src/history/history.h + ../../src/history/historymanager.h + ../../src/utils/edittreeview.h + ../../src/utils/lineedit.h + ../../src/utils/lineedit_p.h + ../../src/utils/treesortfilterproxymodel.h +) + +add_executable(test-historyfiltermodel ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-historyfiltermodel Core) +qt5_use_modules(test-historyfiltermodel Test) +qt5_use_modules(test-historyfiltermodel Widgets) +qt5_use_modules(test-historyfiltermodel Gui) +qt5_use_modules(test-historyfiltermodel WebEngine) +qt5_use_modules(test-historyfiltermodel WebEngineWidgets) diff --git a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp index 96186025..33147b0d 100644 --- a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp +++ b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp @@ -20,52 +20,8 @@ #include #include #include - -class tst_HistoryFilterModel : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void historyfiltermodel_data(); - void historyfiltermodel(); - - void historyContains_data(); - void historyContains(); - - void setSourceModel(); - - void historyLocation_data(); - void historyLocation(); - - void addRow_data(); - void addRow(); - - void removeRows_data(); - void removeRows(); -}; - -// Subclass that exposes the protected functions. -class SubHistoryFilterModel : public HistoryFilterModel -{ -public: - SubHistoryFilterModel(QObject *parent = 0) - : HistoryFilterModel(0, parent) - { - history = new HistoryManager(this); - historyModel = new HistoryModel(history, this); - setSourceModel(historyModel); - history->setDaysToExpire(-1); - } - - HistoryModel *historyModel; - HistoryManager *history; -}; +#include +#include "tst_historyfiltermodel.h" // This will be called before the first test function is executed. // It is only called once. @@ -331,5 +287,3 @@ void tst_HistoryFilterModel::removeRows() } QTEST_MAIN(tst_HistoryFilterModel) -#include "tst_historyfiltermodel.moc" - diff --git a/autotests/historyfiltermodel/tst_historyfiltermodel.h b/autotests/historyfiltermodel/tst_historyfiltermodel.h new file mode 100644 index 00000000..00915eb0 --- /dev/null +++ b/autotests/historyfiltermodel/tst_historyfiltermodel.h @@ -0,0 +1,67 @@ +/* + * Copyright 2020 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#include +#include + +class tst_HistoryFilterModel : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void historyfiltermodel_data(); + void historyfiltermodel(); + + void historyContains_data(); + void historyContains(); + + void setSourceModel(); + + void historyLocation_data(); + void historyLocation(); + + void addRow_data(); + void addRow(); + + void removeRows_data(); + void removeRows(); +}; + +// Subclass that exposes the protected functions. +class SubHistoryFilterModel : public HistoryFilterModel +{ +public: + SubHistoryFilterModel(QObject *parent = 0) + : HistoryFilterModel(0, parent) + { + history = new HistoryManager(this); + historyModel = new HistoryModel(history, this); + setSourceModel(historyModel); + history->setDaysToExpire(-1); + } + + HistoryModel *historyModel; + HistoryManager *history; +}; diff --git a/autotests/historymanager/CMakeLists.txt b/autotests/historymanager/CMakeLists.txt new file mode 100644 index 00000000..4093d73d --- /dev/null +++ b/autotests/historymanager/CMakeLists.txt @@ -0,0 +1,49 @@ +project(test-historymanager) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../modeltest + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_historymanager.cpp + ../modeltest/modeltest.cpp + ../../src/autosaver.cpp + ../../src/clearbutton.cpp + ../../src/searchbutton.cpp + ../../src/searchlineedit.cpp + ../../src/history/history.cpp + ../../src/history/historycompleter.cpp + ../../src/history/historymanager.cpp + ../../src/utils/edittreeview.cpp + ../../src/utils/lineedit.cpp + ../../src/utils/treesortfilterproxymodel.cpp +) + +add_executable(test-historymanager ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-historymanager Core) +qt5_use_modules(test-historymanager Test) +qt5_use_modules(test-historymanager Widgets) +qt5_use_modules(test-historymanager Gui) +qt5_use_modules(test-historymanager WebEngine) +qt5_use_modules(test-historymanager WebEngineWidgets) diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index 8a6f3f1b..df8b980c 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -18,73 +18,15 @@ */ #include -#include "qtest_endorphin.h" #include -#include +#include "history.h" #include #include #include -class tst_HistoryManager : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void history_data(); - void history(); - void addHistoryEntry_data(); - void addHistoryEntry(); - void addHistoryEntry_private(); - void addHistoryEntry_url(); - void updateHistoryEntry_data(); - void updateHistoryEntry(); - void daysToExpire_data(); - void daysToExpire(); - void clear_data(); - void clear(); - void setHistory_data(); - void setHistory(); - void saveload_data(); - void saveload(); - - // TODO move to their own tests - void big(); - - void historyDialog_data(); - void historyDialog(); - -private: - QList bigHistory; -}; - -// Subclass that exposes the protected functions. -class SubHistory : public HistoryManager -{ -public: - SubHistory() : HistoryManager() - { - QWidget w; - setParent(&w); - if (QWebHistoryInterface::defaultInterface() == this) - QWebHistoryInterface::setDefaultInterface(0); - setParent(0); - } - - ~SubHistory() { - setDaysToExpire(30); - } - - void prependHistoryEntry(const HistoryEntry &item) - { HistoryManager::prependHistoryEntry(item); } -}; +#include "tst_historymanager.h" // This will be called before the first test function is executed. // It is only called once. @@ -209,17 +151,6 @@ void tst_HistoryManager::addHistoryEntry() QCOMPARE(history.history(), expected); } -void tst_HistoryManager::addHistoryEntry_private() -{ - SubHistory history; - history.setHistory(HistoryList()); - QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); - globalSettings->setAttribute(QWebEngineSettings::PrivateBrowsingEnabled, true); - history.prependHistoryEntry(HistoryEntry()); - globalSettings->setAttribute(QWebEngineSettings::PrivateBrowsingEnabled, false); - QVERIFY(history.history().isEmpty()); -} - void tst_HistoryManager::addHistoryEntry_url() { SubHistory history; @@ -428,8 +359,6 @@ void tst_HistoryManager::big() QCOMPARE(history.history().count(), bigHistory.count()); - HistoryMenu menu; - HistoryModel model(&history); ModelTest test(&model); QCOMPARE(model.rowCount(), bigHistory.count()); @@ -547,5 +476,3 @@ void tst_HistoryManager::historyDialog() } QTEST_MAIN(tst_HistoryManager) -#include "tst_historymanager.moc" - diff --git a/autotests/historymanager/tst_historymanager.h b/autotests/historymanager/tst_historymanager.h new file mode 100644 index 00000000..e03296ec --- /dev/null +++ b/autotests/historymanager/tst_historymanager.h @@ -0,0 +1,82 @@ +/* + * Copyright 2020 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#include + +#include +#include +#include + +#include + +class tst_HistoryManager : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void history_data(); + void history(); + void addHistoryEntry_data(); + void addHistoryEntry(); + void addHistoryEntry_url(); + void updateHistoryEntry_data(); + void updateHistoryEntry(); + void daysToExpire_data(); + void daysToExpire(); + void clear_data(); + void clear(); + void setHistory_data(); + void setHistory(); + void saveload_data(); + void saveload(); + + // TODO move to their own tests + void big(); + + void historyDialog_data(); + void historyDialog(); + +private: + QList bigHistory; +}; + +// Subclass that exposes the protected functions. +class SubHistory : public HistoryManager +{ +public: + SubHistory() : HistoryManager() + { + QWidget w; + setParent(&w); + setParent(0); + } + + ~SubHistory() { + setDaysToExpire(30); + } + + void prependHistoryEntry(const HistoryEntry &item) + { HistoryManager::prependHistoryEntry(item); } +}; diff --git a/doxygen b/doxygen new file mode 160000 index 00000000..eccc6459 --- /dev/null +++ b/doxygen @@ -0,0 +1 @@ +Subproject commit eccc6459a9d5e2a947a05b3489d4cee863579276 diff --git a/src/history/history.cpp b/src/history/history.cpp index b8621450..84781f27 100644 --- a/src/history/history.cpp +++ b/src/history/history.cpp @@ -413,11 +413,16 @@ void HistoryMenu::setInitialActions(QList actions) addAction(m_initialActions.at(i)); } +#endif + +#ifndef NO_HISTORYDIALOG HistoryDialog::HistoryDialog(QWidget *parent, HistoryManager *setHistory) : QDialog(parent) { HistoryManager *history = setHistory; +#ifndef NO_BROWSERAPPLICATION if (!history) history = BrowserApplication::historyManager(); +#endif setupUi(this); tree->setUniformRowHeights(true); tree->setSelectionBehavior(QAbstractItemView::SelectRows); @@ -465,8 +470,10 @@ void HistoryDialog::open() QModelIndex index = tree->currentIndex(); if (!index.parent().isValid()) return; +#ifndef NO_BROWSERAPPLICATION BrowserApplication::instance()->setEventMouseButtons(qApp->mouseButtons()); BrowserApplication::instance()->setEventKeyboardModifiers(qApp->keyboardModifiers()); +#endif emit openUrl(index.data(HistoryModel::UrlRole).toUrl(), index.data(HistoryModel::TitleRole).toString()); } diff --git a/src/history/history.h b/src/history/history.h index 79e6a7dd..0bc4fb51 100644 --- a/src/history/history.h +++ b/src/history/history.h @@ -273,7 +273,7 @@ private slots: }; -#ifndef NO_BROWSERAPPLICATION +#ifndef NO_HISTORYDIALOG #include "ui_history.h" class HistoryDialog : public QDialog, public Ui_HistoryDialog @@ -284,7 +284,11 @@ class HistoryDialog : public QDialog, public Ui_HistoryDialog void openUrl(const QUrl &url, const QString &title); public: +#ifndef NO_BROWSERAPPLICATION HistoryDialog(QWidget *parent = nullptr, HistoryManager *history = nullptr); +#else + HistoryDialog(QWidget *parent, HistoryManager *history); +#endif private slots: void customContextMenuRequested(const QPoint &pos); diff --git a/tools/placesimport/CMakeLists.txt b/tools/placesimport/CMakeLists.txt index f2bf168c..50ddc8e7 100644 --- a/tools/placesimport/CMakeLists.txt +++ b/tools/placesimport/CMakeLists.txt @@ -9,10 +9,16 @@ add_definitions(-DNO_BROWSERAPPLICATION) set(placesimport_SRCS main_placesimport.cpp ../../src/autosaver.cpp + ../../src/clearbutton.cpp + ../../src/searchbutton.cpp ../../src/modelmenu.cpp + ../../src/searchlineedit.cpp ../../src/history/history.cpp ../../src/history/historymanager.cpp + ../../src/utils/edittreeview.cpp + ../../src/utils/lineedit.cpp ../../src/utils/singleapplication.cpp + ../../src/utils/treesortfilterproxymodel.cpp ) add_executable(endorphin-placesimport ${placesimport_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS}) From e4f83df212f0491213fce5e56cd5a0eac673ef48 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 16 Sep 2020 19:30:40 +0200 Subject: [PATCH 22/64] Fix license --- src/tabwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 32fa8881..fe682814 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -7,7 +7,7 @@ * (at your option) any later version. * * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the iQ_WS_X11mplied warranty of + * 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. * From 1cc3944e840c90401caffdb4fe40e4528310093b Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 17 Sep 2020 17:46:01 +0200 Subject: [PATCH 23/64] Port opensearch to QJSEngine to prepare for QT6 --- src/CMakeLists.txt | 4 ++-- src/opensearch/opensearchengine.cpp | 11 ++++++----- src/opensearch/opensearchengine.h | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e801bb58..686d3b4b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,7 +26,7 @@ find_package(Qt5WebEngineWidgets REQUIRED) find_package(Qt5PrintSupport REQUIRED) find_package(Qt5UiTools) find_package(Qt5LinguistTools REQUIRED) -find_package(Qt5Script REQUIRED) +find_package(Qt5Qml REQUIRED) if(NOT Qt5UiTools_FOUND) add_definitions(-DQT_NO_UITOOLS) @@ -179,8 +179,8 @@ qt5_use_modules(endorphin WebEngine) qt5_use_modules(endorphin Network) qt5_use_modules(endorphin WebEngineWidgets) qt5_use_modules(endorphin PrintSupport) +qt5_use_modules(endorphin Qml) if(Qt5UiTools_FOUND) qt5_use_modules(endorphin UiTools) endif() -qt5_use_modules(endorphin Script) diff --git a/src/opensearch/opensearchengine.cpp b/src/opensearch/opensearchengine.cpp index f6a14521..2fac279e 100644 --- a/src/opensearch/opensearchengine.cpp +++ b/src/opensearch/opensearchengine.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include /*! @@ -543,19 +543,20 @@ void OpenSearchEngine::suggestionsObtained() return; if (!m_scriptEngine) - m_scriptEngine = new QScriptEngine(); + m_scriptEngine = new QJSEngine(); // Evaluate the JSON response using QtScript. - if (!m_scriptEngine->canEvaluate(response)) + if (m_scriptEngine->evaluate(response).isError()) return; - QScriptValue responseParts = m_scriptEngine->evaluate(response); + QJSValue responseParts = m_scriptEngine->evaluate(response); if (!responseParts.property(1).isArray()) return; QStringList suggestionsList; - qScriptValueToSequence(responseParts.property(1), suggestionsList); + + suggestionsList = responseParts.property(1).toVariant().toStringList(); emit suggestions(suggestionsList); } diff --git a/src/opensearch/opensearchengine.h b/src/opensearch/opensearchengine.h index 864ac902..2211ba05 100644 --- a/src/opensearch/opensearchengine.h +++ b/src/opensearch/opensearchengine.h @@ -28,7 +28,7 @@ #include class QNetworkReply; -class QScriptEngine; +class QJSEngine; class OpenSearchEngineDelegate; class OpenSearchEngine : public QObject @@ -135,7 +135,7 @@ private slots: QNetworkAccessManager *m_networkAccessManager; QNetworkReply *m_suggestionsReply; - QScriptEngine *m_scriptEngine; + QJSEngine *m_scriptEngine; OpenSearchEngineDelegate *m_delegate; }; From d50185cf52848416ec713d92754594b44d45512e Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 18 Sep 2020 15:18:20 +0200 Subject: [PATCH 24/64] Port all autotests to cmake Some tests did already support cmake, this adds the ones that were missing. Not all tests pass, but they now compile. --- autotests/CMakeLists.txt | 14 +- autotests/modeltoolbar/CMakeLists.txt | 37 +++++ autotests/modeltoolbar/tst_modeltoolbar.cpp | 6 - autotests/opensearchengine/CMakeLists.txt | 41 +++++ autotests/opensearchmanager/CMakeLists.txt | 45 ++++++ .../tst_opensearchmanager.cpp | 4 +- autotests/opensearchreader/CMakeLists.txt | 45 ++++++ autotests/opensearchwriter/CMakeLists.txt | 45 ++++++ autotests/searchlineedit/CMakeLists.txt | 39 +++++ autotests/tabbar/CMakeLists.txt | 137 ++++++++++++++++ autotests/tabwidget/CMakeLists.txt | 137 ++++++++++++++++ autotests/tabwidget/tst_tabwidget.cpp | 12 +- autotests/utils/CMakeLists.txt | 4 + autotests/utils/editlistview/CMakeLists.txt | 35 +++++ autotests/utils/edittreeview/CMakeLists.txt | 35 +++++ autotests/utils/lineedit/CMakeLists.txt | 35 +++++ .../networkaccessmanagerproxy/.gitignore | 1 - .../networkaccessmanagerproxy.pro | 12 -- .../tst_networkaccessmanagerproxy.cpp | 147 ------------------ autotests/utils/webpageproxy/.gitignore | 1 - .../utils/webpageproxy/tst_webpageproxy.cpp | 103 ------------ autotests/utils/webpageproxy/webpageproxy.pro | 12 -- autotests/webactionmapper/CMakeLists.txt | 137 ++++++++++++++++ .../webactionmapper/tst_webactionmapper.cpp | 20 +-- autotests/webpage/CMakeLists.txt | 137 ++++++++++++++++ autotests/webpage/tst_webpage.cpp | 100 ++++++------ autotests/xbel/CMakeLists.txt | 31 ++++ 27 files changed, 1024 insertions(+), 348 deletions(-) create mode 100644 autotests/modeltoolbar/CMakeLists.txt create mode 100644 autotests/opensearchengine/CMakeLists.txt create mode 100644 autotests/opensearchmanager/CMakeLists.txt create mode 100644 autotests/opensearchreader/CMakeLists.txt create mode 100644 autotests/opensearchwriter/CMakeLists.txt create mode 100644 autotests/searchlineedit/CMakeLists.txt create mode 100644 autotests/tabbar/CMakeLists.txt create mode 100644 autotests/tabwidget/CMakeLists.txt create mode 100644 autotests/utils/CMakeLists.txt create mode 100644 autotests/utils/editlistview/CMakeLists.txt create mode 100644 autotests/utils/edittreeview/CMakeLists.txt create mode 100644 autotests/utils/lineedit/CMakeLists.txt delete mode 100644 autotests/utils/networkaccessmanagerproxy/.gitignore delete mode 100644 autotests/utils/networkaccessmanagerproxy/networkaccessmanagerproxy.pro delete mode 100644 autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp delete mode 100644 autotests/utils/webpageproxy/.gitignore delete mode 100644 autotests/utils/webpageproxy/tst_webpageproxy.cpp delete mode 100644 autotests/utils/webpageproxy/webpageproxy.pro create mode 100644 autotests/webactionmapper/CMakeLists.txt create mode 100644 autotests/webpage/CMakeLists.txt create mode 100644 autotests/xbel/CMakeLists.txt diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index a610c512..1b95b75c 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -4,4 +4,16 @@ add_subdirectory(autosaver) add_subdirectory(bookmarknode) add_subdirectory(downloadmanager) add_subdirectory(historyfiltermodel) -add_subdirectory(historymanager) \ No newline at end of file +add_subdirectory(historymanager) +add_subdirectory(modeltoolbar) +add_subdirectory(opensearchengine) +add_subdirectory(opensearchmanager) +add_subdirectory(opensearchreader) +add_subdirectory(opensearchwriter) +add_subdirectory(searchlineedit) +add_subdirectory(tabbar) +add_subdirectory(tabwidget) +add_subdirectory(utils) +add_subdirectory(webactionmapper) +add_subdirectory(webpage) +add_subdirectory(xbel) \ No newline at end of file diff --git a/autotests/modeltoolbar/CMakeLists.txt b/autotests/modeltoolbar/CMakeLists.txt new file mode 100644 index 00000000..ba18929d --- /dev/null +++ b/autotests/modeltoolbar/CMakeLists.txt @@ -0,0 +1,37 @@ +project(test-modeltoolbar) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_modeltoolbar.cpp + ../../src/modelmenu.cpp + ../../src/modeltoolbar.cpp + ../../src/utils/singleapplication.cpp +) + +add_executable(test-modeltoolbar ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-modeltoolbar Core) +qt5_use_modules(test-modeltoolbar Test) +qt5_use_modules(test-modeltoolbar Widgets) +qt5_use_modules(test-modeltoolbar Gui) +qt5_use_modules(test-modeltoolbar WebEngine) +qt5_use_modules(test-modeltoolbar WebEngineWidgets) diff --git a/autotests/modeltoolbar/tst_modeltoolbar.cpp b/autotests/modeltoolbar/tst_modeltoolbar.cpp index 4682090c..ff0eab8d 100644 --- a/autotests/modeltoolbar/tst_modeltoolbar.cpp +++ b/autotests/modeltoolbar/tst_modeltoolbar.cpp @@ -21,7 +21,6 @@ #include #include "qtry.h" -#include "browserapplication.h" #include "modelmenu.h" #include @@ -274,11 +273,6 @@ void tst_ModelToolBar::activated() if (spy.count()) QCOMPARE(spy.at(0).at(0).value(), bar.index(action)); - if (action) { - QCOMPARE(BrowserApplication::instance()->eventMouseButtons(), Qt::MidButton); - QCOMPARE(BrowserApplication::instance()->eventKeyboardModifiers(), Qt::ShiftModifier); - } - spy.clear(); point.setX(point.x() + 50); diff --git a/autotests/opensearchengine/CMakeLists.txt b/autotests/opensearchengine/CMakeLists.txt new file mode 100644 index 00000000..dd58381d --- /dev/null +++ b/autotests/opensearchengine/CMakeLists.txt @@ -0,0 +1,41 @@ +project(test-opensearchengine) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Qml REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_opensearchengine.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp +) + +add_executable(test-opensearchengine ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-opensearchengine Core) +qt5_use_modules(test-opensearchengine Test) +qt5_use_modules(test-opensearchengine Widgets) +qt5_use_modules(test-opensearchengine Gui) +qt5_use_modules(test-opensearchengine Qml) +qt5_use_modules(test-opensearchengine WebEngine) +qt5_use_modules(test-opensearchengine WebEngineWidgets) diff --git a/autotests/opensearchmanager/CMakeLists.txt b/autotests/opensearchmanager/CMakeLists.txt new file mode 100644 index 00000000..503f16eb --- /dev/null +++ b/autotests/opensearchmanager/CMakeLists.txt @@ -0,0 +1,45 @@ +project(test-opensearchmanager) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Qml REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_opensearchmanager.cpp + ../../src/autosaver.cpp + ../../src/opensearch/opensearchmanager.cpp + ../../src/opensearch/opensearchreader.cpp + ../../src/opensearch/opensearchwriter.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp +) + +add_executable(test-opensearchmanager ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-opensearchmanager Core) +qt5_use_modules(test-opensearchmanager Test) +qt5_use_modules(test-opensearchmanager Widgets) +qt5_use_modules(test-opensearchmanager Gui) +qt5_use_modules(test-opensearchmanager Qml) +qt5_use_modules(test-opensearchmanager WebEngine) +qt5_use_modules(test-opensearchmanager WebEngineWidgets) diff --git a/autotests/opensearchmanager/tst_opensearchmanager.cpp b/autotests/opensearchmanager/tst_opensearchmanager.cpp index 6f060533..98a65912 100644 --- a/autotests/opensearchmanager/tst_opensearchmanager.cpp +++ b/autotests/opensearchmanager/tst_opensearchmanager.cpp @@ -19,8 +19,6 @@ #include -#include "qtest_endorphin.h" - #include "opensearchengine.h" #include "opensearchmanager.h" @@ -212,7 +210,7 @@ void tst_OpenSearchManager::restoreDefaults() QCOMPARE(manager.enginesCount(), 1); manager.restoreDefaults(); - QCOMPARE(manager.enginesCount(), manager.defaultCount()); + QCOMPARE(manager.enginesCount(), 1); foreach (const QString &name, manager.allEnginesNames()) manager.removeEngine(name); diff --git a/autotests/opensearchreader/CMakeLists.txt b/autotests/opensearchreader/CMakeLists.txt new file mode 100644 index 00000000..b8d862d4 --- /dev/null +++ b/autotests/opensearchreader/CMakeLists.txt @@ -0,0 +1,45 @@ +project(test-opensearchreader) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Qml REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_opensearchreader.cpp + ../../src/autosaver.cpp + ../../src/opensearch/opensearchmanager.cpp + ../../src/opensearch/opensearchreader.cpp + ../../src/opensearch/opensearchwriter.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp +) + +add_executable(test-opensearchreader ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-opensearchreader Core) +qt5_use_modules(test-opensearchreader Test) +qt5_use_modules(test-opensearchreader Widgets) +qt5_use_modules(test-opensearchreader Gui) +qt5_use_modules(test-opensearchreader Qml) +qt5_use_modules(test-opensearchreader WebEngine) +qt5_use_modules(test-opensearchreader WebEngineWidgets) diff --git a/autotests/opensearchwriter/CMakeLists.txt b/autotests/opensearchwriter/CMakeLists.txt new file mode 100644 index 00000000..36349967 --- /dev/null +++ b/autotests/opensearchwriter/CMakeLists.txt @@ -0,0 +1,45 @@ +project(test-opensearchwriter) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Qml REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_opensearchwriter.cpp + ../../src/autosaver.cpp + ../../src/opensearch/opensearchmanager.cpp + ../../src/opensearch/opensearchreader.cpp + ../../src/opensearch/opensearchwriter.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp +) + +add_executable(test-opensearchwriter ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-opensearchwriter Core) +qt5_use_modules(test-opensearchwriter Test) +qt5_use_modules(test-opensearchwriter Widgets) +qt5_use_modules(test-opensearchwriter Gui) +qt5_use_modules(test-opensearchwriter Qml) +qt5_use_modules(test-opensearchwriter WebEngine) +qt5_use_modules(test-opensearchwriter WebEngineWidgets) diff --git a/autotests/searchlineedit/CMakeLists.txt b/autotests/searchlineedit/CMakeLists.txt new file mode 100644 index 00000000..67dba48c --- /dev/null +++ b/autotests/searchlineedit/CMakeLists.txt @@ -0,0 +1,39 @@ +project(test-searchlineedit) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_searchlineedit.cpp + ../../src/clearbutton.cpp + ../../src/searchbutton.cpp + ../../src/searchlineedit.cpp + ../../src/utils/lineedit.cpp +) + +add_executable(test-searchlineedit ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-searchlineedit Core) +qt5_use_modules(test-searchlineedit Test) +qt5_use_modules(test-searchlineedit Widgets) +qt5_use_modules(test-searchlineedit Gui) +qt5_use_modules(test-searchlineedit WebEngine) +qt5_use_modules(test-searchlineedit WebEngineWidgets) diff --git a/autotests/tabbar/CMakeLists.txt b/autotests/tabbar/CMakeLists.txt new file mode 100644 index 00000000..a0cd01ee --- /dev/null +++ b/autotests/tabbar/CMakeLists.txt @@ -0,0 +1,137 @@ +project(test-tabbar) + +find_package(Qt5Widgets REQUIRED) +find_package(Qt5Core REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5Network REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5PrintSupport REQUIRED) +find_package(Qt5UiTools) +find_package(Qt5LinguistTools REQUIRED) +find_package(Qt5Qml REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ../ + ../../src + ../../src/utils +) +INCLUDE_DIRECTORIES( + .. + ../../src + ../../src/utils + ../../src/bookmarks + ../../src/bookmarks/xbel + ../../src/data + ../../src/history + ../../src/htmls + ../../src/locationbar + ../../src/opensearch + ../../src/useragent + ../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +set(SRCS + tst_tabbar.cpp +) + +# From main browser + +set(Endorphin_SRCS + ../../src/aboutdialog.cpp + ../../src/acceptlanguagedialog.cpp + ../../src/autosaver.cpp + ../../src/browserapplication.cpp + ../../src/browsermainwindow.cpp + ../../src/clearprivatedata.cpp + ../../src/clearbutton.cpp + ../../src/devtoolswindow.cpp + ../../src/downloadmanager.cpp + ../../src/modelmenu.cpp + ../../src/modeltoolbar.cpp + ../../src/permissionbar.cpp + ../../src/plaintexteditsearch.cpp + ../../src/searchbar.cpp + ../../src/searchbutton.cpp + ../../src/searchlineedit.cpp + ../../src/settings.cpp + ../../src/sourcehighlighter.cpp + ../../src/sourceviewer.cpp + ../../src/tabbar.cpp + ../../src/tabwidget.cpp + ../../src/toolbarsearch.cpp + ../../src/webactionmapper.cpp + ../../src/webpage.cpp + ../../src/webview.cpp + ../../src/webviewsearch.cpp + ../../src/bookmarks/addbookmarkdialog.cpp + ../../src/bookmarks/bookmarksdialog.cpp + ../../src/bookmarks/bookmarksmanager.cpp + ../../src/bookmarks/bookmarksmenu.cpp + ../../src/bookmarks/bookmarksmodel.cpp + ../../src/bookmarks/bookmarkstoolbar.cpp + ../../src/bookmarks/bookmarknode.cpp + ../../src/bookmarks/xbel/xbelreader.cpp + ../../src/bookmarks/xbel/xbelwriter.cpp + ../../src/history/history.cpp + ../../src/history/historycompleter.cpp + ../../src/history/historymanager.cpp + ../../src/locationbar/locationbar.cpp + ../../src/locationbar/locationbarsiteicon.cpp + ../../src/locationbar/privacyindicator.cpp + ../../src/opensearch/opensearchdialog.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp + ../../src/opensearch/opensearchengineaction.cpp + ../../src/opensearch/opensearchenginemodel.cpp + ../../src/opensearch/opensearchmanager.cpp + ../../src/opensearch/opensearchreader.cpp + ../../src/opensearch/opensearchwriter.cpp + ../../src/useragent/useragentmenu.cpp + ../../src/utils/explorerstyle.cpp + ../../src/utils/editlistview.cpp + ../../src/utils/edittableview.cpp + ../../src/utils/edittreeview.cpp + ../../src/utils/languagemanager.cpp + ../../src/utils/lineedit.cpp + ../../src/utils/singleapplication.cpp + ../../src/utils/squeezelabel.cpp + ../../src/utils/treesortfilterproxymodel.cpp +) + +set(Endorphin_UIS + ../../src/aboutdialog.ui + ../../src/acceptlanguagedialog.ui + ../../src/downloaditem.ui + ../../src/downloads.ui + ../../src/searchbanner.ui + ../../src/settings.ui + ../../src/bookmarks/addbookmarkdialog.ui + ../../src/bookmarks/bookmarksdialog.ui + ../../src/history/history.ui + ../../src/opensearch/opensearchdialog.ui +) +QT5_WRAP_UI(UIS ${Endorphin_UIS}) + +set(Endorphin_RSCS + ../../src/data/data.qrc + ../../src/data/graphics/graphics.qrc + ../../src/data/searchengines/searchengines.qrc + ../../src/htmls/htmls.qrc + ../../src/useragent/useragents.qrc +) +QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) + + +add_executable(test-tabbar ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +qt5_use_modules(test-tabbar Core) +qt5_use_modules(test-tabbar Test) +qt5_use_modules(test-tabbar Widgets) +qt5_use_modules(test-tabbar Gui) +qt5_use_modules(test-tabbar WebEngine) +qt5_use_modules(test-tabbar WebEngineWidgets) +qt5_use_modules(test-tabbar PrintSupport) +qt5_use_modules(test-tabbar Qml) +qt5_use_modules(test-tabbar UiTools) \ No newline at end of file diff --git a/autotests/tabwidget/CMakeLists.txt b/autotests/tabwidget/CMakeLists.txt new file mode 100644 index 00000000..9bf0b39b --- /dev/null +++ b/autotests/tabwidget/CMakeLists.txt @@ -0,0 +1,137 @@ +project(test-tabwidget) + +find_package(Qt5Widgets REQUIRED) +find_package(Qt5Core REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5Network REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5PrintSupport REQUIRED) +find_package(Qt5UiTools) +find_package(Qt5LinguistTools REQUIRED) +find_package(Qt5Qml REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ../ + ../../src + ../../src/utils +) +INCLUDE_DIRECTORIES( + .. + ../../src + ../../src/utils + ../../src/bookmarks + ../../src/bookmarks/xbel + ../../src/data + ../../src/history + ../../src/htmls + ../../src/locationbar + ../../src/opensearch + ../../src/useragent + ../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +set(SRCS + tst_tabwidget.cpp +) + +# From main browser + +set(Endorphin_SRCS + ../../src/aboutdialog.cpp + ../../src/acceptlanguagedialog.cpp + ../../src/autosaver.cpp + ../../src/browserapplication.cpp + ../../src/browsermainwindow.cpp + ../../src/clearprivatedata.cpp + ../../src/clearbutton.cpp + ../../src/devtoolswindow.cpp + ../../src/downloadmanager.cpp + ../../src/modelmenu.cpp + ../../src/modeltoolbar.cpp + ../../src/permissionbar.cpp + ../../src/plaintexteditsearch.cpp + ../../src/searchbar.cpp + ../../src/searchbutton.cpp + ../../src/searchlineedit.cpp + ../../src/settings.cpp + ../../src/sourcehighlighter.cpp + ../../src/sourceviewer.cpp + ../../src/tabbar.cpp + ../../src/tabwidget.cpp + ../../src/toolbarsearch.cpp + ../../src/webactionmapper.cpp + ../../src/webpage.cpp + ../../src/webview.cpp + ../../src/webviewsearch.cpp + ../../src/bookmarks/addbookmarkdialog.cpp + ../../src/bookmarks/bookmarksdialog.cpp + ../../src/bookmarks/bookmarksmanager.cpp + ../../src/bookmarks/bookmarksmenu.cpp + ../../src/bookmarks/bookmarksmodel.cpp + ../../src/bookmarks/bookmarkstoolbar.cpp + ../../src/bookmarks/bookmarknode.cpp + ../../src/bookmarks/xbel/xbelreader.cpp + ../../src/bookmarks/xbel/xbelwriter.cpp + ../../src/history/history.cpp + ../../src/history/historycompleter.cpp + ../../src/history/historymanager.cpp + ../../src/locationbar/locationbar.cpp + ../../src/locationbar/locationbarsiteicon.cpp + ../../src/locationbar/privacyindicator.cpp + ../../src/opensearch/opensearchdialog.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp + ../../src/opensearch/opensearchengineaction.cpp + ../../src/opensearch/opensearchenginemodel.cpp + ../../src/opensearch/opensearchmanager.cpp + ../../src/opensearch/opensearchreader.cpp + ../../src/opensearch/opensearchwriter.cpp + ../../src/useragent/useragentmenu.cpp + ../../src/utils/explorerstyle.cpp + ../../src/utils/editlistview.cpp + ../../src/utils/edittableview.cpp + ../../src/utils/edittreeview.cpp + ../../src/utils/languagemanager.cpp + ../../src/utils/lineedit.cpp + ../../src/utils/singleapplication.cpp + ../../src/utils/squeezelabel.cpp + ../../src/utils/treesortfilterproxymodel.cpp +) + +set(Endorphin_UIS + ../../src/aboutdialog.ui + ../../src/acceptlanguagedialog.ui + ../../src/downloaditem.ui + ../../src/downloads.ui + ../../src/searchbanner.ui + ../../src/settings.ui + ../../src/bookmarks/addbookmarkdialog.ui + ../../src/bookmarks/bookmarksdialog.ui + ../../src/history/history.ui + ../../src/opensearch/opensearchdialog.ui +) +QT5_WRAP_UI(UIS ${Endorphin_UIS}) + +set(Endorphin_RSCS + ../../src/data/data.qrc + ../../src/data/graphics/graphics.qrc + ../../src/data/searchengines/searchengines.qrc + ../../src/htmls/htmls.qrc + ../../src/useragent/useragents.qrc +) +QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) + + +add_executable(test-tabwidget ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +qt5_use_modules(test-tabwidget Core) +qt5_use_modules(test-tabwidget Test) +qt5_use_modules(test-tabwidget Widgets) +qt5_use_modules(test-tabwidget Gui) +qt5_use_modules(test-tabwidget WebEngine) +qt5_use_modules(test-tabwidget WebEngineWidgets) +qt5_use_modules(test-tabwidget PrintSupport) +qt5_use_modules(test-tabwidget Qml) +qt5_use_modules(test-tabwidget UiTools) \ No newline at end of file diff --git a/autotests/tabwidget/tst_tabwidget.cpp b/autotests/tabwidget/tst_tabwidget.cpp index 2807a741..8e456d57 100644 --- a/autotests/tabwidget/tst_tabwidget.cpp +++ b/autotests/tabwidget/tst_tabwidget.cpp @@ -122,7 +122,7 @@ void tst_TabWidget::tabwidget_data() void tst_TabWidget::tabwidget() { SubTabWidget widget; - widget.addWebAction((QAction*)0, QWebPage::Back); + widget.addWebAction((QAction*)0, QWebEnginePage::Back); widget.closeTab(); QVERIFY(widget.closeTabAction()); widget.currentWebView(); @@ -138,17 +138,17 @@ void tst_TabWidget::tabwidget() QVERIFY(widget.currentLocationBar()); } -Q_DECLARE_METATYPE(QWebPage::WebAction) +Q_DECLARE_METATYPE(QWebEnginePage::WebAction) void tst_TabWidget::addWebAction_data() { - QTest::addColumn("webAction"); - QTest::newRow("back") << QWebPage::Back; + QTest::addColumn("webAction"); + QTest::newRow("back") << QWebEnginePage::Back; } -// public void addWebAction(QAction *action, QWebPage::WebAction webAction) +// public void addWebAction(QAction *action, QWebEnginePage::WebAction webAction) void tst_TabWidget::addWebAction() { - QFETCH(QWebPage::WebAction, webAction); + QFETCH(QWebEnginePage::WebAction, webAction); SubTabWidget widget; diff --git a/autotests/utils/CMakeLists.txt b/autotests/utils/CMakeLists.txt new file mode 100644 index 00000000..ac0e1ab4 --- /dev/null +++ b/autotests/utils/CMakeLists.txt @@ -0,0 +1,4 @@ +project(utils) +add_subdirectory(editlistview) +add_subdirectory(edittreeview) +add_subdirectory(lineedit) \ No newline at end of file diff --git a/autotests/utils/editlistview/CMakeLists.txt b/autotests/utils/editlistview/CMakeLists.txt new file mode 100644 index 00000000..301ec3f8 --- /dev/null +++ b/autotests/utils/editlistview/CMakeLists.txt @@ -0,0 +1,35 @@ +project(test-editlistview) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ../../ + ../../../src/ + ../../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_editlistview.cpp + ../../../src/utils/editlistview.cpp +) + +add_executable(test-editlistview ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-editlistview Core) +qt5_use_modules(test-editlistview Test) +qt5_use_modules(test-editlistview Widgets) +qt5_use_modules(test-editlistview Gui) +qt5_use_modules(test-editlistview WebEngine) +qt5_use_modules(test-editlistview WebEngineWidgets) diff --git a/autotests/utils/edittreeview/CMakeLists.txt b/autotests/utils/edittreeview/CMakeLists.txt new file mode 100644 index 00000000..5c4c8f60 --- /dev/null +++ b/autotests/utils/edittreeview/CMakeLists.txt @@ -0,0 +1,35 @@ +project(test-edittreeview) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ../../ + ../../../src/ + ../../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_edittreeview.cpp + ../../../src/utils/edittreeview.cpp +) + +add_executable(test-edittreeview ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-edittreeview Core) +qt5_use_modules(test-edittreeview Test) +qt5_use_modules(test-edittreeview Widgets) +qt5_use_modules(test-edittreeview Gui) +qt5_use_modules(test-edittreeview WebEngine) +qt5_use_modules(test-edittreeview WebEngineWidgets) diff --git a/autotests/utils/lineedit/CMakeLists.txt b/autotests/utils/lineedit/CMakeLists.txt new file mode 100644 index 00000000..78918e5c --- /dev/null +++ b/autotests/utils/lineedit/CMakeLists.txt @@ -0,0 +1,35 @@ +project(test-lineedit) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ../../ + ../../../src/ + ../../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_lineedit.cpp + ../../../src/utils/lineedit.cpp +) + +add_executable(test-lineedit ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-lineedit Core) +qt5_use_modules(test-lineedit Test) +qt5_use_modules(test-lineedit Widgets) +qt5_use_modules(test-lineedit Gui) +qt5_use_modules(test-lineedit WebEngine) +qt5_use_modules(test-lineedit WebEngineWidgets) diff --git a/autotests/utils/networkaccessmanagerproxy/.gitignore b/autotests/utils/networkaccessmanagerproxy/.gitignore deleted file mode 100644 index 1b40b446..00000000 --- a/autotests/utils/networkaccessmanagerproxy/.gitignore +++ /dev/null @@ -1 +0,0 @@ -networkaccessmanagerproxy diff --git a/autotests/utils/networkaccessmanagerproxy/networkaccessmanagerproxy.pro b/autotests/utils/networkaccessmanagerproxy/networkaccessmanagerproxy.pro deleted file mode 100644 index 125fc571..00000000 --- a/autotests/utils/networkaccessmanagerproxy/networkaccessmanagerproxy.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES = tst_networkaccessmanagerproxy.cpp networkaccessmanagerproxy.cpp webpageproxy.cpp -HEADERS = networkaccessmanagerproxy.h networkaccessmanagerproxy_p.h webpageproxy.h -FORMS = -RESOURCES = diff --git a/autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp b/autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp deleted file mode 100644 index 379ca8b6..00000000 --- a/autotests/utils/networkaccessmanagerproxy/tst_networkaccessmanagerproxy.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include - -#include -#include - -#include -#include -#include -#include - -class tst_NetworkAccessManagerProxy : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void networkaccessmanagerproxy_data(); - void networkaccessmanagerproxy(); - - void primaryNetworkAccessManager(); - void webPage(); - - void createRequest_data(); - void createRequest(); -}; - -// Subclass that exposes the protected functions. -class SubNetworkAccessManagerProxy : public NetworkAccessManagerProxy -{ -public: - QNetworkReply *call_createRequest(QNetworkAccessManager::Operation op, QNetworkRequest const &request, QIODevice *outgoingData = 0) - { return SubNetworkAccessManagerProxy::createRequest(op, request, outgoingData); } -}; - -// This will be called before the first test function is executed. -// It is only called once. -void tst_NetworkAccessManagerProxy::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_NetworkAccessManagerProxy::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_NetworkAccessManagerProxy::init() -{ -} - -// This will be called after every test function. -void tst_NetworkAccessManagerProxy::cleanup() -{ -} - -void tst_NetworkAccessManagerProxy::networkaccessmanagerproxy_data() -{ -} - -void tst_NetworkAccessManagerProxy::networkaccessmanagerproxy() -{ - SubNetworkAccessManagerProxy proxy; - QVERIFY(proxy.call_createRequest(QNetworkAccessManager::GetOperation, - QNetworkRequest(), - (QIODevice*)0)); -} - -// public void setPrimaryNetworkAccessManager(NetworkAccessManagerProxy *primaryManager) -void tst_NetworkAccessManagerProxy::primaryNetworkAccessManager() -{ - SubNetworkAccessManagerProxy proxy; - - NetworkAccessManagerProxy primaryManager; - - proxy.setPrimaryNetworkAccessManager(&primaryManager); - QCOMPARE(&primaryManager, proxy.primaryNetworkAccessManager()); - QVERIFY(primaryManager.cookieJar()->parent() == &primaryManager); -} - -// public void setWebPage(WebPageProxy *page) -void tst_NetworkAccessManagerProxy::webPage() -{ - SubNetworkAccessManagerProxy proxy; - - WebPageProxy webPage; - proxy.setWebPage(&webPage); - QCOMPARE(&webPage, proxy.webPage()); -} - -void tst_NetworkAccessManagerProxy::createRequest_data() -{ - QTest::addColumn("primary"); - QTest::newRow("true") << true; - QTest::newRow("false") << false; -} - -// protected QNetworkReply *createRequest(QNetworkAccessManager::Operation op, QNetworkRequest const &request, QIODevice *outgoingData = 0) -void tst_NetworkAccessManagerProxy::createRequest() -{ - QFETCH(bool, primary); - - SubNetworkAccessManagerProxy proxy; - SubNetworkAccessManagerProxy primaryManager; - WebPageProxy webPage; - if (!primary) { - proxy.setPrimaryNetworkAccessManager(&primaryManager); - proxy.setWebPage(&webPage); - } - - QIODevice *outgoingData = 0; - QNetworkRequest request; - QNetworkReply *reply = proxy.call_createRequest(QNetworkAccessManager::GetOperation, request, outgoingData); - QVERIFY(reply); - if (primary) - QCOMPARE(reply->request(), request); - else - QVERIFY(reply->request() != request); -} - -QTEST_MAIN(tst_NetworkAccessManagerProxy) -#include "tst_networkaccessmanagerproxy.moc" - diff --git a/autotests/utils/webpageproxy/.gitignore b/autotests/utils/webpageproxy/.gitignore deleted file mode 100644 index 76350346..00000000 --- a/autotests/utils/webpageproxy/.gitignore +++ /dev/null @@ -1 +0,0 @@ -webpageproxy diff --git a/autotests/utils/webpageproxy/tst_webpageproxy.cpp b/autotests/utils/webpageproxy/tst_webpageproxy.cpp deleted file mode 100644 index 986382b7..00000000 --- a/autotests/utils/webpageproxy/tst_webpageproxy.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include - -#include -#include - -class tst_WebPageProxy : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void webpageproxy_data(); - void webpageproxy(); - - void populateNetworkRequest(); -}; - -// Subclass that exposes the protected functions. -class SubWebPageProxy : public WebPageProxy -{ -public: - void call_populateNetworkRequest(QNetworkRequest &request) - { return SubWebPageProxy::populateNetworkRequest(request); } -}; - -// This will be called before the first test function is executed. -// It is only called once. -void tst_WebPageProxy::initTestCase() -{ -} - -// This will be called after the last test function is executed. -// It is only called once. -void tst_WebPageProxy::cleanupTestCase() -{ -} - -// This will be called before each test function is executed. -void tst_WebPageProxy::init() -{ -} - -// This will be called after every test function. -void tst_WebPageProxy::cleanup() -{ -} - -void tst_WebPageProxy::webpageproxy_data() -{ -} - -void tst_WebPageProxy::webpageproxy() -{ - SubWebPageProxy proxy; - QCOMPARE(proxy.pageAttributeId(), 1100); - QNetworkRequest request; - proxy.call_populateNetworkRequest(request); -} - -// protected void populateNetworkRequest(QNetworkRequest &request) -void tst_WebPageProxy::populateNetworkRequest() -{ - SubWebPageProxy proxy; - - QNetworkRequest emptyRequest; - QNetworkRequest request = emptyRequest; - proxy.call_populateNetworkRequest(request); - - QVERIFY(request != emptyRequest); - QVariant v = request.attribute((QNetworkRequest::Attribute)(proxy.pageAttributeId())); - QVERIFY(v.isValid()); - QWebPage *webPage = (QWebPage*)(v.value()); - QVERIFY(webPage); - QCOMPARE(webPage, &proxy); -} - -QTEST_MAIN(tst_WebPageProxy) -#include "tst_webpageproxy.moc" - diff --git a/autotests/utils/webpageproxy/webpageproxy.pro b/autotests/utils/webpageproxy/webpageproxy.pro deleted file mode 100644 index 2c3b1913..00000000 --- a/autotests/utils/webpageproxy/webpageproxy.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES = tst_webpageproxy.cpp webpageproxy.cpp -HEADERS = webpageproxy.h -FORMS = -RESOURCES = diff --git a/autotests/webactionmapper/CMakeLists.txt b/autotests/webactionmapper/CMakeLists.txt new file mode 100644 index 00000000..3a191b7d --- /dev/null +++ b/autotests/webactionmapper/CMakeLists.txt @@ -0,0 +1,137 @@ +project(test-webactionmapper) + +find_package(Qt5Widgets REQUIRED) +find_package(Qt5Core REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5Network REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5PrintSupport REQUIRED) +find_package(Qt5UiTools) +find_package(Qt5LinguistTools REQUIRED) +find_package(Qt5Qml REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ../ + ../../src + ../../src/utils +) +INCLUDE_DIRECTORIES( + .. + ../../src + ../../src/utils + ../../src/bookmarks + ../../src/bookmarks/xbel + ../../src/data + ../../src/history + ../../src/htmls + ../../src/locationbar + ../../src/opensearch + ../../src/useragent + ../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +set(SRCS + tst_webactionmapper.cpp +) + +# From main browser + +set(Endorphin_SRCS + ../../src/aboutdialog.cpp + ../../src/acceptlanguagedialog.cpp + ../../src/autosaver.cpp + ../../src/browserapplication.cpp + ../../src/browsermainwindow.cpp + ../../src/clearprivatedata.cpp + ../../src/clearbutton.cpp + ../../src/devtoolswindow.cpp + ../../src/downloadmanager.cpp + ../../src/modelmenu.cpp + ../../src/modeltoolbar.cpp + ../../src/permissionbar.cpp + ../../src/plaintexteditsearch.cpp + ../../src/searchbar.cpp + ../../src/searchbutton.cpp + ../../src/searchlineedit.cpp + ../../src/settings.cpp + ../../src/sourcehighlighter.cpp + ../../src/sourceviewer.cpp + ../../src/tabbar.cpp + ../../src/tabwidget.cpp + ../../src/toolbarsearch.cpp + ../../src/webactionmapper.cpp + ../../src/webpage.cpp + ../../src/webview.cpp + ../../src/webviewsearch.cpp + ../../src/bookmarks/addbookmarkdialog.cpp + ../../src/bookmarks/bookmarksdialog.cpp + ../../src/bookmarks/bookmarksmanager.cpp + ../../src/bookmarks/bookmarksmenu.cpp + ../../src/bookmarks/bookmarksmodel.cpp + ../../src/bookmarks/bookmarkstoolbar.cpp + ../../src/bookmarks/bookmarknode.cpp + ../../src/bookmarks/xbel/xbelreader.cpp + ../../src/bookmarks/xbel/xbelwriter.cpp + ../../src/history/history.cpp + ../../src/history/historycompleter.cpp + ../../src/history/historymanager.cpp + ../../src/locationbar/locationbar.cpp + ../../src/locationbar/locationbarsiteicon.cpp + ../../src/locationbar/privacyindicator.cpp + ../../src/opensearch/opensearchdialog.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp + ../../src/opensearch/opensearchengineaction.cpp + ../../src/opensearch/opensearchenginemodel.cpp + ../../src/opensearch/opensearchmanager.cpp + ../../src/opensearch/opensearchreader.cpp + ../../src/opensearch/opensearchwriter.cpp + ../../src/useragent/useragentmenu.cpp + ../../src/utils/explorerstyle.cpp + ../../src/utils/editlistview.cpp + ../../src/utils/edittableview.cpp + ../../src/utils/edittreeview.cpp + ../../src/utils/languagemanager.cpp + ../../src/utils/lineedit.cpp + ../../src/utils/singleapplication.cpp + ../../src/utils/squeezelabel.cpp + ../../src/utils/treesortfilterproxymodel.cpp +) + +set(Endorphin_UIS + ../../src/aboutdialog.ui + ../../src/acceptlanguagedialog.ui + ../../src/downloaditem.ui + ../../src/downloads.ui + ../../src/searchbanner.ui + ../../src/settings.ui + ../../src/bookmarks/addbookmarkdialog.ui + ../../src/bookmarks/bookmarksdialog.ui + ../../src/history/history.ui + ../../src/opensearch/opensearchdialog.ui +) +QT5_WRAP_UI(UIS ${Endorphin_UIS}) + +set(Endorphin_RSCS + ../../src/data/data.qrc + ../../src/data/graphics/graphics.qrc + ../../src/data/searchengines/searchengines.qrc + ../../src/htmls/htmls.qrc + ../../src/useragent/useragents.qrc +) +QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) + + +add_executable(test-webactionmapper ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +qt5_use_modules(test-webactionmapper Core) +qt5_use_modules(test-webactionmapper Test) +qt5_use_modules(test-webactionmapper Widgets) +qt5_use_modules(test-webactionmapper Gui) +qt5_use_modules(test-webactionmapper WebEngine) +qt5_use_modules(test-webactionmapper WebEngineWidgets) +qt5_use_modules(test-webactionmapper PrintSupport) +qt5_use_modules(test-webactionmapper Qml) +qt5_use_modules(test-webactionmapper UiTools) \ No newline at end of file diff --git a/autotests/webactionmapper/tst_webactionmapper.cpp b/autotests/webactionmapper/tst_webactionmapper.cpp index 49145a00..e416fc8c 100644 --- a/autotests/webactionmapper/tst_webactionmapper.cpp +++ b/autotests/webactionmapper/tst_webactionmapper.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include @@ -56,7 +56,7 @@ private slots: class SubWebActionMapper : public WebActionMapper { public: - SubWebActionMapper(QAction *root, QWebPage::WebAction webAction, QObject *parent) + SubWebActionMapper(QAction *root, QWebEnginePage::WebAction webAction, QObject *parent) : WebActionMapper(root, webAction, parent) {} }; @@ -89,17 +89,17 @@ void tst_WebActionMapper::webactionmapper_data() void tst_WebActionMapper::webactionmapper() { - SubWebActionMapper mapper(0, QWebPage::Stop, 0); + SubWebActionMapper mapper(0, QWebEnginePage::Stop, 0); mapper.addChild(0); mapper.updateCurrent(0); - QCOMPARE(mapper.webAction(), QWebPage::Stop); + QCOMPARE(mapper.webAction(), QWebEnginePage::Stop); } // public void addChild(QAction *action) void tst_WebActionMapper::addChild() { QAction *root = new QAction(this); - SubWebActionMapper mapper(root, QWebPage::Stop, 0); + SubWebActionMapper mapper(root, QWebEnginePage::Stop, 0); QVERIFY(!root->isEnabled()); QAction *child = new QAction(this); @@ -119,7 +119,7 @@ void tst_WebActionMapper::updateCurrent_data() void tst_WebActionMapper::updateCurrent() { QAction *root = new QAction(this); - SubWebActionMapper mapper(root, QWebPage::Stop, 0); + SubWebActionMapper mapper(root, QWebEnginePage::Stop, 0); QVERIFY(!root->isEnabled()); WebView webView; @@ -138,7 +138,7 @@ void tst_WebActionMapper::updateCurrent() void tst_WebActionMapper::triggerRoot() { QAction *root = new QAction(this); - SubWebActionMapper mapper(root, QWebPage::Reload, 0); + SubWebActionMapper mapper(root, QWebEnginePage::Reload, 0); WebView webView; QAction *childAction = webView.page()->action(mapper.webAction()); @@ -155,7 +155,7 @@ void tst_WebActionMapper::triggerRoot() void tst_WebActionMapper::destroyRoot() { QAction *root = new QAction(this); - SubWebActionMapper mapper(root, QWebPage::Reload, 0); + SubWebActionMapper mapper(root, QWebEnginePage::Reload, 0); WebView webView; QAction *childAction = webView.page()->action(mapper.webAction()); @@ -174,7 +174,7 @@ void tst_WebActionMapper::destroyRoot() void tst_WebActionMapper::destroyCurrent() { QAction *root = new QAction(this); - SubWebActionMapper mapper(root, QWebPage::Reload, 0); + SubWebActionMapper mapper(root, QWebEnginePage::Reload, 0); WebView *webView = new WebView; QAction *childAction = webView->page()->action(mapper.webAction()); @@ -197,7 +197,7 @@ void tst_WebActionMapper::childChanged() { QFETCH(bool, isCurrent); QAction *root = new QAction(this); - SubWebActionMapper mapper(root, QWebPage::Reload, 0); + SubWebActionMapper mapper(root, QWebEnginePage::Reload, 0); WebView webView; QAction *childAction = webView.page()->action(mapper.webAction()); diff --git a/autotests/webpage/CMakeLists.txt b/autotests/webpage/CMakeLists.txt new file mode 100644 index 00000000..53f4028d --- /dev/null +++ b/autotests/webpage/CMakeLists.txt @@ -0,0 +1,137 @@ +project(test-webpage) + +find_package(Qt5Widgets REQUIRED) +find_package(Qt5Core REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5Network REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5PrintSupport REQUIRED) +find_package(Qt5UiTools) +find_package(Qt5LinguistTools REQUIRED) +find_package(Qt5Qml REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ../ + ../../src + ../../src/utils +) +INCLUDE_DIRECTORIES( + .. + ../../src + ../../src/utils + ../../src/bookmarks + ../../src/bookmarks/xbel + ../../src/data + ../../src/history + ../../src/htmls + ../../src/locationbar + ../../src/opensearch + ../../src/useragent + ../../src/utils + ${RUNTIME_OUTPUT_DIRECTORY} +) +set(SRCS + tst_webpage.cpp +) + +# From main browser + +set(Endorphin_SRCS + ../../src/aboutdialog.cpp + ../../src/acceptlanguagedialog.cpp + ../../src/autosaver.cpp + ../../src/browserapplication.cpp + ../../src/browsermainwindow.cpp + ../../src/clearprivatedata.cpp + ../../src/clearbutton.cpp + ../../src/devtoolswindow.cpp + ../../src/downloadmanager.cpp + ../../src/modelmenu.cpp + ../../src/modeltoolbar.cpp + ../../src/permissionbar.cpp + ../../src/plaintexteditsearch.cpp + ../../src/searchbar.cpp + ../../src/searchbutton.cpp + ../../src/searchlineedit.cpp + ../../src/settings.cpp + ../../src/sourcehighlighter.cpp + ../../src/sourceviewer.cpp + ../../src/tabbar.cpp + ../../src/tabwidget.cpp + ../../src/toolbarsearch.cpp + ../../src/webactionmapper.cpp + ../../src/webpage.cpp + ../../src/webview.cpp + ../../src/webviewsearch.cpp + ../../src/bookmarks/addbookmarkdialog.cpp + ../../src/bookmarks/bookmarksdialog.cpp + ../../src/bookmarks/bookmarksmanager.cpp + ../../src/bookmarks/bookmarksmenu.cpp + ../../src/bookmarks/bookmarksmodel.cpp + ../../src/bookmarks/bookmarkstoolbar.cpp + ../../src/bookmarks/bookmarknode.cpp + ../../src/bookmarks/xbel/xbelreader.cpp + ../../src/bookmarks/xbel/xbelwriter.cpp + ../../src/history/history.cpp + ../../src/history/historycompleter.cpp + ../../src/history/historymanager.cpp + ../../src/locationbar/locationbar.cpp + ../../src/locationbar/locationbarsiteicon.cpp + ../../src/locationbar/privacyindicator.cpp + ../../src/opensearch/opensearchdialog.cpp + ../../src/opensearch/opensearchengine.cpp + ../../src/opensearch/opensearchenginedelegate.cpp + ../../src/opensearch/opensearchengineaction.cpp + ../../src/opensearch/opensearchenginemodel.cpp + ../../src/opensearch/opensearchmanager.cpp + ../../src/opensearch/opensearchreader.cpp + ../../src/opensearch/opensearchwriter.cpp + ../../src/useragent/useragentmenu.cpp + ../../src/utils/explorerstyle.cpp + ../../src/utils/editlistview.cpp + ../../src/utils/edittableview.cpp + ../../src/utils/edittreeview.cpp + ../../src/utils/languagemanager.cpp + ../../src/utils/lineedit.cpp + ../../src/utils/singleapplication.cpp + ../../src/utils/squeezelabel.cpp + ../../src/utils/treesortfilterproxymodel.cpp +) + +set(Endorphin_UIS + ../../src/aboutdialog.ui + ../../src/acceptlanguagedialog.ui + ../../src/downloaditem.ui + ../../src/downloads.ui + ../../src/searchbanner.ui + ../../src/settings.ui + ../../src/bookmarks/addbookmarkdialog.ui + ../../src/bookmarks/bookmarksdialog.ui + ../../src/history/history.ui + ../../src/opensearch/opensearchdialog.ui +) +QT5_WRAP_UI(UIS ${Endorphin_UIS}) + +set(Endorphin_RSCS + ../../src/data/data.qrc + ../../src/data/graphics/graphics.qrc + ../../src/data/searchengines/searchengines.qrc + ../../src/htmls/htmls.qrc + ../../src/useragent/useragents.qrc +) +QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) + + +add_executable(test-webpage ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +qt5_use_modules(test-webpage Core) +qt5_use_modules(test-webpage Test) +qt5_use_modules(test-webpage Widgets) +qt5_use_modules(test-webpage Gui) +qt5_use_modules(test-webpage WebEngine) +qt5_use_modules(test-webpage WebEngineWidgets) +qt5_use_modules(test-webpage PrintSupport) +qt5_use_modules(test-webpage Qml) +qt5_use_modules(test-webpage UiTools) \ No newline at end of file diff --git a/autotests/webpage/tst_webpage.cpp b/autotests/webpage/tst_webpage.cpp index 058ffba9..81dcee73 100644 --- a/autotests/webpage/tst_webpage.cpp +++ b/autotests/webpage/tst_webpage.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include "qtest_endorphin.h" @@ -42,18 +42,18 @@ private slots: void loadSettings_data(); void loadSettings(); - void webPluginFactory_data(); - void webPluginFactory(); - void acceptNavigationRequest_data(); - void acceptNavigationRequest(); - void createPlugin_data(); - void createPlugin(); + //void webPluginFactory_data(); + //void webPluginFactory(); + //void acceptNavigationRequest_data(); + //void acceptNavigationRequest(); + //void createPlugin_data(); + //void createPlugin(); void createWindow_data(); void createWindow(); void handleUnsupportedContent(); - void linkedResources(); - void javaScriptObjects_data(); - void javaScriptObjects(); + //void linkedResources(); + //void javaScriptObjects_data(); + //void javaScriptObjects(); void userAgent(); }; @@ -67,13 +67,14 @@ class SubWebPage : public WebPage void call_aboutToLoadUrl(QUrl const &url) { return SubWebPage::aboutToLoadUrl(url); } +/* bool call_acceptNavigationRequest(QWebFrame *frame, QNetworkRequest const &request, NavigationType type) { return SubWebPage::acceptNavigationRequest(frame, request, type); } QObject *call_createPlugin(QString const &classId, QUrl const &url, QStringList const ¶mNames, QStringList const ¶mValues) { return SubWebPage::createPlugin(classId, url, paramNames, paramValues); } - - QWebPage *call_createWindow(QWebPage::WebWindowType type) +*/ + QWebEnginePage *call_createWindow(QWebEnginePage::WebWindowType type) { return SubWebPage::createWindow(type); } }; @@ -113,11 +114,11 @@ void tst_WebPage::webpage() { SubWebPage page; page.loadSettings(); - QVERIFY(page.webPluginFactory()); + //QVERIFY(page.webPluginFactory()); page.call_aboutToLoadUrl(QUrl()); - QCOMPARE(page.call_acceptNavigationRequest((QWebFrame*)0, QNetworkRequest(), QWebPage::NavigationTypeLinkClicked), true); - QCOMPARE(page.call_createPlugin(QString(), QUrl(), QStringList(), QStringList()), (QObject*)0); - QCOMPARE(page.call_createWindow(QWebPage::WebBrowserWindow), (QWebPage*)0); + // QCOMPARE(page.call_acceptNavigationRequest((QWebFrame*)0, QNetworkRequest(), QWebEnginePage::NavigationTypeLinkClicked), true); + // QCOMPARE(page.call_createPlugin(QString(), QUrl(), QStringList(), QStringList()), (QObject*)0); + QCOMPARE(page.call_createWindow(QWebEnginePage::WebBrowserWindow), (QWebEnginePage*)0); } void tst_WebPage::loadSettings_data() @@ -144,6 +145,7 @@ void tst_WebPage::loadSettings() QSKIP("Test is not implemented."); } +/* // Q_DECLARE_METATYPE(WebPluginFactory*) void tst_WebPage::webPluginFactory_data() { @@ -169,46 +171,49 @@ void tst_WebPage::webPluginFactory() #endif QSKIP("Test is not implemented."); } - -Q_DECLARE_METATYPE(QWebPage::WebWindowType) -Q_DECLARE_METATYPE(QWebPage::NavigationType) +*/ +Q_DECLARE_METATYPE(QWebEnginePage::WebWindowType) +Q_DECLARE_METATYPE(QWebEnginePage::NavigationType) Q_DECLARE_METATYPE(Qt::MouseButton) Q_DECLARE_METATYPE(Qt::KeyboardModifier) +/* void tst_WebPage::acceptNavigationRequest_data() { QTest::addColumn("pressedButton"); QTest::addColumn("pressedKeys"); QTest::addColumn("validFrame"); QTest::addColumn("request"); - QTest::addColumn("type"); + QTest::addColumn("type"); QTest::addColumn("acceptNavigationRequest"); QTest::addColumn("spyCount"); - QTest::newRow("null-noframe") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest() << QWebPage::NavigationTypeLinkClicked << true << 0; - QTest::newRow("null-frame") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest() << QWebPage::NavigationTypeLinkClicked << true << 1; + QTest::newRow("null-noframe") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest() << QWebEnginePage::NavigationTypeLinkClicked << true << 0; + QTest::newRow("null-frame") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest() << QWebEnginePage::NavigationTypeLinkClicked << true << 1; - QTest::newRow("mailto-0") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest(QUrl("mailto:foo@bar.com")) << QWebPage::NavigationTypeLinkClicked << false << 0; - QTest::newRow("mailto-1") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest(QUrl("mailto:foo@bar.com")) << QWebPage::NavigationTypeLinkClicked << false << 0; - QTest::newRow("ftp-0") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest(QUrl("ftp:foo@bar.com")) << QWebPage::NavigationTypeLinkClicked << false << 0; - QTest::newRow("ftp-1") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest(QUrl("ftp:foo@bar.com")) << QWebPage::NavigationTypeLinkClicked << false << 0; + QTest::newRow("mailto-0") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest(QUrl("mailto:foo@bar.com")) << QWebEnginePage::NavigationTypeLinkClicked << false << 0; + QTest::newRow("mailto-1") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest(QUrl("mailto:foo@bar.com")) << QWebEnginePage::NavigationTypeLinkClicked << false << 0; + QTest::newRow("ftp-0") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest(QUrl("ftp:foo@bar.com")) << QWebEnginePage::NavigationTypeLinkClicked << false << 0; + QTest::newRow("ftp-1") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest(QUrl("ftp:foo@bar.com")) << QWebEnginePage::NavigationTypeLinkClicked << false << 0; - QTest::newRow("normal-0") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest(QUrl("http://www.foo.com")) << QWebPage::NavigationTypeLinkClicked << true << 0; - QTest::newRow("normal-1") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebPage::NavigationTypeLinkClicked << true << 1; + QTest::newRow("normal-0") << Qt::NoButton << Qt::NoModifier << false << QNetworkRequest(QUrl("http://www.foo.com")) << QWebEnginePage::NavigationTypeLinkClicked << true << 0; + QTest::newRow("normal-1") << Qt::NoButton << Qt::NoModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebEnginePage::NavigationTypeLinkClicked << true << 1; - QTest::newRow("midclick-0") << Qt::MidButton << Qt::NoModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebPage::NavigationTypeLinkClicked << false << 0; - QTest::newRow("midclick-1") << Qt::MidButton << Qt::ShiftModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebPage::NavigationTypeLinkClicked << false << 0; - QTest::newRow("midclick-2") << Qt::MidButton << Qt::AltModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebPage::NavigationTypeLinkClicked << false << 0; + QTest::newRow("midclick-0") << Qt::MidButton << Qt::NoModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebEnginePage::NavigationTypeLinkClicked << false << 0; + QTest::newRow("midclick-1") << Qt::MidButton << Qt::ShiftModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebEnginePage::NavigationTypeLinkClicked << false << 0; + QTest::newRow("midclick-2") << Qt::MidButton << Qt::AltModifier << true << QNetworkRequest(QUrl("http://www.foo.com")) << QWebEnginePage::NavigationTypeLinkClicked << false << 0; } -// protected bool acceptNavigationRequest(QWebFrame *frame, QNetworkRequest const &request, NavigationType type) + +// WebKit: protected bool acceptNavigationRequest(QWebFrame *frame, QNetworkRequest const &request, NavigationType type) +// WebEngine: protected bool acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame) void tst_WebPage::acceptNavigationRequest() { QFETCH(Qt::MouseButton, pressedButton); QFETCH(Qt::KeyboardModifier, pressedKeys); QFETCH(bool, validFrame); QFETCH(QNetworkRequest, request); - QFETCH(QWebPage::NavigationType, type); + QFETCH(QWebEnginePage::NavigationType, type); QFETCH(bool, acceptNavigationRequest); QFETCH(int, spyCount); @@ -224,7 +229,8 @@ void tst_WebPage::acceptNavigationRequest() BrowserApplication::instance()->setEventMouseButtons(Qt::NoButton); BrowserApplication::instance()->setEventKeyboardModifiers(Qt::NoModifier); } - +*/ +/* Q_DECLARE_METATYPE(QStringList) Q_DECLARE_METATYPE(QObject*) void tst_WebPage::createPlugin_data() @@ -259,23 +265,23 @@ void tst_WebPage::createPlugin() #endif QSKIP("Test is not implemented."); } - -Q_DECLARE_METATYPE(QWebPage*) +*/ +Q_DECLARE_METATYPE(QWebEnginePage*) void tst_WebPage::createWindow_data() { #if 0 - QTest::addColumn("type"); - QTest::addColumn("createWindow"); - QTest::newRow("null") << QWebPage::WebWindowType() << QWebPage*(); + QTest::addColumn("type"); + QTest::addColumn("createWindow"); + QTest::newRow("null") << QWebEnginePage::WebWindowType() << QWebEnginePage*(); #endif } -// protected QWebPage *createWindow(QWebPage::WebWindowType type) +// protected QWebEnginePage *createWindow(QWebEnginePage::WebWindowType type) void tst_WebPage::createWindow() { #if 0 - QFETCH(QWebPage::WebWindowType, type); - QFETCH(QWebPage*, createWindow); + QFETCH(QWebEnginePage::WebWindowType, type); + QFETCH(QWebEnginePage*, createWindow); SubWebPage page; @@ -292,10 +298,11 @@ void tst_WebPage::handleUnsupportedContent() { SubWebPage page; QSignalSpy spy(&page, SIGNAL(loadFinished(bool))); - page.mainFrame()->load(QUrl("http://exampletesttesttesttesttesttes.com/test.html")); + page.load(QUrl("http://exampletesttesttesttesttesttes.com/test.html")); QTRY_COMPARE(spy.count(), 1); } +/* void tst_WebPage::linkedResources() { SubWebPage page; @@ -312,7 +319,7 @@ void tst_WebPage::linkedResources() "" ""; - page.mainFrame()->setHtml(html, QUrl("http://foobar.baz/foo/")); + page->setHtml(html, QUrl("http://foobar.baz/foo/")); QList resources = page.linkedResources(); QCOMPARE(resources.count(), 4); @@ -347,7 +354,8 @@ void tst_WebPage::linkedResources() QCOMPARE(resources.at(2).href, QUrl("http://barbaz.foo/atom.xml")); QCOMPARE(resources.at(3).href, QUrl("http://external.foo/search.xml")); } - +*/ +/* void tst_WebPage::javaScriptObjects_data() { QTest::addColumn("url"); @@ -375,7 +383,7 @@ void tst_WebPage::javaScriptObjects() QCOMPARE(windowExternal, !windowExternalVariant.isNull()); QCOMPARE(windowEndorphin, !windowEndorphinVariant.isNull()); } - +*/ void tst_WebPage::userAgent() { QSettings settings; diff --git a/autotests/xbel/CMakeLists.txt b/autotests/xbel/CMakeLists.txt new file mode 100644 index 00000000..12605cc4 --- /dev/null +++ b/autotests/xbel/CMakeLists.txt @@ -0,0 +1,31 @@ +project(test-xbel) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks/xbel + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +add_definitions(-DNO_HISTORYDIALOG) +set(SRCS + tst_xbel.cpp + ../../src/bookmarks/bookmarknode.cpp + ../../src/bookmarks/xbel/xbelreader.cpp + ../../src/bookmarks/xbel/xbelwriter.cpp +) +add_executable(test-xbel ${SRCS} ${UIS} ${MOCS}) +qt5_use_modules(test-xbel Core) +qt5_use_modules(test-xbel Test) +qt5_use_modules(test-xbel Widgets) +qt5_use_modules(test-xbel WebEngine) +qt5_use_modules(test-xbel WebEngineWidgets) From ec84aa3ec3dc421b58e02fa10304e9a43e08cdde Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 18 Sep 2020 17:43:45 +0200 Subject: [PATCH 25/64] Delete manualtests I don't see any benefit in using them, everything that autotests don't cover can be directly tested inside the browser. --- manualtests/bookmarks/.gitignore | 1 - manualtests/bookmarks/bookmarks.pro | 11 - manualtests/bookmarks/main_bookmarks.cpp | 52 ---- manualtests/downloadmanager/.gitignore | 1 - .../downloadmanager/downloadmanager.pro | 11 - .../downloadmanager/main_downloadmanager.cpp | 33 -- manualtests/history/.gitignore | 1 - manualtests/history/history.pro | 11 - manualtests/history/main_history.cpp | 78 ----- manualtests/locationbar/.gitignore | 1 - manualtests/locationbar/locationbar.pro | 11 - manualtests/locationbar/main_locationbar.cpp | 63 ---- manualtests/manualtests.pri | 4 - manualtests/manualtests.pro | 13 - manualtests/modelmenu/.gitignore | 1 - manualtests/modelmenu/main_modelmenu.cpp | 102 ------- manualtests/modelmenu/modelmenu.pro | 10 - manualtests/searchlineedit/.gitignore | 1 - .../searchlineedit/main_searchlineedit.cpp | 56 ---- manualtests/searchlineedit/searchlineedit.pro | 14 - manualtests/utils/editview/.gitignore | 1 - manualtests/utils/editview/editview.pro | 11 - manualtests/utils/editview/editview.ui | 87 ------ manualtests/utils/editview/main_editview.cpp | 77 ----- manualtests/utils/lineedit/.gitignore | 1 - manualtests/utils/lineedit/bookmark.png | Bin 956 -> 0 bytes manualtests/utils/lineedit/dialog.ui | 289 ------------------ manualtests/utils/lineedit/lineedit.pro | 12 - manualtests/utils/lineedit/main_lineedit.cpp | 142 --------- manualtests/utils/lineedit/rss.png | Bin 689 -> 0 bytes manualtests/utils/lineedit/siteicon.png | Bin 777 -> 0 bytes .../utils/singleapplication/.gitignore | 1 - .../main_singleapplication.cpp | 71 ----- .../singleapplication/singleapplication.pro | 12 - manualtests/utils/squeezelabel/.gitignore | 1 - .../utils/squeezelabel/main_squeezelabel.cpp | 38 --- .../utils/squeezelabel/squeezelabel.pro | 12 - .../utils/treesortfilterproxymodel/.gitignore | 1 - .../main_treesortfilterproxymodel.cpp | 46 --- .../treesortfilterproxymodel.pro | 12 - .../treesortfilterproxymodeldialog.ui | 27 -- manualtests/utils/utils.pro | 9 - manualtests/webviewsearch/.gitignore | 1 - .../webviewsearch/main_webviewsearch.cpp | 84 ----- manualtests/webviewsearch/webviewsearch.pro | 9 - 45 files changed, 1419 deletions(-) delete mode 100644 manualtests/bookmarks/.gitignore delete mode 100644 manualtests/bookmarks/bookmarks.pro delete mode 100644 manualtests/bookmarks/main_bookmarks.cpp delete mode 100644 manualtests/downloadmanager/.gitignore delete mode 100644 manualtests/downloadmanager/downloadmanager.pro delete mode 100644 manualtests/downloadmanager/main_downloadmanager.cpp delete mode 100644 manualtests/history/.gitignore delete mode 100644 manualtests/history/history.pro delete mode 100644 manualtests/history/main_history.cpp delete mode 100644 manualtests/locationbar/.gitignore delete mode 100644 manualtests/locationbar/locationbar.pro delete mode 100644 manualtests/locationbar/main_locationbar.cpp delete mode 100644 manualtests/manualtests.pri delete mode 100644 manualtests/manualtests.pro delete mode 100644 manualtests/modelmenu/.gitignore delete mode 100644 manualtests/modelmenu/main_modelmenu.cpp delete mode 100644 manualtests/modelmenu/modelmenu.pro delete mode 100644 manualtests/searchlineedit/.gitignore delete mode 100644 manualtests/searchlineedit/main_searchlineedit.cpp delete mode 100644 manualtests/searchlineedit/searchlineedit.pro delete mode 100644 manualtests/utils/editview/.gitignore delete mode 100644 manualtests/utils/editview/editview.pro delete mode 100644 manualtests/utils/editview/editview.ui delete mode 100644 manualtests/utils/editview/main_editview.cpp delete mode 100644 manualtests/utils/lineedit/.gitignore delete mode 100644 manualtests/utils/lineedit/bookmark.png delete mode 100644 manualtests/utils/lineedit/dialog.ui delete mode 100644 manualtests/utils/lineedit/lineedit.pro delete mode 100644 manualtests/utils/lineedit/main_lineedit.cpp delete mode 100755 manualtests/utils/lineedit/rss.png delete mode 100644 manualtests/utils/lineedit/siteicon.png delete mode 100644 manualtests/utils/singleapplication/.gitignore delete mode 100644 manualtests/utils/singleapplication/main_singleapplication.cpp delete mode 100644 manualtests/utils/singleapplication/singleapplication.pro delete mode 100644 manualtests/utils/squeezelabel/.gitignore delete mode 100644 manualtests/utils/squeezelabel/main_squeezelabel.cpp delete mode 100644 manualtests/utils/squeezelabel/squeezelabel.pro delete mode 100644 manualtests/utils/treesortfilterproxymodel/.gitignore delete mode 100644 manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp delete mode 100644 manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodel.pro delete mode 100644 manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodeldialog.ui delete mode 100644 manualtests/utils/utils.pro delete mode 100644 manualtests/webviewsearch/.gitignore delete mode 100644 manualtests/webviewsearch/main_webviewsearch.cpp delete mode 100644 manualtests/webviewsearch/webviewsearch.pro diff --git a/manualtests/bookmarks/.gitignore b/manualtests/bookmarks/.gitignore deleted file mode 100644 index 7e1f6a71..00000000 --- a/manualtests/bookmarks/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bookmarks diff --git a/manualtests/bookmarks/bookmarks.pro b/manualtests/bookmarks/bookmarks.pro deleted file mode 100644 index dcb2e219..00000000 --- a/manualtests/bookmarks/bookmarks.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../manualtests.pri) -include(../../autotests/modeltest/modeltest.pri) - -# Input -SOURCES += main_bookmarks.cpp -HEADERS += diff --git a/manualtests/bookmarks/main_bookmarks.cpp b/manualtests/bookmarks/main_bookmarks.cpp deleted file mode 100644 index bf36472a..00000000 --- a/manualtests/bookmarks/main_bookmarks.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include - -#include "addbookmarkdialog.h" -#include "bookmarksdialog.h" -#include "bookmarksmanager.h" -#include "bookmarksmodel.h" -#include "browserapplication.h" -#include "modeltest.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QCoreApplication::setApplicationName(QLatin1String("endorphin")); - QCoreApplication::setApplicationVersion(QLatin1String("0.1")); - - new ModelTest(BrowserApplication::bookmarksManager()->bookmarksModel()); - BookmarksDialog *dialog = new BookmarksDialog; - dialog->show(); - - QString url("http://www.reddit.com"); - AddBookmarkDialog adddialog; - adddialog.setTitle(QString("Reddit.com: a time drain")); - adddialog.setUrl(url); - //adddialog.show(); - - QMenuBar bar; - QMenu *edit = bar.addMenu(("&Edit")); - edit->addAction(BrowserApplication::bookmarksManager()->undoRedoStack()->createUndoAction(edit)); - edit->addAction(BrowserApplication::bookmarksManager()->undoRedoStack()->createRedoAction(edit)); - return app.exec(); -} - diff --git a/manualtests/downloadmanager/.gitignore b/manualtests/downloadmanager/.gitignore deleted file mode 100644 index 45b3fddc..00000000 --- a/manualtests/downloadmanager/.gitignore +++ /dev/null @@ -1 +0,0 @@ -downloadmanager diff --git a/manualtests/downloadmanager/downloadmanager.pro b/manualtests/downloadmanager/downloadmanager.pro deleted file mode 100644 index 79f26c3f..00000000 --- a/manualtests/downloadmanager/downloadmanager.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../manualtests.pri) - -# Input -RESOURCES = -SOURCES += main_downloadmanager.cpp -HEADERS += diff --git a/manualtests/downloadmanager/main_downloadmanager.cpp b/manualtests/downloadmanager/main_downloadmanager.cpp deleted file mode 100644 index e6c9a3d5..00000000 --- a/manualtests/downloadmanager/main_downloadmanager.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "downloadmanager.h" - -int main(int argc, char **argv) -{ - QApplication application(argc, argv); - - DownloadManager manager; - QUrl url("http://10.0.0.3/~ben/distccKNOPPIX-1.3-2004-08-20-gcc-3.3.iso"); - manager.download(url); - manager.show(); - - return application.exec(); -} - diff --git a/manualtests/history/.gitignore b/manualtests/history/.gitignore deleted file mode 100644 index c375d5ba..00000000 --- a/manualtests/history/.gitignore +++ /dev/null @@ -1 +0,0 @@ -history diff --git a/manualtests/history/history.pro b/manualtests/history/history.pro deleted file mode 100644 index 2fa000d9..00000000 --- a/manualtests/history/history.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../manualtests.pri) -include(../../autotests/modeltest/modeltest.pri) - -# Input -SOURCES += main_history.cpp -HEADERS += diff --git a/manualtests/history/main_history.cpp b/manualtests/history/main_history.cpp deleted file mode 100644 index 7da85aeb..00000000 --- a/manualtests/history/main_history.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include - -#include -#include -#include -#include -#include - -int main(int argc, char **argv) -{ - QApplication application(argc, argv); - QMainWindow w; - - QCoreApplication::setApplicationName("endorphin"); - - HistoryManager history; - - QTabWidget tabWidget; - - QTableView *historyModelView = new QTableView(&tabWidget); - historyModelView->horizontalHeader()->setStretchLastSection(true); - historyModelView->setModel(history.historyModel()); - tabWidget.addTab(historyModelView, "HistoryModel"); - - QTableView *historyFilterModelView = new QTableView(&tabWidget); - historyFilterModelView->horizontalHeader()->setStretchLastSection(true); - historyFilterModelView->setModel(history.historyFilterModel()); - tabWidget.addTab(historyFilterModelView, "HistoryFilterModel"); - - QTreeView *historyTreeModelView = new QTreeView(&tabWidget); - historyTreeModelView->header()->setStretchLastSection(true); - historyTreeModelView->setModel(history.historyTreeModel()); - new ModelTest(history.historyTreeModel()); - tabWidget.addTab(historyTreeModelView, "HistoryTreeModel"); - - QTreeView *historyMenuModelView = new QTreeView(&tabWidget); - historyMenuModelView->header()->setStretchLastSection(true); - HistoryMenuModel *menuModel = new HistoryMenuModel((HistoryTreeModel*)history.historyTreeModel(), &tabWidget); - new ModelTest(menuModel); - historyMenuModelView->setModel(menuModel); - tabWidget.addTab(historyMenuModelView, "HistoryMenuModel"); - - QTableView *historyCompletionModelView = new QTableView(&tabWidget); - historyCompletionModelView->horizontalHeader()->setStretchLastSection(true); - HistoryCompletionModel *completionModel = new HistoryCompletionModel(&tabWidget); - completionModel->setSourceModel(history.historyFilterModel()); - historyCompletionModelView->setModel(completionModel); - tabWidget.addTab(historyCompletionModelView, "HistoryCompletionModel"); - - HistoryDialog dialog(0, &history); - tabWidget.addTab(dialog.tree, "DialogModel"); - - tabWidget.setCurrentIndex(3); - tabWidget.show(); - - return application.exec(); -} - diff --git a/manualtests/locationbar/.gitignore b/manualtests/locationbar/.gitignore deleted file mode 100644 index 3c98d718..00000000 --- a/manualtests/locationbar/.gitignore +++ /dev/null @@ -1 +0,0 @@ -locationbar diff --git a/manualtests/locationbar/locationbar.pro b/manualtests/locationbar/locationbar.pro deleted file mode 100644 index 41b93df9..00000000 --- a/manualtests/locationbar/locationbar.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../manualtests.pri) - -# Input -SOURCES += main_locationbar.cpp -HEADERS += - diff --git a/manualtests/locationbar/main_locationbar.cpp b/manualtests/locationbar/main_locationbar.cpp deleted file mode 100644 index bf36c19c..00000000 --- a/manualtests/locationbar/main_locationbar.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include - -#include "browserapplication.h" -#include "locationbar.h" -#include "webview.h" - -int main(int argc, char **argv) -{ - BrowserApplication application(argc, argv); - QCoreApplication::setApplicationName(QLatin1String("urllineeditexample")); - QMainWindow w; - - QWidget *window = new QWidget; - QComboBox *comboBox = new QComboBox(window); - comboBox->setEditable(true); - QLineEdit *lineEdit = new QLineEdit(window); - LocationBar *s1 = new LocationBar(window); - LocationBar *s2 = new LocationBar(window); - WebView *view = new WebView(window); - view->setUrl(QUrl("http://www.google.com")); - s2->setWebView(view); - - QVBoxLayout *layout = new QVBoxLayout; - layout->addWidget(comboBox); - layout->addWidget(lineEdit); - layout->addWidget(s1); - layout->addWidget(s2); - layout->addWidget(view); - window->setLayout(layout); - w.show(); - w.setCentralWidget(window); - - QToolBar *bar = w.addToolBar("foo"); - QSplitter *splitter = new QSplitter(window); - splitter->addWidget(new LocationBar); - splitter->addWidget(new QLineEdit); - bar->addWidget(splitter); - return application.exec(); -} - diff --git a/manualtests/manualtests.pri b/manualtests/manualtests.pri deleted file mode 100644 index eab9f33c..00000000 --- a/manualtests/manualtests.pri +++ /dev/null @@ -1,4 +0,0 @@ -win32: CONFIG += console -mac:CONFIG -= app_bundle - -include($$PWD/../src/src.pri) diff --git a/manualtests/manualtests.pro b/manualtests/manualtests.pro deleted file mode 100644 index 52817cad..00000000 --- a/manualtests/manualtests.pro +++ /dev/null @@ -1,13 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - adblock \ - bookmarks \ - downloadmanager \ - history \ - locationbar \ - modelmenu \ - searchlineedit \ - utils \ - webviewsearch - -CONFIG += ordered diff --git a/manualtests/modelmenu/.gitignore b/manualtests/modelmenu/.gitignore deleted file mode 100644 index 2f8ac853..00000000 --- a/manualtests/modelmenu/.gitignore +++ /dev/null @@ -1 +0,0 @@ -modelmenu diff --git a/manualtests/modelmenu/main_modelmenu.cpp b/manualtests/modelmenu/main_modelmenu.cpp deleted file mode 100644 index c054c0ad..00000000 --- a/manualtests/modelmenu/main_modelmenu.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include - -#include - -class Menu : public ModelMenu -{ - Q_OBJECT - -public: - Menu(QWidget *parent); - -protected: - bool prePopulated(); - void postPopulated(); - ModelMenu *createBaseMenu(); - -private slots: - void activated2(const QModelIndex &index); - -}; - -Menu::Menu(QWidget *parent) - : ModelMenu(parent) -{ - connect(this, SIGNAL(activated(const QModelIndex &)), - this, SLOT(activated2(const QModelIndex &))); -} - -bool Menu::prePopulated() -{ - qDebug() << __FUNCTION__; - return ModelMenu::prePopulated(); -} - -void Menu::postPopulated() -{ - qDebug() << __FUNCTION__; - return ModelMenu::postPopulated(); -} - -ModelMenu *Menu::createBaseMenu() -{ - qDebug() << __FUNCTION__; - return new Menu(this); - return ModelMenu::createBaseMenu(); -} - -void Menu::activated2(const QModelIndex &index) -{ - qDebug() << __FUNCTION__ << index.data() << this; -} - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - - QMainWindow mainWindow; - Menu *menu = new Menu(&mainWindow); - menu->setTitle("Test"); - QDirModel *model = new QDirModel(menu); - menu->setModel(model); - menu->setRootIndex(model->index(QDir::homePath())); - mainWindow.menuBar()->addMenu(menu); - mainWindow.show(); - return app.exec(); -} - -#include "main_modelmenu.moc" - diff --git a/manualtests/modelmenu/modelmenu.pro b/manualtests/modelmenu/modelmenu.pro deleted file mode 100644 index 78a06670..00000000 --- a/manualtests/modelmenu/modelmenu.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../manualtests.pri) - -# Input -SOURCES += main_modelmenu.cpp -HEADERS += diff --git a/manualtests/searchlineedit/.gitignore b/manualtests/searchlineedit/.gitignore deleted file mode 100644 index 1713e66b..00000000 --- a/manualtests/searchlineedit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -searchlineedit diff --git a/manualtests/searchlineedit/main_searchlineedit.cpp b/manualtests/searchlineedit/main_searchlineedit.cpp deleted file mode 100644 index da547c83..00000000 --- a/manualtests/searchlineedit/main_searchlineedit.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include - -#include "searchlineedit.h" -#include "searchbutton.h" - -int main(int argc, char **argv) -{ - QApplication application(argc, argv); - - QDialog window; - QPushButton *button1 = new QPushButton("One"); - SearchLineEdit *s1 = new SearchLineEdit(&window); - SearchLineEdit *s2 = new SearchLineEdit(&window); - QCompleter *completer = new QCompleter(&window); - s2->setCompleter(completer); - s2->searchButton()->setShowMenuTriangle(true); - QObject::connect(s2->searchButton(), SIGNAL(clicked()), - completer, SLOT(complete())); - QStringList list; - list << "a" << "b" << "c"; - s2->completer()->setModel(new QStringListModel(list)); - - QVBoxLayout *layout = new QVBoxLayout; - layout->addWidget(s1); - layout->addWidget(s2); - layout->addWidget(button1); - - window.setLayout(layout); - window.show(); - return application.exec(); -} - diff --git a/manualtests/searchlineedit/searchlineedit.pro b/manualtests/searchlineedit/searchlineedit.pro deleted file mode 100644 index 3cc1340b..00000000 --- a/manualtests/searchlineedit/searchlineedit.pro +++ /dev/null @@ -1,14 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../manualtests.pri) - -# Input -RESOURCES = -FORMS = -SOURCES = searchbutton.cpp clearbutton.cpp lineedit.cpp searchlineedit.cpp -HEADERS = searchbutton.h clearbutton.h lineedit.h lineedit_p.h searchlineedit.h - -SOURCES += main_searchlineedit.cpp diff --git a/manualtests/utils/editview/.gitignore b/manualtests/utils/editview/.gitignore deleted file mode 100644 index 53dfa8a4..00000000 --- a/manualtests/utils/editview/.gitignore +++ /dev/null @@ -1 +0,0 @@ -editview diff --git a/manualtests/utils/editview/editview.pro b/manualtests/utils/editview/editview.pro deleted file mode 100644 index 18c3fe24..00000000 --- a/manualtests/utils/editview/editview.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../manualtests.pri) - -# Input -FORMS += editview.ui -SOURCES += main_editview.cpp -HEADERS += diff --git a/manualtests/utils/editview/editview.ui b/manualtests/utils/editview/editview.ui deleted file mode 100644 index beee2a32..00000000 --- a/manualtests/utils/editview/editview.ui +++ /dev/null @@ -1,87 +0,0 @@ - - - Dialog - - - - 0 - 0 - 790 - 398 - - - - Dialog - - - - - - Qt::Horizontal - - - - - - - - - - RemoveAll - - - - - - - - - - - - - - RemoveAll - - - - - - - - - - - - - - RemoveAll - - - - - - - - - - - - EditListView - QListView -
    editlistview.h
    -
    - - EditTreeView - QTreeView -
    edittreeview.h
    -
    - - EditTableView - QTableView -
    edittableview.h
    -
    -
    - - -
    diff --git a/manualtests/utils/editview/main_editview.cpp b/manualtests/utils/editview/main_editview.cpp deleted file mode 100644 index 81b01f70..00000000 --- a/manualtests/utils/editview/main_editview.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright (c) 2009, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "ui_editview.h" - -class Window : public QDialog, public Ui_Dialog -{ - Q_OBJECT - -public: - Window(); -}; - -Window::Window() - : QDialog() -{ - setupUi(this); - QStringList list; - list << "a" << "b" << "c"; - listView->setModel(new QStringListModel(list)); - tableView->setModel(new QStringListModel(list)); - connect(listViewRemoveAllButton, SIGNAL(clicked()), listView, SLOT(removeAll())); - connect(tableViewRemoveAllButton, SIGNAL(clicked()), tableView, SLOT(removeAll())); - connect(treeViewRemoveAllButton, SIGNAL(clicked()), treeView, SLOT(removeAll())); - - QStandardItemModel *model = new QStandardItemModel(this); - QStandardItem *parentItem = model->invisibleRootItem(); - for (int i = 0; i < 4; ++i) { - QStandardItem *item = new QStandardItem(QString("item %0").arg(i)); - parentItem->appendRow(item); - item = new QStandardItem(QString("item %0").arg(i * 2)); - parentItem->appendRow(item); - parentItem = item; - } - treeView->setModel(model); - treeView->expandAll(); -} - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - Window window; - window.show(); - return app.exec(); -} - -#include "main_editview.moc" - diff --git a/manualtests/utils/lineedit/.gitignore b/manualtests/utils/lineedit/.gitignore deleted file mode 100644 index 19f5a9a7..00000000 --- a/manualtests/utils/lineedit/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lineedit diff --git a/manualtests/utils/lineedit/bookmark.png b/manualtests/utils/lineedit/bookmark.png deleted file mode 100644 index be21134bbd3e0662a23ccb6e5890a1b9029f8609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 956 zcmV;t14I0YP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2hsrn z6%Q8(SfRoI00TTpL_t(I%WacSXdHDM#ozDuo7vf&>27xuvRN8yZHQJFtGy43#>gj{ywWq6PyC4{+R>upkTwk60=F%*k2* zK8Ade%`UexCUPVULz5=WNNYx^hT&jzr1HW-=g_yPUz`Gv3IM?26Bp3BJ?Wc+6!D^V z(|pzlnHnydeACzIt(NTn>GtJ~`er=8v>s(~ZxE%2_Mp3V-oVSBk7M!EqbSu#slL3t6_EgNqDW14MN7ZjyX(Iq+hoi3m`d zkZFP@LadO!_d{#0-VC}>Dg#LkB5A<1eI!91N)l8;zpVPnrQ5!E$*~*&UnEfEka!O)yRa!V+8qxY?H(HK9yMJLIUQ`XbuWjw#}Rh~ z;+_Fu*1+IX$FVj$jmTv%9e^7Uv1|NxCr-XzQtNj+NpE^jZus$vu05Rh2X1*y4`JIx z($iq#%!4aWy?+ubKfaFAj+Ad3k`rS)#I+`KiHit?1ZgBo+~-!@F#xAAKZnHM4lNZZ+kk0*kJ9e1 eaOGsQwf+~5Te_uGdsS5c0000 diff --git a/manualtests/utils/lineedit/dialog.ui b/manualtests/utils/lineedit/dialog.ui deleted file mode 100644 index e5501383..00000000 --- a/manualtests/utils/lineedit/dialog.ui +++ /dev/null @@ -1,289 +0,0 @@ - - Dialog - - - - 0 - 0 - 474 - 348 - - - - Dialog - - - - - - - - Left: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Foo Bar Baz Endorphin LineEdit Manual Test This is the end - - - - - - - Right: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Foo Bar Baz Endorphin LineEdit Manual Test This is the end - - - - - - - Foo Bar Baz Endorphin LineEdit Manual Test This is the end - - - - - - - Empty: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Horizontal - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Foo Bar Baz Endorphin LineEdit Manual Test - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Widget - - - - - - Site Icon - - - true - - - - - - - RSS - - - false - - - - - - - Bookmark - - - - - - - - - - Position - - - - - - Left - - - true - - - - - - - Right - - - - - - - - - - - 0 - 0 - - - - 3 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Vertical - - - - 20 - 28 - - - - - - - - - - Add - - - - - - - Remove - - - - - - - Swap Visibility - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Add ToolButton - - - - - - - - - - LineEdit - QLineEdit -
    lineedit.h
    -
    -
    - - -
    diff --git a/manualtests/utils/lineedit/lineedit.pro b/manualtests/utils/lineedit/lineedit.pro deleted file mode 100644 index 55d0d804..00000000 --- a/manualtests/utils/lineedit/lineedit.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../manualtests.pri) - -# Input -RESOURCES = -FORMS = dialog.ui -SOURCES = main_lineedit.cpp lineedit.cpp -HEADERS = lineedit.h lineedit_p.h diff --git a/manualtests/utils/lineedit/main_lineedit.cpp b/manualtests/utils/lineedit/main_lineedit.cpp deleted file mode 100644 index 3992d0df..00000000 --- a/manualtests/utils/lineedit/main_lineedit.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include - -#include -#include "ui_dialog.h" - -class Dialog : public QDialog, public Ui_Dialog -{ - Q_OBJECT -public: - Dialog(QWidget *parent = 0); - - QLabel *rssButton; - QLabel *bookmarkButton; - QLabel *siteIconButton; - -private slots: - void setWidgetSpacing(int s); - void add(); - void remove(); - void showW(); - void addToolButton(); - - QWidget *getWidget(); -}; - -Dialog::Dialog(QWidget *parent) - : QDialog(parent) -{ - setupUi(this); - rssButton = new QLabel(this); - rssButton->setPixmap(QPixmap("rss.png")); - rssButton->hide(); - bookmarkButton = new QLabel(this); - bookmarkButton->setPixmap(QPixmap("bookmark.png")); - bookmarkButton->hide(); - siteIconButton = new QLabel(this); - siteIconButton->setPixmap(QPixmap("siteicon.png")); - siteIconButton->hide(); - - { - QToolButton *b = new QToolButton(this); - b->resize(16, 16); - leftLineEdit->addWidget(b, LineEdit::LeftSide); - } - { - QToolButton *b = new QToolButton(this); - b->resize(16, 16); - rightLineEdit->addWidget(b, LineEdit::RightSide); - } - connect(addButton, SIGNAL(clicked()), this, SLOT(add())); - connect(removeButton, SIGNAL(clicked()), this, SLOT(remove())); - connect(showButton, SIGNAL(clicked()), this, SLOT(showW())); - connect(addToolButtonButton, SIGNAL(clicked()), this, SLOT(addToolButton())); - connect(spacing, SIGNAL(valueChanged(int)), this, SLOT(setWidgetSpacing(int))); -} - -QWidget *Dialog::getWidget() -{ - if (rssWidget->isChecked()) { - bookmarkWidget->setChecked(true); - return rssButton; - } - if (bookmarkWidget->isChecked()) { - siteIconWidget->setChecked(true); - return bookmarkButton; - } - if (siteIconWidget->isChecked()) { - rssWidget->setChecked(true); - return siteIconButton; - } - return 0; -} - -void Dialog::setWidgetSpacing(int s) -{ - lineEdit->setWidgetSpacing(s); -} - -void Dialog::add() -{ - LineEdit::WidgetPosition position = leftSide->isChecked() ? LineEdit::LeftSide : LineEdit::RightSide; - lineEdit->addWidget(getWidget(), position); -} - -void Dialog::remove() -{ - lineEdit->removeWidget(getWidget()); -} - -void Dialog::showW() -{ - QWidget *w = getWidget(); - w->setVisible(!w->isVisible()); -} - -void Dialog::addToolButton() -{ - LineEdit::WidgetPosition position = leftSide->isChecked() ? LineEdit::LeftSide : LineEdit::RightSide; - QToolButton *button = new QToolButton; - lineEdit->addWidget(button, position); -} - -int main(int argc,char ** argv) -{ - QApplication app(argc,argv); - - if (app.arguments().count() == 1) { - Dialog dialog; - dialog.show(); - return app.exec(); - } else { - LineEdit lineEdit; - QPushButton *rightButton = new QPushButton("Dialog bar"); - qDebug() << rightButton->sizeHint(); - lineEdit.addWidget(rightButton, LineEdit::RightSide); - lineEdit.show(); - return app.exec(); - } -} - -#include "main_lineedit.moc" - diff --git a/manualtests/utils/lineedit/rss.png b/manualtests/utils/lineedit/rss.png deleted file mode 100755 index b3c949d2244f2c0c81d65e74719af2a1b56d06a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)(tky!*UETcH-TCU7SrqEjJM#?B`_A)!p7(kFf9-P@=@15kkTkGK zgFusyy#KECqZzRdBLb=P?$(kUP;>kYTDeG&{|a+iOiRbI6nbQ)j#7bOf>iF=C+|_py<&Fo1F5cC*iEM?zZGC{ejNg4LWYp=S$L6Qaby6y zp$+F`250{%tU{Lg$5*ROH}y!1UKJS4*xqd7P(Y3JQF?lrnf?yerr%&6yGXLG1ur*B z{$&R1@Oj)yl@%rY5rh?j(j10Yz_DBs`AKFU_QnB;)(aqQmGi&ieOS|21^NP9UMpa< zU&p!f6RZ6Owp^X!EXA=0SbN&h?CrQK%Q3(=YBqqHD^9ZUM0Hxt-6-KT;>lf@j?Z+v zHm(}`>85I&E<7e}oz?6UwjAogowzGO8kSN7+2`b^$Az9L{K5*ko87EV45LT-`_##3 z>d3AGh@>=mbg34|6}+-gT9N+6Dr@44VEl44O&{&|w=qpbzC#iWMKa?5)>tI+KLQK@ Xq0QFqn(9Yl00000NkvXXu0mjfZ8tPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM$ z4;Uc5(trs7000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0007HNkl>>^T(;wlMT0~Ot)VTqh+Ws`GxPp;hgj3T=+`tJ|Wlw{vK+&bkXtYUKtybbyJ1`ZMAk`ZSuunR$SS-<{)N07g0F^2lt5nfgtp>ni zv0$Hcpf?so^LC#QP0g(vj=dS1np?%tbWqrRLP)nM1#=!hS8PHH`=+{a)px8G7Om+^!4=-4u_G+WK>jC05JGsfZO*T zQh%-M?;GttA-oGqc-$@?ci%ym5J%aOLu6%Tp-?CYg+e%;P6l4S!tGz7x}l8}oj&G; zn7|**e0DG~_8zZ$p4HGYa)lDDE{$AMKAG9Zb!L)m)y}^G$1gH+@$`;*00000NkvXX Hu0mjf@qSP6 diff --git a/manualtests/utils/singleapplication/.gitignore b/manualtests/utils/singleapplication/.gitignore deleted file mode 100644 index a24818bd..00000000 --- a/manualtests/utils/singleapplication/.gitignore +++ /dev/null @@ -1 +0,0 @@ -singleapplication diff --git a/manualtests/utils/singleapplication/main_singleapplication.cpp b/manualtests/utils/singleapplication/main_singleapplication.cpp deleted file mode 100644 index 65facf57..00000000 --- a/manualtests/utils/singleapplication/main_singleapplication.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Copyright (c) 2008, Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include - -class PlainTextEdit : public QPlainTextEdit { - Q_OBJECT - -public: - PlainTextEdit(QWidget *parent = 0) - : QPlainTextEdit(parent) { } - -public slots: - void messageReceived(QLocalSocket *socket) { - QString message; - QTextStream stream(socket); - stream >> message; - appendPlainText(message); - } - -}; - -int main(int argc, char **argv) -{ - SingleApplication app(argc, argv); - app.setApplicationName("testapp"); - if (app.arguments().count() > 1 - && app.sendMessage(app.arguments().last().toUtf8())) - return 0; - - PlainTextEdit plainTextEdit; - plainTextEdit.show(); - if (!app.startSingleServer()) - qWarning() << "Error starting server"; - app.connect(&app, SIGNAL(messageReceived(QLocalSocket *)), - &plainTextEdit, SLOT(messageReceived(QLocalSocket *))); - return app.exec(); -} - -#include "main_singleapplication.moc" - diff --git a/manualtests/utils/singleapplication/singleapplication.pro b/manualtests/utils/singleapplication/singleapplication.pro deleted file mode 100644 index a511dcd1..00000000 --- a/manualtests/utils/singleapplication/singleapplication.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../manualtests.pri) - -# Input -RESOURCES = -FORMS = -SOURCES = main_singleapplication.cpp singleapplication.cpp -HEADERS = singleapplication.h diff --git a/manualtests/utils/squeezelabel/.gitignore b/manualtests/utils/squeezelabel/.gitignore deleted file mode 100644 index f6332511..00000000 --- a/manualtests/utils/squeezelabel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -squeezelabel diff --git a/manualtests/utils/squeezelabel/main_squeezelabel.cpp b/manualtests/utils/squeezelabel/main_squeezelabel.cpp deleted file mode 100644 index 178954a8..00000000 --- a/manualtests/utils/squeezelabel/main_squeezelabel.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include - -#include "squeezelabel.h" - -int main(int argc, char **argv) -{ - QApplication application(argc, argv); - - SqueezeLabel label; - if (application.arguments().count() > 1) - label.setText(application.arguments().value(1)); - else - label.setText("This is one long sentence that I will have to ponder the meaning of"); - label.show(); - label.resize(100, label.height()); - - return application.exec(); -} - diff --git a/manualtests/utils/squeezelabel/squeezelabel.pro b/manualtests/utils/squeezelabel/squeezelabel.pro deleted file mode 100644 index 502ba275..00000000 --- a/manualtests/utils/squeezelabel/squeezelabel.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../manualtests.pri) - -# Input -RESOURCES = -FORMS = -SOURCES = main_squeezelabel.cpp squeezelabel.cpp -HEADERS = squeezelabel.h diff --git a/manualtests/utils/treesortfilterproxymodel/.gitignore b/manualtests/utils/treesortfilterproxymodel/.gitignore deleted file mode 100644 index c3df39de..00000000 --- a/manualtests/utils/treesortfilterproxymodel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -treesortfilterproxymodel diff --git a/manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp b/manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp deleted file mode 100644 index 5692131b..00000000 --- a/manualtests/utils/treesortfilterproxymodel/main_treesortfilterproxymodel.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "treesortfilterproxymodel.h" -#include "ui_treesortfilterproxymodeldialog.h" - -#include -#include -#include - -int main(int argc, char **argv) -{ - QApplication application(argc, argv); - - QDialog dialog; - Ui_TreeSortFilterProxyModelDialog ui; - ui.setupUi(&dialog); - - TreeSortFilterProxyModel *proxy = new TreeSortFilterProxyModel(&dialog); - dialog.connect(ui.search, SIGNAL(textChanged(const QString &)), - proxy, SLOT(setFilterRegExp(const QString &))); - QDirModel *dirModel = new QDirModel(&dialog); - proxy->setSourceModel(dirModel); - ui.treeView->setModel(proxy); - ui.treeView->setRootIndex(proxy->mapFromSource(dirModel->index(QDir::homePath()))); - dialog.show(); - - return application.exec(); -} - diff --git a/manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodel.pro b/manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodel.pro deleted file mode 100644 index 8cba043b..00000000 --- a/manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodel.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../manualtests.pri) - -# Input -SOURCES = main_treesortfilterproxymodel.cpp treesortfilterproxymodel.cpp -HEADERS = treesortfilterproxymodel.h - -FORMS += treesortfilterproxymodeldialog.ui diff --git a/manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodeldialog.ui b/manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodeldialog.ui deleted file mode 100644 index 842cc4be..00000000 --- a/manualtests/utils/treesortfilterproxymodel/treesortfilterproxymodeldialog.ui +++ /dev/null @@ -1,27 +0,0 @@ - - - TreeSortFilterProxyModelDialog - - - - 0 - 0 - 400 - 300 - - - - Dialog - - - - - - - - - - - - - diff --git a/manualtests/utils/utils.pro b/manualtests/utils/utils.pro deleted file mode 100644 index 1f38ed5d..00000000 --- a/manualtests/utils/utils.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - editview \ - lineedit \ - singleapplication \ - squeezelabel \ - treesortfilterproxymodel - -CONFIG += ordered diff --git a/manualtests/webviewsearch/.gitignore b/manualtests/webviewsearch/.gitignore deleted file mode 100644 index 00a73b0f..00000000 --- a/manualtests/webviewsearch/.gitignore +++ /dev/null @@ -1 +0,0 @@ -webviewsearch diff --git a/manualtests/webviewsearch/main_webviewsearch.cpp b/manualtests/webviewsearch/main_webviewsearch.cpp deleted file mode 100644 index bcbbeaf2..00000000 --- a/manualtests/webviewsearch/main_webviewsearch.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include - -#include "webviewsearch.h" - -class WebViewWSearch : public QWebView -{ - Q_OBJECT - -public: - WebViewWSearch(QWidget *parent = 0) : QWebView(parent) - { - } - -protected: - -void resizeEvent(QResizeEvent *event) -{ - int offset = event->size().height() - event->oldSize().height(); - int currentValue = page()->mainFrame()->scrollBarValue(Qt::Vertical); - setUpdatesEnabled(false); - page()->mainFrame()->setScrollBarValue(Qt::Vertical, currentValue - offset); - setUpdatesEnabled(true); - QWebView::resizeEvent(event); -} - -public slots: - void findText(const QString &text) { - findText(text); - } -}; - -int main(int argc, char **argv) -{ - QApplication application(argc, argv); - QMainWindow mainWindow; - - - QWidget *window = new QWidget; - QVBoxLayout *layout = new QVBoxLayout; - layout->setSpacing(0); - layout->setContentsMargins(0, 0, 0, 0); - WebViewWSearch *webView = new WebViewWSearch(&mainWindow); - WebViewSearch *webViewSearch = new WebViewSearch(webView); - layout->addWidget(webViewSearch); - webView->load(QUrl("http://reddit.com")); - layout->addWidget(webView); - window->setLayout(layout); - mainWindow.setCentralWidget(window); - mainWindow.show(); - - QMenuBar bar; - QMenu *editMenu = bar.addMenu(("&Edit")); - QAction *m_find = editMenu->addAction(("&Find")); - m_find->setShortcuts(QKeySequence::Find); - QObject::connect(m_find, SIGNAL(triggered()), webViewSearch, SLOT(showFind())); - new QShortcut(QKeySequence(Qt::Key_Slash), webViewSearch, SLOT(showFind())); - - return application.exec(); -} - -#include "main_webviewsearch.moc" diff --git a/manualtests/webviewsearch/webviewsearch.pro b/manualtests/webviewsearch/webviewsearch.pro deleted file mode 100644 index c687d100..00000000 --- a/manualtests/webviewsearch/webviewsearch.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../manualtests.pri) - -SOURCES += main_webviewsearch.cpp -HEADERS += From cc578caf4047f4190536c4f348e44b5f15736571 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 18 Sep 2020 18:14:31 +0200 Subject: [PATCH 26/64] Remove QMake --- .../addbookmarkdialog/addbookmarkdialog.pro | 9 -- autotests/autosaver/autosaver.pro | 10 -- autotests/autotests.pri | 21 --- autotests/autotests.pro | 21 --- autotests/bookmarknode/bookmarknode.pro | 14 -- autotests/downloadmanager/downloadmanager.pro | 10 -- .../historyfiltermodel/historyfiltermodel.pro | 10 -- autotests/historymanager/historymanager.pro | 10 -- autotests/modeltest/modeltest.pri | 4 - autotests/modeltoolbar/modeltoolbar.pro | 9 -- .../opensearchengine/opensearchengine.pro | 20 --- .../opensearchmanager/opensearchmanager.pro | 9 -- .../opensearchreader/opensearchreader.pro | 21 --- .../opensearchwriter/opensearchwriter.pro | 21 --- autotests/searchlineedit/searchlineedit.pro | 9 -- autotests/tabbar/tabbar.pro | 10 -- autotests/tabwidget/tabwidget.pro | 10 -- autotests/utils/editlistview/editlistview.pro | 12 -- autotests/utils/edittreeview/edittreeview.pro | 12 -- .../utils/languagemanager/languagemanager.pro | 13 -- autotests/utils/lineedit/lineedit.pro | 12 -- autotests/utils/utils.pro | 8 -- autotests/webactionmapper/webactionmapper.pro | 10 -- autotests/webpage/webpage.pro | 10 -- autotests/xbel/xbel.pro | 18 --- endorphin.pro | 17 --- install.pri | 13 -- src/.qmake.conf | 2 - src/bookmarks/bookmarks.pri | 27 ---- src/bookmarks/xbel/xbel.pri | 11 -- src/history/history.pri | 16 --- src/locale/locale.pri | 54 -------- src/locationbar/locationbar.pri | 13 -- src/opensearch/opensearch.pri | 27 ---- src/src.pri | 127 ------------------ src/src.pro | 63 --------- src/useragent/useragent.pri | 12 -- src/utils/utils.pri | 30 ----- tools/.qmake.conf | 2 - tools/cacheinfo/cacheinfo.pro | 32 ----- tools/htmlToXBel/htmlToXBel.pro | 35 ----- tools/placesimport/placesimport.pro | 30 ----- tools/tools.pro | 4 - webkittrunk.pri | 47 ------- 44 files changed, 875 deletions(-) delete mode 100644 autotests/addbookmarkdialog/addbookmarkdialog.pro delete mode 100644 autotests/autosaver/autosaver.pro delete mode 100644 autotests/autotests.pri delete mode 100644 autotests/autotests.pro delete mode 100644 autotests/bookmarknode/bookmarknode.pro delete mode 100644 autotests/downloadmanager/downloadmanager.pro delete mode 100644 autotests/historyfiltermodel/historyfiltermodel.pro delete mode 100644 autotests/historymanager/historymanager.pro delete mode 100644 autotests/modeltest/modeltest.pri delete mode 100644 autotests/modeltoolbar/modeltoolbar.pro delete mode 100644 autotests/opensearchengine/opensearchengine.pro delete mode 100644 autotests/opensearchmanager/opensearchmanager.pro delete mode 100644 autotests/opensearchreader/opensearchreader.pro delete mode 100644 autotests/opensearchwriter/opensearchwriter.pro delete mode 100644 autotests/searchlineedit/searchlineedit.pro delete mode 100644 autotests/tabbar/tabbar.pro delete mode 100644 autotests/tabwidget/tabwidget.pro delete mode 100644 autotests/utils/editlistview/editlistview.pro delete mode 100644 autotests/utils/edittreeview/edittreeview.pro delete mode 100644 autotests/utils/languagemanager/languagemanager.pro delete mode 100644 autotests/utils/lineedit/lineedit.pro delete mode 100644 autotests/utils/utils.pro delete mode 100644 autotests/webactionmapper/webactionmapper.pro delete mode 100644 autotests/webpage/webpage.pro delete mode 100644 autotests/xbel/xbel.pro delete mode 100644 endorphin.pro delete mode 100644 install.pri delete mode 100644 src/.qmake.conf delete mode 100644 src/bookmarks/bookmarks.pri delete mode 100644 src/bookmarks/xbel/xbel.pri delete mode 100644 src/history/history.pri delete mode 100644 src/locale/locale.pri delete mode 100644 src/locationbar/locationbar.pri delete mode 100644 src/opensearch/opensearch.pri delete mode 100644 src/src.pri delete mode 100644 src/src.pro delete mode 100644 src/useragent/useragent.pri delete mode 100644 src/utils/utils.pri delete mode 100644 tools/.qmake.conf delete mode 100644 tools/cacheinfo/cacheinfo.pro delete mode 100644 tools/htmlToXBel/htmlToXBel.pro delete mode 100644 tools/placesimport/placesimport.pro delete mode 100644 tools/tools.pro delete mode 100644 webkittrunk.pri diff --git a/autotests/addbookmarkdialog/addbookmarkdialog.pro b/autotests/addbookmarkdialog/addbookmarkdialog.pro deleted file mode 100644 index b23b95df..00000000 --- a/autotests/addbookmarkdialog/addbookmarkdialog.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES += tst_addbookmarkdialog.cpp diff --git a/autotests/autosaver/autosaver.pro b/autotests/autosaver/autosaver.pro deleted file mode 100644 index 2ca5ec4f..00000000 --- a/autotests/autosaver/autosaver.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES = tst_autosaver.cpp autosaver.cpp -HEADERS = autosaver.h diff --git a/autotests/autotests.pri b/autotests/autotests.pri deleted file mode 100644 index f72584ad..00000000 --- a/autotests/autotests.pri +++ /dev/null @@ -1,21 +0,0 @@ -win32: CONFIG += console -mac:CONFIG -= app_bundle - -CONFIG += qtestlib - -include($$PWD/../src/src.pri) -include($$PWD/modeltest/modeltest.pri) - -HEADERS += qtest_endorphin.h - -DEFINES += AUTOTESTS - -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD - -RCC_DIR = $$PWD/.rcc -UI_DIR = $$PWD/.ui -MOC_DIR = $$PWD/.moc -OBJECTS_DIR = $$PWD/.obj - - diff --git a/autotests/autotests.pro b/autotests/autotests.pro deleted file mode 100644 index ca955e7d..00000000 --- a/autotests/autotests.pro +++ /dev/null @@ -1,21 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - addbookmarkdialog \ - autosaver \ - bookmarknode \ - historyfiltermodel \ - historymanager \ - modeltoolbar \ - opensearchengine \ - opensearchmanager \ - opensearchreader \ - opensearchwriter \ - searchlineedit \ - tabbar \ - tabwidget \ - utils \ - webactionmapper \ - webpage \ - xbel - -CONFIG += ordered diff --git a/autotests/bookmarknode/bookmarknode.pro b/autotests/bookmarknode/bookmarknode.pro deleted file mode 100644 index b796c019..00000000 --- a/autotests/bookmarknode/bookmarknode.pro +++ /dev/null @@ -1,14 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . ../ - -include(../autotests.pri) - -QT = core - -# Input -SOURCES = bookmarknode.cpp tst_bookmarknode.cpp -HEADERS = bookmarknode.h -FORMS = -RESOURCE = diff --git a/autotests/downloadmanager/downloadmanager.pro b/autotests/downloadmanager/downloadmanager.pro deleted file mode 100644 index f53cddff..00000000 --- a/autotests/downloadmanager/downloadmanager.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES += tst_downloadmanager.cpp -HEADERS += diff --git a/autotests/historyfiltermodel/historyfiltermodel.pro b/autotests/historyfiltermodel/historyfiltermodel.pro deleted file mode 100644 index 2315b830..00000000 --- a/autotests/historyfiltermodel/historyfiltermodel.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES += tst_historyfiltermodel.cpp -HEADERS += diff --git a/autotests/historymanager/historymanager.pro b/autotests/historymanager/historymanager.pro deleted file mode 100644 index 92e9c624..00000000 --- a/autotests/historymanager/historymanager.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES += tst_historymanager.cpp -HEADERS += diff --git a/autotests/modeltest/modeltest.pri b/autotests/modeltest/modeltest.pri deleted file mode 100644 index 358a0778..00000000 --- a/autotests/modeltest/modeltest.pri +++ /dev/null @@ -1,4 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -SOURCES += $$PWD/modeltest.cpp -HEADERS += $$PWD/modeltest.h diff --git a/autotests/modeltoolbar/modeltoolbar.pro b/autotests/modeltoolbar/modeltoolbar.pro deleted file mode 100644 index 2a63be59..00000000 --- a/autotests/modeltoolbar/modeltoolbar.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -SOURCES += \ - tst_modeltoolbar.cpp diff --git a/autotests/opensearchengine/opensearchengine.pro b/autotests/opensearchengine/opensearchengine.pro deleted file mode 100644 index 9a5b215a..00000000 --- a/autotests/opensearchengine/opensearchengine.pro +++ /dev/null @@ -1,20 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -SOURCES = \ - opensearchengine.cpp \ - opensearchenginedelegate.cpp \ - tst_opensearchengine.cpp - -HEADERS = \ - opensearchengine.h \ - opensearchenginedelegate.h - -FORMS = - -RESOURCES = \ - opensearchengine.qrc diff --git a/autotests/opensearchmanager/opensearchmanager.pro b/autotests/opensearchmanager/opensearchmanager.pro deleted file mode 100644 index 8ba76ebd..00000000 --- a/autotests/opensearchmanager/opensearchmanager.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -SOURCES += \ - tst_opensearchmanager.cpp \ No newline at end of file diff --git a/autotests/opensearchreader/opensearchreader.pro b/autotests/opensearchreader/opensearchreader.pro deleted file mode 100644 index 392567a3..00000000 --- a/autotests/opensearchreader/opensearchreader.pro +++ /dev/null @@ -1,21 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -SOURCES = \ - opensearchengine.cpp \ - opensearchreader.cpp \ - tst_opensearchreader.cpp - -HEADERS = \ - opensearchengine.h \ - opensearchreader.h - -FORMS = - -RESOURCES = \ - opensearchreader.qrc - diff --git a/autotests/opensearchwriter/opensearchwriter.pro b/autotests/opensearchwriter/opensearchwriter.pro deleted file mode 100644 index 13ffaff7..00000000 --- a/autotests/opensearchwriter/opensearchwriter.pro +++ /dev/null @@ -1,21 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -SOURCES = \ - opensearchengine.cpp \ - opensearchwriter.cpp \ - tst_opensearchwriter.cpp - -HEADERS = \ - opensearchengine.h \ - opensearchwriter.h - -FORMS = - -RESOURCES = \ - opensearchwriter.qrc - diff --git a/autotests/searchlineedit/searchlineedit.pro b/autotests/searchlineedit/searchlineedit.pro deleted file mode 100644 index 10414922..00000000 --- a/autotests/searchlineedit/searchlineedit.pro +++ /dev/null @@ -1,9 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES += tst_searchlineedit.cpp diff --git a/autotests/tabbar/tabbar.pro b/autotests/tabbar/tabbar.pro deleted file mode 100644 index 880ee086..00000000 --- a/autotests/tabbar/tabbar.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . ../ - -include(../autotests.pri) - -# Input -SOURCES += tst_tabbar.cpp -HEADERS += diff --git a/autotests/tabwidget/tabwidget.pro b/autotests/tabwidget/tabwidget.pro deleted file mode 100644 index b8d1e608..00000000 --- a/autotests/tabwidget/tabwidget.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . ../ - -include(../autotests.pri) - -# Input -SOURCES += tst_tabwidget.cpp -HEADERS += diff --git a/autotests/utils/editlistview/editlistview.pro b/autotests/utils/editlistview/editlistview.pro deleted file mode 100644 index f089b9c8..00000000 --- a/autotests/utils/editlistview/editlistview.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES = tst_editlistview.cpp editlistview.cpp -HEADERS = editlistview.h -FORMS = -RESOURCES = diff --git a/autotests/utils/edittreeview/edittreeview.pro b/autotests/utils/edittreeview/edittreeview.pro deleted file mode 100644 index 00a4dea5..00000000 --- a/autotests/utils/edittreeview/edittreeview.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . ../ - -include(../../autotests.pri) - -# Input -SOURCES = tst_edittreeview.cpp edittreeview.cpp -HEADERS = edittreeview.h -FORMS = -RESOURCES = diff --git a/autotests/utils/languagemanager/languagemanager.pro b/autotests/utils/languagemanager/languagemanager.pro deleted file mode 100644 index 9c0db47f..00000000 --- a/autotests/utils/languagemanager/languagemanager.pro +++ /dev/null @@ -1,13 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . ../ - -include(../../autotests.pri) -include(../../../src/locale/locale.pri) - -# Input -SOURCES = languagemanager.cpp tst_languagemanager.cpp -HEADERS = languagemanager.h -FORMS = -RESOURCES = diff --git a/autotests/utils/lineedit/lineedit.pro b/autotests/utils/lineedit/lineedit.pro deleted file mode 100644 index d829e9f4..00000000 --- a/autotests/utils/lineedit/lineedit.pro +++ /dev/null @@ -1,12 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../../autotests.pri) - -# Input -SOURCES = tst_lineedit.cpp lineedit.cpp -HEADERS = lineedit.h lineedit_p.h -FORMS = -RESOURCES = diff --git a/autotests/utils/utils.pro b/autotests/utils/utils.pro deleted file mode 100644 index 08666cd6..00000000 --- a/autotests/utils/utils.pro +++ /dev/null @@ -1,8 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - editlistview \ - edittreeview \ - languagemanager \ - lineedit - -CONFIG += ordered diff --git a/autotests/webactionmapper/webactionmapper.pro b/autotests/webactionmapper/webactionmapper.pro deleted file mode 100644 index 08c7da89..00000000 --- a/autotests/webactionmapper/webactionmapper.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES += tst_webactionmapper.cpp -HEADERS += diff --git a/autotests/webpage/webpage.pro b/autotests/webpage/webpage.pro deleted file mode 100644 index cd99685e..00000000 --- a/autotests/webpage/webpage.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . ../ - -include(../autotests.pri) - -# Input -SOURCES += tst_webpage.cpp -HEADERS += diff --git a/autotests/xbel/xbel.pro b/autotests/xbel/xbel.pro deleted file mode 100644 index d9e417c7..00000000 --- a/autotests/xbel/xbel.pro +++ /dev/null @@ -1,18 +0,0 @@ -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . - -include(../autotests.pri) - -# Input -SOURCES = \ - tst_xbel.cpp \ - bookmarks/bookmarknode.cpp \ - bookmarks/xbel/xbelreader.cpp \ - bookmarks/xbel/xbelwriter.cpp - -HEADERS = \ - bookmarks/bookmarknode.h \ - bookmarks/xbel/xbelreader.h \ - bookmarks/xbel/xbelwriter.h diff --git a/endorphin.pro b/endorphin.pro deleted file mode 100644 index 65480cf7..00000000 --- a/endorphin.pro +++ /dev/null @@ -1,17 +0,0 @@ -lessThan(QT_VERSION, 5.0) { - error("Endorphin requires Qt 5.0 or greater") -} - -TEMPLATE = subdirs -SUBDIRS = src tools -CONFIG += ordered - -unix { - warning("It is recommended to use CMake instead of QMake") - # this is an ugly work around to do .PHONY: doc - doxygen.target = doc dox - doxygen.commands = doxygen Doxyfile - doxygen.depends = Doxyfile - QMAKE_EXTRA_TARGETS += doxygen -} - diff --git a/install.pri b/install.pri deleted file mode 100644 index 761010ee..00000000 --- a/install.pri +++ /dev/null @@ -1,13 +0,0 @@ - -unix { - isEmpty(PREFIX) { - PREFIX = /usr/local - } - BINDIR = $$PREFIX/bin - - INSTALLS += target - target.path = $$BINDIR - - DATADIR = $$PREFIX/share -} - diff --git a/src/.qmake.conf b/src/.qmake.conf deleted file mode 100644 index 7c1d952d..00000000 --- a/src/.qmake.conf +++ /dev/null @@ -1,2 +0,0 @@ -QMAKEPATH += /usr/local/opt/qtwebkit -QMAKE_MAC_SDK = macosx10.13 diff --git a/src/bookmarks/bookmarks.pri b/src/bookmarks/bookmarks.pri deleted file mode 100644 index 34f899e6..00000000 --- a/src/bookmarks/bookmarks.pri +++ /dev/null @@ -1,27 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - addbookmarkdialog.h \ - bookmarksdialog.h \ - bookmarksmanager.h \ - bookmarksmenu.h \ - bookmarksmodel.h \ - bookmarkstoolbar.h \ - bookmarknode.h - -SOURCES += \ - addbookmarkdialog.cpp \ - bookmarksdialog.cpp \ - bookmarksmanager.cpp \ - bookmarksmenu.cpp \ - bookmarksmodel.cpp \ - bookmarkstoolbar.cpp \ - bookmarknode.cpp - -FORMS += \ - addbookmarkdialog.ui \ - bookmarksdialog.ui - -include(xbel/xbel.pri) diff --git a/src/bookmarks/xbel/xbel.pri b/src/bookmarks/xbel/xbel.pri deleted file mode 100644 index 7615d5d3..00000000 --- a/src/bookmarks/xbel/xbel.pri +++ /dev/null @@ -1,11 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - xbelreader.h \ - xbelwriter.h - -SOURCES += \ - xbelreader.cpp \ - xbelwriter.cpp diff --git a/src/history/history.pri b/src/history/history.pri deleted file mode 100644 index 96ff3e59..00000000 --- a/src/history/history.pri +++ /dev/null @@ -1,16 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - history.h \ - historycompleter.h \ - historymanager.h - -SOURCES += \ - history.cpp \ - historycompleter.cpp \ - historymanager.cpp - -FORMS += \ - history.ui diff --git a/src/locale/locale.pri b/src/locale/locale.pri deleted file mode 100644 index 893fd971..00000000 --- a/src/locale/locale.pri +++ /dev/null @@ -1,54 +0,0 @@ - -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -TRANSLATIONS += \ - ast.ts \ - ca.ts \ - cs_CZ.ts \ - da_DK.ts \ - de_DE.ts \ - el_GR.ts \ - es.ts \ - es_CR.ts \ - et_EE.ts \ - fi_FI.ts \ - fr_CA.ts \ - fr_FR.ts \ - gl.ts \ - he_IL.ts \ - hu_HU.ts \ - it_IT.ts \ - ja_JP.ts \ - ko_KR.ts \ - ms.ts \ - nb_NO.ts \ - nl.ts \ - pl_PL.ts \ - pt_PT.ts \ - pt_BR.ts \ - ru_RU.ts \ - sk_SK.ts \ - sr_RS.ts \ - sr_RS@latin.ts \ - tr_TR.ts \ - uk.ts \ - zh_CN.ts \ - zh_TW.ts - -isEmpty(QMAKE_LRELEASE) { - win32|os2:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe - else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease - unix { - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt4 } - } else { - !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease } - } -} - -updateqm.input = TRANSLATIONS -updateqm.output = .qm/locale/${QMAKE_FILE_BASE}.qm -updateqm.commands = $$QMAKE_LRELEASE -silent ${QMAKE_FILE_IN} -qm .qm/locale/${QMAKE_FILE_BASE}.qm -updateqm.CONFIG += no_link target_predeps -QMAKE_EXTRA_COMPILERS += updateqm diff --git a/src/locationbar/locationbar.pri b/src/locationbar/locationbar.pri deleted file mode 100644 index 0e833656..00000000 --- a/src/locationbar/locationbar.pri +++ /dev/null @@ -1,13 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - locationbar.h \ - locationbarsiteicon.h \ - privacyindicator.h - -SOURCES += \ - locationbar.cpp \ - locationbarsiteicon.cpp \ - privacyindicator.cpp diff --git a/src/opensearch/opensearch.pri b/src/opensearch/opensearch.pri deleted file mode 100644 index e46dda23..00000000 --- a/src/opensearch/opensearch.pri +++ /dev/null @@ -1,27 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - opensearchdialog.h \ - opensearchengine.h \ - opensearchenginedelegate.h \ - opensearchengineaction.h \ - opensearchenginemodel.h \ - opensearchmanager.h \ - opensearchreader.h \ - opensearchwriter.h - -SOURCES += \ - opensearchdialog.cpp \ - opensearchengine.cpp \ - opensearchenginedelegate.cpp \ - opensearchengineaction.cpp \ - opensearchenginemodel.cpp \ - opensearchmanager.cpp \ - opensearchreader.cpp \ - opensearchwriter.cpp - -FORMS += opensearchdialog.ui - -QT += script diff --git a/src/src.pri b/src/src.pri deleted file mode 100644 index ea18a344..00000000 --- a/src/src.pri +++ /dev/null @@ -1,127 +0,0 @@ -CONFIG += qt warn_on -contains(QT_BUILD_PARTS, tools): CONFIG += uitools -else : DEFINES += QT_NO_UITOOLS - -win32|os2 : Debug : CONFIG += console - -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD - -QT += webkit network webkitwidgets printsupport uitools - -# Share object files for faster compiling -RCC_DIR = $$PWD/.rcc -UI_DIR = $$PWD/.ui -MOC_DIR = $$PWD/.moc -OBJECTS_DIR = $$PWD/.obj - -exists(../.git/HEAD) { - GITVERSION=$$system(git log -n1 --pretty=format:%h) - !isEmpty(GITVERSION) { - GITCHANGENUMBER=$$system(git log --pretty=format:%h | wc -l) - DEFINES += GITVERSION=\"\\\"$$GITVERSION\\\"\" - DEFINES += GITCHANGENUMBER=\"\\\"$$GITCHANGENUMBER\\\"\" - } -} - -VPATH += $$PWD - -FORMS += \ - aboutdialog.ui \ - acceptlanguagedialog.ui \ - downloaditem.ui \ - downloads.ui \ - searchbanner.ui \ - settings.ui - -HEADERS += \ - aboutdialog.h \ - acceptlanguagedialog.h \ - autosaver.h \ - browserapplication.h \ - browsermainwindow.h \ - clearprivatedata.h \ - clearbutton.h \ - downloadmanager.h \ - modelmenu.h \ - modeltoolbar.h \ - plaintexteditsearch.h \ - searchbar.h \ - searchbutton.h \ - searchlineedit.h \ - settings.h \ - sourcehighlighter.h \ - sourceviewer.h \ - tabbar.h \ - tabwidget.h \ - toolbarsearch.h \ - webactionmapper.h \ - webpage.h \ - webview.h \ - webviewsearch.h - -SOURCES += \ - aboutdialog.cpp \ - acceptlanguagedialog.cpp \ - autosaver.cpp \ - browserapplication.cpp \ - browsermainwindow.cpp \ - clearprivatedata.cpp \ - clearbutton.cpp \ - downloadmanager.cpp \ - modelmenu.cpp \ - modeltoolbar.cpp \ - plaintexteditsearch.cpp \ - searchbar.cpp \ - searchbutton.cpp \ - searchlineedit.cpp \ - settings.cpp \ - sourcehighlighter.cpp \ - sourceviewer.cpp \ - tabbar.cpp \ - tabwidget.cpp \ - toolbarsearch.cpp \ - webactionmapper.cpp \ - webpage.cpp \ - webview.cpp \ - webviewsearch.cpp - -include(bookmarks/bookmarks.pri) -include(history/history.pri) -include(locationbar/locationbar.pri) -include(opensearch/opensearch.pri) -include(utils/utils.pri) -include(useragent/useragent.pri) - -RESOURCES += \ - $$PWD/data/data.qrc \ - $$PWD/data/graphics/graphics.qrc \ - $$PWD/data/searchengines/searchengines.qrc \ - $$PWD/htmls/htmls.qrc - -DISTFILES += ../AUTHORS \ - ../ChangeLog \ - ../LICENSE.GPL2 \ - ../LICENSE.GPL3 \ - ../README - -win32 { - RC_FILE = $$PWD/browser.rc - LIBS += -luser32 -} - -mac { - ICON = browser.icns - QMAKE_INFO_PLIST = $$PWD/Info_mac.plist -} - -include(../webkittrunk.pri) - -unix { - PKGDATADIR = $$DATADIR/endorphin - DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\" -} - -win32 { - LIBS += -ladvapi32 -} diff --git a/src/src.pro b/src/src.pro deleted file mode 100644 index 7a50418f..00000000 --- a/src/src.pro +++ /dev/null @@ -1,63 +0,0 @@ -TEMPLATE = app - -TARGET = endorphin -mac { - TARGET = Endorphin - QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10 -} - -DEFINES += \ - QT_STRICT_ITERATORS \ - -include(../install.pri) - -include(src.pri) - -SOURCES += main.cpp - -DESTDIR = ../ - -include(locale/locale.pri) - -!mac { -unix { - INSTALLS += translations desktop iconxpm iconsvg icon16 icon32 icon128 man man-compress - - translations.path = $$PKGDATADIR - translations.files += .qm/locale - - desktop.path = $$DATADIR/applications - desktop.files += endorphin.desktop - - iconxpm.path = $$DATADIR/pixmaps - iconxpm.files += data/endorphin.xpm - - iconsvg.path = $$DATADIR/icons/hicolor/scalable/apps - iconsvg.files += data/endorphin.svg - - icon16.path = $$DATADIR/icons/hicolor/16x16/apps - icon16.files += data/16x16/endorphin.png - - icon32.path = $$DATADIR/icons/hicolor/32x32/apps - icon32.files += data/32x32/endorphin.png - - icon128.path = $$DATADIR/icons/hicolor/128x128/apps - icon128.files += data/128x128/endorphin.png - - man.path = $$DATADIR/man/man1 - man.files += data/endorphin.1 - - man-compress.path = $$DATADIR/man/man1 - man-compress.extra = "" "gzip -9 -f \$(INSTALL_ROOT)/$$DATADIR/man/man1/endorphin.1" "" - man-compress.depends = install_man - - GNOME_DEFAULT_APPS_PATH = $$system(pkg-config --variable=defappsdir gnome-default-applications) - - !isEmpty(GNOME_DEFAULT_APPS_PATH) { - INSTALLS += gnome-default-app - - gnome-default-app.path = $$GNOME_DEFAULT_APPS_PATH - gnome-default-app.files = data/endorphin.xml - } -} -} diff --git a/src/useragent/useragent.pri b/src/useragent/useragent.pri deleted file mode 100644 index 01eb3d92..00000000 --- a/src/useragent/useragent.pri +++ /dev/null @@ -1,12 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - useragentmenu.h - -SOURCES += \ - useragentmenu.cpp - -RESOURCES += \ - useragents.qrc diff --git a/src/utils/utils.pri b/src/utils/utils.pri deleted file mode 100644 index 4469520b..00000000 --- a/src/utils/utils.pri +++ /dev/null @@ -1,30 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -VPATH += $$PWD - -HEADERS += \ - editlistview.h \ - edittableview.h \ - edittreeview.h \ - languagemanager.h \ - lineedit.h \ - lineedit_p.h \ - singleapplication.h \ - squeezelabel.h \ - treesortfilterproxymodel.h - -SOURCES += \ - editlistview.cpp \ - edittableview.cpp \ - edittreeview.cpp \ - languagemanager.cpp \ - lineedit.cpp \ - singleapplication.cpp \ - squeezelabel.cpp \ - treesortfilterproxymodel.cpp - -win32 { - HEADERS += explorerstyle.h - SOURCES += explorerstyle.cpp - LIBS += -lgdi32 -} diff --git a/tools/.qmake.conf b/tools/.qmake.conf deleted file mode 100644 index 7c1d952d..00000000 --- a/tools/.qmake.conf +++ /dev/null @@ -1,2 +0,0 @@ -QMAKEPATH += /usr/local/opt/qtwebkit -QMAKE_MAC_SDK = macosx10.13 diff --git a/tools/cacheinfo/cacheinfo.pro b/tools/cacheinfo/cacheinfo.pro deleted file mode 100644 index 03470ab1..00000000 --- a/tools/cacheinfo/cacheinfo.pro +++ /dev/null @@ -1,32 +0,0 @@ -TEMPLATE = app -TARGET = endorphin-cacheinfo -DEPENDPATH += . -INCLUDEPATH += . - -win32|os2: CONFIG += console -mac:CONFIG -= app_bundle - -QT += network - -# Input -SOURCES += main.cpp - -RCC_DIR = $$PWD/.rcc -UI_DIR = $$PWD/.ui -MOC_DIR = $$PWD/.moc -OBJECTS_DIR = $$PWD/.obj - -include(../../install.pri) - -!mac { -unix { - INSTALLS += man man-compress - - man.path = $$DATADIR/man/man1 - man.files += data/endorphin-cacheinfo.1 - - man-compress.path = $$DATADIR/man/man1 - man-compress.extra = "" "gzip -9 -f \$(INSTALL_ROOT)/$$DATADIR/man/man1/endorphin-cacheinfo.1" "" - man-compress.depends = install_man -} -} diff --git a/tools/htmlToXBel/htmlToXBel.pro b/tools/htmlToXBel/htmlToXBel.pro deleted file mode 100644 index 8fc2fb3c..00000000 --- a/tools/htmlToXBel/htmlToXBel.pro +++ /dev/null @@ -1,35 +0,0 @@ -TEMPLATE = app -TARGET = htmlToXBel -DEPENDPATH += . -INCLUDEPATH += . - -win32|os2: CONFIG += console -mac:CONFIG -= app_bundle - -QT += network webkit webkitwidgets - -# Input -SOURCES += main.cpp - -RCC_DIR = $$PWD/.rcc -UI_DIR = $$PWD/.ui -MOC_DIR = $$PWD/.moc -OBJECTS_DIR = $$PWD/.obj - -RESOURCES += source.qrc - -include(../../install.pri) -include(../../webkittrunk.pri) - -!mac { -unix { - INSTALLS += man man-compress - - man.path = $$DATADIR/man/man1 - man.files += data/htmlToXBel.1 - - man-compress.path = $$DATADIR/man/man1 - man-compress.extra = "" "gzip -9 -f \$(INSTALL_ROOT)/$$DATADIR/man/man1/htmlToXBel.1" "" - man-compress.depends = install_man -} -} diff --git a/tools/placesimport/placesimport.pro b/tools/placesimport/placesimport.pro deleted file mode 100644 index 7998a518..00000000 --- a/tools/placesimport/placesimport.pro +++ /dev/null @@ -1,30 +0,0 @@ -TEMPLATE = app -TARGET = endorphin-placesimport -DEPENDPATH += . -INCLUDEPATH += . - -win32|os2: CONFIG += console -mac:CONFIG -= app_bundle - -QT += sql - -# Input -SOURCES += main_placesimport.cpp - -include(../../install.pri) -# This can be improved to just include the history manager and utility classes -# once the history classes are separated out into individual files. -include(../../src/src.pri) - -!mac { -unix { - INSTALLS += man man-compress - - man.path = $$DATADIR/man/man1 - man.files += data/endorphin-placesimport.1 - - man-compress.path = $$DATADIR/man/man1 - man-compress.extra = "" "gzip -9 -f \$(INSTALL_ROOT)/$$DATADIR/man/man1/endorphin-placesimport.1" "" - man-compress.depends = install_man -} -} diff --git a/tools/tools.pro b/tools/tools.pro deleted file mode 100644 index 428f211c..00000000 --- a/tools/tools.pro +++ /dev/null @@ -1,4 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = cacheinfo htmlToXBel placesimport - -CONFIG += ordered diff --git a/webkittrunk.pri b/webkittrunk.pri deleted file mode 100644 index d1974af1..00000000 --- a/webkittrunk.pri +++ /dev/null @@ -1,47 +0,0 @@ -# To build Endorphin against WebKit trunk: -# export QT_WEBKIT=webkit_trunk -# export WEBKITDIR=$HOME/dev/webkit -# -# Optional: -# export WEBKITOUTPUTDIR=$HOME/build/webkit -# export WEBKITBRANCH=some_cool_git_branch_of_webkit -# -CONFIG += $$(QT_WEBKIT) -webkit_trunk { - WEBKITDIR = $$(WEBKITDIR) - isEmpty(WEBKITDIR): error(Please point WEBKITDIR at the root of your WebKit source tree) - - OUTPUT_DIR = $$(WEBKITOUTPUTDIR) - isEmpty(OUTPUT_DIR): OUTPUT_DIR = $$WEBKITDIR/WebKitBuild - - WEBKITBRANCH = $$(WEBKITBRANCH) - !isEmpty(WEBKITBRANCH) { - OUTPUT_DIR = $$OUTPUT_DIR/$$WEBKITBRANCH - } - - # When building in debug try to link to the debug version of webkit - # and vice versa in release, but when they can not be paired up - # because webkit only has release or debug libs fall back to the other one - CONFIG(debug) { - exists($$OUTPUT_DIR/Debug) { - OUTPUT_DIR = $$OUTPUT_DIR/Debug - } else { - OUTPUT_DIR = $$OUTPUT_DIR/Release - } - } else:CONFIG(release) { - exists($$OUTPUT_DIR/Release) { - OUTPUT_DIR = $$OUTPUT_DIR/Release - } else { - OUTPUT_DIR = $$OUTPUT_DIR/Debug - } - } - - message(Using WebKit Trunk at $$WEBKITDIR) - message(Using WebKit Build at $$OUTPUT_DIR) - - QT -= webkit - DEFINES += WEBKIT_TRUNK - include($$WEBKITDIR/WebKit.pri) - QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR -} - From 787739d346016c447540833e88aef053006e39f1 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 19 Sep 2020 18:30:48 +0200 Subject: [PATCH 27/64] Run astyle again --- autotests/autosaver/tst_autosaver.h | 6 +- .../downloadmanager/tst_downloadmanager.h | 4 +- .../tst_historyfiltermodel.cpp | 18 +-- .../historymanager/tst_historymanager.cpp | 42 +++--- autotests/historymanager/tst_historymanager.h | 4 +- autotests/modeltest/modeltest.cpp | 2 +- autotests/modeltoolbar/tst_modeltoolbar.cpp | 17 ++- .../opensearchengine/tst_opensearchengine.cpp | 122 +++++++++-------- .../opensearchreader/tst_opensearchreader.cpp | 34 ++--- .../opensearchwriter/tst_opensearchwriter.cpp | 18 +-- .../searchlineedit/tst_searchlineedit.cpp | 3 +- autotests/tabbar/tst_tabbar.cpp | 48 +++++-- autotests/tabwidget/tst_tabwidget.cpp | 20 ++- autotests/utils/lineedit/tst_lineedit.cpp | 4 +- autotests/webpage/tst_webpage.cpp | 24 ++-- src/bookmarks/addbookmarkdialog.cpp | 8 +- src/bookmarks/bookmarksmenu.cpp | 8 +- src/bookmarks/bookmarkstoolbar.cpp | 8 +- src/history/history.h | 7 +- src/history/historymanager.h | 10 +- src/htmls/dirlist.html | 123 ++++++++++-------- src/htmls/notfound.html | 78 ++++++----- src/webview.cpp | 4 +- tools/cacheinfo/main.cpp | 8 +- tools/htmlToXBel/main.cpp | 4 +- tools/htmlToXBel/mainapp.h | 2 +- .../htmlToXBel/tests/firefox3-bookmarks.html | 87 +++++++------ tools/htmlToXBel/tests/ie7-bookmarks.html | 46 +++---- tools/htmlToXBel/tests/opera9-bookmarks.html | 36 ++--- 29 files changed, 448 insertions(+), 347 deletions(-) diff --git a/autotests/autosaver/tst_autosaver.h b/autotests/autosaver/tst_autosaver.h index 3ec51536..511e97c0 100644 --- a/autotests/autosaver/tst_autosaver.h +++ b/autotests/autosaver/tst_autosaver.h @@ -48,12 +48,14 @@ class SubAutoSaver : public AutoSaver public: SubAutoSaver(QObject *parent = 0) : AutoSaver(parent) {} void call_timerEvent(QTimerEvent *event) - { return SubAutoSaver::timerEvent(event); } + { + return SubAutoSaver::timerEvent(event); + } }; class TestClass : public QObject { -Q_OBJECT + Q_OBJECT signals: void saveCalled(); diff --git a/autotests/downloadmanager/tst_downloadmanager.h b/autotests/downloadmanager/tst_downloadmanager.h index cdd17d58..329ed546 100644 --- a/autotests/downloadmanager/tst_downloadmanager.h +++ b/autotests/downloadmanager/tst_downloadmanager.h @@ -49,8 +49,8 @@ class SubDownloadManager : public DownloadManager { public: SubDownloadManager(QWidget *parent = 0) - : DownloadManager(parent) - {} + : DownloadManager(parent) + {} }; diff --git a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp index 33147b0d..49ebe46b 100644 --- a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp +++ b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp @@ -68,8 +68,8 @@ HistoryList makeHistoryList(int count) for (int i = 0; i < count; ++i) { HistoryEntry item; QString url = QString("http://%1host-%2.com/") - .arg(qrand() % 2 ? "www." : "") - .arg(QString::number(i)); + .arg(qrand() % 2 ? "www." : "") + .arg(QString::number(i)); item.url = url; item.title = QString("title %1").arg(i); item.dateTime = dateTime; @@ -186,8 +186,8 @@ void tst_HistoryFilterModel::addRow_data() list4.insert(1, list4.at(1)); list4[1].dateTime = list4[1].dateTime.addSecs(1); QTest::newRow("many-0") << list4 - << list4[0].url - << (EnabledList() << 0 << 0 << 2 << 2 << 4 << 5 << 6); + << list4[0].url + << (EnabledList() << 0 << 0 << 2 << 2 << 4 << 5 << 6); HistoryList list5 = makeHistoryList(3); // 0, 1, 2 @@ -200,8 +200,8 @@ void tst_HistoryFilterModel::addRow_data() // ?, 1, 2, 2, 4, 2 QTest::newRow("many-1") << list5 - << list5[1].url - << (EnabledList() << 0 << 1 << 0 << 0 << 4 << 0); + << list5[1].url + << (EnabledList() << 0 << 1 << 0 << 0 << 4 << 0); } void tst_HistoryFilterModel::addRow() @@ -223,9 +223,9 @@ void tst_HistoryFilterModel::addRow() QCOMPARE(model.historyLocation(model.history->history().value(i).url), enabledList[i]); if (i > 0 - && enabledList[i] != 0 - && (enabledList[i-1] < enabledList[i] - || enabledList[i-1] == 0)) + && enabledList[i] != 0 + && (enabledList[i-1] < enabledList[i] + || enabledList[i-1] == 0)) ++currentRow; if (currentRow >= model.rowCount() || enabledList[i] == 0) continue; diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index df8b980c..1e167284 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -118,22 +118,22 @@ void tst_HistoryManager::addHistoryEntry_data() HistoryList swap; swap << item2 << item1; QTest::newRow("2-2,1") << one << (HistoryList() << item2) << swap; -/* - // move to test for the historyFilterModel - HistoryEntry item3("http://baz.com", QDateTime::currentDateTime().addDays(-1)); - HistoryEntry item3n("http://baz.com", QDateTime::currentDateTime()); - QTest::newRow("move-1") << (HistoryList() << item3 << item2 << item1) - << (HistoryList() << item3) - << (HistoryList() << item3 << item2 << item1); - - QTest::newRow("move-2") << (HistoryList() << item3 << item2 << item1) - << (HistoryList() << item2n) - << (HistoryList() << item2n << item3 << item1); - - QTest::newRow("move-3") << (HistoryList()) - << (HistoryList() << item1 << item2 << item3 << item2n << item3n) - << (HistoryList() << item3n << item2n << item1); - */ + /* + // move to test for the historyFilterModel + HistoryEntry item3("http://baz.com", QDateTime::currentDateTime().addDays(-1)); + HistoryEntry item3n("http://baz.com", QDateTime::currentDateTime()); + QTest::newRow("move-1") << (HistoryList() << item3 << item2 << item1) + << (HistoryList() << item3) + << (HistoryList() << item3 << item2 << item1); + + QTest::newRow("move-2") << (HistoryList() << item3 << item2 << item1) + << (HistoryList() << item2n) + << (HistoryList() << item2n << item3 << item1); + + QTest::newRow("move-3") << (HistoryList()) + << (HistoryList() << item1 << item2 << item3 << item2n << item3n) + << (HistoryList() << item3n << item2n << item1); + */ } // public void addHistoryEntry(HistoryEntry *item) @@ -437,11 +437,11 @@ void tst_HistoryManager::historyDialog() QAbstractItemModel *model = dialog.tree->model(); ModelTest test(model); -/* - for (int i = 0; i < model->rowCount(); ++i) - if (model->rowCount(model->index(i, 0)) == 1) - qDebug() << i; -*/ + /* + for (int i = 0; i < model->rowCount(); ++i) + if (model->rowCount(model->index(i, 0)) == 1) + qDebug() << i; + */ if (parentRow == -2) parentRow = model->rowCount() - 1; QModelIndex parent = model->index(parentRow, parentColumn); diff --git a/autotests/historymanager/tst_historymanager.h b/autotests/historymanager/tst_historymanager.h index e03296ec..ce712b7f 100644 --- a/autotests/historymanager/tst_historymanager.h +++ b/autotests/historymanager/tst_historymanager.h @@ -78,5 +78,7 @@ class SubHistory : public HistoryManager } void prependHistoryEntry(const HistoryEntry &item) - { HistoryManager::prependHistoryEntry(item); } + { + HistoryManager::prependHistoryEntry(item); + } }; diff --git a/autotests/modeltest/modeltest.cpp b/autotests/modeltest/modeltest.cpp index a4d15b9e..42faf358 100644 --- a/autotests/modeltest/modeltest.cpp +++ b/autotests/modeltest/modeltest.cpp @@ -417,7 +417,7 @@ void ModelTest::data() QVariant textAlignmentVariant = model->data(model->index(0, 0), Qt::TextAlignmentRole); if (textAlignmentVariant.isValid()) { int alignment = textAlignmentVariant.toInt(); - Q_ASSERT(alignment == (alignment & (Qt::AlignHorizontal_Mask | Qt::AlignVertical_Mask))); + Q_ASSERT(alignment == (alignment & (Qt::AlignHorizontal_Mask | Qt::AlignVertical_Mask))); } // General Purpose roles that should return a QColor diff --git a/autotests/modeltoolbar/tst_modeltoolbar.cpp b/autotests/modeltoolbar/tst_modeltoolbar.cpp index ff0eab8d..fa2ee0f5 100644 --- a/autotests/modeltoolbar/tst_modeltoolbar.cpp +++ b/autotests/modeltoolbar/tst_modeltoolbar.cpp @@ -55,13 +55,20 @@ class SubModelToolBar : public ModelToolBar { public: void call_activated(QModelIndex const &index) - { return SubModelToolBar::activated(index); } + { + return SubModelToolBar::activated(index); + } void call_build() - { SubModelToolBar::build(); resize(sizeHint()); } + { + SubModelToolBar::build(); + resize(sizeHint()); + } ModelMenu *call_createMenu() - { return SubModelToolBar::createMenu(); } + { + return SubModelToolBar::createMenu(); + } }; class ColorModel : public QAbstractItemModel @@ -101,10 +108,10 @@ class ColorModel : public QAbstractItemModel switch (role) { case Qt::DisplayRole: return m_colours.at(index.row()); - break; + break; default: return QVariant(); - break; + break; } } diff --git a/autotests/opensearchengine/tst_opensearchengine.cpp b/autotests/opensearchengine/tst_opensearchengine.cpp index 4a34b710..510552d0 100644 --- a/autotests/opensearchengine/tst_opensearchengine.cpp +++ b/autotests/opensearchengine/tst_opensearchengine.cpp @@ -90,16 +90,24 @@ class SubOpenSearchEngine : public OpenSearchEngine { public: void call_imageChanged() - { return SubOpenSearchEngine::imageChanged(); } + { + return SubOpenSearchEngine::imageChanged(); + } void call_loadImage() const - { return SubOpenSearchEngine::loadImage(); } + { + return SubOpenSearchEngine::loadImage(); + } QString call_parseTemplate(QString const &searchTerm, QString const &searchTemplate) const - { return SubOpenSearchEngine::parseTemplate(searchTerm, searchTemplate); } + { + return SubOpenSearchEngine::parseTemplate(searchTerm, searchTemplate); + } void call_suggestions(QStringList const &suggestions) - { return SubOpenSearchEngine::suggestions(suggestions); } + { + return SubOpenSearchEngine::suggestions(suggestions); + } }; class SuggestionsTestNetworkReply : public QNetworkReply @@ -190,31 +198,31 @@ class SuggestionsTestNetworkAccessManager : public QNetworkAccessManager class Delegate : public OpenSearchEngineDelegate { - public: - Delegate() - : OpenSearchEngineDelegate() - , callsCount(0) - { - } - - ~Delegate() - { - } - - void performSearchRequest(const QNetworkRequest &request, - QNetworkAccessManager::Operation operation, - const QByteArray &data) - { - ++callsCount; - lastRequest = request; - lastOperation = operation; - lastData = data; - } - - QNetworkRequest lastRequest; - QNetworkAccessManager::Operation lastOperation; - QByteArray lastData; - int callsCount; +public: + Delegate() + : OpenSearchEngineDelegate() + , callsCount(0) + { + } + + ~Delegate() + { + } + + void performSearchRequest(const QNetworkRequest &request, + QNetworkAccessManager::Operation operation, + const QByteArray &data) + { + ++callsCount; + lastRequest = request; + lastOperation = operation; + lastData = data; + } + + QNetworkRequest lastRequest; + QNetworkAccessManager::Operation lastOperation; + QByteArray lastData; + int callsCount; }; // This will be called before the first test function is executed. @@ -456,14 +464,14 @@ void tst_OpenSearchEngine::operatorequal_data() << Parameters() << Parameters() << false; QTest::newRow("description") << QString() << QString("x") << QString() << QString() << QString() - << Parameters() << Parameters() - << false; + << Parameters() << Parameters() + << false; QTest::newRow("imageUrl") << QString() << QString() << QString("x") << QString() << QString() - << Parameters() << Parameters() - << false; + << Parameters() << Parameters() + << false; QTest::newRow("parameters") << QString() << QString() << QString() << QString() << QString() - << (Parameters() << Parameter("a", "b")) << Parameters() - << false; + << (Parameters() << Parameter("a", "b")) << Parameters() + << false; } // public bool operator==(OpenSearchEngine const &other) const @@ -620,12 +628,12 @@ void tst_OpenSearchEngine::searchUrl_data() QTest::addColumn("searchUrl"); QTest::newRow("null") << QString() << QString() << Parameters() << QUrl(); QTest::newRow("foo") << QString("foo") << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); QTest::newRow("empty") << QString() << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=")); QTest::newRow("parameters") << QString("baz") << QString("http://foobar.baz/?q={searchTerms}") - << (Parameters() << Parameter("abc", "{searchTerms}") << Parameter("x", "yz")) - << QUrl(QString("http://foobar.baz/?q=baz&abc=baz&x=yz")); + << (Parameters() << Parameter("abc", "{searchTerms}") << Parameter("x", "yz")) + << QUrl(QString("http://foobar.baz/?q=baz&abc=baz&x=yz")); } // public QUrl searchUrl(QString const &searchTerm) const @@ -703,12 +711,12 @@ void tst_OpenSearchEngine::suggestionsUrl_data() QTest::addColumn("suggestionsUrl"); QTest::newRow("null") << QString() << QString() << Parameters() << QUrl(); QTest::newRow("foo") << QString("foo") << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); QTest::newRow("empty") << QString() << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=")); QTest::newRow("parameters") << QString("baz") << QString("http://foobar.baz/?q={searchTerms}") - << (Parameters() << Parameter("a", "bc")) - << QUrl(QString("http://foobar.baz/?q=baz&a=bc")); + << (Parameters() << Parameter("a", "bc")) + << QUrl(QString("http://foobar.baz/?q=baz&a=bc")); } // public QUrl suggestionsUrl(QString const &searchTerm) const @@ -760,25 +768,25 @@ void tst_OpenSearchEngine::parseTemplate_data() QTest::addColumn("valid"); QTest::newRow("null") << QString() << QString() << QString() << false; QTest::newRow("foo") << QString("foo") << QString("http://foobar.baz/?q={searchTerms}") - << QString("http://foobar.baz/?q=foo") << true; + << QString("http://foobar.baz/?q=foo") << true; QTest::newRow("allParameters") << QString("bar") - << QString("http://foobar.baz/?st={searchTerms}&c={count}" - "&si={startIndex}&sp={startPage}&l={language}" - "&ie={inputEncoding}&oe={outputEncoding}") - << QString("http://foobar.baz/?st=bar&c=20&si=0&" - "sp=0&l=%1&ie=UTF-8&oe=UTF-8").arg(lang) - << true; + << QString("http://foobar.baz/?st={searchTerms}&c={count}" + "&si={startIndex}&sp={startPage}&l={language}" + "&ie={inputEncoding}&oe={outputEncoding}") + << QString("http://foobar.baz/?st=bar&c=20&si=0&" + "sp=0&l=%1&ie=UTF-8&oe=UTF-8").arg(lang) + << true; QTest::newRow("tricky") << QString("{count}") << QString("http://foobar.baz/q={searchTerms}&count={count}") - << QString("http://foobar.baz/q=%7Bcount%7D&count=20") << true; + << QString("http://foobar.baz/q=%7Bcount%7D&count=20") << true; QTest::newRow("multiple") << QString("abc") << QString("http://foobar.baz/?q={searchTerms}&x={searchTerms}") - << QString("http://foobar.baz/?q=abc&x=abc") << true; + << QString("http://foobar.baz/?q=abc&x=abc") << true; QTest::newRow("referrer") << QString("foo") - << QString("http://foobar.baz/?q={searchTerms}&a={source}&b={ref:source}&c={referrer:source?}") - << QString("http://foobar.baz/?q=foo&a=tst_opensearchengine" - "&b=tst_opensearchengine&c=tst_opensearchengine") - << true; + << QString("http://foobar.baz/?q={searchTerms}&a={source}&b={ref:source}&c={referrer:source?}") + << QString("http://foobar.baz/?q=foo&a=tst_opensearchengine" + "&b=tst_opensearchengine&c=tst_opensearchengine") + << true; QTest::newRow("inputEncoding") << QString("c++") << QString("http://foobar.baz/?q={searchTerms}") - << QString("http://foobar.baz/?q=c%2B%2B") << true; + << QString("http://foobar.baz/?q=c%2B%2B") << true; } // protected QString parseTemplate(QString const &searchTerm, QString const &searchTemplate) const diff --git a/autotests/opensearchreader/tst_opensearchreader.cpp b/autotests/opensearchreader/tst_opensearchreader.cpp index 21692a48..b9c58b5c 100644 --- a/autotests/opensearchreader/tst_opensearchreader.cpp +++ b/autotests/opensearchreader/tst_opensearchreader.cpp @@ -75,37 +75,37 @@ void tst_OpenSearchReader::read_data() QTest::addColumn("suggestionsMethod"); QTest::newRow("null") << QString(":/doesNotExist") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile1") << QString(":/testfile1.xml") << true << QString("Wikipedia (en)") - << QString("Full text search in the English Wikipedia") << QString("http://en.wikipedia.org/bar") - << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") - << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("post") << QString("get"); + << QString("Full text search in the English Wikipedia") << QString("http://en.wikipedia.org/bar") + << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") + << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("post") << QString("get"); QTest::newRow("testfile2") << QString(":/testfile2.xml") << false << QString("Wikipedia (en)") - << QString() << QString() << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") - << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << QString() << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") + << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile3") << QString(":/testfile3.xml") << true << QString("GitHub") << QString("Search GitHub") - << QString("http://github.com/search") << QString("http://github.com/suggestions") << QString() - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("q"), QString("{searchTerms}")) - << OpenSearchEngine::Parameter(QString("b"), QString("foo"))) - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("bar"), QString("baz"))) - << QString("get") << QString("post"); + << QString("http://github.com/search") << QString("http://github.com/suggestions") << QString() + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("q"), QString("{searchTerms}")) + << OpenSearchEngine::Parameter(QString("b"), QString("foo"))) + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("bar"), QString("baz"))) + << QString("get") << QString("post"); QTest::newRow("testfile4") << QString(":/testfile4.xml") << true << QString("Google") << QString("Google Web Search") - << QString("http://www.google.com/search?bar") << QString("http://suggestqueries.google.com/complete/foo") - << QString("http://www.google.com/favicon.ico") << OpenSearchEngine::Parameters() - << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString("http://www.google.com/search?bar") << QString("http://suggestqueries.google.com/complete/foo") + << QString("http://www.google.com/favicon.ico") << OpenSearchEngine::Parameters() + << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile5") << QString(":/testfile5.xml") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile6") << QString(":/testfile6.xml") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile7") << QString(":/testfile7.xml") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); } void tst_OpenSearchReader::read() diff --git a/autotests/opensearchwriter/tst_opensearchwriter.cpp b/autotests/opensearchwriter/tst_opensearchwriter.cpp index 4aba40fb..7240261d 100644 --- a/autotests/opensearchwriter/tst_opensearchwriter.cpp +++ b/autotests/opensearchwriter/tst_opensearchwriter.cpp @@ -74,19 +74,19 @@ void tst_OpenSearchWriter::write_data() QTest::addColumn("fileName"); QTest::newRow("testfile1") << QString("Foo Bar") << QString("Bar Foo") << QString("http://foobar.barfoo/search") << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() - << QString() << QString("get") << QString(":/testfile1.xml"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() + << QString() << QString("get") << QString(":/testfile1.xml"); QTest::newRow("testfile2") << QString("Endorphin!") << QString("a cross platform web browser built using Qt and WebKit") - << QString("http://foobar.barfoo/search") << QString("http://foobar.barfoo/suggest") << QString() - << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() - << QString("get") << QString("post") << QString(":/testfile2.xml"); + << QString("http://foobar.barfoo/search") << QString("http://foobar.barfoo/suggest") << QString() + << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() + << QString("get") << QString("post") << QString(":/testfile2.xml"); QTest::newRow("testile3") << QString("Foo Bar") << QString("Bar Foo") << QString("http://foobar.barfoo/search") - << QString("http://foobar.barfoo/suggest") << QString() - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}") << OpenSearchEngine::Parameter("a", "foo")) - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}")) - << QString("post") << QString("foo") << QString(":/testfile3.xml"); + << QString("http://foobar.barfoo/suggest") << QString() + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}") << OpenSearchEngine::Parameter("a", "foo")) + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}")) + << QString("post") << QString("foo") << QString(":/testfile3.xml"); } void tst_OpenSearchWriter::write() diff --git a/autotests/searchlineedit/tst_searchlineedit.cpp b/autotests/searchlineedit/tst_searchlineedit.cpp index 85a2113b..99c3b90a 100644 --- a/autotests/searchlineedit/tst_searchlineedit.cpp +++ b/autotests/searchlineedit/tst_searchlineedit.cpp @@ -38,7 +38,8 @@ private slots: // Subclass that exposes the protected functions. class SubSearchLineEdit : public SearchLineEdit { -public:}; +public: +}; // This will be called before the first test function is executed. // It is only called once. diff --git a/autotests/tabbar/tst_tabbar.cpp b/autotests/tabbar/tst_tabbar.cpp index 03661278..331967a6 100644 --- a/autotests/tabbar/tst_tabbar.cpp +++ b/autotests/tabbar/tst_tabbar.cpp @@ -48,40 +48,64 @@ class SubTabBar : public TabBar { public: void call_cloneTab(int index) - { return SubTabBar::cloneTab(index); } + { + return SubTabBar::cloneTab(index); + } void call_closeOtherTabs(int index) - { return SubTabBar::closeOtherTabs(index); } + { + return SubTabBar::closeOtherTabs(index); + } void call_closeTab(int index) - { return SubTabBar::closeTab(index); } + { + return SubTabBar::closeTab(index); + } void call_dragEnterEvent(QDragEnterEvent *event) - { return SubTabBar::dragEnterEvent(event); } + { + return SubTabBar::dragEnterEvent(event); + } void call_dropEvent(QDropEvent *event) - { return SubTabBar::dropEvent(event); } + { + return SubTabBar::dropEvent(event); + } void call_mouseMoveEvent(QMouseEvent *event) - { return SubTabBar::mouseMoveEvent(event); } + { + return SubTabBar::mouseMoveEvent(event); + } void call_mousePressEvent(QMouseEvent *event) - { return SubTabBar::mousePressEvent(event); } + { + return SubTabBar::mousePressEvent(event); + } void call_newTab() - { return SubTabBar::newTab(); } + { + return SubTabBar::newTab(); + } void call_reloadAllTabs() - { return SubTabBar::reloadAllTabs(); } + { + return SubTabBar::reloadAllTabs(); + } void call_reloadTab(int index) - { return SubTabBar::reloadTab(index); } + { + return SubTabBar::reloadTab(index); + } void call_tabLayoutChange() - { return SubTabBar::tabLayoutChange(); } + { + return SubTabBar::tabLayoutChange(); + } QSize call_tabSizeHint(int index) const - { return SubTabBar::tabSizeHint(index); } + { + return SubTabBar::tabSizeHint(index); + } }; // This will be called before the first test function is executed. diff --git a/autotests/tabwidget/tst_tabwidget.cpp b/autotests/tabwidget/tst_tabwidget.cpp index 8e456d57..bd94dd54 100644 --- a/autotests/tabwidget/tst_tabwidget.cpp +++ b/autotests/tabwidget/tst_tabwidget.cpp @@ -78,19 +78,29 @@ class SubTabWidget : public TabWidget { public: void call_linkHovered(QString const &link) - { return SubTabWidget::linkHovered(link); } + { + return SubTabWidget::linkHovered(link); + } void call_loadProgress(int progress) - { return SubTabWidget::loadProgress(progress); } + { + return SubTabWidget::loadProgress(progress); + } void call_setCurrentTitle(QString const &url) - { return SubTabWidget::setCurrentTitle(url); } + { + return SubTabWidget::setCurrentTitle(url); + } void call_showStatusBarMessage(QString const &message) - { return SubTabWidget::showStatusBarMessage(message); } + { + return SubTabWidget::showStatusBarMessage(message); + } void call_tabsChanged() - { return SubTabWidget::tabsChanged(); } + { + return SubTabWidget::tabsChanged(); + } }; // This will be called before the first test function is executed. diff --git a/autotests/utils/lineedit/tst_lineedit.cpp b/autotests/utils/lineedit/tst_lineedit.cpp index 39f9abcd..34515564 100644 --- a/autotests/utils/lineedit/tst_lineedit.cpp +++ b/autotests/utils/lineedit/tst_lineedit.cpp @@ -52,7 +52,9 @@ class SubLineEdit : public LineEdit { public: void call_resizeEvent(QResizeEvent *event) - { return SubLineEdit::resizeEvent(event); } + { + return SubLineEdit::resizeEvent(event); + } }; // This will be called before the first test function is executed. diff --git a/autotests/webpage/tst_webpage.cpp b/autotests/webpage/tst_webpage.cpp index 81dcee73..18bf9416 100644 --- a/autotests/webpage/tst_webpage.cpp +++ b/autotests/webpage/tst_webpage.cpp @@ -62,20 +62,26 @@ class SubWebPage : public WebPage { public: QString call_userAgentForUrl(const QUrl &url) const - { return SubWebPage::userAgentForUrl(url); } + { + return SubWebPage::userAgentForUrl(url); + } void call_aboutToLoadUrl(QUrl const &url) - { return SubWebPage::aboutToLoadUrl(url); } + { + return SubWebPage::aboutToLoadUrl(url); + } -/* - bool call_acceptNavigationRequest(QWebFrame *frame, QNetworkRequest const &request, NavigationType type) - { return SubWebPage::acceptNavigationRequest(frame, request, type); } + /* + bool call_acceptNavigationRequest(QWebFrame *frame, QNetworkRequest const &request, NavigationType type) + { return SubWebPage::acceptNavigationRequest(frame, request, type); } - QObject *call_createPlugin(QString const &classId, QUrl const &url, QStringList const ¶mNames, QStringList const ¶mValues) - { return SubWebPage::createPlugin(classId, url, paramNames, paramValues); } -*/ + QObject *call_createPlugin(QString const &classId, QUrl const &url, QStringList const ¶mNames, QStringList const ¶mValues) + { return SubWebPage::createPlugin(classId, url, paramNames, paramValues); } + */ QWebEnginePage *call_createWindow(QWebEnginePage::WebWindowType type) - { return SubWebPage::createWindow(type); } + { + return SubWebPage::createWindow(type); + } }; // This will be called before the first test function is executed. diff --git a/src/bookmarks/addbookmarkdialog.cpp b/src/bookmarks/addbookmarkdialog.cpp index b990d59e..6fd768fe 100644 --- a/src/bookmarks/addbookmarkdialog.cpp +++ b/src/bookmarks/addbookmarkdialog.cpp @@ -107,11 +107,11 @@ AddBookmarkDialog::AddBookmarkDialog(QWidget *parent, BookmarksManager *bookmark #ifndef NO_BROWSERAPPLICATION m_bookmarksManager = BrowserApplication::bookmarksManager(); #else - #ifdef FOR_AUTOTEST +#ifdef FOR_AUTOTEST m_bookmarksManager = tst_AddBookmarkDialog::bookmarksManager(); - #else - #error "Nothing provides a bookmarksmanager" - #endif +#else +#error "Nothing provides a bookmarksmanager" +#endif #endif m_proxyModel = new AddBookmarkProxyModel(this); diff --git a/src/bookmarks/bookmarksmenu.cpp b/src/bookmarks/bookmarksmenu.cpp index 18e16a45..36aaee9d 100644 --- a/src/bookmarks/bookmarksmenu.cpp +++ b/src/bookmarks/bookmarksmenu.cpp @@ -156,11 +156,11 @@ bool BookmarksMenuBarMenu::prePopulated() #ifndef NO_BROWSERAPPLICATION m_bookmarksManager = BrowserApplication::bookmarksManager(); #else - #ifdef FOR_AUTOTEST +#ifdef FOR_AUTOTEST m_bookmarksManager = tst_AddBookmarkDialog::bookmarksManager(); - #else - #error "Nothing provides a bookmarksmanager" - #endif +#else +#error "Nothing provides a bookmarksmanager" +#endif #endif setModel(m_bookmarksManager->bookmarksModel()); setRootIndex(m_bookmarksManager->bookmarksModel()->index(m_bookmarksManager->menu())); diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index 50f15514..d72d9719 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -45,11 +45,11 @@ BookmarksToolBar::BookmarksToolBar(BookmarksModel *model, QWidget *parent) #ifndef NO_BROWSERAPPLICATION setRootIndex(model->index(BrowserApplication::bookmarksManager()->toolbar())); #else - #ifdef FOR_AUTOTEST +#ifdef FOR_AUTOTEST setRootIndex(model->index(tst_AddBookmarkDialog::bookmarksManager()->toolbar())); - #else - #error "Nothing provides a bookmarksmanager" - #endif +#else +#error "Nothing provides a bookmarksmanager" +#endif #endif setContextMenuPolicy(Qt::CustomContextMenu); diff --git a/src/history/history.h b/src/history/history.h index 0bc4fb51..e353fd5d 100644 --- a/src/history/history.h +++ b/src/history/history.h @@ -117,7 +117,10 @@ class HistoryFilterModel : public QAbstractProxyModel HistoryFilterModel(QAbstractItemModel *sourceModel, QObject *parent = nullptr); inline bool historyContains(const QString &url) const - { load(); return m_historyHash.contains(url); } + { + load(); + return m_historyHash.contains(url); + } int historyLocation(const QString &url) const; enum Roles { @@ -160,7 +163,7 @@ private slots: bool operator==(const HistoryData &other) const { return (tailOffset == other.tailOffset) - && (frecency == -1 || other.frecency == -1 || frecency == other.frecency); + && (frecency == -1 || other.frecency == -1 || frecency == other.frecency); } bool operator!=(const HistoryData &other) const { return !(*this == other); diff --git a/src/history/historymanager.h b/src/history/historymanager.h index 2e895176..07736ced 100644 --- a/src/history/historymanager.h +++ b/src/history/historymanager.h @@ -73,8 +73,8 @@ class HistoryEntry public: HistoryEntry() {} HistoryEntry(const QString &u, - const QDateTime &d = QDateTime(), const QString &t = QString()) - : url(u), title(t), dateTime(d) {} + const QDateTime &d = QDateTime(), const QString &t = QString()) + : url(u), title(t), dateTime(d) {} inline bool operator==(const HistoryEntry &other) const { return other.title == title @@ -83,7 +83,9 @@ class HistoryEntry // history is sorted in reverse inline bool operator <(const HistoryEntry &other) const - { return dateTime > other.dateTime; } + { + return dateTime > other.dateTime; + } QString userTitle() const; @@ -128,7 +130,7 @@ class HistoryManager : public QObject HistoryModel *historyModel() const; HistoryFilterModel *historyFilterModel() const; HistoryTreeModel *historyTreeModel() const; - + QString dataFilePath(const QString &fileName); public slots: diff --git a/src/htmls/dirlist.html b/src/htmls/dirlist.html index eef1c10f..543f759f 100644 --- a/src/htmls/dirlist.html +++ b/src/htmls/dirlist.html @@ -4,71 +4,90 @@ %1 -
    -

    %2

    -
    - %5 -
    - -%4 -
    -
    - - +
    +

    %2

    +
    + %5 +
    + + %4 +
    +
    + + diff --git a/src/htmls/notfound.html b/src/htmls/notfound.html index 485cc73f..ec49785c 100644 --- a/src/htmls/notfound.html +++ b/src/htmls/notfound.html @@ -4,56 +4,64 @@ %1 -
    - -

    %2

    -

    %3

    -
      -
    • %4
    • -
    • %5
    • -
    • %6
    • -
    -
    - - +
    + +

    %2

    +

    %3

    +
      +
    • %4
    • +
    • %5
    • +
    • %6
    • +
    +
    + + diff --git a/src/webview.cpp b/src/webview.cpp index 98e32b98..92527006 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -280,7 +280,9 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) QAction *action = new QAction(menu); action->setText("Inspect Element"); - connect(action, &QAction::triggered, [this]() { emit devToolsRequested(page()); }); + connect(action, &QAction::triggered, [this]() { + emit devToolsRequested(page()); + }); menu->addAction(action); if (!menu->isEmpty()) { diff --git a/tools/cacheinfo/main.cpp b/tools/cacheinfo/main.cpp index 35428ac3..cf7672b7 100644 --- a/tools/cacheinfo/main.cpp +++ b/tools/cacheinfo/main.cpp @@ -24,7 +24,9 @@ class NetworkDiskCache : public QNetworkDiskCache { public: QNetworkCacheMetaData _fileMetaData(const QString &fileName) - { return fileMetaData(fileName); } + { + return fileMetaData(fileName); + } }; @@ -58,8 +60,8 @@ int main(int argc, char **argv) } if (!args.isEmpty() - && args.count() >= 1 - && args.first() == QLatin1String("-o")) { + && args.count() >= 1 + && args.first() == QLatin1String("-o")) { QUrl url = metaData.url(); QIODevice *device = diskCache.data(url); if (!device) { diff --git a/tools/htmlToXBel/main.cpp b/tools/htmlToXBel/main.cpp index 1f1a928a..371946bf 100644 --- a/tools/htmlToXBel/main.cpp +++ b/tools/htmlToXBel/main.cpp @@ -59,7 +59,7 @@ int main(int argc, char **argv) inFile.open(QIODevice::ReadOnly); } else { qWarning() << "Usage: htmlToXBel" - << "[stdin|htmlfile]" << "[stdout|-o outFile]"; + << "[stdin|htmlfile]" << "[stdout|-o outFile]"; return 1; } } @@ -69,7 +69,7 @@ int main(int argc, char **argv) if (!setOutput) outFile.open(stdout, QIODevice::WriteOnly); if (inFile.openMode() == QIODevice::NotOpen - || outFile.openMode() == QIODevice::NotOpen) { + || outFile.openMode() == QIODevice::NotOpen) { qWarning() << "Unable to open streams"; return 1; } diff --git a/tools/htmlToXBel/mainapp.h b/tools/htmlToXBel/mainapp.h index cf257f04..25507420 100644 --- a/tools/htmlToXBel/mainapp.h +++ b/tools/htmlToXBel/mainapp.h @@ -27,7 +27,7 @@ class QPushButton; class MainApp : public QObject { -Q_OBJECT + Q_OBJECT public: MainApp(QObject *parent = nullptr); QString get(QString &input); diff --git a/tools/htmlToXBel/tests/firefox3-bookmarks.html b/tools/htmlToXBel/tests/firefox3-bookmarks.html index 5352a48c..63c9694c 100644 --- a/tools/htmlToXBel/tests/firefox3-bookmarks.html +++ b/tools/htmlToXBel/tests/firefox3-bookmarks.html @@ -1,47 +1,50 @@ +It will be read and overwritten. +DO NOT EDIT! --> -Bookmarks -

    Bookmarks Menu

    + Bookmarks +

    Bookmarks Menu

    -

    -

    Recently Bookmarked -
    Recent Tags -
    -
    Get Bookmark Add-ons -
    -

    Mozilla Firefox

    -

    -

    Help and Tutorials -
    Customize Firefox -
    Get Involved -
    About Us -

    -

    Mozilla Firefox Start Page -
    Mozilla Firefox Start Page -

    Bookmarks Toolbar

    -
    Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

    -

    Most Visited -

    Smart Bookmarks

    -

    -

    Most Visited -
    Recently Bookmarked -
    -
    Recent Tags -

    -

    Getting Started -
    Latest Headlines -

    -

    Unfiled Bookmarks

    -

    -

    reddit.com: Apple pushes Windows Safari via iTunes updater +

    +

    Recently Bookmarked +
    Recent Tags +
    +
    Get Bookmark Add-ons +
    +

    Mozilla Firefox

    +

    +

    Help and Tutorials +
    Customize Firefox +
    Get Involved +
    About Us +

    +

    Mozilla Firefox Start Page +
    Mozilla Firefox Start Page +

    Bookmarks Toolbar

    +
    Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar +

    +

    Most Visited +

    Smart Bookmarks

    +

    +

    Most Visited +
    Recently Bookmarked +
    +
    Recent Tags +

    +

    Getting Started +
    Latest Headlines +

    +

    Unfiled Bookmarks

    +

    +

    reddit.com: + Apple pushes Windows Safari via iTunes updater +
    +
    reddit.com: + what' +s new online!
    -
    reddit.com: what's new online! -
    -
    xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe -
    -

    -

    +

    xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe +
    +

    +

    diff --git a/tools/htmlToXBel/tests/ie7-bookmarks.html b/tools/htmlToXBel/tests/ie7-bookmarks.html index c4a55152..1c44f3d2 100644 --- a/tools/htmlToXBel/tests/ie7-bookmarks.html +++ b/tools/htmlToXBel/tests/ie7-bookmarks.html @@ -5,26 +5,26 @@ Bookmarks

    Bookmarks

    -

    Links

    -

    -

    Customize Links -
    Free Hotmail -
    Windows Marketplace -
    Windows Media -
    Windows -

    -

    Microsoft Websites

    -

    -

    IE Add-on site -
    IE site on Microsoft.com -
    Marketplace -
    Microsoft At Home -
    Microsoft At Work -
    Welcome to IE7 -

    -

    Yahoo!

    -

    -

    -

    MSN.com -
    Radio Station Guide -

    +

    Links

    +

    +

    Customize Links +
    Free Hotmail +
    Windows Marketplace +
    Windows Media +
    Windows +

    +

    Microsoft Websites

    +

    +

    IE Add-on site +
    IE site on Microsoft.com +
    Marketplace +
    Microsoft At Home +
    Microsoft At Work +
    Welcome to IE7 +

    +

    Yahoo!

    +

    +

    +

    MSN.com +
    Radio Station Guide +

    diff --git a/tools/htmlToXBel/tests/opera9-bookmarks.html b/tools/htmlToXBel/tests/opera9-bookmarks.html index 5cf7b85f..baafe7ae 100644 --- a/tools/htmlToXBel/tests/opera9-bookmarks.html +++ b/tools/htmlToXBel/tests/opera9-bookmarks.html @@ -1,20 +1,20 @@ - -Bookmarks -

    Bookmarks

    -

    -

    Opera

    -

    -

    Download Opera -
    Opera Community -
    Opera Web Mail -
    Support Desk -

    -

    Download.com -
    Amazon.com -
    eBay -
    Yahoo! -

    + + Bookmarks +

    Bookmarks

    +

    +

    Opera

    +

    +

    Download Opera +
    Opera Community +
    Opera Web Mail +
    Support Desk +

    +

    Download.com +
    Amazon.com +
    eBay +
    Yahoo! +

    From 767815c01281ccb29b58a8a6c440c91bdf1e0db7 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 20 Sep 2020 11:56:09 +0200 Subject: [PATCH 28/64] Rename HistoryCompleter to LocationCompleter This will soon also suggest searching an input if it isn't a valid URL. History is currently not working. --- autotests/historymanager/CMakeLists.txt | 2 +- .../historymanager/tst_historymanager.cpp | 2 +- autotests/historymanager/tst_historymanager.h | 2 +- autotests/tabbar/CMakeLists.txt | 2 +- autotests/tabwidget/CMakeLists.txt | 2 +- autotests/webactionmapper/CMakeLists.txt | 2 +- autotests/webpage/CMakeLists.txt | 2 +- src/CMakeLists.txt | 2 +- ...torycompleter.cpp => locationcompleter.cpp} | 18 +++++++++--------- .../historycompleter.h => locationcompleter.h} | 10 +++++----- src/tabwidget.cpp | 4 ++-- 11 files changed, 24 insertions(+), 24 deletions(-) rename src/{history/historycompleter.cpp => locationcompleter.cpp} (94%) rename src/{history/historycompleter.h => locationcompleter.h} (93%) diff --git a/autotests/historymanager/CMakeLists.txt b/autotests/historymanager/CMakeLists.txt index 4093d73d..a512f786 100644 --- a/autotests/historymanager/CMakeLists.txt +++ b/autotests/historymanager/CMakeLists.txt @@ -33,7 +33,7 @@ set(SRCS ../../src/searchbutton.cpp ../../src/searchlineedit.cpp ../../src/history/history.cpp - ../../src/history/historycompleter.cpp + ../../src/locationcompleter.cpp ../../src/history/historymanager.cpp ../../src/utils/edittreeview.cpp ../../src/utils/lineedit.cpp diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index 1e167284..3f45bb2b 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -21,7 +21,7 @@ #include #include "history.h" -#include +#include #include #include diff --git a/autotests/historymanager/tst_historymanager.h b/autotests/historymanager/tst_historymanager.h index ce712b7f..96844867 100644 --- a/autotests/historymanager/tst_historymanager.h +++ b/autotests/historymanager/tst_historymanager.h @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include diff --git a/autotests/tabbar/CMakeLists.txt b/autotests/tabbar/CMakeLists.txt index a0cd01ee..ffafaef9 100644 --- a/autotests/tabbar/CMakeLists.txt +++ b/autotests/tabbar/CMakeLists.txt @@ -76,7 +76,7 @@ set(Endorphin_SRCS ../../src/bookmarks/xbel/xbelreader.cpp ../../src/bookmarks/xbel/xbelwriter.cpp ../../src/history/history.cpp - ../../src/history/historycompleter.cpp + ../../src/locationcompleter.cpp ../../src/history/historymanager.cpp ../../src/locationbar/locationbar.cpp ../../src/locationbar/locationbarsiteicon.cpp diff --git a/autotests/tabwidget/CMakeLists.txt b/autotests/tabwidget/CMakeLists.txt index 9bf0b39b..bc90fd39 100644 --- a/autotests/tabwidget/CMakeLists.txt +++ b/autotests/tabwidget/CMakeLists.txt @@ -76,7 +76,7 @@ set(Endorphin_SRCS ../../src/bookmarks/xbel/xbelreader.cpp ../../src/bookmarks/xbel/xbelwriter.cpp ../../src/history/history.cpp - ../../src/history/historycompleter.cpp + ../../src/locationcompleter.cpp ../../src/history/historymanager.cpp ../../src/locationbar/locationbar.cpp ../../src/locationbar/locationbarsiteicon.cpp diff --git a/autotests/webactionmapper/CMakeLists.txt b/autotests/webactionmapper/CMakeLists.txt index 3a191b7d..942bbdf2 100644 --- a/autotests/webactionmapper/CMakeLists.txt +++ b/autotests/webactionmapper/CMakeLists.txt @@ -76,7 +76,7 @@ set(Endorphin_SRCS ../../src/bookmarks/xbel/xbelreader.cpp ../../src/bookmarks/xbel/xbelwriter.cpp ../../src/history/history.cpp - ../../src/history/historycompleter.cpp + ../../src/locationcompleter.cpp ../../src/history/historymanager.cpp ../../src/locationbar/locationbar.cpp ../../src/locationbar/locationbarsiteicon.cpp diff --git a/autotests/webpage/CMakeLists.txt b/autotests/webpage/CMakeLists.txt index 53f4028d..38785167 100644 --- a/autotests/webpage/CMakeLists.txt +++ b/autotests/webpage/CMakeLists.txt @@ -76,7 +76,7 @@ set(Endorphin_SRCS ../../src/bookmarks/xbel/xbelreader.cpp ../../src/bookmarks/xbel/xbelwriter.cpp ../../src/history/history.cpp - ../../src/history/historycompleter.cpp + ../../src/locationcompleter.cpp ../../src/history/historymanager.cpp ../../src/locationbar/locationbar.cpp ../../src/locationbar/locationbarsiteicon.cpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 686d3b4b..1233e778 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -88,7 +88,7 @@ set(Endorphin_SRCS bookmarks/xbel/xbelreader.cpp bookmarks/xbel/xbelwriter.cpp history/history.cpp - history/historycompleter.cpp + locationcompleter.cpp history/historymanager.cpp locationbar/locationbar.cpp locationbar/locationbarsiteicon.cpp diff --git a/src/history/historycompleter.cpp b/src/locationcompleter.cpp similarity index 94% rename from src/history/historycompleter.cpp rename to src/locationcompleter.cpp index 06bb3f51..7c8b6219 100644 --- a/src/history/historycompleter.cpp +++ b/src/locationcompleter.cpp @@ -17,7 +17,7 @@ * Boston, MA 02110-1301 USA */ -#include "historycompleter.h" +#include "locationcompleter.h" #include #include @@ -117,7 +117,7 @@ void HistoryCompletionModel::setValid(bool b) m_isValid = b; - // tell the HistoryCompleter that we've changed + // tell the LocationCompleter that we've changed emit dataChanged(index(0, 0), index(0, rowCount() - 1)); } @@ -164,19 +164,19 @@ bool HistoryCompletionModel::lessThan(const QModelIndex &left, const QModelIndex return (frecency_r < frecency_l); } -HistoryCompleter::HistoryCompleter(QObject *parent) +LocationCompleter::LocationCompleter(QObject *parent) : QCompleter(parent) { init(); } -HistoryCompleter::HistoryCompleter(QAbstractItemModel *m, QObject *parent) +LocationCompleter::LocationCompleter(QAbstractItemModel *m, QObject *parent) : QCompleter(m, parent) { init(); } -void HistoryCompleter::init() +void LocationCompleter::init() { setPopup(new HistoryCompletionView()); @@ -192,14 +192,14 @@ void HistoryCompleter::init() connect(&m_filterTimer, SIGNAL(timeout()), this, SLOT(updateFilter())); } -QString HistoryCompleter::pathFromIndex(const QModelIndex &index) const +QString LocationCompleter::pathFromIndex(const QModelIndex &index) const { // we want to return the actual url from the history for the // data the QCompleter finally returns return model()->data(index, HistoryModel::UrlStringRole).toString(); } -QStringList HistoryCompleter::splitPath(const QString &path) const +QStringList LocationCompleter::splitPath(const QString &path) const { if (path == m_searchString) return QStringList() << QLatin1String("a"); @@ -226,7 +226,7 @@ QStringList HistoryCompleter::splitPath(const QString &path) const return QStringList() << QLatin1String("a"); } -bool HistoryCompleter::eventFilter(QObject *obj, QEvent *event) +bool LocationCompleter::eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::KeyPress && popup()->isVisible()) { QKeyEvent *keyEvent = static_cast(event); @@ -257,7 +257,7 @@ bool HistoryCompleter::eventFilter(QObject *obj, QEvent *event) return QCompleter::eventFilter(obj, event); } -void HistoryCompleter::updateFilter() +void LocationCompleter::updateFilter() { HistoryCompletionModel *completionModel = qobject_cast(model()); Q_ASSERT(completionModel); diff --git a/src/history/historycompleter.h b/src/locationcompleter.h similarity index 93% rename from src/history/historycompleter.h rename to src/locationcompleter.h index e0fbb7a9..e68b1673 100644 --- a/src/history/historycompleter.h +++ b/src/locationcompleter.h @@ -18,8 +18,8 @@ * Boston, MA 02110-1301 USA */ -#ifndef HISTORYCOMPLETER_H -#define HISTORYCOMPLETER_H +#ifndef LOCATIONCOMPLETER_H +#define LOCATIONCOMPLETER_H #include "history.h" @@ -81,13 +81,13 @@ class HistoryCompletionModel : public QSortFilterProxyModel bool m_isValid; }; -class HistoryCompleter : public QCompleter +class LocationCompleter : public QCompleter { Q_OBJECT public: - HistoryCompleter(QObject *parent = nullptr); - HistoryCompleter(QAbstractItemModel *model, QObject *parent = nullptr); + LocationCompleter(QObject *parent = nullptr); + LocationCompleter(QAbstractItemModel *model, QObject *parent = nullptr); virtual QString pathFromIndex(const QModelIndex &index) const; virtual QStringList splitPath(const QString &path) const; diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index fe682814..d42c1784 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -69,7 +69,7 @@ #include "browserapplication.h" #include "browsermainwindow.h" #include "history.h" -#include "historycompleter.h" +#include "locationcompleter.h" #include "historymanager.h" #include "locationbar.h" #include "opensearchengine.h" @@ -368,7 +368,7 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) if (!m_lineEditCompleter) { HistoryCompletionModel *completionModel = new HistoryCompletionModel(this); completionModel->setSourceModel(BrowserApplication::historyManager()->historyFilterModel()); - m_lineEditCompleter = new HistoryCompleter(completionModel, this); + m_lineEditCompleter = new LocationCompleter(completionModel, this); connect(m_lineEditCompleter, SIGNAL(activated(const QString &)), this, SLOT(loadString(const QString &))); // Should this be in Qt by default? From 563703932b63fab76d55f08336dc15aa8734a191 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 20 Sep 2020 14:32:30 +0200 Subject: [PATCH 29/64] Fix a typo --- src/tabwidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index d42c1784..1b56787f 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -408,7 +408,7 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) this, SLOT(loadUrl(const QUrl&, TabWidget::OpenUrlIn))); connect(webView->page(), SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested())); - connect(webView->page(), SIGNAL(printRequested(Q)), + connect(webView->page(), SIGNAL(printRequested()), this, SIGNAL(printRequested(webView->page()))); connect(webView->page(), SIGNAL(geometryChangeRequested(const QRect &)), this, SLOT(geometryChangeRequestedCheck(const QRect &))); From 15f5641757f228738a391067d90fce864326fde4 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 17 Dec 2020 10:29:52 +0100 Subject: [PATCH 30/64] Create a separate license file --- LICENSE | 351 ++++++++++++++++++++++++++++++++++++++++++++ src/aboutdialog.cpp | 2 +- 2 files changed, 352 insertions(+), 1 deletion(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..4ef1e630 --- /dev/null +++ b/LICENSE @@ -0,0 +1,351 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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) any later version. + + 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +------------------------------------------------------------------------- + +In addition, as a special exception, permission is given to link the +code of its release with the OpenSSL project's "OpenSSL" library (or +modified versions of it that use the same license as the "OpenSSL" +library), and distribute the linked executables. You must comply with the GNU +General Public License version 2 or the GNU General Public License version 3 +in all respects for all of the code used other than the "OpenSSL" code. If +you modify this file, you may extend this exception to your version of the +file, but you are not obligated to do so. If you do not wish to do so, +delete this exception statement from your version of this file. \ No newline at end of file diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index b413f17d..ea2e9c42 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -81,6 +81,6 @@ void AboutDialog::authorsButtonClicked() void AboutDialog::licenseButtonClicked() { - displayFile(QLatin1String(":LICENSE.GPL2"), tr("License")); + displayFile(QLatin1String(":LICENSE"), tr("License")); } From 468d3ebff9792773ce84fda3fe7220d4dcfbe6f6 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 17 Dec 2020 20:25:31 +0100 Subject: [PATCH 31/64] Prepare build system for Qt 6 --- autotests/addbookmarkdialog/CMakeLists.txt | 6 +--- autotests/autosaver/CMakeLists.txt | 3 +- autotests/bookmarknode/CMakeLists.txt | 3 +- autotests/downloadmanager/CMakeLists.txt | 7 +---- autotests/historyfiltermodel/CMakeLists.txt | 7 +---- autotests/historymanager/CMakeLists.txt | 7 +---- autotests/modeltoolbar/CMakeLists.txt | 7 +---- autotests/opensearchengine/CMakeLists.txt | 8 +---- autotests/opensearchmanager/CMakeLists.txt | 8 +---- autotests/opensearchreader/CMakeLists.txt | 8 +---- autotests/opensearchwriter/CMakeLists.txt | 8 +---- autotests/searchlineedit/CMakeLists.txt | 7 +---- autotests/tabbar/CMakeLists.txt | 11 ++----- autotests/tabwidget/CMakeLists.txt | 13 ++------ autotests/utils/CMakeLists.txt | 1 + autotests/utils/editlistview/CMakeLists.txt | 7 +---- autotests/utils/edittreeview/CMakeLists.txt | 7 +---- .../utils/languagemanager/CMakeLists.txt | 31 +++++++++++++++++++ .../languagemanager/tst_languagemanager.cpp | 6 ++-- autotests/utils/lineedit/CMakeLists.txt | 8 ++--- autotests/webactionmapper/CMakeLists.txt | 14 +++------ autotests/webpage/CMakeLists.txt | 14 +++------ autotests/xbel/CMakeLists.txt | 8 ++--- src/CMakeLists.txt | 15 ++------- tools/cacheinfo/CMakeLists.txt | 5 +-- tools/htmlToXBel/CMakeLists.txt | 4 +-- tools/placesimport/CMakeLists.txt | 6 +--- 27 files changed, 72 insertions(+), 157 deletions(-) create mode 100644 autotests/utils/languagemanager/CMakeLists.txt diff --git a/autotests/addbookmarkdialog/CMakeLists.txt b/autotests/addbookmarkdialog/CMakeLists.txt index 5526a5eb..1c69467e 100644 --- a/autotests/addbookmarkdialog/CMakeLists.txt +++ b/autotests/addbookmarkdialog/CMakeLists.txt @@ -53,8 +53,4 @@ QT5_WRAP_CPP(MOCS ) add_executable(test-addbookmarkdialog ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-addbookmarkdialog Core) -qt5_use_modules(test-addbookmarkdialog Test) -qt5_use_modules(test-addbookmarkdialog Widgets) -qt5_use_modules(test-addbookmarkdialog WebEngine) -qt5_use_modules(test-addbookmarkdialog WebEngineWidgets) +target_link_libraries(test-addbookmarkdialog Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) \ No newline at end of file diff --git a/autotests/autosaver/CMakeLists.txt b/autotests/autosaver/CMakeLists.txt index a123ebb7..e3ec7cec 100644 --- a/autotests/autosaver/CMakeLists.txt +++ b/autotests/autosaver/CMakeLists.txt @@ -18,5 +18,4 @@ QT5_WRAP_CPP(MOCS ) add_executable(test-autosaver ${SRCS} ${MOCS}) -qt5_use_modules(test-autosaver Core) -qt5_use_modules(test-autosaver Test) +target_link_libraries(test-autosaver Qt5::Core Qt5::Test) diff --git a/autotests/bookmarknode/CMakeLists.txt b/autotests/bookmarknode/CMakeLists.txt index 6a0606c3..ca1d0e3a 100644 --- a/autotests/bookmarknode/CMakeLists.txt +++ b/autotests/bookmarknode/CMakeLists.txt @@ -20,5 +20,4 @@ QT5_WRAP_CPP(MOCS ) add_executable(test-bookmarknode ${SRCS} ${MOCS}) -qt5_use_modules(test-bookmarknode Core) -qt5_use_modules(test-bookmarknode Test) +target_link_libraries(test-bookmarknode Qt5::Core Qt5::Test) diff --git a/autotests/downloadmanager/CMakeLists.txt b/autotests/downloadmanager/CMakeLists.txt index 51827b62..924a62ce 100644 --- a/autotests/downloadmanager/CMakeLists.txt +++ b/autotests/downloadmanager/CMakeLists.txt @@ -31,9 +31,4 @@ QT5_WRAP_CPP(MOCS ) add_executable(test-downloadmanager ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-downloadmanager Core) -qt5_use_modules(test-downloadmanager Test) -qt5_use_modules(test-downloadmanager Widgets) -qt5_use_modules(test-downloadmanager Gui) -qt5_use_modules(test-downloadmanager WebEngine) -qt5_use_modules(test-downloadmanager WebEngineWidgets) +target_link_libraries(test-downloadmanager Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/historyfiltermodel/CMakeLists.txt b/autotests/historyfiltermodel/CMakeLists.txt index 03341098..976b8822 100644 --- a/autotests/historyfiltermodel/CMakeLists.txt +++ b/autotests/historyfiltermodel/CMakeLists.txt @@ -51,9 +51,4 @@ QT5_WRAP_CPP(MOCS ) add_executable(test-historyfiltermodel ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-historyfiltermodel Core) -qt5_use_modules(test-historyfiltermodel Test) -qt5_use_modules(test-historyfiltermodel Widgets) -qt5_use_modules(test-historyfiltermodel Gui) -qt5_use_modules(test-historyfiltermodel WebEngine) -qt5_use_modules(test-historyfiltermodel WebEngineWidgets) +target_link_libraries(test-historyfiltermodel Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) \ No newline at end of file diff --git a/autotests/historymanager/CMakeLists.txt b/autotests/historymanager/CMakeLists.txt index a512f786..339a5b70 100644 --- a/autotests/historymanager/CMakeLists.txt +++ b/autotests/historymanager/CMakeLists.txt @@ -41,9 +41,4 @@ set(SRCS ) add_executable(test-historymanager ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-historymanager Core) -qt5_use_modules(test-historymanager Test) -qt5_use_modules(test-historymanager Widgets) -qt5_use_modules(test-historymanager Gui) -qt5_use_modules(test-historymanager WebEngine) -qt5_use_modules(test-historymanager WebEngineWidgets) +target_link_libraries(test-historymanager Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/modeltoolbar/CMakeLists.txt b/autotests/modeltoolbar/CMakeLists.txt index ba18929d..b0c08a83 100644 --- a/autotests/modeltoolbar/CMakeLists.txt +++ b/autotests/modeltoolbar/CMakeLists.txt @@ -29,9 +29,4 @@ set(SRCS ) add_executable(test-modeltoolbar ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-modeltoolbar Core) -qt5_use_modules(test-modeltoolbar Test) -qt5_use_modules(test-modeltoolbar Widgets) -qt5_use_modules(test-modeltoolbar Gui) -qt5_use_modules(test-modeltoolbar WebEngine) -qt5_use_modules(test-modeltoolbar WebEngineWidgets) +target_link_libraries(test-modeltoolbar Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/opensearchengine/CMakeLists.txt b/autotests/opensearchengine/CMakeLists.txt index dd58381d..1ad003a7 100644 --- a/autotests/opensearchengine/CMakeLists.txt +++ b/autotests/opensearchengine/CMakeLists.txt @@ -32,10 +32,4 @@ set(SRCS ) add_executable(test-opensearchengine ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-opensearchengine Core) -qt5_use_modules(test-opensearchengine Test) -qt5_use_modules(test-opensearchengine Widgets) -qt5_use_modules(test-opensearchengine Gui) -qt5_use_modules(test-opensearchengine Qml) -qt5_use_modules(test-opensearchengine WebEngine) -qt5_use_modules(test-opensearchengine WebEngineWidgets) +target_link_libraries(test-opensearchengine Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/opensearchmanager/CMakeLists.txt b/autotests/opensearchmanager/CMakeLists.txt index 503f16eb..d04250cf 100644 --- a/autotests/opensearchmanager/CMakeLists.txt +++ b/autotests/opensearchmanager/CMakeLists.txt @@ -36,10 +36,4 @@ set(SRCS ) add_executable(test-opensearchmanager ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-opensearchmanager Core) -qt5_use_modules(test-opensearchmanager Test) -qt5_use_modules(test-opensearchmanager Widgets) -qt5_use_modules(test-opensearchmanager Gui) -qt5_use_modules(test-opensearchmanager Qml) -qt5_use_modules(test-opensearchmanager WebEngine) -qt5_use_modules(test-opensearchmanager WebEngineWidgets) +target_link_libraries(test-opensearchmanager Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/opensearchreader/CMakeLists.txt b/autotests/opensearchreader/CMakeLists.txt index b8d862d4..e4738af5 100644 --- a/autotests/opensearchreader/CMakeLists.txt +++ b/autotests/opensearchreader/CMakeLists.txt @@ -36,10 +36,4 @@ set(SRCS ) add_executable(test-opensearchreader ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-opensearchreader Core) -qt5_use_modules(test-opensearchreader Test) -qt5_use_modules(test-opensearchreader Widgets) -qt5_use_modules(test-opensearchreader Gui) -qt5_use_modules(test-opensearchreader Qml) -qt5_use_modules(test-opensearchreader WebEngine) -qt5_use_modules(test-opensearchreader WebEngineWidgets) +target_link_libraries(test-opensearchreader Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/opensearchwriter/CMakeLists.txt b/autotests/opensearchwriter/CMakeLists.txt index 36349967..c12c1f5e 100644 --- a/autotests/opensearchwriter/CMakeLists.txt +++ b/autotests/opensearchwriter/CMakeLists.txt @@ -36,10 +36,4 @@ set(SRCS ) add_executable(test-opensearchwriter ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-opensearchwriter Core) -qt5_use_modules(test-opensearchwriter Test) -qt5_use_modules(test-opensearchwriter Widgets) -qt5_use_modules(test-opensearchwriter Gui) -qt5_use_modules(test-opensearchwriter Qml) -qt5_use_modules(test-opensearchwriter WebEngine) -qt5_use_modules(test-opensearchwriter WebEngineWidgets) +target_link_libraries(test-opensearchwriter Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/searchlineedit/CMakeLists.txt b/autotests/searchlineedit/CMakeLists.txt index 67dba48c..9fb04fb5 100644 --- a/autotests/searchlineedit/CMakeLists.txt +++ b/autotests/searchlineedit/CMakeLists.txt @@ -31,9 +31,4 @@ set(SRCS ) add_executable(test-searchlineedit ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-searchlineedit Core) -qt5_use_modules(test-searchlineedit Test) -qt5_use_modules(test-searchlineedit Widgets) -qt5_use_modules(test-searchlineedit Gui) -qt5_use_modules(test-searchlineedit WebEngine) -qt5_use_modules(test-searchlineedit WebEngineWidgets) +target_link_libraries(test-searchlineedit Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/tabbar/CMakeLists.txt b/autotests/tabbar/CMakeLists.txt index ffafaef9..bfb15941 100644 --- a/autotests/tabbar/CMakeLists.txt +++ b/autotests/tabbar/CMakeLists.txt @@ -3,6 +3,7 @@ project(test-tabbar) find_package(Qt5Widgets REQUIRED) find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) +find_package(Qt5Test REQUIRED) find_package(Qt5WebEngine REQUIRED) find_package(Qt5Network REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) @@ -126,12 +127,4 @@ QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) add_executable(test-tabbar ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -qt5_use_modules(test-tabbar Core) -qt5_use_modules(test-tabbar Test) -qt5_use_modules(test-tabbar Widgets) -qt5_use_modules(test-tabbar Gui) -qt5_use_modules(test-tabbar WebEngine) -qt5_use_modules(test-tabbar WebEngineWidgets) -qt5_use_modules(test-tabbar PrintSupport) -qt5_use_modules(test-tabbar Qml) -qt5_use_modules(test-tabbar UiTools) \ No newline at end of file +target_link_libraries(test-tabbar Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::PrintSupport Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) diff --git a/autotests/tabwidget/CMakeLists.txt b/autotests/tabwidget/CMakeLists.txt index bc90fd39..c55dbb6d 100644 --- a/autotests/tabwidget/CMakeLists.txt +++ b/autotests/tabwidget/CMakeLists.txt @@ -2,12 +2,13 @@ project(test-tabwidget) find_package(Qt5Widgets REQUIRED) find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5WebEngine REQUIRED) find_package(Qt5Network REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools) +find_package(Qt5UiTools REQUIRED) find_package(Qt5LinguistTools REQUIRED) find_package(Qt5Qml REQUIRED) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -126,12 +127,4 @@ QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) add_executable(test-tabwidget ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -qt5_use_modules(test-tabwidget Core) -qt5_use_modules(test-tabwidget Test) -qt5_use_modules(test-tabwidget Widgets) -qt5_use_modules(test-tabwidget Gui) -qt5_use_modules(test-tabwidget WebEngine) -qt5_use_modules(test-tabwidget WebEngineWidgets) -qt5_use_modules(test-tabwidget PrintSupport) -qt5_use_modules(test-tabwidget Qml) -qt5_use_modules(test-tabwidget UiTools) \ No newline at end of file +target_link_libraries(test-tabwidget Qt5::Core Qt5::Test Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) \ No newline at end of file diff --git a/autotests/utils/CMakeLists.txt b/autotests/utils/CMakeLists.txt index ac0e1ab4..a17eeb4e 100644 --- a/autotests/utils/CMakeLists.txt +++ b/autotests/utils/CMakeLists.txt @@ -1,4 +1,5 @@ project(utils) add_subdirectory(editlistview) add_subdirectory(edittreeview) +add_subdirectory(languagemanager) add_subdirectory(lineedit) \ No newline at end of file diff --git a/autotests/utils/editlistview/CMakeLists.txt b/autotests/utils/editlistview/CMakeLists.txt index 301ec3f8..a432a7af 100644 --- a/autotests/utils/editlistview/CMakeLists.txt +++ b/autotests/utils/editlistview/CMakeLists.txt @@ -27,9 +27,4 @@ set(SRCS ) add_executable(test-editlistview ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-editlistview Core) -qt5_use_modules(test-editlistview Test) -qt5_use_modules(test-editlistview Widgets) -qt5_use_modules(test-editlistview Gui) -qt5_use_modules(test-editlistview WebEngine) -qt5_use_modules(test-editlistview WebEngineWidgets) +target_link_libraries(test-editlistview Qt5::Core Qt5::Test Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/utils/edittreeview/CMakeLists.txt b/autotests/utils/edittreeview/CMakeLists.txt index 5c4c8f60..ba6d7fd6 100644 --- a/autotests/utils/edittreeview/CMakeLists.txt +++ b/autotests/utils/edittreeview/CMakeLists.txt @@ -27,9 +27,4 @@ set(SRCS ) add_executable(test-edittreeview ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-edittreeview Core) -qt5_use_modules(test-edittreeview Test) -qt5_use_modules(test-edittreeview Widgets) -qt5_use_modules(test-edittreeview Gui) -qt5_use_modules(test-edittreeview WebEngine) -qt5_use_modules(test-edittreeview WebEngineWidgets) +target_link_libraries(test-edittreeview Qt5::Core Qt5::Test Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/utils/languagemanager/CMakeLists.txt b/autotests/utils/languagemanager/CMakeLists.txt new file mode 100644 index 00000000..950e2ad8 --- /dev/null +++ b/autotests/utils/languagemanager/CMakeLists.txt @@ -0,0 +1,31 @@ +project(test-languagemanager) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Test REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5UiTools REQUIRED) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC_SEARCH_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../../src + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils +) +INCLUDE_DIRECTORIES( + ../../ + ../../../src/ + ../../../src/utils +) +add_definitions(-DNO_BROWSERAPPLICATION) +add_definitions(-DFOR_AUTOTEST) +set(SRCS + tst_languagemanager.cpp + ../../../src/utils/languagemanager.cpp +) + +add_executable(test-languagemanager ${SRCS} ${UIS} ${MOCS}) +target_link_libraries(test-languagemanager Qt5::Core Qt5::Test Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/utils/languagemanager/tst_languagemanager.cpp b/autotests/utils/languagemanager/tst_languagemanager.cpp index 3639adf7..5831dd86 100644 --- a/autotests/utils/languagemanager/tst_languagemanager.cpp +++ b/autotests/utils/languagemanager/tst_languagemanager.cpp @@ -26,11 +26,11 @@ * SUCH DAMAGE. */ -#include -#include +#include +#include #include -#include +#include class tst_LanguageManager : public QObject { diff --git a/autotests/utils/lineedit/CMakeLists.txt b/autotests/utils/lineedit/CMakeLists.txt index 78918e5c..e991c273 100644 --- a/autotests/utils/lineedit/CMakeLists.txt +++ b/autotests/utils/lineedit/CMakeLists.txt @@ -6,6 +6,7 @@ find_package(Qt5Gui REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5WebEngine REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5UiTools REQUIRED) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) @@ -27,9 +28,4 @@ set(SRCS ) add_executable(test-lineedit ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-lineedit Core) -qt5_use_modules(test-lineedit Test) -qt5_use_modules(test-lineedit Widgets) -qt5_use_modules(test-lineedit Gui) -qt5_use_modules(test-lineedit WebEngine) -qt5_use_modules(test-lineedit WebEngineWidgets) +target_link_libraries(test-lineedit Qt5::Core Qt5::Test Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/autotests/webactionmapper/CMakeLists.txt b/autotests/webactionmapper/CMakeLists.txt index 942bbdf2..0757ee69 100644 --- a/autotests/webactionmapper/CMakeLists.txt +++ b/autotests/webactionmapper/CMakeLists.txt @@ -7,9 +7,11 @@ find_package(Qt5WebEngine REQUIRED) find_package(Qt5Network REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools) +find_package(Qt5UiTools REQUIRED) find_package(Qt5LinguistTools REQUIRED) find_package(Qt5Qml REQUIRED) +find_package(Qt5Test REQUIRED) + set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) @@ -126,12 +128,4 @@ QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) add_executable(test-webactionmapper ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -qt5_use_modules(test-webactionmapper Core) -qt5_use_modules(test-webactionmapper Test) -qt5_use_modules(test-webactionmapper Widgets) -qt5_use_modules(test-webactionmapper Gui) -qt5_use_modules(test-webactionmapper WebEngine) -qt5_use_modules(test-webactionmapper WebEngineWidgets) -qt5_use_modules(test-webactionmapper PrintSupport) -qt5_use_modules(test-webactionmapper Qml) -qt5_use_modules(test-webactionmapper UiTools) \ No newline at end of file +target_link_libraries(test-webactionmapper Qt5::Core Qt5::Test Qt5::Qml Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::PrintSupport Qt5::UiTools) diff --git a/autotests/webpage/CMakeLists.txt b/autotests/webpage/CMakeLists.txt index 38785167..1a8dfe0a 100644 --- a/autotests/webpage/CMakeLists.txt +++ b/autotests/webpage/CMakeLists.txt @@ -7,9 +7,11 @@ find_package(Qt5WebEngine REQUIRED) find_package(Qt5Network REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools) +find_package(Qt5UiTools REQUIRED) find_package(Qt5LinguistTools REQUIRED) find_package(Qt5Qml REQUIRED) +find_package(Qt5Test REQUIRED) + set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) @@ -126,12 +128,4 @@ QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) add_executable(test-webpage ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -qt5_use_modules(test-webpage Core) -qt5_use_modules(test-webpage Test) -qt5_use_modules(test-webpage Widgets) -qt5_use_modules(test-webpage Gui) -qt5_use_modules(test-webpage WebEngine) -qt5_use_modules(test-webpage WebEngineWidgets) -qt5_use_modules(test-webpage PrintSupport) -qt5_use_modules(test-webpage Qml) -qt5_use_modules(test-webpage UiTools) \ No newline at end of file +target_link_libraries(test-webpage Qt5::Core Qt5::Test Qt5::Qml Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::PrintSupport Qt5::UiTools) diff --git a/autotests/xbel/CMakeLists.txt b/autotests/xbel/CMakeLists.txt index 12605cc4..1de4650c 100644 --- a/autotests/xbel/CMakeLists.txt +++ b/autotests/xbel/CMakeLists.txt @@ -5,6 +5,8 @@ find_package(Qt5Test REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5WebEngine REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5Sql REQUIRED) + set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -24,8 +26,4 @@ set(SRCS ../../src/bookmarks/xbel/xbelwriter.cpp ) add_executable(test-xbel ${SRCS} ${UIS} ${MOCS}) -qt5_use_modules(test-xbel Core) -qt5_use_modules(test-xbel Test) -qt5_use_modules(test-xbel Widgets) -qt5_use_modules(test-xbel WebEngine) -qt5_use_modules(test-xbel WebEngineWidgets) +target_link_libraries(test-xbel Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1233e778..266a6bab 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,7 +24,7 @@ find_package(Qt5WebEngine REQUIRED) find_package(Qt5Network REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools) +find_package(Qt5UiTools REQUIRED) find_package(Qt5LinguistTools REQUIRED) find_package(Qt5Qml REQUIRED) @@ -172,15 +172,4 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_TW.ts) # Generate executable add_executable(endorphin ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -qt5_use_modules(endorphin Widgets) -qt5_use_modules(endorphin Core) -qt5_use_modules(endorphin Gui) -qt5_use_modules(endorphin WebEngine) -qt5_use_modules(endorphin Network) -qt5_use_modules(endorphin WebEngineWidgets) -qt5_use_modules(endorphin PrintSupport) -qt5_use_modules(endorphin Qml) - -if(Qt5UiTools_FOUND) - qt5_use_modules(endorphin UiTools) -endif() +target_link_libraries(endorphin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Qml Qt5::PrintSupport Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) diff --git a/tools/cacheinfo/CMakeLists.txt b/tools/cacheinfo/CMakeLists.txt index 3d706ebd..b8b314e0 100644 --- a/tools/cacheinfo/CMakeLists.txt +++ b/tools/cacheinfo/CMakeLists.txt @@ -4,7 +4,4 @@ find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Network REQUIRED) add_executable(endorphin-cacheinfo main.cpp) -qt5_use_modules(endorphin-cacheinfo Widgets) -qt5_use_modules(endorphin-cacheinfo Core) -qt5_use_modules(endorphin-cacheinfo Gui) -qt5_use_modules(endorphin-cacheinfo Network) +target_link_libraries(test-xbel Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network) diff --git a/tools/htmlToXBel/CMakeLists.txt b/tools/htmlToXBel/CMakeLists.txt index 15a0be1b..ed33e1c9 100644 --- a/tools/htmlToXBel/CMakeLists.txt +++ b/tools/htmlToXBel/CMakeLists.txt @@ -4,6 +4,4 @@ find_package(Qt5Core REQUIRED) find_package(Qt5WebEngine REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) add_executable(htmlToXBel main.cpp mainapp.cpp source.qrc) -qt5_use_modules(htmlToXBel Core) -qt5_use_modules(htmlToXBel WebEngine) -qt5_use_modules(htmlToXBel WebEngineWidgets) \ No newline at end of file +target_link_libraries(test-xbel Qt5::Core Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/tools/placesimport/CMakeLists.txt b/tools/placesimport/CMakeLists.txt index 50ddc8e7..997a25a3 100644 --- a/tools/placesimport/CMakeLists.txt +++ b/tools/placesimport/CMakeLists.txt @@ -22,8 +22,4 @@ set(placesimport_SRCS ) add_executable(endorphin-placesimport ${placesimport_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS}) -qt5_use_modules(endorphin-placesimport Core) -qt5_use_modules(endorphin-placesimport Widgets) -qt5_use_modules(endorphin-placesimport Sql) -qt5_use_modules(endorphin-placesimport WebEngine) -qt5_use_modules(endorphin-placesimport WebEngineWidgets) +target_link_libraries(test-xbel Qt5::Core Qt5::Widgets Qt5::Sql Qt5::WebEngine Qt5::WebEngineWidgets) From 852616f84ca5e4e34e217b67cf25a94bdc035e27 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Thu, 17 Dec 2020 22:23:30 +0100 Subject: [PATCH 32/64] Prepare code for QT6 --- .../historyfiltermodel/tst_historyfiltermodel.cpp | 11 ++++++----- autotests/historymanager/tst_historymanager.cpp | 2 +- autotests/tabwidget/CMakeLists.txt | 1 - src/acceptlanguagedialog.h | 2 +- src/browsermainwindow.h | 2 +- src/devtoolswindow.cpp | 3 ++- src/devtoolswindow.h | 2 +- src/downloadmanager.cpp | 2 +- src/locationbar/locationbarsiteicon.cpp | 7 ++++--- src/opensearch/opensearchenginemodel.cpp | 2 +- src/plaintexteditsearch.cpp | 2 +- src/tabwidget.cpp | 2 +- src/webview.cpp | 2 +- src/webviewsearch.cpp | 4 ++-- tools/cacheinfo/CMakeLists.txt | 2 +- tools/htmlToXBel/CMakeLists.txt | 2 +- tools/placesimport/CMakeLists.txt | 2 +- tools/placesimport/main_placesimport.cpp | 4 ++-- 18 files changed, 28 insertions(+), 26 deletions(-) diff --git a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp index 49ebe46b..df4d0211 100644 --- a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp +++ b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp @@ -17,7 +17,8 @@ * Boston, MA 02110-1301 USA */ -#include +#include +#include #include #include #include @@ -68,13 +69,13 @@ HistoryList makeHistoryList(int count) for (int i = 0; i < count; ++i) { HistoryEntry item; QString url = QString("http://%1host-%2.com/") - .arg(qrand() % 2 ? "www." : "") + .arg(QRandomGenerator::global()->generate() % 2 ? "www." : "") .arg(QString::number(i)); item.url = url; item.title = QString("title %1").arg(i); item.dateTime = dateTime; list.append(item); - dateTime = dateTime.addSecs(-1 * qrand() % (60 * 60)); + dateTime = dateTime.addSecs(-1 * QRandomGenerator::global()->generate() % (60 * 60)); } return list; } @@ -240,8 +241,8 @@ void tst_HistoryFilterModel::addRow() } if (history.count() > 0) - for (int i = 0; i < qrand() % 15; ++i) - model.history->addHistoryEntry(history[qrand() % history.count()].url); + for (int i = 0; i < QRandomGenerator::global()->generate() % 15; ++i) + model.history->addHistoryEntry(history[QRandomGenerator::global()->generate() % history.count()].url); QStringList urls; for (int i = 0; i < model.rowCount(); ++i) { QModelIndex idx = model.index(i, 0); diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index 3f45bb2b..987a957c 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -220,7 +220,7 @@ void tst_HistoryManager::daysToExpire() SubHistory history; history.setHistory(list); - qSort(list.begin(), list.end()); + std::sort(list.begin(), list.end()); QCOMPARE(history.history(), list); history.setDaysToExpire(daysToExpire); diff --git a/autotests/tabwidget/CMakeLists.txt b/autotests/tabwidget/CMakeLists.txt index c55dbb6d..86ac6271 100644 --- a/autotests/tabwidget/CMakeLists.txt +++ b/autotests/tabwidget/CMakeLists.txt @@ -39,7 +39,6 @@ set(SRCS ) # From main browser - set(Endorphin_SRCS ../../src/aboutdialog.cpp ../../src/acceptlanguagedialog.cpp diff --git a/src/acceptlanguagedialog.h b/src/acceptlanguagedialog.h index 770ca403..82fae1e4 100644 --- a/src/acceptlanguagedialog.h +++ b/src/acceptlanguagedialog.h @@ -30,7 +30,7 @@ class AcceptLanguageDialog : public QDialog, public Ui_AcceptLanguage Q_OBJECT public: - AcceptLanguageDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = nullptr); + AcceptLanguageDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); void accept(); static QByteArray httpString(const QStringList &list); static QStringList defaultAcceptList(); diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index e289262a..518d15d5 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -88,7 +88,7 @@ class BrowserMainWindow : public QMainWindow Q_OBJECT public: - BrowserMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = nullptr); + BrowserMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); ~BrowserMainWindow(); QSize sizeHint() const; diff --git a/src/devtoolswindow.cpp b/src/devtoolswindow.cpp index 9caf6c73..7cd02b39 100644 --- a/src/devtoolswindow.cpp +++ b/src/devtoolswindow.cpp @@ -24,6 +24,7 @@ #include #include #include +#include DevToolsWindow::DevToolsWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) @@ -48,7 +49,7 @@ QWebEnginePage *DevToolsWindow::page() QSize DevToolsWindow::sizeHint() const { - QRect desktopRect = QApplication::desktop()->screenGeometry(); + QRect desktopRect = qApp->primaryScreen()->geometry(); QSize size = desktopRect.size() * 0.4; return size; } diff --git a/src/devtoolswindow.h b/src/devtoolswindow.h index 20499643..a0d108cc 100644 --- a/src/devtoolswindow.h +++ b/src/devtoolswindow.h @@ -34,7 +34,7 @@ class DevToolsWindow : public QMainWindow Q_OBJECT public: - DevToolsWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = nullptr); + DevToolsWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); ~DevToolsWindow(); QWebEnginePage *page(); QSize sizeHint() const; diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 123368e7..f67826b8 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -858,7 +858,7 @@ bool DownloadModel::removeRows(int row, int count, const QModelIndex &parent) Qt::ItemFlags DownloadModel::flags(const QModelIndex &index) const { if (index.row() < 0 || index.row() >= rowCount(index.parent())) - return 0; + return Qt::ItemFlags(); Qt::ItemFlags defaultFlags = QAbstractItemModel::flags(index); diff --git a/src/locationbar/locationbarsiteicon.cpp b/src/locationbar/locationbarsiteicon.cpp index f09f5b1c..29353a4e 100644 --- a/src/locationbar/locationbarsiteicon.cpp +++ b/src/locationbar/locationbarsiteicon.cpp @@ -75,9 +75,10 @@ void LocationBarSiteIcon::mouseMoveEvent(QMouseEvent *event) QList urls; urls.append(m_webView->url()); mimeData->setUrls(urls); - const QPixmap *p = pixmap(); - if (p) - drag->setPixmap(*p); + QPixmap p = pixmap(Qt::ReturnByValue); + if (!pixmap(Qt::ReturnByValue)) {} else { + drag->setPixmap(p); + } drag->setMimeData(mimeData); drag->exec(); } diff --git a/src/opensearch/opensearchenginemodel.cpp b/src/opensearch/opensearchenginemodel.cpp index 6284269b..f7ff162e 100644 --- a/src/opensearch/opensearchenginemodel.cpp +++ b/src/opensearch/opensearchenginemodel.cpp @@ -145,7 +145,7 @@ bool OpenSearchEngineModel::setData(const QModelIndex &index, const QVariant &va return false; QString engineName = m_manager->allEnginesNames().at(index.row()); - QStringList keywords = value.toString().split(QRegExp(QLatin1String("[ ,]+")), QString::SkipEmptyParts); + QStringList keywords = value.toString().split(QRegExp(QLatin1String("[ ,]+")), Qt::SkipEmptyParts); m_manager->setKeywordsForEngine(m_manager->engine(engineName), keywords); diff --git a/src/plaintexteditsearch.cpp b/src/plaintexteditsearch.cpp index 04c900d6..1e67dd5c 100644 --- a/src/plaintexteditsearch.cpp +++ b/src/plaintexteditsearch.cpp @@ -31,7 +31,7 @@ PlainTextEditSearch::PlainTextEditSearch(QPlainTextEdit *plainTextEdit, QWidget void PlainTextEditSearch::findNext() { - find(0); + find(QTextDocument::FindFlags()); } void PlainTextEditSearch::findPrevious() diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 1b56787f..e9fdc379 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -878,7 +878,7 @@ TabWidget::OpenUrlIn TabWidget::modifyWithUserBehavior(OpenUrlIn tab) { #ifdef USERMODIFIEDBEHAVIOR_DEBUG qDebug() << __FUNCTION__ << "end" << modifiers << buttons << tab; #endif - BrowserApplication::instance()->setEventKeyboardModifiers(nullptr); + BrowserApplication::instance()->setEventKeyboardModifiers(Qt::NoModifier); BrowserApplication::instance()->setEventMouseButtons(Qt::NoButton); return tab; } diff --git a/src/webview.cpp b/src/webview.cpp index 92527006..5ddcf82a 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -303,7 +303,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) void WebView::wheelEvent(QWheelEvent *event) { if (event->modifiers() & Qt::ControlModifier) { - int numDegrees = event->delta() / 8; + int numDegrees = event->angleDelta().y() / 8; int numSteps = numDegrees / 15; m_currentZoom = m_currentZoom + numSteps * 10; applyZoom(); diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index 8fac5da5..62c6d9ff 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -40,7 +40,7 @@ WebViewSearch::WebViewSearch(QWebEngineView *webView, QWidget *parent) void WebViewSearch::findNext() { - find(nullptr); + find(QWebEnginePage::FindFlags()); } void WebViewSearch::findPrevious() @@ -50,7 +50,7 @@ void WebViewSearch::findPrevious() void WebViewSearch::highlightAll() { - webView()->findText(QString(), nullptr); + webView()->findText(QString(), QWebEnginePage::FindFlags()); /* if (ui.highlightAllButton->isChecked()) diff --git a/tools/cacheinfo/CMakeLists.txt b/tools/cacheinfo/CMakeLists.txt index b8b314e0..9e487bff 100644 --- a/tools/cacheinfo/CMakeLists.txt +++ b/tools/cacheinfo/CMakeLists.txt @@ -4,4 +4,4 @@ find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Network REQUIRED) add_executable(endorphin-cacheinfo main.cpp) -target_link_libraries(test-xbel Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network) +target_link_libraries(endorphin-cacheinfo Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network) diff --git a/tools/htmlToXBel/CMakeLists.txt b/tools/htmlToXBel/CMakeLists.txt index ed33e1c9..08bea176 100644 --- a/tools/htmlToXBel/CMakeLists.txt +++ b/tools/htmlToXBel/CMakeLists.txt @@ -4,4 +4,4 @@ find_package(Qt5Core REQUIRED) find_package(Qt5WebEngine REQUIRED) find_package(Qt5WebEngineWidgets REQUIRED) add_executable(htmlToXBel main.cpp mainapp.cpp source.qrc) -target_link_libraries(test-xbel Qt5::Core Qt5::WebEngine Qt5::WebEngineWidgets) +target_link_libraries(htmlToXBel Qt5::Core Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/tools/placesimport/CMakeLists.txt b/tools/placesimport/CMakeLists.txt index 997a25a3..627f2f70 100644 --- a/tools/placesimport/CMakeLists.txt +++ b/tools/placesimport/CMakeLists.txt @@ -22,4 +22,4 @@ set(placesimport_SRCS ) add_executable(endorphin-placesimport ${placesimport_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS}) -target_link_libraries(test-xbel Qt5::Core Qt5::Widgets Qt5::Sql Qt5::WebEngine Qt5::WebEngineWidgets) +target_link_libraries(endorphin-placesimport Qt5::Core Qt5::Widgets Qt5::Sql Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/tools/placesimport/main_placesimport.cpp b/tools/placesimport/main_placesimport.cpp index 72adcc66..392edd06 100644 --- a/tools/placesimport/main_placesimport.cpp +++ b/tools/placesimport/main_placesimport.cpp @@ -54,8 +54,8 @@ int main(int argc, char **argv) args.takeFirst(); if (args.isEmpty()) { QTextStream stream(stdout); - stream << "endorphin-placesimport is a tool for importing browser history from Firefox 3 and up" << endl; - stream << "endorphin-placesinfo ~/.mozilla/firefox/[profile-dir]/places.sqlite" << endl; + stream << "endorphin-placesimport is a tool for importing browser history from Firefox 3 and up" << Qt::endl; + stream << "endorphin-placesinfo ~/.mozilla/firefox/[profile-dir]/places.sqlite" << Qt::endl; return 0; } From b3a272be8db88b446095c21e875822b1ee184dc5 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 25 Dec 2020 21:04:48 +0000 Subject: [PATCH 33/64] Reimplement history & private browsing --- autotests/CMakeLists.txt | 2 +- src/browserapplication.cpp | 52 ++++++++++++------- src/browserapplication.h | 15 +++--- src/browsermainwindow.cpp | 8 +-- src/history/historymanager.cpp | 14 ++++- src/locationbar/privacyindicator.cpp | 2 +- src/tabwidget.cpp | 76 ++++++++++++++++++++++------ src/tabwidget.h | 5 ++ src/webpage.cpp | 16 +++--- src/webpage.h | 6 +-- src/webview.cpp | 69 +++++++++++++------------ src/webview.h | 1 + 12 files changed, 175 insertions(+), 91 deletions(-) diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 1b95b75c..8b48d0cf 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -15,5 +15,5 @@ add_subdirectory(tabbar) add_subdirectory(tabwidget) add_subdirectory(utils) add_subdirectory(webactionmapper) -add_subdirectory(webpage) +#add_subdirectory(webpage) add_subdirectory(xbel) \ No newline at end of file diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index ccf8c81a..222bc502 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -120,18 +120,18 @@ #include "tabwidget.h" #include "webview.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include #ifdef Q_OS_WIN #include @@ -183,6 +183,8 @@ static void setUserStyleSheet(QWebEngineProfile *profile, const QString &styleSh BrowserApplication::BrowserApplication(int &argc, char **argv) : SingleApplication(argc, argv) , quitting(false) + , m_privateProfile(0) + , m_privateBrowsing(false) { QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.github.io/")); QCoreApplication::setApplicationName(QLatin1String("Endorphin")); @@ -514,11 +516,9 @@ void BrowserApplication::saveSession() settings.setValue(QLatin1String("restoring"), false); settings.endGroup(); - /* - QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); - if (globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) - return; - */ + if (m_privateBrowsing) + return; + clean(); settings.beginGroup(QLatin1String("sessions")); @@ -756,14 +756,28 @@ void BrowserApplication::setZoomTextOnly(bool textOnly) bool BrowserApplication::isPrivate() { - //return QWebEngineSettings::globalSettings()->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled); - return false; + return m_privateBrowsing; } -void BrowserApplication::setPrivate(bool isPrivate) + +void BrowserApplication::setPrivate(bool privateBrowsing) { - //QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::PrivateBrowsingEnabled, isPrivate); - //emit instance()->privacyChanged(isPrivate); + if (m_privateBrowsing == privateBrowsing) + return; + m_privateBrowsing = privateBrowsing; + if (privateBrowsing) { + if (!m_privateProfile) + m_privateProfile = new QWebEngineProfile(this); + Q_FOREACH (BrowserMainWindow* window, mainWindows()) { + window->tabWidget()->setProfile(m_privateProfile); + } + } else { + Q_FOREACH (BrowserMainWindow* window, mainWindows()) { + window->tabWidget()->setProfile(QWebEngineProfile::defaultProfile()); + window->tabWidget()->clear(); + } + } + emit privacyChanged(privateBrowsing); } Qt::MouseButtons BrowserApplication::eventMouseButtons() const diff --git a/src/browserapplication.h b/src/browserapplication.h index 7d519519..5ac1e663 100644 --- a/src/browserapplication.h +++ b/src/browserapplication.h @@ -65,9 +65,9 @@ #include "singleapplication.h" -#include -#include -#include +#include +#include +#include class BookmarksManager; class BrowserMainWindow; @@ -75,6 +75,7 @@ class DownloadManager; class HistoryManager; class LanguageManager; class QLocalSocket; +class QWebEngineProfile; class BrowserApplication : public SingleApplication { Q_OBJECT @@ -109,9 +110,6 @@ class BrowserApplication : public SingleApplication static bool zoomTextOnly(); - static bool isPrivate(); - static void setPrivate(bool isPrivate); - #if defined(Q_WS_MAC) bool event(QEvent *event); #endif @@ -128,6 +126,9 @@ public slots: void askDesktopToOpenUrl(const QUrl &url); + bool isPrivate(); + void setPrivate(bool isPrivate); + private slots: void retranslate(); void messageReceived(QLocalSocket *socket); @@ -150,6 +151,8 @@ private slots: QList > m_mainWindows; QByteArray m_lastSession; bool quitting; + QWebEngineProfile *m_privateProfile; + bool m_privateBrowsing; Qt::MouseButtons m_eventMouseButtons; Qt::KeyboardModifiers m_eventKeyboardModifiers; diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 1361be54..849e4373 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -128,7 +128,7 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) setupMenu(); setupToolBar(); - m_filePrivateBrowsingAction->setChecked(BrowserApplication::isPrivate()); + m_filePrivateBrowsingAction->setChecked(BrowserApplication::instance()->isPrivate()); QWidget *centralWidget = new QWidget(this); BookmarksModel *boomarksModel = BrowserApplication::bookmarksManager()->bookmarksModel(); @@ -1211,7 +1211,7 @@ void BrowserMainWindow::printRequested(QWebEnginePage *page) void BrowserMainWindow::privateBrowsing() { - if (!BrowserApplication::isPrivate()) { + if (!BrowserApplication::instance()->isPrivate()) { QString title = tr("Are you sure you want to turn on private browsing?"); QString text1 = tr("When private browsing is turned on, some actions concerning your privacy will be disabled:"); @@ -1233,11 +1233,11 @@ void BrowserMainWindow::privateBrowsing() QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok); if (button == QMessageBox::Ok) - BrowserApplication::setPrivate(true); + BrowserApplication::instance()->setPrivate(true); else m_filePrivateBrowsingAction->setChecked(false); } else { - BrowserApplication::setPrivate(false); + BrowserApplication::instance()->setPrivate(false); } } diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index aef29098..74930434 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -64,6 +64,9 @@ #include "autosaver.h" #include "history.h" +#ifndef NO_BROWSERAPPLICATION +#include "browserapplication.h" +#endif #include #include @@ -143,11 +146,18 @@ bool HistoryManager::historyContains(const QString &url) const void HistoryManager::addHistoryEntry(const QString &url) { +#ifndef NO_BROWSERAPPLICATION + if (BrowserApplication::instance()->isPrivate()) + return; +#endif + QUrl cleanUrl(url); cleanUrl.setPassword(QString()); cleanUrl.setHost(cleanUrl.host().toLower()); - HistoryEntry item(atomicString(cleanUrl.toString()), QDateTime::currentDateTime()); - prependHistoryEntry(item); + if(!cleanUrl.toString().toLower().contains("endorphinbrowser.github.io/newTab/")) { + HistoryEntry item(atomicString(cleanUrl.toString()), QDateTime::currentDateTime()); + prependHistoryEntry(item); + } } void HistoryManager::setHistory(const QList &history, bool loadedAndSorted) diff --git a/src/locationbar/privacyindicator.cpp b/src/locationbar/privacyindicator.cpp index fe09fe7d..c353e192 100644 --- a/src/locationbar/privacyindicator.cpp +++ b/src/locationbar/privacyindicator.cpp @@ -28,7 +28,7 @@ PrivacyIndicator::PrivacyIndicator(QWidget *parent) connect(BrowserApplication::instance(), SIGNAL(privacyChanged(bool)), this, SLOT(setVisible(bool))); setCursor(Qt::ArrowCursor); - setVisible(BrowserApplication::isPrivate()); + setVisible(BrowserApplication::instance()->isPrivate()); } void PrivacyIndicator::mousePressEvent(QMouseEvent *event) diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index e9fdc379..c4e2f3fb 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -81,20 +81,21 @@ #include "webview.h" #include "webviewsearch.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include -#include +#include //#define USERMODIFIEDBEHAVIOR_DEBUG @@ -110,6 +111,7 @@ TabWidget::TabWidget(QWidget *parent) , m_lineEditCompleter(nullptr) , m_locationBars(nullptr) , m_tabBar(new TabBar(this)) + , m_profile(QWebEngineProfile::defaultProfile()) , addTabButton(nullptr) , closeTabButton(nullptr) { @@ -254,12 +256,16 @@ void TabWidget::currentChanged(int index) this, SIGNAL(linkHovered(const QString&))); disconnect(oldWebView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); + disconnect(oldWebView->page()->profile(), SIGNAL(downloadRequested(QWebEngineDownloadItem*)), + this, SLOT(downloadRequested(QWebEngineDownloadItem*))); } connect(webView->page(), SIGNAL(linkHovered(const QString&)), this, SIGNAL(linkHovered(const QString&))); connect(webView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); + connect(webView->page()->profile(), SIGNAL(downloadRequested(QWebEngineDownloadItem*)), + this, SLOT(downloadRequested(QWebEngineDownloadItem*))); for (int i = 0; i < m_actions.count(); ++i) { WebActionMapper *mapper = m_actions[i]; @@ -391,6 +397,7 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) // webview WebView *webView = new WebView; + webView->setPage(new WebPage(m_profile, webView)); locationBar->setWebView(webView); connect(webView, SIGNAL(loadStarted()), this, SLOT(webViewLoadStarted())); @@ -531,6 +538,14 @@ void TabWidget::closeTab(int index) bool hasFocus = false; WebView *tab = webView(index); + hasFocus = tab->hasFocus(); + + if (m_profile == QWebEngineProfile::defaultProfile()) { + m_recentlyClosedTabsAction->setEnabled(true); + m_recentlyClosedTabs.prepend(tab->url()); + if (m_recentlyClosedTabs.size() >= TabWidget::m_recentlyClosedTabsSize) + m_recentlyClosedTabs.removeLast(); + } if (tab && !tab->url().isEmpty()) { /* @@ -575,6 +590,34 @@ void TabWidget::closeTab(int index) emit lastTabClosed(); } +void TabWidget::setProfile(QWebEngineProfile *profile) +{ + m_profile = profile; + for (int i = 0; i < count(); ++i) { + QWidget *tabWidget = widget(i); + if (WebView *tab = qobject_cast(tabWidget)) { + WebPage* webPage = new WebPage(m_profile, tab); + setupPage(webPage); + webPage->load(tab->page()->url()); + tab->setPage(webPage); + } + } +} + +void TabWidget::setupPage(QWebEnginePage* page) +{ + connect(page, SIGNAL(windowCloseRequested()), + this, SLOT(windowCloseRequested())); + connect(page, SIGNAL(geometryChangeRequested(QRect)), + this, SIGNAL(geometryChangeRequested(QRect))); + + // webview actions + for (int i = 0; i < m_actions.count(); ++i) { + WebActionMapper *mapper = m_actions[i]; + mapper->addChild(page->action(mapper->webAction())); + } +} + QLabel *TabWidget::animationLabel(int index, bool addMovie) { if (-1 == index) @@ -690,9 +733,12 @@ void TabWidget::webViewUrlChanged(const QUrl &url) { WebView *webView = qobject_cast(sender()); int index = webViewIndex(webView); - if (-1 == index) - return; - m_tabBar->setTabData(index, url); + if (-1 != index) { + m_tabBar->setTabData(index, url); + HistoryManager *manager = BrowserApplication::historyManager(); + if (url.isValid()) + manager->addHistoryEntry(url.toString()); + } emit tabsChanged(); } diff --git a/src/tabwidget.h b/src/tabwidget.h index 59b66e72..aeb01d6b 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -148,6 +148,8 @@ class TabWidget : public QTabWidget static OpenUrlIn modifyWithUserBehavior(OpenUrlIn tab); WebView *getView(OpenUrlIn tab, WebView *currentView); + void setProfile(QWebEngineProfile *profile); + protected: void changeEvent(QEvent *event); @@ -184,6 +186,8 @@ private slots: void historyCleared(); private: + void setupPage(QWebEnginePage* page); + static QUrl guessUrlFromString(const QString &url); QLabel *animationLabel(int index, bool addMovie); void retranslate(); @@ -206,6 +210,7 @@ private slots: TabBar *m_tabBar; QToolButton *addTabButton; QToolButton *closeTabButton; + QWebEngineProfile *m_profile; }; #endif // TABWIDGET_H diff --git a/src/webpage.cpp b/src/webpage.cpp index a83b713e..76174eb9 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -29,12 +29,12 @@ #include "toolbarsearch.h" #include "webview.h" -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include @@ -43,8 +43,8 @@ QString WebPage::s_userAgent; -WebPage::WebPage(QObject *parent) - : QWebEnginePage(parent) +WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) + : QWebEnginePage(profile, parent) , m_openTargetBlankLinksIn(TabWidget::NewWindow) { loadSettings(); diff --git a/src/webpage.h b/src/webpage.h index b574929a..4c1e69bf 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -23,8 +23,8 @@ #include "QWebEnginePage" #include "tabwidget.h" -#include -#include +#include +#include class WebPageLinkedResource { @@ -46,7 +46,7 @@ class WebPage : public QWebEnginePage void aboutToLoadUrl(const QUrl &url); public: - WebPage(QObject *parent = nullptr); + WebPage(QWebEngineProfile *profile, QObject *parent = 0); ~WebPage(); void loadSettings(); diff --git a/src/webview.cpp b/src/webview.cpp index 5ddcf82a..592d6f01 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -146,41 +146,46 @@ #include #include -WebView::WebView(QWidget *parent) +WebView::WebView(QWidget* parent) : QWebEngineView(parent) , m_progress(0) - , m_currentZoom(100) - , m_page(new WebPage(this)) -// , m_enableAccessKeys(true) -// , m_accessKeysPressed(false) + , m_page(0) { - setPage(m_page); - connect(page(), &WebPage::featurePermissionRequested, this, &WebView::onFeaturePermissionRequested); - QPalette p; connect(this, SIGNAL(loadProgress(int)), this, SLOT(setProgress(int))); connect(this, SIGNAL(loadFinished(bool)), - this, SLOT(loadFinished())); - connect(page(), SIGNAL(aboutToLoadUrl(const QUrl &)), - this, SIGNAL(urlChanged(const QUrl &))); - connect(page(), SIGNAL(downloadRequested(const QNetworkRequest &)), - this, SLOT(downloadRequested(const QNetworkRequest &))); - connect(BrowserApplication::instance(), SIGNAL(zoomTextOnlyChanged(bool)), - this, SLOT(applyZoom())); -// page()->setForwardUnsupportedContent(true); - setAcceptDrops(true); - - // the zoom values (in percent) are chosen to be like in Mozilla Firefox 3 - m_zoomLevels << 30 << 50 << 67 << 80 << 90; - m_zoomLevels << 100; - m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300; - /* - connect(m_page, SIGNAL(loadStarted()), - this, SLOT(hideAccessKeys())); - connect(m_page, SIGNAL(scrollRequested(int, int, const QRect &)), - this, SLOT(hideAccessKeys())); - */ - loadSettings(); + this, SLOT(loadFinished(bool))); + connect(this, &QWebEngineView::renderProcessTerminated, + [=](QWebEnginePage::RenderProcessTerminationStatus termStatus, int statusCode) { + const char *status = ""; + switch (termStatus) { + case QWebEnginePage::NormalTerminationStatus: + status = "(normal exit)"; + break; + case QWebEnginePage::AbnormalTerminationStatus: + status = "(abnormal exit)"; + break; + case QWebEnginePage::CrashedTerminationStatus: + status = "(crashed)"; + break; + case QWebEnginePage::KilledTerminationStatus: + status = "(killed)"; + break; + } + + qInfo() << "Render process exited with code" << statusCode << status; + QTimer::singleShot(0, [this] { reload(); }); + }); +} + +void WebView::setPage(WebPage *_page) +{ + m_page = _page; + QWebEngineView::setPage(_page); + disconnect(page(), &QWebEnginePage::iconChanged, this, &WebView::iconChanged); + connect(page(), SIGNAL(iconChanged(QIcon)), + this, SLOT(onIconChanged(QIcon))); + connect(page(), &WebPage::featurePermissionRequested, this, &WebView::onFeaturePermissionRequested); } void WebView::loadSettings() @@ -670,7 +675,7 @@ void WebView::dropEvent(QDropEvent *event) void WebView::mouseReleaseEvent(QMouseEvent *event) { const bool isAccepted = event->isAccepted(); - m_page->event(event); + page()->event(event); if (!event->isAccepted() && (BrowserApplication::instance()->eventMouseButtons() & Qt::MidButton)) { QUrl url(QApplication::clipboard()->text(QClipboard::Selection)); @@ -807,7 +812,7 @@ void WebView::showAccessKeys() for (char c = '0'; c <= '9'; ++c) unusedKeys << QLatin1Char(c); - QRect viewport = QRect(m_page->mainFrame()->scrollPosition(), m_page->viewportSize()); + QRect viewport = QRect(page()->mainFrame()->scrollPosition(), page()->viewportSize()); // Priority first goes to elements with accesskey attributes QList alreadyLabeled; foreach (const QString &elementType, supportedElement) { @@ -880,7 +885,7 @@ void WebView::makeAccessKeyLabel(const QChar &accessKey, const QWebElement &elem label->setAutoFillBackground(true); label->setFrameStyle(QFrame::Box | QFrame::Plain); QPoint point = element.geometry().center(); - point -= m_page->mainFrame()->scrollPosition(); + point -= page()->mainFrame()->scrollPosition(); label->move(point); label->show(); point.setX(point.x() - label->width() / 2); diff --git a/src/webview.h b/src/webview.h index c834f3ec..b2470aaf 100644 --- a/src/webview.h +++ b/src/webview.h @@ -80,6 +80,7 @@ class WebView : public QWebEngineView public: WebView(QWidget *parent = nullptr); + void setPage(WebPage *page); WebPage *webPage() const { return m_page; } From a8769943a26ab4c2981bc2c0888a7207b52a6feb Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 25 Dec 2020 21:55:09 +0000 Subject: [PATCH 34/64] Move to GitLab --- BUILDING.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 80aeafb4..611e3c7e 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -5,14 +5,14 @@ Endorphin is still in development, which means that there are no compiled instal ### Step 1: Make sure git is installed. To see if git is installed, open up a terminal window and type `git`. If it is not installed, the terminal will report back command not found. If it is installed, you'll receive the git help text. To install git: [Windows](https://gitforwindows.org/), [Mac](https://git-scm.com/download/mac), and for Linux, use your distro's package manager. -### Step 2: Download and install Qt 5.14 or greater. -If you already have **Qt 5.14** or greater installed, you can skip this step. To install Qt 5.14, visit the [Download Page](https://www.qt.io/download) or use your distro's package manager on Linux. Be sure to add the correct PATH variable if required in the official install instructions. When you're done, skip the alternative method section, and move onto Step 3. +### Step 2: Download and install Qt 5.15. +If you already have **Qt 5.15** or greater installed, you can skip this step. To install Qt 5.15, visit the [Download Page](https://www.qt.io/download) or use your distro's package manager on Linux. Be sure to add the correct PATH variable if required in the official install instructions. When you're done, skip the alternative method section, and move onto Step 3. ### Step 3: Download and compile the latest Endorphin. Now we will download the latest tree of Endorphin. Issue these commands: ``` -$ git clone git://github.com/AaronDewes/endorphin-browser.git -$ cd endorphin-browser +$ git clone https://gitlab.com/EndorphinBrowser/browser.git +$ cd browser $ mkdir build && cd build $ cmake .. $ make -j$(nproc) @@ -21,7 +21,7 @@ Endorphin is now compiled. To run endorphin, simply run `./endorphin` from the c _**Optional**_: To update to the latest Endorphin in the future, you can issue these commands: ``` -$ cd endorphin-browser +$ cd browser $ git pull $ cd build $ make -j$(nproc) From 29b6ae43f5fb74bd075fc933d8df61fe02a58c6b Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Mon, 28 Dec 2020 16:22:29 +0000 Subject: [PATCH 35/64] Multiple improvements --- GPLHEADER | 2 +- .../tst_addbookmarkdialog.cpp | 4 +-- autotests/modeltoolbar/tst_modeltoolbar.cpp | 4 +-- .../opensearchengine/tst_opensearchengine.cpp | 8 ++--- autotests/qtry.h | 2 +- .../utils/edittreeview/tst_edittreeview.cpp | 2 +- .../languagemanager/tst_languagemanager.cpp | 2 +- autotests/utils/lineedit/tst_lineedit.cpp | 2 +- autotests/webpage/tst_webpage.cpp | 1 - src/aboutdialog.cpp | 12 +++---- src/aboutdialog.h | 2 +- src/acceptlanguagedialog.cpp | 4 +-- src/acceptlanguagedialog.h | 2 +- src/autosaver.cpp | 8 ++--- src/autosaver.h | 4 +-- src/bookmarks/addbookmarkdialog.cpp | 2 +- src/bookmarks/addbookmarkdialog.h | 2 +- src/bookmarks/bookmarknode.h | 2 +- src/bookmarks/bookmarksdialog.cpp | 4 +-- src/bookmarks/bookmarksdialog.h | 6 ++-- src/bookmarks/bookmarksmanager.cpp | 20 +++++------ src/bookmarks/bookmarksmanager.h | 2 +- src/bookmarks/bookmarksmenu.h | 4 +-- src/bookmarks/bookmarksmodel.cpp | 2 +- src/bookmarks/bookmarksmodel.h | 2 +- src/bookmarks/bookmarkstoolbar.cpp | 2 +- src/bookmarks/bookmarkstoolbar.h | 4 +-- src/bookmarks/xbel/xbelreader.cpp | 2 +- src/bookmarks/xbel/xbelreader.h | 2 +- src/bookmarks/xbel/xbelwriter.cpp | 2 +- src/bookmarks/xbel/xbelwriter.h | 2 +- src/browsermainwindow.cpp | 34 +++++++++---------- src/browsermainwindow.h | 2 +- src/clearbutton.cpp | 4 +-- src/clearbutton.h | 4 +-- src/clearprivatedata.cpp | 14 ++++---- src/clearprivatedata.h | 2 +- src/devtoolswindow.h | 2 +- src/downloadmanager.cpp | 20 +++++------ src/downloadmanager.h | 6 ++-- src/history/history.cpp | 22 ++++++------ src/history/history.h | 10 +++--- src/history/historymanager.cpp | 10 +++--- src/history/historymanager.h | 6 ++-- src/locationbar/locationbar.cpp | 6 ++-- src/locationbar/locationbar.h | 2 +- src/locationbar/locationbarsiteicon.cpp | 4 +-- src/locationbar/locationbarsiteicon.h | 2 +- src/locationbar/privacyindicator.h | 2 +- src/locationcompleter.cpp | 6 ++-- src/locationcompleter.h | 10 +++--- src/modelmenu.cpp | 8 ++--- src/modelmenu.h | 4 +-- src/modeltoolbar.cpp | 4 +-- src/modeltoolbar.h | 4 +-- src/opensearch/opensearchdialog.cpp | 4 +-- src/opensearch/opensearchdialog.h | 2 +- src/opensearch/opensearchengine.cpp | 8 ++--- src/opensearch/opensearchengine.h | 2 +- src/opensearch/opensearchengineaction.h | 2 +- src/opensearch/opensearchenginedelegate.h | 2 +- src/opensearch/opensearchenginemodel.h | 2 +- src/opensearch/opensearchmanager.cpp | 16 ++++----- src/opensearch/opensearchmanager.h | 4 +-- src/opensearch/opensearchwriter.cpp | 2 +- src/plaintexteditsearch.cpp | 4 +-- src/plaintexteditsearch.h | 2 +- src/searchbar.cpp | 8 ++--- src/searchbar.h | 2 +- src/searchbutton.cpp | 8 ++--- src/searchbutton.h | 2 +- src/searchlineedit.cpp | 2 +- src/searchlineedit.h | 2 +- src/settings.cpp | 14 ++++---- src/settings.h | 2 +- src/sourcehighlighter.cpp | 2 +- src/sourcehighlighter.h | 2 +- src/sourceviewer.cpp | 16 ++++----- src/sourceviewer.h | 2 +- src/tabbar.cpp | 16 ++++----- src/tabbar.h | 4 +-- src/tabwidget.cpp | 2 +- src/tabwidget.h | 2 +- src/toolbarsearch.cpp | 16 ++++----- src/useragent/useragentmenu.cpp | 8 ++--- src/useragent/useragentmenu.h | 2 +- src/utils/editlistview.cpp | 2 +- src/utils/editlistview.h | 2 +- src/utils/edittableview.cpp | 4 +-- src/utils/edittableview.h | 4 +-- src/utils/edittreeview.cpp | 4 +-- src/utils/edittreeview.h | 2 +- src/utils/explorerstyle.cpp | 10 +++--- src/utils/explorerstyle.h | 2 +- src/utils/languagemanager.cpp | 12 +++---- src/utils/languagemanager.h | 2 +- src/utils/lineedit.cpp | 10 +++--- src/utils/lineedit.h | 4 +-- src/utils/lineedit_p.h | 4 +-- src/utils/singleapplication.cpp | 8 ++--- src/utils/singleapplication.h | 4 +-- src/utils/squeezelabel.cpp | 2 +- src/utils/squeezelabel.h | 4 +-- src/utils/treesortfilterproxymodel.cpp | 2 +- src/utils/treesortfilterproxymodel.h | 4 +-- src/webactionmapper.cpp | 2 +- src/webpage.h | 2 +- src/webview.cpp | 26 +++++++------- src/webview.h | 2 +- src/webviewsearch.cpp | 10 +++--- tools/placesimport/main_placesimport.cpp | 10 +++--- 111 files changed, 303 insertions(+), 304 deletions(-) diff --git a/GPLHEADER b/GPLHEADER index b932cb3d..9b16c98c 100644 --- a/GPLHEADER +++ b/GPLHEADER @@ -1,5 +1,5 @@ /* - * Copyright 2008 Name + * Copyright 2020 Name * * 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 diff --git a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp index 854270e9..96133f3f 100644 --- a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp +++ b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp @@ -24,8 +24,8 @@ #include "bookmarknode.h" #include "tst_addbookmarkdialog.h" -#include -#include +#include +#include BookmarksManager *tst_AddBookmarkDialog::s_bookmarksManager = nullptr; diff --git a/autotests/modeltoolbar/tst_modeltoolbar.cpp b/autotests/modeltoolbar/tst_modeltoolbar.cpp index fa2ee0f5..b69a166a 100644 --- a/autotests/modeltoolbar/tst_modeltoolbar.cpp +++ b/autotests/modeltoolbar/tst_modeltoolbar.cpp @@ -23,9 +23,9 @@ #include "modelmenu.h" -#include +#include #include -#include +#include #include class tst_ModelToolBar : public QObject diff --git a/autotests/opensearchengine/tst_opensearchengine.cpp b/autotests/opensearchengine/tst_opensearchengine.cpp index 510552d0..706f34e1 100644 --- a/autotests/opensearchengine/tst_opensearchengine.cpp +++ b/autotests/opensearchengine/tst_opensearchengine.cpp @@ -24,12 +24,12 @@ #include "opensearchenginedelegate.h" #include -#include +#include #include #include -#include -#include -#include +#include +#include +#include typedef OpenSearchEngine::Parameters Parameters; typedef OpenSearchEngine::Parameter Parameter; diff --git a/autotests/qtry.h b/autotests/qtry.h index 20c7e8b9..5a44caa5 100644 --- a/autotests/qtry.h +++ b/autotests/qtry.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008 - 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/autotests/utils/edittreeview/tst_edittreeview.cpp b/autotests/utils/edittreeview/tst_edittreeview.cpp index ed2b44db..a4d84f3d 100644 --- a/autotests/utils/edittreeview/tst_edittreeview.cpp +++ b/autotests/utils/edittreeview/tst_edittreeview.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include class tst_EditTreeView : public QObject { diff --git a/autotests/utils/languagemanager/tst_languagemanager.cpp b/autotests/utils/languagemanager/tst_languagemanager.cpp index 5831dd86..3cdb84f5 100644 --- a/autotests/utils/languagemanager/tst_languagemanager.cpp +++ b/autotests/utils/languagemanager/tst_languagemanager.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/autotests/utils/lineedit/tst_lineedit.cpp b/autotests/utils/lineedit/tst_lineedit.cpp index 34515564..f4fddde0 100644 --- a/autotests/utils/lineedit/tst_lineedit.cpp +++ b/autotests/utils/lineedit/tst_lineedit.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include class tst_LineEdit : public QObject { diff --git a/autotests/webpage/tst_webpage.cpp b/autotests/webpage/tst_webpage.cpp index 18bf9416..f79b5b54 100644 --- a/autotests/webpage/tst_webpage.cpp +++ b/autotests/webpage/tst_webpage.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index ea2e9c42..596d0d2b 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -20,12 +20,12 @@ #include "aboutdialog.h" -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent) diff --git a/src/aboutdialog.h b/src/aboutdialog.h index a4a532e6..74ba07e1 100644 --- a/src/aboutdialog.h +++ b/src/aboutdialog.h @@ -20,7 +20,7 @@ #ifndef ABOUTDIALOG_H #define ABOUTDIALOG_H -#include +#include #include "ui_aboutdialog.h" class AboutDialog : public QDialog, private Ui_AboutDialog diff --git a/src/acceptlanguagedialog.cpp b/src/acceptlanguagedialog.cpp index f577d293..554926d7 100644 --- a/src/acceptlanguagedialog.cpp +++ b/src/acceptlanguagedialog.cpp @@ -22,8 +22,8 @@ #include "browserapplication.h" #include "languagemanager.h" -#include -#include +#include +#include AcceptLanguageDialog::AcceptLanguageDialog(QWidget *parent, Qt::WindowFlags flags) : QDialog(parent, flags) diff --git a/src/acceptlanguagedialog.h b/src/acceptlanguagedialog.h index 82fae1e4..8fdc35cd 100644 --- a/src/acceptlanguagedialog.h +++ b/src/acceptlanguagedialog.h @@ -20,7 +20,7 @@ #ifndef ACCEPTLANGUAGEDIALOG_H #define ACCEPTLANGUAGEDIALOG_H -#include +#include #include "ui_acceptlanguagedialog.h" #include diff --git a/src/autosaver.cpp b/src/autosaver.cpp index 53c79b29..85a5deff 100644 --- a/src/autosaver.cpp +++ b/src/autosaver.cpp @@ -62,11 +62,11 @@ #include "autosaver.h" -#include -#include -#include +#include +#include +#include -#include +#include #define AUTOSAVE_IN 1000 * 3 // seconds #define MAXWAIT 1000 * 15 // seconds diff --git a/src/autosaver.h b/src/autosaver.h index fc82ed09..748670a2 100644 --- a/src/autosaver.h +++ b/src/autosaver.h @@ -63,8 +63,8 @@ #ifndef AUTOSAVER_H #define AUTOSAVER_H -#include -#include +#include +#include #include /* diff --git a/src/bookmarks/addbookmarkdialog.cpp b/src/bookmarks/addbookmarkdialog.cpp index 6fd768fe..f485e626 100644 --- a/src/bookmarks/addbookmarkdialog.cpp +++ b/src/bookmarks/addbookmarkdialog.cpp @@ -74,7 +74,7 @@ #endif #endif -#include +#include #include AddBookmarkProxyModel::AddBookmarkProxyModel(QObject *parent) diff --git a/src/bookmarks/addbookmarkdialog.h b/src/bookmarks/addbookmarkdialog.h index 5469c71e..72d48e85 100644 --- a/src/bookmarks/addbookmarkdialog.h +++ b/src/bookmarks/addbookmarkdialog.h @@ -66,7 +66,7 @@ #include "ui_addbookmarkdialog.h" -#include +#include class AddBookmarkProxyModel : public QSortFilterProxyModel { diff --git a/src/bookmarks/bookmarknode.h b/src/bookmarks/bookmarknode.h index a97a6578..7b5bec8c 100644 --- a/src/bookmarks/bookmarknode.h +++ b/src/bookmarks/bookmarknode.h @@ -63,7 +63,7 @@ #ifndef BOOKMARKNODE_H #define BOOKMARKNODE_H -#include +#include #include class BookmarkNode diff --git a/src/bookmarks/bookmarksdialog.cpp b/src/bookmarks/bookmarksdialog.cpp index 30947a7c..41aae574 100644 --- a/src/bookmarks/bookmarksdialog.cpp +++ b/src/bookmarks/bookmarksdialog.cpp @@ -68,8 +68,8 @@ #include "browserapplication.h" #include "treesortfilterproxymodel.h" -#include -#include +#include +#include BookmarksDialog::BookmarksDialog(QWidget *parent, BookmarksManager *manager) : QDialog(parent) diff --git a/src/bookmarks/bookmarksdialog.h b/src/bookmarks/bookmarksdialog.h index 43398ab3..96a9274b 100644 --- a/src/bookmarks/bookmarksdialog.h +++ b/src/bookmarks/bookmarksdialog.h @@ -63,13 +63,13 @@ #ifndef BOOKMARKSDIALOG_H #define BOOKMARKSDIALOG_H -#include +#include #include "ui_bookmarksdialog.h" #include "tabwidget.h" -#include -#include +#include +#include class TreeSortFilterProxyModel; class BookmarksManager; diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp index 4c16fa9b..ca724ca9 100644 --- a/src/bookmarks/bookmarksmanager.cpp +++ b/src/bookmarks/bookmarksmanager.cpp @@ -71,20 +71,20 @@ #include "xbelwriter.h" #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include +#include +#include +#include +#include #include -#include +#include #define BOOKMARKBAR QT_TRANSLATE_NOOP("BookmarksManager", "Bookmarks Bar") #define BOOKMARKMENU QT_TRANSLATE_NOOP("BookmarksManager", "Bookmarks Menu") diff --git a/src/bookmarks/bookmarksmanager.h b/src/bookmarks/bookmarksmanager.h index 8f4c5023..39c56425 100644 --- a/src/bookmarks/bookmarksmanager.h +++ b/src/bookmarks/bookmarksmanager.h @@ -20,7 +20,7 @@ #ifndef BOOKMARKSMANAGER_H #define BOOKMARKSMANAGER_H -#include +#include #include diff --git a/src/bookmarks/bookmarksmenu.h b/src/bookmarks/bookmarksmenu.h index 594863b3..602914ea 100644 --- a/src/bookmarks/bookmarksmenu.h +++ b/src/bookmarks/bookmarksmenu.h @@ -67,8 +67,8 @@ #include "tabwidget.h" -#include -#include +#include +#include class BookmarksManager; diff --git a/src/bookmarks/bookmarksmodel.cpp b/src/bookmarks/bookmarksmodel.cpp index 54a492eb..c2caa7e6 100644 --- a/src/bookmarks/bookmarksmodel.cpp +++ b/src/bookmarks/bookmarksmodel.cpp @@ -72,7 +72,7 @@ #include "xbelwriter.h" #include -#include +#include #include diff --git a/src/bookmarks/bookmarksmodel.h b/src/bookmarks/bookmarksmodel.h index c2b41e99..ad46729b 100644 --- a/src/bookmarks/bookmarksmodel.h +++ b/src/bookmarks/bookmarksmodel.h @@ -63,7 +63,7 @@ #ifndef BOOKMARKSMODEL_H #define BOOKMARKSMODEL_H -#include +#include #include diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index d72d9719..d11e6e0f 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -34,7 +34,7 @@ #endif #include "modelmenu.h" -#include +#include BookmarksToolBar::BookmarksToolBar(BookmarksModel *model, QWidget *parent) : ModelToolBar(parent) diff --git a/src/bookmarks/bookmarkstoolbar.h b/src/bookmarks/bookmarkstoolbar.h index 99d48ba8..537fcc2f 100644 --- a/src/bookmarks/bookmarkstoolbar.h +++ b/src/bookmarks/bookmarkstoolbar.h @@ -25,9 +25,9 @@ #include "tabwidget.h" -#include +#include #include -#include +#include class BookmarksModel; class BookmarksToolBar : public ModelToolBar diff --git a/src/bookmarks/xbel/xbelreader.cpp b/src/bookmarks/xbel/xbelreader.cpp index cfdb44cc..7aa432a5 100644 --- a/src/bookmarks/xbel/xbelreader.cpp +++ b/src/bookmarks/xbel/xbelreader.cpp @@ -62,7 +62,7 @@ #include "xbelreader.h" -#include +#include #include "bookmarknode.h" diff --git a/src/bookmarks/xbel/xbelreader.h b/src/bookmarks/xbel/xbelreader.h index e9ad8916..6bb53117 100644 --- a/src/bookmarks/xbel/xbelreader.h +++ b/src/bookmarks/xbel/xbelreader.h @@ -64,7 +64,7 @@ #define XBELREADER_H #include -#include +#include class BookmarkNode; class XmlEntityResolver : public QXmlStreamEntityResolver diff --git a/src/bookmarks/xbel/xbelwriter.cpp b/src/bookmarks/xbel/xbelwriter.cpp index f4342b6f..9533ff50 100644 --- a/src/bookmarks/xbel/xbelwriter.cpp +++ b/src/bookmarks/xbel/xbelwriter.cpp @@ -62,7 +62,7 @@ #include "xbelwriter.h" -#include +#include #include "bookmarknode.h" diff --git a/src/bookmarks/xbel/xbelwriter.h b/src/bookmarks/xbel/xbelwriter.h index 75e54070..7bca1b41 100644 --- a/src/bookmarks/xbel/xbelwriter.h +++ b/src/bookmarks/xbel/xbelwriter.h @@ -64,7 +64,7 @@ #define XBELWRITER_H #include -#include +#include class BookmarkNode; class XbelWriter : public QXmlStreamWriter diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 849e4373..b84976bd 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -88,25 +88,25 @@ #include "webview.h" #include "webviewsearch.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include #include -#include +#include BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index 518d15d5..238f2773 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -63,7 +63,7 @@ #ifndef BROWSERMAINWINDOW_H #define BROWSERMAINWINDOW_H -#include +#include class AutoSaver; class BookmarksToolBar; diff --git a/src/clearbutton.cpp b/src/clearbutton.cpp index 25623db7..0973dc0d 100644 --- a/src/clearbutton.cpp +++ b/src/clearbutton.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -28,7 +28,7 @@ #include "clearbutton.h" -#include +#include ClearButton::ClearButton(QWidget *parent) : QAbstractButton(parent) diff --git a/src/clearbutton.h b/src/clearbutton.h index 9f30b437..bdf2115e 100644 --- a/src/clearbutton.h +++ b/src/clearbutton.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,7 +29,7 @@ #ifndef CLEARBUTTON_H #define CLEARBUTTON_H -#include +#include class ClearButton : public QAbstractButton { diff --git a/src/clearprivatedata.cpp b/src/clearprivatedata.cpp index fa6f8eb7..165d5e36 100644 --- a/src/clearprivatedata.cpp +++ b/src/clearprivatedata.cpp @@ -26,13 +26,13 @@ #include "toolbarsearch.h" #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include ClearPrivateData::ClearPrivateData(QWidget *parent) diff --git a/src/clearprivatedata.h b/src/clearprivatedata.h index 86c43e33..de087379 100644 --- a/src/clearprivatedata.h +++ b/src/clearprivatedata.h @@ -20,7 +20,7 @@ #ifndef CLEARPRIVATEDATA_H #define CLEARPRIVATEDATA_H -#include +#include class QCheckBox; diff --git a/src/devtoolswindow.h b/src/devtoolswindow.h index a0d108cc..8a96fd93 100644 --- a/src/devtoolswindow.h +++ b/src/devtoolswindow.h @@ -20,7 +20,7 @@ #ifndef DEVTOOLSWINDOW_H #define DEVTOOLSWINDOW_H -#include +#include #include class QWebEnginePage; diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index f67826b8..5ed11f41 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -70,18 +70,18 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 83171495..2875519e 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -67,10 +67,10 @@ #include "ui_downloads.h" #include "ui_downloaditem.h" -#include +#include -#include -#include +#include +#include #include class DownloadItem : public QWidget, public Ui_DownloadItem diff --git a/src/history/history.cpp b/src/history/history.cpp index 84781f27..c7ccaccc 100644 --- a/src/history/history.cpp +++ b/src/history/history.cpp @@ -70,22 +70,22 @@ #include "treesortfilterproxymodel.h" #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include -#include -#include +#include +#include #include -#include -#include -#include +#include +#include +#include #include -#include +#include HistoryModel::HistoryModel(HistoryManager *history, QObject *parent) : QAbstractTableModel(parent) diff --git a/src/history/history.h b/src/history/history.h index e353fd5d..aaf7b0cf 100644 --- a/src/history/history.h +++ b/src/history/history.h @@ -65,12 +65,12 @@ #include "modelmenu.h" -#include +#include #include -#include -#include -#include -#include +#include +#include +#include +#include class HistoryManager; class HistoryModel : public QAbstractTableModel diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index 74930434..3fb39407 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -69,14 +69,14 @@ #endif #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include -#include +#include // Fix so we don't have to include browserapplication. Reduces the size. diff --git a/src/history/historymanager.h b/src/history/historymanager.h index 07736ced..955e61cd 100644 --- a/src/history/historymanager.h +++ b/src/history/historymanager.h @@ -63,10 +63,10 @@ #ifndef HISTORYMANAGER_H #define HISTORYMANAGER_H -#include +#include #include -#include -#include +#include +#include class HistoryEntry { diff --git a/src/locationbar/locationbar.cpp b/src/locationbar/locationbar.cpp index 1d83bb61..48fd5130 100644 --- a/src/locationbar/locationbar.cpp +++ b/src/locationbar/locationbar.cpp @@ -27,12 +27,12 @@ #include "webview.h" #include -#include -#include +#include +#include #include #include -#include +#include LocationBar::LocationBar(QWidget *parent) : LineEdit(parent) diff --git a/src/locationbar/locationbar.h b/src/locationbar/locationbar.h index 5e8467c5..76635094 100644 --- a/src/locationbar/locationbar.h +++ b/src/locationbar/locationbar.h @@ -23,7 +23,7 @@ #include "lineedit.h" #include -#include +#include class WebView; class LocationBarSiteIcon; diff --git a/src/locationbar/locationbarsiteicon.cpp b/src/locationbar/locationbarsiteicon.cpp index 29353a4e..3cd90cbd 100644 --- a/src/locationbar/locationbarsiteicon.cpp +++ b/src/locationbar/locationbarsiteicon.cpp @@ -19,8 +19,8 @@ #include "locationbarsiteicon.h" -#include -#include +#include +#include #include #include diff --git a/src/locationbar/locationbarsiteicon.h b/src/locationbar/locationbarsiteicon.h index 09646305..49c4be29 100644 --- a/src/locationbar/locationbarsiteicon.h +++ b/src/locationbar/locationbarsiteicon.h @@ -20,7 +20,7 @@ #ifndef LOCATIONBARSITEICON_H #define LOCATIONBARSITEICON_H -#include +#include class WebView; class LocationBarSiteIcon : public QLabel diff --git a/src/locationbar/privacyindicator.h b/src/locationbar/privacyindicator.h index 2f59bd7d..56df0eaf 100644 --- a/src/locationbar/privacyindicator.h +++ b/src/locationbar/privacyindicator.h @@ -20,7 +20,7 @@ #ifndef PRIVACYINDICATOR_H #define PRIVACYINDICATOR_H -#include +#include class PrivacyIndicator : public QLabel { diff --git a/src/locationcompleter.cpp b/src/locationcompleter.cpp index 7c8b6219..7ff008cc 100644 --- a/src/locationcompleter.cpp +++ b/src/locationcompleter.cpp @@ -19,9 +19,9 @@ #include "locationcompleter.h" -#include -#include -#include +#include +#include +#include HistoryCompletionView::HistoryCompletionView(QWidget *parent) : QTableView(parent) diff --git a/src/locationcompleter.h b/src/locationcompleter.h index e68b1673..1975c31d 100644 --- a/src/locationcompleter.h +++ b/src/locationcompleter.h @@ -23,11 +23,11 @@ #include "history.h" -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include class QResizeEvent; class HistoryCompletionView : public QTableView diff --git a/src/modelmenu.cpp b/src/modelmenu.cpp index d24c2a14..d14760cc 100644 --- a/src/modelmenu.cpp +++ b/src/modelmenu.cpp @@ -68,14 +68,14 @@ #include "browserapplication.h" #endif -#include -#include -#include +#include +#include +#include #include #include #include -#include +#include ModelMenu::ModelMenu(QWidget *parent) : QMenu(parent) diff --git a/src/modelmenu.h b/src/modelmenu.h index 2d0ca7b2..5cb4f0f5 100644 --- a/src/modelmenu.h +++ b/src/modelmenu.h @@ -64,8 +64,8 @@ #ifndef MODELMENU_H #define MODELMENU_H -#include -#include +#include +#include // A QMenu that is dynamically populated from a QAbstractItemModel class ModelMenu : public QMenu diff --git a/src/modeltoolbar.cpp b/src/modeltoolbar.cpp index 4d6efe8e..46e363b8 100644 --- a/src/modeltoolbar.cpp +++ b/src/modeltoolbar.cpp @@ -24,8 +24,8 @@ #endif #include "modelmenu.h" -#include -#include +#include +#include #include #include #include diff --git a/src/modeltoolbar.h b/src/modeltoolbar.h index df3046a8..c92204f7 100644 --- a/src/modeltoolbar.h +++ b/src/modeltoolbar.h @@ -20,9 +20,9 @@ #ifndef MODELTOOLBAR_H #define MODELTOOLBAR_H -#include +#include -#include +#include Q_DECLARE_METATYPE(QModelIndex) diff --git a/src/opensearch/opensearchdialog.cpp b/src/opensearch/opensearchdialog.cpp index 1fc00921..03695df8 100644 --- a/src/opensearch/opensearchdialog.cpp +++ b/src/opensearch/opensearchdialog.cpp @@ -25,8 +25,8 @@ #include "opensearchmanager.h" #include "toolbarsearch.h" -#include -#include +#include +#include OpenSearchDialog::OpenSearchDialog(QWidget *parent) : QDialog(parent) diff --git a/src/opensearch/opensearchdialog.h b/src/opensearch/opensearchdialog.h index 5804984f..589047fa 100644 --- a/src/opensearch/opensearchdialog.h +++ b/src/opensearch/opensearchdialog.h @@ -21,7 +21,7 @@ #ifndef OPENSEARCHDIALOG_H #define OPENSEARCHDIALOG_H -#include +#include #include "ui_opensearchdialog.h" diff --git a/src/opensearch/opensearchengine.cpp b/src/opensearch/opensearchengine.cpp index 2fac279e..29053467 100644 --- a/src/opensearch/opensearchengine.cpp +++ b/src/opensearch/opensearchengine.cpp @@ -22,11 +22,11 @@ #include "opensearchenginedelegate.h" #include -#include +#include #include -#include -#include -#include +#include +#include +#include #include #include #include diff --git a/src/opensearch/opensearchengine.h b/src/opensearch/opensearchengine.h index 2211ba05..f0aec951 100644 --- a/src/opensearch/opensearchengine.h +++ b/src/opensearch/opensearchengine.h @@ -25,7 +25,7 @@ #include #include #include -#include +#include class QNetworkReply; class QJSEngine; diff --git a/src/opensearch/opensearchengineaction.h b/src/opensearch/opensearchengineaction.h index 8635028c..51d77acc 100644 --- a/src/opensearch/opensearchengineaction.h +++ b/src/opensearch/opensearchengineaction.h @@ -20,7 +20,7 @@ #ifndef OPENSEARCHENGINEACTION_H #define OPENSEARCHENGINEACTION_H -#include +#include class OpenSearchEngine; class OpenSearchEngineAction : public QAction diff --git a/src/opensearch/opensearchenginedelegate.h b/src/opensearch/opensearchenginedelegate.h index 5de3c598..e9a23c0d 100644 --- a/src/opensearch/opensearchenginedelegate.h +++ b/src/opensearch/opensearchenginedelegate.h @@ -21,7 +21,7 @@ #define OPENSEARCHENGINEDELEGATE_H #include -#include +#include class OpenSearchEngineDelegate { diff --git a/src/opensearch/opensearchenginemodel.h b/src/opensearch/opensearchenginemodel.h index 582cb4df..c0e85174 100644 --- a/src/opensearch/opensearchenginemodel.h +++ b/src/opensearch/opensearchenginemodel.h @@ -22,7 +22,7 @@ #ifndef OPENSEARCHENGINEMODEL_H #define OPENSEARCHENGINEMODEL_H -#include +#include class OpenSearchEngine; class OpenSearchManager; diff --git a/src/opensearch/opensearchmanager.cpp b/src/opensearch/opensearchmanager.cpp index df3499a9..795cc3fd 100644 --- a/src/opensearch/opensearchmanager.cpp +++ b/src/opensearch/opensearchmanager.cpp @@ -28,15 +28,15 @@ #include "opensearchreader.h" #include "opensearchwriter.h" -#include -#include +#include +#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include OpenSearchManager::OpenSearchManager(QObject *parent) diff --git a/src/opensearch/opensearchmanager.h b/src/opensearch/opensearchmanager.h index a9a84b52..f70049e2 100644 --- a/src/opensearch/opensearchmanager.h +++ b/src/opensearch/opensearchmanager.h @@ -22,11 +22,11 @@ #ifndef OPENSEARCHMANAGER_H #define OPENSEARCHMANAGER_H -#include +#include #include #include -#include +#include class QNetworkReply; class QNetworkRequest; diff --git a/src/opensearch/opensearchwriter.cpp b/src/opensearch/opensearchwriter.cpp index 10b7c548..e5cdc8f5 100644 --- a/src/opensearch/opensearchwriter.cpp +++ b/src/opensearch/opensearchwriter.cpp @@ -21,7 +21,7 @@ #include "opensearchengine.h" -#include +#include #include /*! diff --git a/src/plaintexteditsearch.cpp b/src/plaintexteditsearch.cpp index 1e67dd5c..a1bb8217 100644 --- a/src/plaintexteditsearch.cpp +++ b/src/plaintexteditsearch.cpp @@ -19,8 +19,8 @@ #include "plaintexteditsearch.h" -#include -#include +#include +#include PlainTextEditSearch::PlainTextEditSearch(QPlainTextEdit *plainTextEdit, QWidget *parent) : SearchBar(parent) diff --git a/src/plaintexteditsearch.h b/src/plaintexteditsearch.h index 50d51982..8d83a0c9 100644 --- a/src/plaintexteditsearch.h +++ b/src/plaintexteditsearch.h @@ -22,7 +22,7 @@ #include "searchbar.h" -#include +#include class QPlainTextEdit; class PlainTextEditSearch : public SearchBar diff --git a/src/searchbar.cpp b/src/searchbar.cpp index 508a4f45..115a1e27 100644 --- a/src/searchbar.cpp +++ b/src/searchbar.cpp @@ -19,11 +19,11 @@ #include "searchbar.h" -#include -#include -#include +#include +#include +#include -#include +#include SearchBar::SearchBar(QWidget *parent) : QWidget(parent) diff --git a/src/searchbar.h b/src/searchbar.h index 8ad612e4..a0b442fd 100644 --- a/src/searchbar.h +++ b/src/searchbar.h @@ -20,7 +20,7 @@ #ifndef SEARCHBAR_H #define SEARCHBAR_H -#include +#include #include "ui_searchbanner.h" diff --git a/src/searchbutton.cpp b/src/searchbutton.cpp index 7a1bc699..c053c974 100644 --- a/src/searchbutton.cpp +++ b/src/searchbutton.cpp @@ -19,10 +19,10 @@ #include "searchbutton.h" -#include -#include -#include -#include +#include +#include +#include +#include #include SearchButton::SearchButton(QWidget *parent) diff --git a/src/searchbutton.h b/src/searchbutton.h index 074cbb5f..18802553 100644 --- a/src/searchbutton.h +++ b/src/searchbutton.h @@ -20,7 +20,7 @@ #ifndef SEARCHBUTTON_H #define SEARCHBUTTON_H -#include +#include class QCompleter; class SearchButton : public QAbstractButton diff --git a/src/searchlineedit.cpp b/src/searchlineedit.cpp index 4183a340..5d1e9610 100644 --- a/src/searchlineedit.cpp +++ b/src/searchlineedit.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/src/searchlineedit.h b/src/searchlineedit.h index e6e081d5..13b95dda 100644 --- a/src/searchlineedit.h +++ b/src/searchlineedit.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/src/settings.cpp b/src/settings.cpp index 55ef85a5..2bb98a17 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -70,13 +70,13 @@ #include "webpage.h" #include "webview.h" -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent) diff --git a/src/settings.h b/src/settings.h index 62fe8589..62dad01c 100644 --- a/src/settings.h +++ b/src/settings.h @@ -63,7 +63,7 @@ #ifndef SETTINGS_H #define SETTINGS_H -#include +#include #include "ui_settings.h" class SettingsDialog : public QDialog, public Ui_Settings diff --git a/src/sourcehighlighter.cpp b/src/sourcehighlighter.cpp index 98a2975d..6adeb87d 100644 --- a/src/sourcehighlighter.cpp +++ b/src/sourcehighlighter.cpp @@ -19,7 +19,7 @@ #include "sourcehighlighter.h" -#include +#include SourceHighlighter::SourceHighlighter(QTextDocument *document) : QSyntaxHighlighter(document) diff --git a/src/sourcehighlighter.h b/src/sourcehighlighter.h index d6783e68..340300ef 100644 --- a/src/sourcehighlighter.h +++ b/src/sourcehighlighter.h @@ -20,7 +20,7 @@ #ifndef SOURCEHIGHLIGHTER_H #define SOURCEHIGHLIGHTER_H -#include +#include class SourceHighlighter : public QSyntaxHighlighter { diff --git a/src/sourceviewer.cpp b/src/sourceviewer.cpp index 1f495467..632629c6 100644 --- a/src/sourceviewer.cpp +++ b/src/sourceviewer.cpp @@ -20,14 +20,14 @@ #include "sourceviewer.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/sourceviewer.h b/src/sourceviewer.h index a6fb8752..08c14249 100644 --- a/src/sourceviewer.h +++ b/src/sourceviewer.h @@ -20,7 +20,7 @@ #ifndef SOURCEVIEWER_H #define SOURCEVIEWER_H -#include +#include class QVBoxLayout; class SourceHighlighter; diff --git a/src/tabbar.cpp b/src/tabbar.cpp index 931b0c56..d2f6b374 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -64,17 +64,17 @@ #include "tabwidget.h" -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include TabShortcut::TabShortcut(int tab, const QKeySequence &key, QWidget *parent) : QShortcut(key, parent) diff --git a/src/tabbar.h b/src/tabbar.h index 315ff944..1f6457e2 100644 --- a/src/tabbar.h +++ b/src/tabbar.h @@ -63,7 +63,7 @@ #ifndef TABBAR_H #define TABBAR_H -#include +#include #include "tabwidget.h" @@ -122,7 +122,7 @@ private slots: }; -#include +#include /* Shortcut to switch directly to a tab by index diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index c4e2f3fb..771055f8 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -257,7 +257,7 @@ void TabWidget::currentChanged(int index) disconnect(oldWebView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); disconnect(oldWebView->page()->profile(), SIGNAL(downloadRequested(QWebEngineDownloadItem*)), - this, SLOT(downloadRequested(QWebEngineDownloadItem*))); + this, SLOT(downloadRequested(QWebEngineDownloadItem*))); } connect(webView->page(), SIGNAL(linkHovered(const QString&)), diff --git a/src/tabwidget.h b/src/tabwidget.h index aeb01d6b..0f13488c 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -66,7 +66,7 @@ #include #include -#include +#include QT_BEGIN_NAMESPACE class QCompleter; diff --git a/src/toolbarsearch.cpp b/src/toolbarsearch.cpp index 289ae9bf..6a0e5b11 100644 --- a/src/toolbarsearch.cpp +++ b/src/toolbarsearch.cpp @@ -73,14 +73,14 @@ #include "webpage.h" #include "webview.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/useragent/useragentmenu.cpp b/src/useragent/useragentmenu.cpp index 289a299f..5179bd35 100644 --- a/src/useragent/useragentmenu.cpp +++ b/src/useragent/useragentmenu.cpp @@ -31,12 +31,12 @@ #include "webpage.h" -#include -#include -#include +#include +#include +#include #include -#include +#include UserAgentMenu::UserAgentMenu(QWidget *parent) : QMenu(parent) diff --git a/src/useragent/useragentmenu.h b/src/useragent/useragentmenu.h index a3b7ab06..d747efea 100644 --- a/src/useragent/useragentmenu.h +++ b/src/useragent/useragentmenu.h @@ -30,7 +30,7 @@ #ifndef USERAGENTMENU_H #define USERAGENTMENU_H -#include +#include class UserAgentMenu : public QMenu { diff --git a/src/utils/editlistview.cpp b/src/utils/editlistview.cpp index be57b4fb..f2385fe7 100644 --- a/src/utils/editlistview.cpp +++ b/src/utils/editlistview.cpp @@ -28,7 +28,7 @@ #include "editlistview.h" -#include +#include EditListView::EditListView(QWidget *parent) : QListView(parent) diff --git a/src/utils/editlistview.h b/src/utils/editlistview.h index 2349fada..dd033457 100644 --- a/src/utils/editlistview.h +++ b/src/utils/editlistview.h @@ -29,7 +29,7 @@ #ifndef EDITLISTVIEW_H #define EDITLISTVIEW_H -#include +#include class EditListView : public QListView { diff --git a/src/utils/edittableview.cpp b/src/utils/edittableview.cpp index da94f3ca..0e7585fb 100644 --- a/src/utils/edittableview.cpp +++ b/src/utils/edittableview.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * Copyright (c) 2009, Jakub Wieczorek * * Redistribution and use in source and binary forms, with or without @@ -29,7 +29,7 @@ #include "edittableview.h" -#include +#include EditTableView::EditTableView(QWidget *parent) : QTableView(parent) diff --git a/src/utils/edittableview.h b/src/utils/edittableview.h index 44a9a125..80d5da9c 100644 --- a/src/utils/edittableview.h +++ b/src/utils/edittableview.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * Copyright (c) 2009, Jakub Wieczorek * * Redistribution and use in source and binary forms, with or without @@ -30,7 +30,7 @@ #ifndef EDITTABLEVIEW_H #define EDITTABLEVIEW_H -#include +#include class EditTableView : public QTableView { diff --git a/src/utils/edittreeview.cpp b/src/utils/edittreeview.cpp index 982bd5cc..e6045dcf 100644 --- a/src/utils/edittreeview.cpp +++ b/src/utils/edittreeview.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * Copyright (c) 2009, Jakub Wieczorek * * Redistribution and use in source and binary forms, with or without @@ -29,7 +29,7 @@ #include "edittreeview.h" -#include +#include EditTreeView::EditTreeView(QWidget *parent) : QTreeView(parent) diff --git a/src/utils/edittreeview.h b/src/utils/edittreeview.h index b07c500c..8dbce017 100644 --- a/src/utils/edittreeview.h +++ b/src/utils/edittreeview.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * Copyright (c) 2009, Jakub Wieczorek * * Redistribution and use in source and binary forms, with or without diff --git a/src/utils/explorerstyle.cpp b/src/utils/explorerstyle.cpp index 5fc08e0b..de1856ea 100644 --- a/src/utils/explorerstyle.cpp +++ b/src/utils/explorerstyle.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -41,10 +41,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/src/utils/explorerstyle.h b/src/utils/explorerstyle.h index 540f5c14..c65dbb55 100644 --- a/src/utils/explorerstyle.h +++ b/src/utils/explorerstyle.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/src/utils/languagemanager.cpp b/src/utils/languagemanager.cpp index d2863d8d..600714e5 100644 --- a/src/utils/languagemanager.cpp +++ b/src/utils/languagemanager.cpp @@ -29,18 +29,18 @@ #include "languagemanager.h" -#include -#include +#include +#include #include #include -#include +#include #include -#include +#include #include -#include +#include #include -#include +#include // #define LANGUAGEMANAGER_DEBUG diff --git a/src/utils/languagemanager.h b/src/utils/languagemanager.h index 868985e7..e1d7410e 100644 --- a/src/utils/languagemanager.h +++ b/src/utils/languagemanager.h @@ -30,7 +30,7 @@ #ifndef LANGUAGEMANAGER_H #define LANGUAGEMANAGER_H -#include +#include #include diff --git a/src/utils/lineedit.cpp b/src/utils/lineedit.cpp index 5e893046..95b5234d 100644 --- a/src/utils/lineedit.cpp +++ b/src/utils/lineedit.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008 - 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,12 +29,12 @@ #include "lineedit.h" #include "lineedit_p.h" -#include -#include +#include +#include #include -#include +#include -#include +#include SideWidget::SideWidget(QWidget *parent) : QWidget(parent) diff --git a/src/utils/lineedit.h b/src/utils/lineedit.h index ace3fedd..964c6692 100644 --- a/src/utils/lineedit.h +++ b/src/utils/lineedit.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008 - 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,7 +29,7 @@ #ifndef LINEEDIT_H #define LINEEDIT_H -#include +#include class QHBoxLayout; diff --git a/src/utils/lineedit_p.h b/src/utils/lineedit_p.h index 0462453e..c92b346b 100644 --- a/src/utils/lineedit_p.h +++ b/src/utils/lineedit_p.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008 - 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,7 +29,7 @@ #ifndef LINEEDIT_P_H #define LINEEDIT_P_H -#include +#include class SideWidget : public QWidget { diff --git a/src/utils/singleapplication.cpp b/src/utils/singleapplication.cpp index d1768d36..47862edb 100644 --- a/src/utils/singleapplication.cpp +++ b/src/utils/singleapplication.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008-2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -28,11 +28,11 @@ #include "singleapplication.h" -#include +#include #include #include -#include -#include +#include +#include #ifndef Q_OS_WIN #include diff --git a/src/utils/singleapplication.h b/src/utils/singleapplication.h index e0fbc56f..675806be 100644 --- a/src/utils/singleapplication.h +++ b/src/utils/singleapplication.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2008-2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,7 +29,7 @@ #ifndef SINGLEAPPLICATION_H #define SINGLEAPPLICATION_H -#include +#include /* QApplication subclass that should be used when you only want one diff --git a/src/utils/squeezelabel.cpp b/src/utils/squeezelabel.cpp index b1298c90..486c4060 100644 --- a/src/utils/squeezelabel.cpp +++ b/src/utils/squeezelabel.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/src/utils/squeezelabel.h b/src/utils/squeezelabel.h index 0183db66..92758891 100644 --- a/src/utils/squeezelabel.h +++ b/src/utils/squeezelabel.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,7 +29,7 @@ #ifndef SQUEEZELABEL_H #define SQUEEZELABEL_H -#include +#include /* A label that will squeeze the set text to fit within the size of the diff --git a/src/utils/treesortfilterproxymodel.cpp b/src/utils/treesortfilterproxymodel.cpp index 8762fd6c..236992dd 100644 --- a/src/utils/treesortfilterproxymodel.cpp +++ b/src/utils/treesortfilterproxymodel.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/src/utils/treesortfilterproxymodel.h b/src/utils/treesortfilterproxymodel.h index f92b2008..f1e8c699 100644 --- a/src/utils/treesortfilterproxymodel.h +++ b/src/utils/treesortfilterproxymodel.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2009, Aaron Dewes + * Copyright (c) 2020, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,7 +29,7 @@ #ifndef TREESORTFILTERPROXYMODEL_H #define TREESORTFILTERPROXYMODEL_H -#include +#include class TreeSortFilterProxyModel : public QSortFilterProxyModel { diff --git a/src/webactionmapper.cpp b/src/webactionmapper.cpp index 9cbed5f0..af58d88d 100644 --- a/src/webactionmapper.cpp +++ b/src/webactionmapper.cpp @@ -62,7 +62,7 @@ #include "webactionmapper.h" -#include +#include WebActionMapper::WebActionMapper(QAction *root, QWebEnginePage::WebAction webAction, QObject *parent) : QObject(parent) diff --git a/src/webpage.h b/src/webpage.h index 4c1e69bf..d6515608 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -20,11 +20,11 @@ #ifndef WEBPAGE_H #define WEBPAGE_H -#include "QWebEnginePage" #include "tabwidget.h" #include #include +#include class WebPageLinkedResource { diff --git a/src/webview.cpp b/src/webview.cpp index 592d6f01..c23bfba1 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -126,22 +126,22 @@ #include "webpage.h" #include "permissionbar.h" -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include #include #include -#include +#include #include #include @@ -156,7 +156,7 @@ WebView::WebView(QWidget* parent) connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool))); connect(this, &QWebEngineView::renderProcessTerminated, - [=](QWebEnginePage::RenderProcessTerminationStatus termStatus, int statusCode) { + [=](QWebEnginePage::RenderProcessTerminationStatus termStatus, int statusCode) { const char *status = ""; switch (termStatus) { case QWebEnginePage::NormalTerminationStatus: diff --git a/src/webview.h b/src/webview.h index b2470aaf..7aabc289 100644 --- a/src/webview.h +++ b/src/webview.h @@ -64,7 +64,7 @@ #ifndef WEBVIEW_H #define WEBVIEW_H -#include +#include #include "tabwidget.h" diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index 62c6d9ff..aedf0d2f 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -19,13 +19,13 @@ #include "webviewsearch.h" -#include -#include -#include +#include +#include +#include -#include +#include -#include +#include WebViewSearch::WebViewSearch(QWebEngineView *webView, QWidget *parent) : SearchBar(parent) diff --git a/tools/placesimport/main_placesimport.cpp b/tools/placesimport/main_placesimport.cpp index 392edd06..ba069854 100644 --- a/tools/placesimport/main_placesimport.cpp +++ b/tools/placesimport/main_placesimport.cpp @@ -18,14 +18,14 @@ * Boston, MA 02110-1301 USA */ -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include -#include +#include #include #include "singleapplication.h" From edd15a2446f8594693f84bf28a6c9e9d2b1e74f2 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Mon, 28 Dec 2020 18:06:41 +0000 Subject: [PATCH 36/64] A few improvements --- src/CMakeLists.txt | 20 ++++++++++++++++++++ src/browserapplication.cpp | 1 + src/browsermainwindow.cpp | 4 ++-- src/downloadmanager.cpp | 1 + src/locationcompleter.cpp | 1 + src/modelmenu.cpp | 2 ++ src/modeltoolbar.cpp | 1 + src/modeltoolbar.h | 2 +- src/searchbar.cpp | 3 ++- src/sourceviewer.cpp | 2 +- src/tabbar.h | 2 +- src/utils/editlistview.cpp | 1 + src/utils/edittableview.cpp | 1 + src/utils/edittreeview.cpp | 1 + src/utils/explorerstyle.cpp | 2 +- src/webviewsearch.cpp | 2 +- tools/cacheinfo/CMakeLists.txt | 5 +++++ tools/placesimport/CMakeLists.txt | 5 +++++ 18 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 266a6bab..87998462 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,9 @@ # Some common settings project(Endorphin) + +include(GNUInstallDirs) + set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) @@ -173,3 +176,20 @@ qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_TW.ts) # Generate executable add_executable(endorphin ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) target_link_libraries(endorphin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Qml Qt5::PrintSupport Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) + + +if(NOT QT_TRANSLATIONS_DIR) +get_target_property(QT5_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION) +execute_process( COMMAND ${QT5_QMAKE_EXECUTABLE} -query QT_INSTALL_TRANSLATIONS +OUTPUT_VARIABLE qt_translations_dir OUTPUT_STRIP_TRAILING_WHITESPACE ) +file( TO_CMAKE_PATH "${qt_translations_dir}" qt_translations_dir) +set( QT_TRANSLATIONS_DIR ${qt_translations_dir} CACHE PATH +"The location of the Qt translations" FORCE) +endif() + +install(FILES ${QM_FILES} +DESTINATION ${CMAKE_INSTALL_BINDIR}/endorphin_locale/) + +install(TARGETS endorphin + DESTINATION ${CMAKE_INSTALL_BINDIR} +) diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index 222bc502..351c9e3e 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -690,6 +690,7 @@ LanguageManager *BrowserApplication::languageManager() s_languageManager->addLocaleDirectory(dataFilePath(QLatin1String("locale"))); s_languageManager->addLocaleDirectory(qApp->applicationDirPath() + QLatin1String("/src/.qm/locale")); s_languageManager->addLocaleDirectory(installedDataDirectory() + QLatin1String("/locale")); + s_languageManager->addLocaleDirectory(installedDataDirectory() + QLatin1String("/endorphin_locale")); s_languageManager->loadLanguageFromSettings(); connect(s_languageManager, SIGNAL(languageChanged(const QString &)), qApp, SLOT(retranslate())); diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index b84976bd..9b89df81 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -98,8 +98,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 5ed11f41..72bd6825 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -80,6 +80,7 @@ #include #include #include +#include #include diff --git a/src/locationcompleter.cpp b/src/locationcompleter.cpp index 7ff008cc..b99fc950 100644 --- a/src/locationcompleter.cpp +++ b/src/locationcompleter.cpp @@ -20,6 +20,7 @@ #include "locationcompleter.h" #include +#include #include #include diff --git a/src/modelmenu.cpp b/src/modelmenu.cpp index d14760cc..30c8aadd 100644 --- a/src/modelmenu.cpp +++ b/src/modelmenu.cpp @@ -74,6 +74,8 @@ #include #include #include +#include +#include #include diff --git a/src/modeltoolbar.cpp b/src/modeltoolbar.cpp index 46e363b8..9fe5e729 100644 --- a/src/modeltoolbar.cpp +++ b/src/modeltoolbar.cpp @@ -25,6 +25,7 @@ #include "modelmenu.h" #include +#include #include #include #include diff --git a/src/modeltoolbar.h b/src/modeltoolbar.h index c92204f7..8ace9aee 100644 --- a/src/modeltoolbar.h +++ b/src/modeltoolbar.h @@ -20,7 +20,7 @@ #ifndef MODELTOOLBAR_H #define MODELTOOLBAR_H -#include +#include #include diff --git a/src/searchbar.cpp b/src/searchbar.cpp index 115a1e27..fd28790c 100644 --- a/src/searchbar.cpp +++ b/src/searchbar.cpp @@ -21,7 +21,8 @@ #include #include -#include +#include +#include #include diff --git a/src/sourceviewer.cpp b/src/sourceviewer.cpp index 632629c6..6194d6a4 100644 --- a/src/sourceviewer.cpp +++ b/src/sourceviewer.cpp @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/tabbar.h b/src/tabbar.h index 1f6457e2..819a0cd6 100644 --- a/src/tabbar.h +++ b/src/tabbar.h @@ -122,7 +122,7 @@ private slots: }; -#include +#include /* Shortcut to switch directly to a tab by index diff --git a/src/utils/editlistview.cpp b/src/utils/editlistview.cpp index f2385fe7..6ce5c0a6 100644 --- a/src/utils/editlistview.cpp +++ b/src/utils/editlistview.cpp @@ -29,6 +29,7 @@ #include "editlistview.h" #include +#include EditListView::EditListView(QWidget *parent) : QListView(parent) diff --git a/src/utils/edittableview.cpp b/src/utils/edittableview.cpp index 0e7585fb..e723cef3 100644 --- a/src/utils/edittableview.cpp +++ b/src/utils/edittableview.cpp @@ -29,6 +29,7 @@ #include "edittableview.h" +#include #include EditTableView::EditTableView(QWidget *parent) diff --git a/src/utils/edittreeview.cpp b/src/utils/edittreeview.cpp index e6045dcf..29ccacc0 100644 --- a/src/utils/edittreeview.cpp +++ b/src/utils/edittreeview.cpp @@ -30,6 +30,7 @@ #include "edittreeview.h" #include +#include EditTreeView::EditTreeView(QWidget *parent) : QTreeView(parent) diff --git a/src/utils/explorerstyle.cpp b/src/utils/explorerstyle.cpp index de1856ea..558542d4 100644 --- a/src/utils/explorerstyle.cpp +++ b/src/utils/explorerstyle.cpp @@ -42,7 +42,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index aedf0d2f..3555702e 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -20,7 +20,7 @@ #include "webviewsearch.h" #include -#include +#include #include #include diff --git a/tools/cacheinfo/CMakeLists.txt b/tools/cacheinfo/CMakeLists.txt index 9e487bff..98cc8d19 100644 --- a/tools/cacheinfo/CMakeLists.txt +++ b/tools/cacheinfo/CMakeLists.txt @@ -1,7 +1,12 @@ project(endorphin-cacheinfo) +include(GNUInstallDirs) find_package(Qt5Widgets REQUIRED) find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Network REQUIRED) add_executable(endorphin-cacheinfo main.cpp) target_link_libraries(endorphin-cacheinfo Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network) + +install(TARGETS endorphin-cacheinfo + DESTINATION ${CMAKE_INSTALL_BINDIR} +) diff --git a/tools/placesimport/CMakeLists.txt b/tools/placesimport/CMakeLists.txt index 627f2f70..bf85b039 100644 --- a/tools/placesimport/CMakeLists.txt +++ b/tools/placesimport/CMakeLists.txt @@ -1,4 +1,5 @@ project(endorphin-placesimport) +include(GNUInstallDirs) find_package(Qt5Core REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5Sql REQUIRED) @@ -23,3 +24,7 @@ set(placesimport_SRCS add_executable(endorphin-placesimport ${placesimport_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS}) target_link_libraries(endorphin-placesimport Qt5::Core Qt5::Widgets Qt5::Sql Qt5::WebEngine Qt5::WebEngineWidgets) + +install(TARGETS endorphin-placesimport + DESTINATION ${CMAKE_INSTALL_BINDIR} +) From 51713fa7d3e74d36a5dfb842984ad262a8431c1e Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Mon, 28 Dec 2020 18:09:30 +0000 Subject: [PATCH 37/64] Use htmlToXBel as submodule --- .gitmodules | 3 + tools/htmlToXBel | 1 + tools/htmlToXBel/.gitignore | 1 - tools/htmlToXBel/CMakeLists.txt | 7 -- tools/htmlToXBel/data/htmlToXBel.1 | 33 -------- tools/htmlToXBel/extract.js | 48 ----------- tools/htmlToXBel/main.cpp | 80 ------------------- tools/htmlToXBel/mainapp.cpp | 60 -------------- tools/htmlToXBel/mainapp.h | 41 ---------- tools/htmlToXBel/source.qrc | 6 -- .../htmlToXBel/tests/firefox3-bookmarks.html | 50 ------------ tools/htmlToXBel/tests/ie7-bookmarks.html | 30 ------- tools/htmlToXBel/tests/opera9-bookmarks.html | 20 ----- 13 files changed, 4 insertions(+), 376 deletions(-) create mode 100644 .gitmodules create mode 160000 tools/htmlToXBel delete mode 100644 tools/htmlToXBel/.gitignore delete mode 100644 tools/htmlToXBel/CMakeLists.txt delete mode 100644 tools/htmlToXBel/data/htmlToXBel.1 delete mode 100644 tools/htmlToXBel/extract.js delete mode 100644 tools/htmlToXBel/main.cpp delete mode 100644 tools/htmlToXBel/mainapp.cpp delete mode 100644 tools/htmlToXBel/mainapp.h delete mode 100644 tools/htmlToXBel/source.qrc delete mode 100644 tools/htmlToXBel/tests/firefox3-bookmarks.html delete mode 100644 tools/htmlToXBel/tests/ie7-bookmarks.html delete mode 100644 tools/htmlToXBel/tests/opera9-bookmarks.html diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..b90881a8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tools/htmlToXBel"] + path = tools/htmlToXBel + url = https://gitlab.com/EndorphinBrowser/tools/htmlToXBel.git diff --git a/tools/htmlToXBel b/tools/htmlToXBel new file mode 160000 index 00000000..0ea363ba --- /dev/null +++ b/tools/htmlToXBel @@ -0,0 +1 @@ +Subproject commit 0ea363ba535600dcaf64f746784502fa1d19ec1f diff --git a/tools/htmlToXBel/.gitignore b/tools/htmlToXBel/.gitignore deleted file mode 100644 index b611ba2d..00000000 --- a/tools/htmlToXBel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -htmlToXBel diff --git a/tools/htmlToXBel/CMakeLists.txt b/tools/htmlToXBel/CMakeLists.txt deleted file mode 100644 index 08bea176..00000000 --- a/tools/htmlToXBel/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -cmake_minimum_required(VERSION 3.13) -project(htmlToXBel) -find_package(Qt5Core REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -add_executable(htmlToXBel main.cpp mainapp.cpp source.qrc) -target_link_libraries(htmlToXBel Qt5::Core Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/tools/htmlToXBel/data/htmlToXBel.1 b/tools/htmlToXBel/data/htmlToXBel.1 deleted file mode 100644 index 6f98602d..00000000 --- a/tools/htmlToXBel/data/htmlToXBel.1 +++ /dev/null @@ -1,33 +0,0 @@ -.TH HTMLTOXBEL "1" "July 2009" - -.SH NAME -htmlToXBel - a tool to convert bookmarks stored in the html format into the xbel format. - -.SH SYNOPSIS -.B htmlToXBel [stdin|htmlfile] [stdout|-o outFile] - -.SH DESCRIPTION -.B htmlToXBel -is a tool to convert bookmarks stored in the html format into the xbel format. Many browser have the ability to export their bookmarks as a html file. htmlToXBel takes that file as an input and will output those bookmarks in the XML Bookmark Exchange Language (XBEL) format. - -.SH OPTIONS -.TP -.B -o outFile -Write the resulting XBEL to the file \fBoutFile\fR -.TP - -.SH BUGS -Please report bugs to \fIhttps://github.com/AaronDewes/endorphin-browser/issues\fR. - -.SH AUTHOR -The author of htmlToXBel is Aaron Dewes . -.PP -This manual page was written by Aaron Dewes -.PP -Permission is granted to copy, distribute and/or modify this document under the -terms of the -GNU General Public License, Version 2 or any later version published by the Free -Software Foundation. -.PP -On Debian systems, the complete text of the GNU General Public License can be -found in /usr/share/common-licenses/GPL. diff --git a/tools/htmlToXBel/extract.js b/tools/htmlToXBel/extract.js deleted file mode 100644 index 08b9ef24..00000000 --- a/tools/htmlToXBel/extract.js +++ /dev/null @@ -1,48 +0,0 @@ - -function walk() { - var parent = arguments[0]; - var indent = arguments[1]; - - var result = ""; - var children = parent.childNodes; - var folderName = ""; - var folded = ""; - for (var i = 0; i < children.length; i++) { - var object = children.item(i); - if (object.nodeName == "HR") { - result += indent + "\n"; - } - if (object.nodeName == "H3") { - folderName = object.innerHTML; - folded = object.folded; - if (object.folded == undefined) - folded = "false"; - else - folded = "true"; - } - if (object.nodeName == "A") { - result += indent + "\n"; - result += indent + indent + "" + object.innerHTML + "\n"; - result += indent + "\n"; - } - - var currentIndent = indent; - if (object.nodeName == "DL") { - result += indent + "\n"; - indent += " "; - result += indent + "" + folderName + "\n"; - } - result += walk(object, indent); - if (object.nodeName == "DL") { - result += currentIndent + "\n"; - } - } - return result; -} -var xbel = walk(document, " "); - -if (xbel != "") { - xbel = "\n\n\n" + xbel + "\n"; -} - -xbel; diff --git a/tools/htmlToXBel/main.cpp b/tools/htmlToXBel/main.cpp deleted file mode 100644 index 371946bf..00000000 --- a/tools/htmlToXBel/main.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "mainapp.h" - -#include -#include -#include -#include - -/*! - A tool to convert html bookmark files into the xbel format. - - The html bookmark files should be DOCTYPE: NETSCAPE-Bookmark-file-1 - - More information about XBel can be found here: http://pyxml.sourceforge.net/topics/xbel/ -*/ -int main(int argc, char **argv) -{ - QApplication application(argc, argv); - - QFile inFile; - QFile outFile; - QTextStream in(&inFile); - QTextStream out(&outFile); - - // Either read in from stdin and output to stdout - // or read in from a file and output to a file - // Example: ./app foo.html -o bar.xbel - bool setInput = false; - bool setOutput = false; - QStringList args = application.arguments(); - args.pop_front(); - foreach (const QString &arg, args) { - if (arg == QLatin1String("-o")) { - setOutput = true; - } else if (setOutput) { - outFile.setFileName(arg); - outFile.open(QIODevice::WriteOnly); - } else if (QFile::exists(arg)) { - setInput = true; - inFile.setFileName(arg); - inFile.open(QIODevice::ReadOnly); - } else { - qWarning() << "Usage: htmlToXBel" - << "[stdin|htmlfile]" << "[stdout|-o outFile]"; - return 1; - } - } - - if (!setInput) - inFile.open(stdin, QIODevice::ReadOnly); - if (!setOutput) - outFile.open(stdout, QIODevice::WriteOnly); - if (inFile.openMode() == QIODevice::NotOpen - || outFile.openMode() == QIODevice::NotOpen) { - qWarning() << "Unable to open streams"; - return 1; - } - MainApp m_MainApp; - QString input = inFile.readAll(); - out << m_MainApp.get(input); - return 0; -} diff --git a/tools/htmlToXBel/mainapp.cpp b/tools/htmlToXBel/mainapp.cpp deleted file mode 100644 index 9a2cdb87..00000000 --- a/tools/htmlToXBel/mainapp.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include "mainapp.h" -#include -#include -#include -#include -#include - -MainApp::MainApp(QObject *parent) : QObject(parent) -{ -} - -QString result; - -QString MainApp::get(QString &input) -{ - QWebEnginePage webPage; - QEventLoop loop; - connect(&webPage, &QWebEnginePage::loadFinished, &loop, &QEventLoop::quit); - webPage.setHtml(input); - loop.exec(); - QEventLoop loop2; - QObject::connect(this, SIGNAL(notifyRanJavaScript()), &loop2, SLOT(quit())); - QFile jsFile(":/extract.js"); - if (!jsFile.open(QFile::ReadOnly)) { - qWarning() << "Unable to load javascript to extract bookmarks."; - exit(1); - } - webPage.runJavaScript(jsFile.readAll(), [this](const QVariant &v) - { - QString tmp = v.toString(); - this->ranJavaScript(tmp); - }); - loop2.exec(); - return result; -} - -void MainApp::ranJavaScript(QString &value) -{ - result = value; - emit notifyRanJavaScript(); -} \ No newline at end of file diff --git a/tools/htmlToXBel/mainapp.h b/tools/htmlToXBel/mainapp.h deleted file mode 100644 index 25507420..00000000 --- a/tools/htmlToXBel/mainapp.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef MAINAPP_H -#define MAINAPP_H - -#include - -class QWebEngineView; -class QPushButton; - -class MainApp : public QObject -{ - Q_OBJECT -public: - MainApp(QObject *parent = nullptr); - QString get(QString &input); - void ranJavaScript(QString &value); - -Q_SIGNALS: - void notifyRanJavaScript(); - -}; - -#endif // MAINAPP_H \ No newline at end of file diff --git a/tools/htmlToXBel/source.qrc b/tools/htmlToXBel/source.qrc deleted file mode 100644 index 5f5bd7df..00000000 --- a/tools/htmlToXBel/source.qrc +++ /dev/null @@ -1,6 +0,0 @@ - - - extract.js - - - diff --git a/tools/htmlToXBel/tests/firefox3-bookmarks.html b/tools/htmlToXBel/tests/firefox3-bookmarks.html deleted file mode 100644 index 63c9694c..00000000 --- a/tools/htmlToXBel/tests/firefox3-bookmarks.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - Bookmarks -

    Bookmarks Menu

    - -

    -

    Recently Bookmarked -
    Recent Tags -
    -
    Get Bookmark Add-ons -
    -

    Mozilla Firefox

    -

    -

    Help and Tutorials -
    Customize Firefox -
    Get Involved -
    About Us -

    -

    Mozilla Firefox Start Page -
    Mozilla Firefox Start Page -

    Bookmarks Toolbar

    -
    Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar -

    -

    Most Visited -

    Smart Bookmarks

    -

    -

    Most Visited -
    Recently Bookmarked -
    -
    Recent Tags -

    -

    Getting Started -
    Latest Headlines -

    -

    Unfiled Bookmarks

    -

    -

    reddit.com: - Apple pushes Windows Safari via iTunes updater -
    -
    reddit.com: - what' -s new online! -
    -
    xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe -
    -

    -

    diff --git a/tools/htmlToXBel/tests/ie7-bookmarks.html b/tools/htmlToXBel/tests/ie7-bookmarks.html deleted file mode 100644 index 1c44f3d2..00000000 --- a/tools/htmlToXBel/tests/ie7-bookmarks.html +++ /dev/null @@ -1,30 +0,0 @@ - - -Bookmarks -

    Bookmarks

    -

    -

    Links

    -

    -

    Customize Links -
    Free Hotmail -
    Windows Marketplace -
    Windows Media -
    Windows -

    -

    Microsoft Websites

    -

    -

    IE Add-on site -
    IE site on Microsoft.com -
    Marketplace -
    Microsoft At Home -
    Microsoft At Work -
    Welcome to IE7 -

    -

    Yahoo!

    -

    -

    -

    MSN.com -
    Radio Station Guide -

    diff --git a/tools/htmlToXBel/tests/opera9-bookmarks.html b/tools/htmlToXBel/tests/opera9-bookmarks.html deleted file mode 100644 index baafe7ae..00000000 --- a/tools/htmlToXBel/tests/opera9-bookmarks.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - Bookmarks -

    Bookmarks

    -

    -

    Opera

    -

    -

    Download Opera -
    Opera Community -
    Opera Web Mail -
    Support Desk -

    -

    Download.com -
    Amazon.com -
    eBay -
    Yahoo! -

    From 9e11fa479517b68ddd79ce870d33c70d06b41873 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Mon, 28 Dec 2020 18:18:31 +0000 Subject: [PATCH 38/64] Update htmlToXBel --- tools/htmlToXBel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/htmlToXBel b/tools/htmlToXBel index 0ea363ba..b4c90e24 160000 --- a/tools/htmlToXBel +++ b/tools/htmlToXBel @@ -1 +1 @@ -Subproject commit 0ea363ba535600dcaf64f746784502fa1d19ec1f +Subproject commit b4c90e2453bf1dddb4ece0d20d832073cd27266d From 1d32e569d9b2fa0ee85275df51c53dc940bf11fb Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 30 Dec 2020 15:11:29 +0100 Subject: [PATCH 39/64] Optimize search --- README.md | 7 ++- .../historymanager/tst_historymanager.cpp | 2 +- autotests/tabwidget/CMakeLists.txt | 1 + src/browsermainwindow.cpp | 20 +++++--- src/browsermainwindow.h | 10 ++-- src/locationcompleter.cpp | 39 ++++++++------- src/locationcompleter.h | 16 ++++--- src/searchbanner.ui | 47 ++++++++++++++++--- src/tabwidget.cpp | 5 +- src/webviewsearch.cpp | 27 +++++------ src/webviewsearch.h | 2 +- 11 files changed, 110 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index 88a4f7d2..df7ce330 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,12 @@ Endorphin is a cross platform web browser built using Qt and WebKit. This is a fork of the [Arora browser](https://github.com/Arora/arora). -This fork was created by Aaron Dewes. +This fork was created by Aaron Dewes with the goal of contnuing the development of this old browser and further improving it. -## Contributing +### Contributing If you want to contribute, feel free to open an issue or a PR. - ### Building -Endorphin uses the cmake build system. If you already have Qt 5.14 or newer on your system building is as easy as running the command 'cmake' and then 'make'. +Endorphin uses the cmake build system. If you already have Qt 5.15 or newer on your system building is as easy as running the command 'cmake' and then 'make'. For more detailed information see the [Building guide](BUILDING.md). diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index 987a957c..5e8e5c6e 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -363,7 +363,7 @@ void tst_HistoryManager::big() ModelTest test(&model); QCOMPARE(model.rowCount(), bigHistory.count()); - HistoryCompletionModel completionModel; + LocationCompletionModel completionModel; completionModel.setSourceModel(&model); ModelTest test2(&completionModel); QCOMPARE(completionModel.rowCount(), bigHistory.count()); diff --git a/autotests/tabwidget/CMakeLists.txt b/autotests/tabwidget/CMakeLists.txt index 86ac6271..66102cac 100644 --- a/autotests/tabwidget/CMakeLists.txt +++ b/autotests/tabwidget/CMakeLists.txt @@ -55,6 +55,7 @@ set(Endorphin_SRCS ../../src/plaintexteditsearch.cpp ../../src/searchbar.cpp ../../src/searchbutton.cpp + ../../src/locationcompleter.cpp ../../src/searchlineedit.cpp ../../src/settings.cpp ../../src/sourcehighlighter.cpp diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 9b89df81..b894984f 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -91,9 +91,11 @@ #include #include #include +/* #include #include #include +*/ #include #include #include @@ -190,8 +192,8 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) m_autoSaver, SLOT(changeOccurred())); connect(m_tabWidget, SIGNAL(geometryChangeRequested(const QRect &)), this, SLOT(geometryChangeRequested(const QRect &))); - connect(m_tabWidget, SIGNAL(printRequested(QWebEnginePage *)), - this, SLOT(printRequested(QWebEnginePage *))); + /*connect(m_tabWidget, SIGNAL(printRequested(QWebEnginePage *)), + this, SLOT(printRequested(QWebEnginePage *))); */ connect(m_tabWidget, SIGNAL(lastTabClosed()), this, SLOT(lastTabClosed())); connect(m_tabWidget, &TabWidget::devToolsRequested, this, &BrowserMainWindow::handleDevToolsRequested); @@ -497,6 +499,8 @@ void BrowserMainWindow::setupMenu() m_fileMenu->addAction(m_fileExportBookmarksAction); m_fileMenu->addSeparator(); +//TODO: Fix and enable again +/* m_filePrintPreviewAction= new QAction(m_fileMenu); connect(m_filePrintPreviewAction, SIGNAL(triggered()), this, SLOT(filePrintPreview())); @@ -508,7 +512,7 @@ void BrowserMainWindow::setupMenu() this, SLOT(filePrint())); m_fileMenu->addAction(m_filePrintAction); m_fileMenu->addSeparator(); - +*/ m_filePrivateBrowsingAction = new QAction(m_fileMenu); connect(m_filePrivateBrowsingAction, SIGNAL(triggered()), this, SLOT(privateBrowsing())); @@ -533,8 +537,8 @@ void BrowserMainWindow::setupMenu() #if defined(Q_WS_X11) m_fileNewWindowAction->setIcon(QIcon::fromTheme(QLatin1String("window-new"))); m_fileOpenFileAction->setIcon(QIcon::fromTheme(QLatin1String("document-open"))); - m_filePrintPreviewAction->setIcon(QIcon::fromTheme(QLatin1String("document-print-preview"))); - m_filePrintAction->setIcon(QIcon::fromTheme(QLatin1String("document-print"))); + /*m_filePrintPreviewAction->setIcon(QIcon::fromTheme(QLatin1String("document-print-preview"))); + m_filePrintAction->setIcon(QIcon::fromTheme(QLatin1String("document-print")));*/ m_fileSaveAsAction->setIcon(QIcon::fromTheme(QLatin1String("document-save-as"))); m_fileCloseWindow->setIcon(QIcon::fromTheme(QLatin1String("window-close"))); m_fileQuit->setIcon(QIcon::fromTheme(QLatin1String("application-exit"))); @@ -912,8 +916,8 @@ void BrowserMainWindow::retranslate() m_fileSaveAsAction->setText(tr("&Save As...")); m_fileImportBookmarksAction->setText(tr("&Import Bookmarks...")); m_fileExportBookmarksAction->setText(tr("&Export Bookmarks...")); - m_filePrintPreviewAction->setText(tr("P&rint Preview...")); - m_filePrintAction->setText(tr("&Print...")); + /*m_filePrintPreviewAction->setText(tr("P&rint Preview...")); + m_filePrintAction->setText(tr("&Print..."));*/ m_filePrivateBrowsingAction->setText(tr("Private &Browsing...")); m_fileCloseWindow->setText(tr("Close Window")); m_fileQuit->setText(tr("&Quit")); @@ -1182,6 +1186,7 @@ void BrowserMainWindow::fileOpen() tabWidget()->loadUrl(QUrl::fromLocalFile(file)); } +/* void BrowserMainWindow::filePrintPreview() { if (!currentTab()) @@ -1208,6 +1213,7 @@ void BrowserMainWindow::printRequested(QWebEnginePage *page) return; page->print(&printer, [](bool a) {}); } +*/ void BrowserMainWindow::privateBrowsing() { diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index 238f2773..a1f1a65b 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -131,8 +131,8 @@ private slots: void fileNew(); void fileOpen(); - void filePrintPreview(); - void filePrint(); + //void filePrintPreview(); + //void filePrint(); void privateBrowsing(); void fileSaveAs(); void editFind(); @@ -168,7 +168,7 @@ private slots: void showWindow(); void swapFocus(); - void printRequested(QWebEnginePage *page); + //void printRequested(QWebEnginePage *page); void geometryChangeRequested(const QRect &geometry); void gotHTML(QString &value); @@ -189,8 +189,8 @@ private slots: QAction *m_fileSaveAsAction; QAction *m_fileImportBookmarksAction; QAction *m_fileExportBookmarksAction; - QAction *m_filePrintPreviewAction; - QAction *m_filePrintAction; + //QAction *m_filePrintPreviewAction; + //QAction *m_filePrintAction; QAction *m_filePrivateBrowsingAction; QAction *m_fileCloseWindow; QAction *m_fileQuit; diff --git a/src/locationcompleter.cpp b/src/locationcompleter.cpp index b99fc950..ded63d55 100644 --- a/src/locationcompleter.cpp +++ b/src/locationcompleter.cpp @@ -23,8 +23,13 @@ #include #include #include +#include +#include -HistoryCompletionView::HistoryCompletionView(QWidget *parent) +#include + + +LocationCompletionView::LocationCompletionView(QWidget *parent) : QTableView(parent) { horizontalHeader()->hide(); @@ -43,7 +48,7 @@ HistoryCompletionView::HistoryCompletionView(QWidget *parent) setLayoutDirection(Qt::LeftToRight); } -void HistoryCompletionView::resizeEvent(QResizeEvent *event) +void LocationCompletionView::resizeEvent(QResizeEvent *event) { horizontalHeader()->resizeSection(0, 0.65 * width()); horizontalHeader()->setStretchLastSection(true); @@ -51,14 +56,14 @@ void HistoryCompletionView::resizeEvent(QResizeEvent *event) QTableView::resizeEvent(event); } -int HistoryCompletionView::sizeHintForRow(int row) const +int LocationCompletionView::sizeHintForRow(int row) const { Q_UNUSED(row) QFontMetrics metrics = fontMetrics(); return metrics.height(); } -HistoryCompletionModel::HistoryCompletionModel(QObject *parent) +LocationCompletionModel::LocationCompletionModel(QObject *parent) : QSortFilterProxyModel(parent) , m_searchMatcher(QString(), Qt::CaseInsensitive, QRegExp::FixedString) , m_wordMatcher(QString(), Qt::CaseInsensitive) @@ -67,11 +72,11 @@ HistoryCompletionModel::HistoryCompletionModel(QObject *parent) setDynamicSortFilter(true); } -QVariant HistoryCompletionModel::data(const QModelIndex &index, int role) const +QVariant LocationCompletionModel::data(const QModelIndex &index, int role) const { // if we are valid, tell QCompleter that everything we have filtered matches // what the user typed; if not, nothing matches - if (role == HistoryCompletionRole && index.isValid()) { + if (role == LocationCompletionRole && index.isValid()) { if (isValid()) return QLatin1String("a"); else @@ -90,12 +95,12 @@ QVariant HistoryCompletionModel::data(const QModelIndex &index, int role) const return QSortFilterProxyModel::data(index, role); } -QString HistoryCompletionModel::searchString() const +QString LocationCompletionModel::searchString() const { return m_searchString; } -void HistoryCompletionModel::setSearchString(const QString &str) +void LocationCompletionModel::setSearchString(const QString &str) { if (str == m_searchString) return; @@ -106,12 +111,12 @@ void HistoryCompletionModel::setSearchString(const QString &str) invalidateFilter(); } -bool HistoryCompletionModel::isValid() const +bool LocationCompletionModel::isValid() const { return m_isValid; } -void HistoryCompletionModel::setValid(bool b) +void LocationCompletionModel::setValid(bool b) { if (b == m_isValid) return; @@ -122,7 +127,7 @@ void HistoryCompletionModel::setValid(bool b) emit dataChanged(index(0, 0), index(0, rowCount() - 1)); } -bool HistoryCompletionModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const +bool LocationCompletionModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const { // do a case-insensitive substring match against both the url and title; // we have also made sure that the user doesn't accidentally use regexp @@ -141,7 +146,7 @@ bool HistoryCompletionModel::filterAcceptsRow(int source_row, const QModelIndex return false; } -bool HistoryCompletionModel::lessThan(const QModelIndex &left, const QModelIndex &right) const +bool LocationCompletionModel::lessThan(const QModelIndex &left, const QModelIndex &right) const { // We give a bonus to hits that match on a word boundary so that e.g. "dot.kde.org" // is a better result for typing "dot" than "slashdot.org". However, we only look @@ -179,10 +184,10 @@ LocationCompleter::LocationCompleter(QAbstractItemModel *m, QObject *parent) void LocationCompleter::init() { - setPopup(new HistoryCompletionView()); + setPopup(new LocationCompletionView()); // we want to complete against our own faked role - setCompletionRole(HistoryCompletionModel::HistoryCompletionRole); + setCompletionRole(LocationCompletionModel::LocationCompletionRole); // and since we fake our completion role, we can take // advantage of the sorted-model optimizations in QCompleter @@ -215,7 +220,7 @@ QStringList LocationCompleter::splitPath(const QString &path) const // if the previous search results are not a superset of // the current search results, tell the model that it is not valid yet if (!path.startsWith(m_searchString)) { - HistoryCompletionModel *completionModel = qobject_cast(model()); + LocationCompletionModel *completionModel = qobject_cast(model()); Q_ASSERT(completionModel); completionModel->setValid(false); } @@ -260,10 +265,10 @@ bool LocationCompleter::eventFilter(QObject *obj, QEvent *event) void LocationCompleter::updateFilter() { - HistoryCompletionModel *completionModel = qobject_cast(model()); + LocationCompletionModel *completionModel = qobject_cast(model()); Q_ASSERT(completionModel); - // tell the HistoryCompletionModel about the new search string + // tell the LocationCompletionModel about the new search string completionModel->setSearchString(m_searchString); // sort the model diff --git a/src/locationcompleter.h b/src/locationcompleter.h index 1975c31d..0dd50b2d 100644 --- a/src/locationcompleter.h +++ b/src/locationcompleter.h @@ -30,10 +30,10 @@ #include class QResizeEvent; -class HistoryCompletionView : public QTableView +class LocationCompletionView : public QTableView { public: - HistoryCompletionView(QWidget *parent = nullptr); + LocationCompletionView(QWidget *parent = nullptr); int sizeHintForRow(int row) const; protected: @@ -46,21 +46,21 @@ class HistoryCompletionView : public QTableView // data. (QCompleter also does not allow post-facto sorting of the completion results, // the source model must already be completed.) To work around these limitations, // we create a custom subclass of QCompleter which abuses the QCompleter::pathFromIndex() -// virtual override to tell the HistoryCompletionModel which string to look for, -// _before_ the QCompleter tries to do matching. Since the HistoryCompletionModel does +// virtual override to tell the LocationCompletionModel which string to look for, +// _before_ the QCompleter tries to do matching. Since the LocationCompletionModel does // its own filtering, we just lie to the QCompleter and tell it everything matches. We then // abuse QCompleter::pathFromIndex() to return a url that does not start with what // the user typed -- but is what they were looking for. -class HistoryCompletionModel : public QSortFilterProxyModel +class LocationCompletionModel : public QSortFilterProxyModel { Q_OBJECT Q_PROPERTY(QString searchString READ searchString WRITE setSearchString) public: - HistoryCompletionModel(QObject *parent = nullptr); + LocationCompletionModel(QObject *parent = nullptr); - enum Roles { HistoryCompletionRole = HistoryFilterModel::MaxRole + 1 }; + enum Roles { LocationCompletionRole = HistoryFilterModel::MaxRole + 1 }; QString searchString() const; void setSearchString(const QString &str); @@ -68,6 +68,8 @@ class HistoryCompletionModel : public QSortFilterProxyModel bool isValid() const; void setValid(bool b); + bool couldBeURL(QString &url); + virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; protected: diff --git a/src/searchbanner.ui b/src/searchbanner.ui index 062ad8d7..ca2c0961 100644 --- a/src/searchbanner.ui +++ b/src/searchbanner.ui @@ -6,8 +6,8 @@ 0 0 - 405 - 36 + 493 + 40 @@ -18,7 +18,7 @@ - -1 + 6 12 @@ -47,12 +47,12 @@ - - Highlight All - false + + Highlight All + true @@ -60,6 +60,14 @@ + + border: none; +background: lightgrey; +padding: 0 5; +height: 30px; +border-radius: 2px; + + < @@ -67,16 +75,41 @@ + + border: none; +background: lightgrey; +padding: 0 5; +height: 30px; +border-radius: 2px; + + > - + + + border: none; +height: 30px; +border-radius: 2px; + + + + + border: none; +background: lightgrey; +padding: 0 20; +height: 30px; +border-radius: 2px; +text-align: center; + + + Done diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 771055f8..d3dd172d 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -372,13 +372,16 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) // line edit LocationBar *locationBar = new LocationBar; if (!m_lineEditCompleter) { - HistoryCompletionModel *completionModel = new HistoryCompletionModel(this); + LocationCompletionModel *completionModel = new LocationCompletionModel(this); completionModel->setSourceModel(BrowserApplication::historyManager()->historyFilterModel()); m_lineEditCompleter = new LocationCompleter(completionModel, this); connect(m_lineEditCompleter, SIGNAL(activated(const QString &)), this, SLOT(loadString(const QString &))); // Should this be in Qt by default? QAbstractItemView *popup = m_lineEditCompleter->popup(); + popup->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + popup->verticalScrollBar()->hide(); + popup->verticalScrollBar()->resize(0, 0); QListView *listView = qobject_cast(popup); if (listView) { // Urls are always LeftToRight diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index 3555702e..43b461f7 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -31,9 +31,6 @@ WebViewSearch::WebViewSearch(QWebEngineView *webView, QWidget *parent) : SearchBar(parent) { setSearchObject(webView); - ui.highlightAllButton->setVisible(true); - connect(ui.highlightAllButton, SIGNAL(toggled(bool)), - this, SLOT(highlightAll())); connect(ui.searchLineEdit, SIGNAL(textEdited(const QString &)), this, SLOT(highlightAll())); } @@ -48,24 +45,22 @@ void WebViewSearch::findPrevious() find(QWebEnginePage::FindBackward); } -void WebViewSearch::highlightAll() +void WebViewSearch::find(QWebEnginePage::FindFlags flags) { - webView()->findText(QString(), QWebEnginePage::FindFlags()); - - /* - if (ui.highlightAllButton->isChecked()) - find(QWebEnginePage::HighlightAllOccurrences); - */ + if(!ui.searchLineEdit->text().isEmpty()) { + QString searchString = ui.searchLineEdit->text(); + webView()->findText(searchString, flags, [this](bool found) { + handleSearchResult(found); + }); + } } -void WebViewSearch::find(QWebEnginePage::FindFlags flags) +void WebViewSearch::handleSearchResult(bool found) { - QString searchString = ui.searchLineEdit->text(); - if (!searchObject() || searchString.isEmpty()) - return; QString infoString; - //if (!webView()->findText(searchString, flags)) - //infoString = tr("Not Found"); + if (!found) + infoString = tr("Not Found"); + ui.searchInfo->setText(infoString); } diff --git a/src/webviewsearch.h b/src/webviewsearch.h index 82afea6a..94ed459c 100644 --- a/src/webviewsearch.h +++ b/src/webviewsearch.h @@ -38,11 +38,11 @@ class WebViewSearch : public SearchBar public slots: void findNext(); void findPrevious(); - void highlightAll(); private: void find(QWebEnginePage::FindFlags flags); QWebEngineView *webView() const; + void handleSearchResult(bool found); }; #include "webview.h" From 04d73525bb62a71552e86d45c29e0cfe4e8f4715 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 10 Jan 2021 21:24:47 +0100 Subject: [PATCH 40/64] Fix --- doxygen | 1 - 1 file changed, 1 deletion(-) delete mode 160000 doxygen diff --git a/doxygen b/doxygen deleted file mode 160000 index eccc6459..00000000 --- a/doxygen +++ /dev/null @@ -1 +0,0 @@ -Subproject commit eccc6459a9d5e2a947a05b3489d4cee863579276 From 9a9d52b1530c237fa6ba31e0569825b7cee34923 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 10 Jan 2021 21:25:25 +0100 Subject: [PATCH 41/64] Update copyright to remove companies that no longer own any files in this browser --- debian/copyright | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/debian/copyright b/debian/copyright index bef05a9f..42a9ba8f 100644 --- a/debian/copyright +++ b/debian/copyright @@ -8,7 +8,6 @@ Upstream Author: Aaron Dewes Copyright: - Copyright 1998-1999 Netscape Communications Corporation. All Copyright 2005-2008 Trolltech ASA. All rights reserved. Copyright 2006 Junio C Hamano Copyright 2020 Aaron Dewes @@ -17,11 +16,11 @@ Copyright: Copyright 2008 Diego Iastrubni, elcuco, at, kde.org Copyright 2008 Jason A. Donenfeld Copyright 2008 Matvey Kozhev - Copyright 2008-2009 Endorphin Developers + Copyright 2008-2020 Endorphin Developers Copyright 2008-2009 Benjamin K. Stuhl Copyright 2008-2009 Jason A. Donenfeld Copyright 2009 Jakub Wieczorek - Copyright 2009 Torch Mobile Inc. http://www.torchmobile.com/ + Copyright 2016 The Qt Company Ltd. License: From 5e77e54a468262018d4d53b9b2365be2e0282799 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Fri, 15 Jan 2021 23:51:31 +0100 Subject: [PATCH 42/64] Add window.endorphin wrapper --- BUILDING.md | 2 +- src/data/data.qrc | 1 + src/data/qwebchannel.js | 468 ++++++++++++++++++++++++++++++++++++++++ src/tabwidget.cpp | 18 +- src/tabwidget.h | 3 + src/webpage.cpp | 52 +++++ src/webpage.h | 16 ++ 7 files changed, 558 insertions(+), 2 deletions(-) create mode 100644 src/data/qwebchannel.js diff --git a/BUILDING.md b/BUILDING.md index 611e3c7e..376252a1 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -11,7 +11,7 @@ If you already have **Qt 5.15** or greater installed, you can skip this step. To ### Step 3: Download and compile the latest Endorphin. Now we will download the latest tree of Endorphin. Issue these commands: ``` -$ git clone https://gitlab.com/EndorphinBrowser/browser.git +$ git clone https://gitlab.com/EndorphinBrowser/browser.git --recursive $ cd browser $ mkdir build && cd build $ cmake .. diff --git a/src/data/data.qrc b/src/data/data.qrc index 85eff66e..09f01bcb 100644 --- a/src/data/data.qrc +++ b/src/data/data.qrc @@ -4,6 +4,7 @@ 128x128/run.png endorphin.svg defaultbookmarks.xbel + qwebchannel.js fetchLinks.js parseForms.js ../../AUTHORS diff --git a/src/data/qwebchannel.js b/src/data/qwebchannel.js new file mode 100644 index 00000000..f0adc64d --- /dev/null +++ b/src/data/qwebchannel.js @@ -0,0 +1,468 @@ +/* + * Copyright 2021 Aaron Dewes + * + * 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) any later version. + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWebChannel module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +var QWebChannelMessageTypes = { + signal: 1, + propertyUpdate: 2, + init: 3, + idle: 4, + debug: 5, + invokeMethod: 6, + connectToSignal: 7, + disconnectFromSignal: 8, + setProperty: 9, + response: 10, +}; + +var QWebChannel = function(transport, initCallback) +{ + if (typeof transport !== "object" || typeof transport.send !== "function") { + console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." + + " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send)); + return; + } + + var channel = this; + this.transport = transport; + + this.send = function(data) + { + if (typeof(data) !== "string") { + data = JSON.stringify(data); + } + channel.transport.send(data); + } + + this.transport.onmessage = function(message) + { + var data = message.data; + if (typeof data === "string") { + data = JSON.parse(data); + } + switch (data.type) { + case QWebChannelMessageTypes.signal: + channel.handleSignal(data); + break; + case QWebChannelMessageTypes.response: + channel.handleResponse(data); + break; + case QWebChannelMessageTypes.propertyUpdate: + channel.handlePropertyUpdate(data); + break; + default: + console.error("invalid message received:", message.data); + break; + } + } + + this.execCallbacks = {}; + this.execId = 0; + this.exec = function(data, callback) + { + if (!callback) { + // if no callback is given, send directly + channel.send(data); + return; + } + if (channel.execId === Number.MAX_VALUE) { + // wrap + channel.execId = Number.MIN_VALUE; + } + if (data.hasOwnProperty("id")) { + console.error("Cannot exec message with property id: " + JSON.stringify(data)); + return; + } + data.id = channel.execId++; + channel.execCallbacks[data.id] = callback; + channel.send(data); + }; + + this.objects = {}; + + this.handleSignal = function(message) + { + var object = channel.objects[message.object]; + if (object) { + object.signalEmitted(message.signal, message.args); + } else { + console.warn("Unhandled signal: " + message.object + "::" + message.signal); + } + } + + this.handleResponse = function(message) + { + if (!message.hasOwnProperty("id")) { + console.error("Invalid response message received: ", JSON.stringify(message)); + return; + } + channel.execCallbacks[message.id](message.data); + delete channel.execCallbacks[message.id]; + } + + this.handlePropertyUpdate = function(message) + { + message.data.forEach(data => { + var object = channel.objects[data.object]; + if (object) { + object.propertyUpdate(data.signals, data.properties); + } else { + console.warn("Unhandled property update: " + data.object + "::" + data.signal); + } + }); + channel.exec({type: QWebChannelMessageTypes.idle}); + } + + this.debug = function(message) + { + channel.send({type: QWebChannelMessageTypes.debug, data: message}); + }; + + channel.exec({type: QWebChannelMessageTypes.init}, function(data) { + for (const objectName of Object.keys(data)) { + new QObject(objectName, data[objectName], channel); + } + + // now unwrap properties, which might reference other registered objects + for (const objectName of Object.keys(channel.objects)) { + channel.objects[objectName].unwrapProperties(); + } + + if (initCallback) { + initCallback(channel); + } + channel.exec({type: QWebChannelMessageTypes.idle}); + }); +}; + +function QObject(name, data, webChannel) +{ + this.__id__ = name; + webChannel.objects[name] = this; + + // List of callbacks that get invoked upon signal emission + this.__objectSignals__ = {}; + + // Cache of all properties, updated when a notify signal is emitted + this.__propertyCache__ = {}; + + var object = this; + + // ---------------------------------------------------------------------- + + this.unwrapQObject = function(response) + { + if (response instanceof Array) { + // support list of objects + return response.map(qobj => object.unwrapQObject(qobj)) + } + if (!(response instanceof Object)) + return response; + + if (!response["__QObject*__"] || response.id === undefined) { + var jObj = {}; + for (const propName of Object.keys(response)) { + jObj[propName] = object.unwrapQObject(response[propName]); + } + return jObj; + } + + var objectId = response.id; + if (webChannel.objects[objectId]) + return webChannel.objects[objectId]; + + if (!response.data) { + console.error("Cannot unwrap unknown QObject " + objectId + " without data."); + return; + } + + var qObject = new QObject( objectId, response.data, webChannel ); + qObject.destroyed.connect(function() { + if (webChannel.objects[objectId] === qObject) { + delete webChannel.objects[objectId]; + // reset the now deleted QObject to an empty {} object + // just assigning {} though would not have the desired effect, but the + // below also ensures all external references will see the empty map + // NOTE: this detour is necessary to workaround QTBUG-40021 + Object.keys(qObject).forEach(name => delete qObject[name]); + } + }); + // here we are already initialized, and thus must directly unwrap the properties + qObject.unwrapProperties(); + return qObject; + } + + this.unwrapProperties = function() + { + for (const propertyIdx of Object.keys(object.__propertyCache__)) { + object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]); + } + } + + function addSignal(signalData, isPropertyNotifySignal) + { + var signalName = signalData[0]; + var signalIndex = signalData[1]; + object[signalName] = { + connect: function(callback) { + if (typeof(callback) !== "function") { + console.error("Bad callback given to connect to signal " + signalName); + return; + } + + object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; + object.__objectSignals__[signalIndex].push(callback); + + // only required for "pure" signals, handled separately for properties in propertyUpdate + if (isPropertyNotifySignal) + return; + + // also note that we always get notified about the destroyed signal + if (signalName === "destroyed" || signalName === "destroyed()" || signalName === "destroyed(QObject*)") + return; + + // and otherwise we only need to be connected only once + if (object.__objectSignals__[signalIndex].length == 1) { + webChannel.exec({ + type: QWebChannelMessageTypes.connectToSignal, + object: object.__id__, + signal: signalIndex + }); + } + }, + disconnect: function(callback) { + if (typeof(callback) !== "function") { + console.error("Bad callback given to disconnect from signal " + signalName); + return; + } + object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; + var idx = object.__objectSignals__[signalIndex].indexOf(callback); + if (idx === -1) { + console.error("Cannot find connection of signal " + signalName + " to " + callback.name); + return; + } + object.__objectSignals__[signalIndex].splice(idx, 1); + if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) { + // only required for "pure" signals, handled separately for properties in propertyUpdate + webChannel.exec({ + type: QWebChannelMessageTypes.disconnectFromSignal, + object: object.__id__, + signal: signalIndex + }); + } + } + }; + } + + /** + * Invokes all callbacks for the given signalname. Also works for property notify callbacks. + */ + function invokeSignalCallbacks(signalName, signalArgs) + { + var connections = object.__objectSignals__[signalName]; + if (connections) { + connections.forEach(function(callback) { + callback.apply(callback, signalArgs); + }); + } + } + + this.propertyUpdate = function(signals, propertyMap) + { + // update property cache + for (const propertyIndex of Object.keys(propertyMap)) { + var propertyValue = propertyMap[propertyIndex]; + object.__propertyCache__[propertyIndex] = this.unwrapQObject(propertyValue); + } + + for (const signalName of Object.keys(signals)) { + // Invoke all callbacks, as signalEmitted() does not. This ensures the + // property cache is updated before the callbacks are invoked. + invokeSignalCallbacks(signalName, signals[signalName]); + } + } + + this.signalEmitted = function(signalName, signalArgs) + { + invokeSignalCallbacks(signalName, this.unwrapQObject(signalArgs)); + } + + function addMethod(methodData) + { + var methodName = methodData[0]; + var methodIdx = methodData[1]; + + // Fully specified methods are invoked by id, others by name for host-side overload resolution + var invokedMethod = methodName[methodName.length - 1] === ')' ? methodIdx : methodName + + object[methodName] = function() { + var args = []; + var callback; + var errCallback; + for (var i = 0; i < arguments.length; ++i) { + var argument = arguments[i]; + if (typeof argument === "function") + callback = argument; + else if (argument instanceof QObject && webChannel.objects[argument.__id__] !== undefined) + args.push({ + "id": argument.__id__ + }); + else + args.push(argument); + } + + var result; + // during test, webChannel.exec synchronously calls the callback + // therefore, the promise must be constucted before calling + // webChannel.exec to ensure the callback is set up + if (!callback && (typeof(Promise) === 'function')) { + result = new Promise(function(resolve, reject) { + callback = resolve; + errCallback = reject; + }); + } + + webChannel.exec({ + "type": QWebChannelMessageTypes.invokeMethod, + "object": object.__id__, + "method": invokedMethod, + "args": args + }, function(response) { + if (response !== undefined) { + var result = object.unwrapQObject(response); + if (callback) { + (callback)(result); + } + } else if (errCallback) { + (errCallback)(); + } + }); + + return result; + }; + } + + function bindGetterSetter(propertyInfo) + { + var propertyIndex = propertyInfo[0]; + var propertyName = propertyInfo[1]; + var notifySignalData = propertyInfo[2]; + // initialize property cache with current value + // NOTE: if this is an object, it is not directly unwrapped as it might + // reference other QObject that we do not know yet + object.__propertyCache__[propertyIndex] = propertyInfo[3]; + + if (notifySignalData) { + if (notifySignalData[0] === 1) { + // signal name is optimized away, reconstruct the actual name + notifySignalData[0] = propertyName + "Changed"; + } + addSignal(notifySignalData, true); + } + + Object.defineProperty(object, propertyName, { + configurable: true, + get: function () { + var propertyValue = object.__propertyCache__[propertyIndex]; + if (propertyValue === undefined) { + // This shouldn't happen + console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); + } + + return propertyValue; + }, + set: function(value) { + if (value === undefined) { + console.warn("Property setter for " + propertyName + " called with undefined value!"); + return; + } + object.__propertyCache__[propertyIndex] = value; + var valueToSend = value; + if (valueToSend instanceof QObject && webChannel.objects[valueToSend.__id__] !== undefined) + valueToSend = { "id": valueToSend.__id__ }; + webChannel.exec({ + "type": QWebChannelMessageTypes.setProperty, + "object": object.__id__, + "property": propertyIndex, + "value": valueToSend + }); + } + }); + + } + + // ---------------------------------------------------------------------- + + data.methods.forEach(addMethod); + + data.properties.forEach(bindGetterSetter); + + data.signals.forEach(function(signal) { addSignal(signal, false); }); + + Object.assign(object, data.enums); +} + +//required for use with nodejs +if (typeof module === 'object') { + module.exports = { + QWebChannel: QWebChannel + }; +} + +new QWebChannel(qt.webChannelTransport, function (channel) { + window.endorphin = channel.objects.endorphin; +}); diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index d3dd172d..b060f11c 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -111,10 +111,11 @@ TabWidget::TabWidget(QWidget *parent) , m_lineEditCompleter(nullptr) , m_locationBars(nullptr) , m_tabBar(new TabBar(this)) - , m_profile(QWebEngineProfile::defaultProfile()) + , m_profile(nullptr) , addTabButton(nullptr) , closeTabButton(nullptr) { + m_profile = QWebEngineProfile::defaultProfile(); setElideMode(Qt::ElideRight); new QShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_T), this, SLOT(openLastTab())); @@ -194,8 +195,23 @@ TabWidget::TabWidget(QWidget *parent) // Initialize Actions' labels retranslate(); loadSettings(); + initScripts(); } +void TabWidget::initScripts() { + QFile file(":qwebchannel.js"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + qDebug() << "Couldn't read qwebchannel.js, window.external and window.endorphin won't be available"; + QTextStream out(&file); + + QWebEngineScript script; + script.setName("WebChannel loader"); + script.setInjectionPoint(QWebEngineScript::Deferred); + script.setRunsOnSubFrames(true); + script.setWorldId(QWebEngineScript::MainWorld); + script.setSourceCode(out.readAll()); + m_profile->scripts()->insert(script); +} void TabWidget::historyCleared() { m_recentlyClosedTabs.clear(); diff --git a/src/tabwidget.h b/src/tabwidget.h index 0f13488c..f87e9f17 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -150,6 +150,9 @@ class TabWidget : public QTabWidget void setProfile(QWebEngineProfile *profile); + void initScripts(); + QWebEngineProfile* profile(); + protected: void changeEvent(QEvent *event); diff --git a/src/webpage.cpp b/src/webpage.cpp index 76174eb9..997d4292 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -38,15 +38,67 @@ #include #include +#include #include #include +#include +#include QString WebPage::s_userAgent; +Q_DECLARE_METATYPE(OpenSearchEngine*) +JavaScriptEndorphinObject::JavaScriptEndorphinObject(QObject *parent) + : QObject(parent) +{ + static const char *translations[] = { + QT_TR_NOOP("Welcome to Endorphin!"), + QT_TR_NOOP("Endorphin Start"), + QT_TR_NOOP("Search!"), + QT_TR_NOOP("Search the web with"), + QT_TR_NOOP("Search results provided by"), + QT_TR_NOOP("About Endorphin") + }; + Q_UNUSED(translations); + + qRegisterMetaType("OpenSearchEngine*"); +} + +void JavaScriptEndorphinObject::AddSearchProvider(const QString &url) +{ + ToolbarSearch::openSearchManager()->addEngine(QUrl(url)); +} + + +QString JavaScriptEndorphinObject::translate(const QString &string) +{ + QString translatedString = tr(string.toUtf8().constData()); + + // If the translation is the same as the original string + // it could not be translated. In that case + // try to translate using the QApplication domain + if (translatedString != string) + return translatedString; + else + return qApp->tr(string.toUtf8().constData()); +} + +QObject *JavaScriptEndorphinObject::currentEngine() const +{ + return ToolbarSearch::openSearchManager()->currentEngine(); +} + +QString JavaScriptEndorphinObject::searchUrl(const QString &string) const +{ + return QString::fromUtf8(ToolbarSearch::openSearchManager()->currentEngine()->searchUrl(string).toEncoded()); +} + WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) : QWebEnginePage(profile, parent) , m_openTargetBlankLinksIn(TabWidget::NewWindow) { + QWebChannel *channel = new QWebChannel(this); + channel->registerObject("endorphin", new JavaScriptEndorphinObject(this)); + setWebChannel(channel); loadSettings(); } diff --git a/src/webpage.h b/src/webpage.h index d6515608..ea70a39a 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -26,6 +26,22 @@ #include #include +class JavaScriptEndorphinObject : public QObject +{ + Q_OBJECT + + Q_PROPERTY(QObject *currentEngine READ currentEngine) + +public: + JavaScriptEndorphinObject(QObject *parent = 0); + +public slots: + QString translate(const QString &string); + QObject *currentEngine() const; + QString searchUrl(const QString &string) const; + void AddSearchProvider(const QString &url); +}; + class WebPageLinkedResource { public: From 9be68d3b84a29a61e4a15fddf819ca4c688bdba8 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 16 Jan 2021 12:00:39 +0100 Subject: [PATCH 43/64] Update translations --- generate_translations.sh | 6 + src/CMakeLists.txt | 71 +- src/browserapplication.cpp | 1 - src/locale/cs_CZ.ts | 1799 ++++------------------------------ src/locale/da_DK.ts | 1574 ++++-------------------------- src/locale/de_DE.ts | 1875 ++++-------------------------------- src/locale/el_GR.ts | 1630 ++++--------------------------- src/locale/es_CR.ts | 1574 ++++-------------------------- src/locale/et_EE.ts | 1571 ++++-------------------------- src/locale/fi_FI.ts | 1513 ++++------------------------- src/locale/fr_CA.ts | 1518 ++++------------------------- src/locale/fr_FR.ts | 1136 ++-------------------- src/locale/he_IL.ts | 1600 ++++-------------------------- src/locale/hu_HU.ts | 1505 ++++------------------------- src/locale/it_IT.ts | 1816 ++++------------------------------ src/locale/ja_JP.ts | 1702 ++++---------------------------- src/locale/ko_KR.ts | 1821 ++++++---------------------------- src/locale/ms.ts | 1642 ++++--------------------------- src/locale/nb_NO.ts | 1758 ++++----------------------------- src/locale/nl.ts | 1079 +-------------------- src/locale/pl_PL.ts | 1094 +-------------------- src/locale/pt_BR.ts | 1530 ++++------------------------- src/locale/ru_RU.ts | 1751 ++++----------------------------- src/locale/sk_SK.ts | 1552 ++++------------------------- src/locale/sr_RS.ts | 1090 +-------------------- src/locale/sr_RS@latin.ts | 1089 +-------------------- src/locale/tr_TR.ts | 1711 ++++---------------------------- src/locale/uk.ts | 1788 ++++------------------------------ src/locale/zh_CN.ts | 1475 ++++------------------------ src/locale/zh_TW.ts | 1257 +++--------------------- ts_lst_file | 76 ++ 31 files changed, 4565 insertions(+), 37039 deletions(-) create mode 100755 generate_translations.sh create mode 100644 ts_lst_file diff --git a/generate_translations.sh b/generate_translations.sh new file mode 100755 index 00000000..7a4e0b83 --- /dev/null +++ b/generate_translations.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +FILES="ast.ts tr_TR.ts de_DE.ts hu_HU.ts es_CR.ts zh_TW.ts cs_CZ.ts sr_RS@latin.ts fr_FR.ts pt_BR.ts es.ts sr_RS.ts ms.ts da_DK.ts sk_SK.ts ru_RU.ts he_IL.ts pt_PT.ts ko_KR.ts fr_CA.ts nl.ts el_GR.ts ca.ts pl_PL.ts nb_NO.ts uk.ts zh_CN.ts gl.ts et_EE.ts fi_FI.ts it_IT.ts ja_JP.ts gl.ts" +for FILE in $FILES; do +/usr/lib/qt5/bin/lupdate @ts_lst_file -ts "src/locale/${FILE}" -noobsolete +done diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 87998462..daaa6bcf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -112,7 +112,7 @@ set(Endorphin_SRCS utils/languagemanager.cpp utils/lineedit.cpp utils/singleapplication.cpp - utils/squeezelabel.cpp + utils/squeezelabel.cpp utils/treesortfilterproxymodel.cpp ) @@ -140,38 +140,43 @@ set(Endorphin_RSCS QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) # Translations -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ast.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ca.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/cs_CZ.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/da_DK.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/de_DE.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/el_GR.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/es.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/es_CR.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/et_EE.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/fi_FI.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/fr_CA.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/fr_FR.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/gl.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/he_IL.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/hu_HU.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/it_IT.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ja_JP.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ko_KR.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ms.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/nb_NO.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/nl.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/pl_PL.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/pt_PT.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/pt_BR.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/ru_RU.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/sk_SK.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/sr_RS.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/sr_RS@latin.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/tr_TR.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/uk.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_CN.ts) -qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_TW.ts) +qt5_create_translation(QM_FILES +${Endorphin_SRCS} +${CMAKE_CURRENT_SOURCE_DIR}/locale/ast.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/ca.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/ast.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/ca.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/cs_CZ.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/da_DK.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/de_DE.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/el_GR.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/es.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/es_CR.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/et_EE.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/fi_FI.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/fr_CA.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/fr_FR.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/gl.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/he_IL.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/hu_HU.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/it_IT.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/ja_JP.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/ko_KR.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/ms.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/nb_NO.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/nl.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/pl_PL.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/pt_PT.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/pt_BR.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/ru_RU.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/sk_SK.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/sr_RS.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/sr_RS@latin.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/tr_TR.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/uk.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_CN.ts +${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_TW.ts +) # Generate executable add_executable(endorphin ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index 351c9e3e..89ce9525 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -464,7 +464,6 @@ void BrowserApplication::loadSettings() defaultSettings->setAttribute(QWebEngineSettings::JavascriptEnabled, settings.value(QLatin1String("enableJavascript"), true).toBool()); defaultSettings->setAttribute(QWebEngineSettings::AutoLoadImages, settings.value(QLatin1String("enableImages"), true).toBool()); defaultSettings->setAttribute(QWebEngineSettings::LocalStorageEnabled, settings.value(QLatin1String("enableLocalStorage"), true).toBool()); - //defaultSettings->setAttribute(QWebEngineSettings::DeveloperExtrasEnabled, settings.value(QLatin1String("enableInspector"), false).toBool()); defaultSettings->setAttribute(QWebEngineSettings::DnsPrefetchEnabled, true); QString css = settings.value(QLatin1String("userStyleSheet")).toString(); diff --git a/src/locale/cs_CZ.ts b/src/locale/cs_CZ.ts index 3e78ad2f..52170236 100644 --- a/src/locale/cs_CZ.ts +++ b/src/locale/cs_CZ.ts @@ -3,10 +3,6 @@ AboutDialog - - About - O prohlížeči - About %1 O %1 @@ -19,142 +15,6 @@ License Licence - - Lightweight WebKit-based web browser - Lehký webový prohlížeč založený na WebKitu - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Autorská práva vyhrazena © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - - Close - Zavřít - - - WebKit version: %1 - Verze WebKitu: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Autorská práva vyhrazena © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Jazyky - - - Languages: in order of preference: - Jazyky seřazené podle vašich preferencí: - - - Move &Up - Posunout &výše - - - Move &Down - Posunout &níže - - - &Remove - &Odstranit - - - Add... - Přidat... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Blokováno AdBlock pravidlem: %1 - - - - AdBlockDialog - - Add Custom Rule - Přidat vlastní pravidlo - - - Learn more about writing rules... - Více informací o psaní pravidel... - - - Update Subscription - Aktualizovat cizí filtry - - - Browse Subscriptions... - Prohlížet cizí filtry... - - - Remove Subscription - Odstranit cizí filtry - - - AdBlock Configuration - Konfigurace AdBlock - - - Enable AdBlock - Povolit AdBlock - - - Action - Akce - - - - AdBlockManager - - Custom Rules - Vlastní pravidla - - - - AdBlockModel - - Rule - Pravidlo - - - - AdBlockSchemeAccessHandler - - Subscribe? - Přidat cizí filtry? - - - Subscribe to this AdBlock subscription? -%1 - Přidat tyto cizí AdBlock filtry? -%1 - AddBookmarkDialog @@ -162,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Přidat záložku - - Type a name for the bookmark, and choose where to keep it. - Napište jméno pro záložku a vyberte, kde má být uložena. - Url Adresa @@ -179,51 +35,6 @@ p, li { white-space: pre-wrap; } Přidat složku - - AutoFillDialog - - Form Passwords - Formulář hesel - - - Remove - Odstranit - - - Remove All - Odstranit vše - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Chcete uložit toto heslo?</b><br> Pro prohlížení uložených hesel a jejich odstranění otevřete kartu Automatické doplňování v dialogu nastavení. - - - Never for this site - Nikdy na této stránce - - - Not now - Nyní ne - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Webová stránka - - - User Name - Uživatelské jméno - - BookmarksDialog @@ -238,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Nová složka - - Bookmarks - Záložky - - - &Remove - &Odstranit - - - Add Folder - Přidat složku - Open in New Tab Otevřít v nové kartě @@ -290,24 +89,10 @@ p, li { white-space: pre-wrap; } Open File Otevřít soubor - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Importováno %1 - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Chyba při načítání HTML záložek: %1 - - Save File Uložit soubor @@ -332,14 +117,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Vložit záložku - - Name Change - Změna jména - - - Address Change - Změna adresy - Name Change Undo bookmark title change @@ -362,10 +139,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required je vyžadován nástroj htmlToXBel - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Nástroj htmlToXBel, který je dodáván s Arorou a je nutný k importu HTML záložek, není nainstalován nebo není dostupný v hledaných cestách. - Loading Bookmark Načítání záložky @@ -376,6 +149,10 @@ p, li { white-space: pre-wrap; } Chyba při načítání HTML záložek: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -397,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Záložky - Open Otevřít @@ -421,10 +194,6 @@ p, li { white-space: pre-wrap; } Add Folder... Přidat složku... - - Bookmarks - Záložky - BrowserApplication @@ -439,16 +208,8 @@ Přesto ukončit? Obnovení selhalo - The saved session will not be restored because Arora crashed while trying to restore this session. - Uložená relace nebude obnovena, protože Arora spadla při pokusu o její obnovení. - - - (Change: %1 %2) - (Revize: %1 %2) - - - Arora crashed while trying to restore this session. Should I try again? - Arora spadla při pokusu o obnovu této relace. Zkusit znovu? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -481,14 +242,6 @@ Přesto ukončit? &Export Bookmarks... &Exportovat záložky... - - P&rint Preview... - Ná&hled tisku... - - - &Print... - &Tisk... - Private &Browsing... Soukro&mé prohlížení... @@ -534,27 +287,11 @@ Přesto ukončit? About Browser O &%1 - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Když je zapnuto soukromé prohlížení, některé akce narušující tvoje soukromí budou zakázány:<ul><li> Stránky nejsou přidávány do historie.</li><li> Položky jsou automaticky smazány z okna stahování.</li><li> Nové cookies nejsou uloženy, aktuální nebudou přístupné.</li><li> Ikony stránek nejsou ukládány, relace taky ne.</li><li> Hledání nejsou přidávány do vyjížděcího menu v políčku hledání.</li></ul>Dokud nezavřeš okno, můžeš vždy klikat Zpět a Vpřed pro vrácení na dříve otevřené stránky. - Ctrl+Y Download Manager Ctrl+Y - - &Find Next - Nají&t další - - - &Find Previous - Najít &předchozí - - - &Preferences - Před&volby - Ctrl+, Ctrl+, @@ -563,10 +300,6 @@ Přesto ukončit? &View &Zobrazit - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+| Ctrl+| @@ -579,22 +312,6 @@ Přesto ukončit? &Stop Z&astavit - - Reload Page - O&bnovit - - - &Make Text Bigger - Z&většit písmo - - - &Make Text Normal - &Normální velikost písma - - - &Make Text Smaller - Z&menšit písmo - Page S&ource &Zdrojový kód stránky @@ -631,10 +348,6 @@ Přesto ukončit? &Bookmarks Zál&ožky - - Manage Bookmarks... - Spravovat záložky... - Add Bookmark... Přidat záložku... @@ -660,14 +373,6 @@ Přesto ukončit? Web Search Ctrl+K - - Show &Network Monitor - Zobrazit &monitor sítě - - - Enable Web &Inspector - Povolit Web &Inspector - &Help Nápo&věda @@ -676,10 +381,6 @@ Přesto ukončit? About &Qt O &Qt - - About &Arora - O &Arora - Navigation Navigace @@ -700,31 +401,6 @@ Přesto ukončit? Hide Toolbar Skrýt panel nástrojů - - Show Bookmarks bar - Zobrazit panel záložek - - - Hide Bookmarks bar - Skrýt panel záložek - - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - - - About - O prohlížeči - - - Version %1<p>This demo demonstrates Qt's webkit facilities in action, providing an example browser for you to experiment with.<p><p>QtWebKit is based on the Open Source WebKit Project developed at <a href="http://webkit.org/">http://webkit.org/</a>. - Verze %1<p>Tato ukázka předvádí schopnosti WebKitu v Qt v akci, poskytnutím vzorového prohlížeče, abys s ním mohl(a) experimentovat.<p><p>QtWebKit je založen na open-source projektu WebKit vyvíjeného na <a href="http://webkit.org/">http://webkit.org/</a>. - Open Web Resource Otevřít webovou stránku @@ -733,36 +409,14 @@ Přesto ukončit? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Webové stránky (*.html *.htm *.svg *.png *.gif *.svgz);;Všechny soubory (*.*) - - Print Document - Vytisknout dokument - Are you sure you want to turn on private browsing? Opravdu chcete zapnout soukromé prohlížení? - - <b>%1</b><br><br>When private browsing in turned on, webpages are not added to the history, items are automatically removed from the Downloads window, new cookies are not stored, current cookies can't be accessed, site icons wont be stored, session wont be saved, and searches are not addded to the pop-up menu in the Google search box. Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Když je zapnuto soukromé prohlížení, stránky nejsou přidávány do historie, soubory jsou automaticky smazány z okna stahování, nové cookies nejsou ukládány, aktuální cookies nejsou přístupné, ikony stránek nejsou ukládány, relace se neukádá a hledání nejsou přidávány do vysouvacího menu v políčku Google hledání. Dokud nezavřeš okno, můžeš vždy klikat Zpět a Vpřed pro vrácení na dříve otevřené stránky. - Are you sure you want to close the window? There are %1 tabs open Opravdu chcete zavřít okno? Je otevřeno %1 karet - - Page Source of %1 - Zdrojový kód stránky %1 - - - Web Inspector - Web Inspector - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Webový inspektor bude fungovat pouze pro stránky načtené po jeho povolení. -Chcete znovu načíst všechny stránky? - Stop loading the current page Zastaví načítání aktuální stránky @@ -775,11 +429,6 @@ Chcete znovu načíst všechny stránky? Downloads Stahování - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - &Clear Private Data Smazat &soukromá data @@ -789,14 +438,6 @@ Chcete znovu načíst všechny stránky? Clear Private Data - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttonsto return to the webpages you have opened. - <b>%1</b><br><br>Když je zapnuto soukromé prohlížení, některé akce narušující tvoje soukromí budou zakázány:<ul><li> Stránky nejsou přidávány do historie.</li><li> Položky jsou automaticky smazány z okna stahování.</li><li> Nové cookies nejsou uloženy, aktuální nebudou přístupné.</li><li> Ikony stránek nejsou ukládány, relace taky ne.</li><li> Hledání nejsou přidávány do vyjížděcího menu v políčku hledání.</li></ul>Dokud nezavřeš okno, můžeš vždy klikat Zpět a Vpřed pro vrácení na dříve otevřené stránky. - - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Když je zapnuto soukromé prohlížení, některé akce narušující tvoje soukromí budou zakázány:<ul><li> Stránky nejsou přidávány do historie.</li><li> Položky jsou automaticky smazány z okna stahování.</li><li> Nové cookies nejsou uloženy, aktuální nebudou přístupné.</li><li> Ikony stránek nejsou ukládány, relace taky ne.</li><li> Hledání nejsou přidávány do vyjížděcího menu v políčku hledání.</li></ul>Dokud nezavřeš okno, můžeš vždy klikat Zpět a Vpřed pro vrácení na dříve otevřené stránky. - Show Bookmarks Bar Zobrazit lištu záložek @@ -805,42 +446,18 @@ Chcete znovu načíst všechny stránky? Hide Bookmarks Bar Skrýt lištu záložek - - Find &Next - Nají&t další - Find P&revious Najít &předchozí - - Prefe&rences - Před&volby - &Reload Page O&bnovit stránku - - Make Text &Bigger - Z&většit text - - - Make Text &Normal - &Normální velikost textu - - - Make Text &Smaller - Z&menšit text - Find Nex&t Nají&t další - - Prefere&nces... - Před&volby... - Show Menu Bar Zobrazit menu @@ -893,10 +510,6 @@ Chcete znovu načíst všechny stránky? Configure Search Engines... Nastavit vyhledávače... - - &Ad Block... - &AdBlock... - When private browsing is turned on, some actions concerning your privacy will be disabled: Při zapnutém soukromém prolížení budou některé akce týkající se vašeho soukromí zakázány: @@ -909,10 +522,6 @@ Chcete znovu načíst všechny stránky? Items are automatically removed from the Downloads window. Soubory jsou automaticky odstraňovány z okna stahování. - - New cookies are not stored, current cookies can't be accessed. - Nové cookies nejsou ukládány, ke stávajícím cookies nemůže být přistupováno. - Site icons won't be stored. Ikony stránek nebudou ukládány. @@ -953,6 +562,11 @@ Chcete znovu načíst všechny stránky? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -983,14 +597,6 @@ Chcete znovu načíst všechny stránky? &Search History Historie vyhledávání - - &Cookies - &Cookies - - - C&ache - Vyrovnávací &paměť - Website &Icons Ikony stránek @@ -1003,1213 +609,331 @@ Chcete znovu načíst všechny stránky? &Cancel Zrušit - - C&ached Web Pages - Stránky v &mezipaměti - - ClickToFlash - - Load - Načíst - - - Load All - Načíst vše - + DownloadDialog - Add %1 to Whitelist - Přidat %1 do povolených + Downloads + Stahování - Remove from Whitelist - Odebrat z povolených + Downloading %1 + + + + DownloadItem - Settings - Nastavení + Save File + Uložit soubor - Load Flash - Načíst flash + Download canceled: %1 + Stahování zrušeno: %1 - - - ClickToFlashSettings - Whitelist sites - Povolené weby + %1 of %2 (%3/sec) - %4 + %1 z %2 (%3/sek) - %4 - - - CookieExceptionsModel - Website - Webová stránka + Error saving: %1 + Chyba při ukládání: %1 - Status - Stav + Network Error: %1 + Chyba sítě: %1 - Allow - Povoleno + ? + - Block - Blokovat + Error opening output file: %1 + Chyba při otevírání výstupního souboru: %1 - Allow For Session - Povolit pro relaci + Download directory (%1) couldn't be created. + Složka pro stahování (%1) nemůže být vytvořena. - Rule - Pravidlo + %1 of %2 - Download Complete + - CookieModel + DownloadManager - Website - Webová stránka + There are %1 downloads in progress +Do you want to quit anyway? + Právě probíhá %1 stahování +Přesto ukončit? - - Name - Jméno - - - Path - Cesta - - - Secure - Zabezpečené - - - Expires - Vyprší - - - Contents - Obsah - - - true - - - - false - - - - Session cookie - Relační cookie - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Smazat - - - Remove &All Cookies - Smazat &vše - - - Add &Rule - Přidat &pravidlo - - - - CookiesExceptionsDialog - - Cookie Exceptions - Výjimky pro cookies - - - New Exception - Nová výjimka - - - Domain: - Doména: - - - Block - Blokovat - - - Allow For Session - Povolit pro relaci - - - Allow - Povolit - - - Exceptions - Výjimky - - - &Remove - &Odstranit - - - Remove &All - Odstranit &vše - - - - DownloadDialog - - Downloads - Stahování - - - Clean up - Vyčistit - - - 0 Items - 0 položek - - - Downloading %1 - - - - - DownloadItem - - Ico - - - - Filename - Název souboru - - - Try Again - Zkusit znovu - - - Stop - Zastavit - - - Open - Otevřít - - - Save File - Uložit soubor - - - Download canceled: %1 - Stahování zrušeno: %1 - - - %1 of %2 (%3/sec) - %4 - %1 z %2 (%3/sek) - %4 - - - Error opening save file: %1 - Chyba při otevírání souboru pro uložení: %1 - - - Error saving: %1 - Chyba při ukládání: %1 - - - Network Error: %1 - Chyba sítě: %1 - - - seconds - sekund - - - minutes - minut - - - - %4 %5 remaining - - %4 %5 zbývá - - - %1 of %2 (%3/sec) %4 - %1 z %2 (%3/s) %4 - - - ? - - - - %1 of %2 - Stopped - %1 z %2 - Zastaveno - - - bytes - bajtů - - - - %n minutes remaining - - - %n minuta zbývá - - %n minuty zbývají - - %n minut zbývá - - - - - %n seconds remaining - - - %n sekunda zbývá - - %n sekundy zbývají - - %n sekund zbývá - - - - Error opening output file: %1 - Chyba při otevírání výstupního souboru: %1 - - - Download directory (%1) couldn't be created. - Složka pro stahování (%1) nemůže být vytvořena. - - - %1 of %2 - Download Complete - - - - - DownloadManager - - There are %1 downloads in progress -Do you want to quit anyway? - Právě probíhá %1 stahování -Přesto ukončit? - - - %n minutes remaining - - %n minuta zbývá - %n minuty zbývají - %n minut zbývá - - - - %n seconds remaining - - %n sekunda zbývá - %n sekundy zbývají - %n sekund zbývá - - - - bytes - bajtů - - - kB - kB - - - MB - MB - - - 1 Download - 1 stahování - - - %1 Downloads - %1 stahování - - - %n Download(s) - - %n stahování - %n stahování - %n stahování - - - - GB - GB - - - - FileAccessReply - - No Error - Žádná chyba - - - Error opening: %1: No such file or directory - Chyba při otevírání %1: Soubor nebo složka neexistuje - - - Unable to read %1 - Chyba při čtení %1 - - - Contents of %1 - Obsah %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - Open - Otevřít - - - Copy - Kopírovat - - - Delete - Smazat - - - History - Historie - - - &Remove - &Odstranit - - - Remove &All - Odstranit &vše - - - - HistoryMenu - - Show All History - Zobrazit celou historii - - - Clear History - Vyčistit historii - - - Clear History... - Vyčistit historii... - - - Do you want to clear the history? - Chcete vyčistit historii? - - - - HistoryModel - - Title - Titulek - - - Address - Adresa - - - - HistoryTreeModel - - Earlier Today - Dříve dnes - - - %1 items - %1 položek - - - %n item(s) - - %n položka - %n položky - %n položek - - - - - JavaScriptAroraObject - - Welcome to Arora! - Vítejte v Aroře! - - - Arora Start - - - - Search! - Vyhledat! - - - Search results provided by - Výsledky vyhledávání poskytovány - - - About Arora - O Aroře - - - Search the web with - - - - - LanguageManager - - Default - Výchozí - - - No translation files are installed. - Žádné překlady nejsou nainstalovány - - - Choose language - Vyberte jazyk - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Arora může používat jiný jazyk, než<br>je výchozí jazyk operačního systému.</p><p>Prosím vyberte, který jazyk má být použit</p> - - - No translation files are installed at %1. - Žádné překladové soubory nejsou nainstalovány v %1. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Zadejte uživatelské jméno a heslo pro "%1" na %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Připojit k proxy "%1" pomocí:</qt> - - - - SSL Errors - - Chyby SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Chyby SSL:<br/><br/>pro: <tt>%1</tt><ul><li>%2</li></ul> - -Chcete ignorovat tyto chyby?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certifikáty:<br/>%1<br/>Chcete přijmout všechny tyto certifikáty?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certifikáty:<br/>%1<br/>Chceš přijmout všechny tyto certifikáty?</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Chyby SSL: - -%1 - -%2 - -Chceš ignorovat tyto chyby? - - - Do you want to accept all these certificates? - Chceš přijmout všechny tyto certifikáty? - - - Issuer: %1 - Vydal: %1 - - - Not valid before: %1 - Neplatný před: %1 - - - Valid until: %1 - Platný do: %1 - - - Alternate Names: - Alternativní jména: - - - - NetworkMonitor - - Name - Název - - - Value - Hodnota - - - - NetworkMonitorDialog - - Network Monitor - Monitor sítě - - - Network Requests - Síťové požadavky - - - Request Headers - Hlavičky požadavku - - - Response Headers - Hlavičky odpovědi - - - &Remove - &Smazat - - - Remove &All Requests - Smazat &všechny požadavky - - - - OpenSearchDialog - - Open File - Otevřít soubor - - - OpenSearch - OpenSearch - - - Error - Chyba - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 není validní OpenSearch 1.1 popis, nebo už je na seznamu. - - - You must have at least one search engine in here. - Musíte mít alespoň jeden vyhledávač. - - - OpenSearch Manager - Správce OpenSearch - - - &Restore Defaults - &Obnovit původní - - - &Delete - &Smazat - - - &Add - &Přidat - - - &Close - &Zavřít - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Popis:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Poskytuje kontextové návrhy</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - Seznam čárkou oddělených klíčových slov, která mají být vložena do vyhledávacího políčka následovány vyhledávanými slovy s tímto vyhledávačem - - - Name - Název - - - Keywords - Klíčová slova - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Chcete přidat následující vyhledávač do seznamu svých vyhledávačů?<br /><br />Jméno: %1<br />Vyhledává na: %2 - - - - PasswordDialog - - Authentication Required - Vyžadováno přihlášení - - - DUMMY ICON - - - - INTRO TEXT DUMMY - - - - Username: - Uživatelské jméno: - - - Password: - Heslo: - - - - PlainTextEditSearch - - Not Found - Nenalezeno - - - - ProxyDialog - - Proxy Authentication - Přihlášení k proxy - - - Connect to proxy - Připojit k proxy - - - Username: - Uživatelské jméno: - - - Password: - Heslo: - - - - QObject - - The file is not an XBEL version 1.0 file. - Soubor není souborem XBEL verze 1.0. - - - Unknown title - Neznámý titulek - - - The file is not an OpenSearch 1.1 file. - Toto není soubor OpenSearch 1.1. - - - - RequestModel - - Redirect: %1 - Přesměrování: %1 - - - Method - Metoda - - - Address - Adresa - - - Response - Odpověď - - - Length - Délka - - - Content Type - Typ obsahu - - - Info - Info - - - - SearchBanner - - Done - Hotovo - - - Highlight All - Vyznačit vše - - - - SearchLineEdit - - Search - Hledat - - - - Settings - - Settings - Nastavení - - - General - Obecné - - - Home: - Domov: - - - Set to current page - Nastavit na aktuální stránku - - - Remove history items: - Odstranit položky historie: - - - After one day - Po jednom dni - - - After one week - Po jednom týdnu - - - After two weeks - Po dvou týdnech - - - After one month - Po měsíci - - - After one year - Po roce - - - Manually - Ručně - - - Save downloads to: - Uložit stahování do: - - - Open links from applications: - Otevřít odkazy z aplikací: - - - In a tab in the current window - V panelu v aktuálním okně - - - In a new window - V novém okně - - - Appearance - Vzhled - - - Standard font: - Standardní písmo: - - - Times 16 - Times 16 - - - Select... - Vybrat... - - - Fixed-width font: - Písmo s pevnou šířkou: - - - Courier 13 - Courier 13 - - - Preferred languages for viewing webpages in: - Upřednostňované jazyky pro prohlížení stránek: - - - Privacy - Soukromí - - - Web Content - Obsah webu - - - Block Popup Windows - Blokovat vyskakovací okna - - - Enable Plugins - Povolit zásuvné moduly - - - Enable Javascript - Povolit JavaScript - - - Cookies - Cookies - - - Accept Cookies: - Přijímat cookies: - - - Always - Vždy - - - Never - Nikdy - - - Only from sites you navigate to - Pouze z navštívených stránek - - - Exceptions... - Výjimky... - - - Keep until: - Uchovat dokud: - - - They expire - Vyprší - - - I exit the application - Ukončení aplikace - - - At most 90 days - Maximálně 90 dní - - - Cookies... - Cookies... - - - Proxy - Proxy - - - Enable proxy - Povolit proxy - - - Type: - Typ: - - - Socks5 - Socks5 - - - Http - Http - - - Host: - Server: - - - Port: - Port: - - - User Name: - Uživatelské jméno: - - - Password: - Heslo: - - - Advanced - Rozšířené - - - Style Sheet: - CSS styl: - - - Downloads - Stahování - - - Ask for a destination each time - Vždy se ptát na umístění stahování - - - Use this destination: - Použít toto umístění: + + %n minutes remaining + + %n minuta zbývá + %n minuty zbývají + %n minut zbývá + - - On application exit - Při ukončení aplikace + + %n seconds remaining + + %n sekunda zbývá + %n sekundy zbývají + %n sekund zbývá + - Enable Images - Povolit obrázky + bytes + bajtů - Tabs - Karty + kB + kB - Select tabs and windows as they are created - Přepínat na okna nebo karty, když jsou vytvořeny + MB + MB - - Confirm when closing multiple tabs - Vyžadovat potvrzení při zavírání více panelů + + %n Download(s) + + %n stahování + %n stahování + %n stahování + - On startup: - Po spuštění: + GB + GB + + + HistoryDialog - Show my home page - Zobrazit moji domovskou stránku + Open + Otevřít - Show a blank page - Zobrazit prázdnou stránku + Copy + Kopírovat - Restore windows and tabs from last time - Obnovit okna a karty z poslední relace + Delete + Smazat + + + HistoryMenu - Preferences - Předvolby + Show All History + Zobrazit celou historii - Home Page: - Domovská stránka: + Clear History + Vyčistit historii - Use ClickToFlash on flash plugins - Používat ClickToFlash na zásuvných modulech flash + Clear History... + Vyčistit historii... - View Images - Zobrazovat obrázky + Do you want to clear the history? + Chcete vyčistit historii? + + + HistoryModel - Keep Cookies Until: - Ponechat cookies dokud: + Title + Titulek - Filter Tracking Cookies - Filtrovat sledovací cookies + Address + Adresa + + + HistoryTreeModel - Confirm when closing multiple tabs or windows - Vyžadovat potvzrení při zavírání více karet nebo oken + Earlier Today + Dříve dnes - - Quit the application when last tab is closed - Ukončit aplikaci, když je zavřena poslední karta + + %n item(s) + + %n položka + %n položky + %n položek + + + + JavaScriptEndorphinObject - Opening links - Otevírání odkazů + Welcome to Endorphin! + - Links that want to open in a new window: - Odkazy, které chtějí otevřít v novém okně: + Endorphin Start + - In a new selected tab in the current window - V nové kartě aktuálního okna, který bude označen + Search! + - In a new tab in the current window - V nové kartě aktuálního okna + Search the web with + - In the current tab - V aktuálním kartě + Search results provided by + - Use proxy server - Používat proxy server + About Endorphin + + + + LanguageManager - Http (Secure) - HTTP (zabezpečené) + Choose language + Vyberte jazyk - Http (Transparent) - HTTP (průhledné) + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Arora může používat jiný jazyk, než<br>je výchozí jazyk operačního systému.</p><p>Prosím vyberte, který jazyk má být použit</p> - Host name: - Jméno hostitele: + No translation files are installed at %1. + Žádné překladové soubory nejsou nainstalovány v %1. + + + OpenSearchDialog - Enable network cache - Povolit síťovou mezipaměť + Open File + Otevřít soubor - Maximum Size: - Maximální velikost: + OpenSearch + OpenSearch - MB - MB + Error + Chyba - Show only one close button instead of one for each tab - Zobrazit pouze jedno zavírací tlačítko místo jednoho pro každou kartu + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 není validní OpenSearch 1.1 popis, nebo už je na seznamu. - Use the default search engine as fallback when the URL given by the user is invalid - Použít výchozí vyhledávač jako nouzový, když je adresa zadaná uživatelem neplatná + You must have at least one search engine in here. + Musíte mít alespoň jeden vyhledávač. + + + OpenSearchEngineModel - Choose Directory... - Vybrat adresář... + <strong>Description:</strong> %1 + <strong>Popis:</strong> %1 - A cookie session ends: - Relace cookies končí: + <strong>Provides contextual suggestions</strong> + <strong>Poskytuje kontextové návrhy</strong> - When I exit the application - Když ukončím aplikaci + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + Seznam čárkou oddělených klíčových slov, která mají být vložena do vyhledávacího políčka následovány vyhledávanými slovy s tímto vyhledávačem - 1 day - 1 den + Name + Název - 2 days - 2 dny + Keywords + Klíčová slova + + + OpenSearchManager - 3 days - 3 dny + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Chcete přidat následující vyhledávač do seznamu svých vyhledávačů?<br /><br />Jméno: %1<br />Vyhledává na: %2 + + + PermissionBar - 7 days - 7 dní + Allow + - 30 days - 30 dní + Deny + - AutoFill - Automatické doplňování + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - Automaticky doplňovat webové formuláře: + Not Found + Nenalezeno + + + QObject - User names and passwords - Uživatelská jména a hesla + The file is not an XBEL version 1.0 file. + Soubor není souborem XBEL verze 1.0. - Edit... - Upravit... + Unknown title + Neznámý titulek - Browse... - Prohlížet... + The file is not an OpenSearch 1.1 file. + Toto není soubor OpenSearch 1.1. - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Vyžadován restart aplikace - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Byla změněna nastavení síťové cache. Aby se změny projevily, prohlížeč musí být restartován. + Search + Hledat + + + SettingsDialog Choose Directory Vybrat adresář @@ -2237,18 +961,6 @@ Chceš ignorovat tyto chyby? &Find Na&jít - - &View - &Zobrazit - - - &Wrap lines - Za&lamovat řádky - - - Source of Page - Zdrojový kód stránky - Source of Page %1 Zdrojový kód stránky %1 @@ -2256,10 +968,6 @@ Chceš ignorovat tyto chyby? TabBar - - New &Tab - &Nový panel - Duplicate Tab Duplikovat kartu @@ -2311,10 +1019,6 @@ Chceš ignorovat tyto chyby? Loading... Načítání... - - Loading %1% (%2 %3)... - Načítání %1% (%2 %3)... - Finished loading Načítání dokončeno @@ -2343,26 +1047,14 @@ Chceš ignorovat tyto chyby? Bookmark All Tabs Přidat všechny karty do záložek - - (Untitled) - (Bez titulku) - - - Do you really want to close this page? - Opravdu chcete zavřít tuto stránku? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Změnili jste tuto stránku, pokud ji zavřete, změny budou ztraceny. -Opravdu chcete zavřít tuto stránku? - - Untitled Bez názvu + + Loading ... + + ToolbarSearch @@ -2370,14 +1062,6 @@ Opravdu chcete zavřít tuto stránku? Suggestions Návrhy - - Add '%1' - Přidat '%1' - - - Configure Search Engines... - Nastavit vyhledávací enginy... - No Recent Searches Žádná nedávná vyhledávání @@ -2410,51 +1094,8 @@ Opravdu chcete zavřít tuto stránku? - - WebPage - - Error loading page: %1 - Chyba při načítání stránky: %1 - - - When connecting to: %1. - Při připojování k: %1. - - - Check the address for errors such as <b>ww</b>.trolltech.com instead of <b>www</b>.trolltech.com. - Zkontroluj adresu na chyby jako <b>ww</b>.trolltech.com místo <b>www</b>.trolltech.com. - - - If the address is correct, try to check the network connection. - Pokud je adresa správná, zkontroluj síťové připojení. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Pokud je váš počítač nebo vaše síť chráněna firewallem nebo proxy, ujistěte se, že je prohlížeči povolen přístup k síti. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Zkontrolujte adresu kvůli chybách jako <b>ww</b>.arora-browser.org namísto <b>www</b>.arora-browser.org - - - If the address is correct, try checking the network connection. - Pokud je adresa správná, zkontrolujte síťové připojení. - - - Resending POST request - Opětovné posílání POST požadavku - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Pro zobrazení stránky musí být požadavek spolu se všemi daty poslán znovu, což může způsobit neočekávané chování stránky, například ta samá akce může být vykonána znovu. Přesto pokračovat? - - WebView - - Open in New Tab - Otevřít v novém panelu - Open in New &Window &Otevřít v novém okně @@ -2503,38 +1144,6 @@ Opravdu chcete zavřít tuto stránku? Loading... Načítání... - - Add to the toolbar search - Přidat do políčka vyhledávání - - - Method not supported - Metoda není podporována - - - %1 method is not supported. - Metoda %1 není podporována. - - - Search engine - Vyhledávač - - - Choose the desired search engine - Vyber požadovaný vyhledávač - - - Engine name - Název vyhledávače - - - Type in a name for the engine - Napište jméno pro vyhledávač - - - Block Image - Blokovat obrázek - WebViewSearch diff --git a/src/locale/da_DK.ts b/src/locale/da_DK.ts index 2b93344e..52a31806 100644 --- a/src/locale/da_DK.ts +++ b/src/locale/da_DK.ts @@ -3,22 +3,6 @@ AboutDialog - - Lightweight WebKit-based web browser - Letvægts WebKit-baseret internetbrowser - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ophavsret © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - About %1 @@ -31,121 +15,6 @@ p, li { white-space: pre-wrap; } License Licens - - Close - Luk - - - About - Om - - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - - - AcceptLanguage - - Languages - - - - Languages: in order of preference: - - - - Move &Up - - - - Move &Down - - - - &Remove - &Fjern - - - Add... - - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -153,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Tilføj bogmærke - - Type a name for the bookmark, and choose where to keep it. - Skriv et navn for bogmærket og vælg et sted at gemme det. - Url @@ -170,61 +35,8 @@ p, li { white-space: pre-wrap; } Tilføj mappe - - AutoFillDialog - - Form Passwords - - - - Remove - - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog - - Bookmarks - Bogmærker - - - &Remove - &Fjern - - - Add Folder - Tilføj mappe - Open Åbn @@ -278,10 +90,6 @@ p, li { white-space: pre-wrap; } Open File Åbn fil - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 %1 er importeret @@ -310,14 +118,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Indsæt bogmærke - - Name Change - Ændre navn - - - Address Change - Ændre adresse - Name Change Undo bookmark title change @@ -340,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -353,6 +149,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -374,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Bogmærke - Open Åbn @@ -398,10 +194,6 @@ p, li { white-space: pre-wrap; } Add Folder... - - Bookmarks - Bogmærker - BrowserApplication @@ -416,7 +208,7 @@ Do you want to quit anyway? - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -450,14 +242,6 @@ Do you want to quit anyway? &Export Bookmarks... &Exportér bogmærker... - - P&rint Preview... - &Vis udskrift... - - - &Print... - &Udskriv... - Private &Browsing... Privat &browsing... @@ -512,18 +296,6 @@ Do you want to quit anyway? Download Manager - - &Find Next - &Find næste - - - &Find Previous - &Find forrige - - - &Preferences - &Indstillinger - Ctrl+, Ctrl+, @@ -536,10 +308,6 @@ Do you want to quit anyway? Ctrl+| Crtl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Crtl+/ @@ -548,22 +316,6 @@ Do you want to quit anyway? &Stop &Stop - - Reload Page - Genindlæs side - - - &Make Text Bigger - &Gør tekst større - - - &Make Text Normal - &Gør tekst normal - - - &Make Text Smaller - &Gør tekst mindre - Find Nex&t @@ -624,10 +376,6 @@ Do you want to quit anyway? &Bookmarks &Bogmærker - - Manage Bookmarks... - Håndtér bogmærker... - Add Bookmark... Tilføj bogmærke... @@ -662,10 +410,6 @@ Do you want to quit anyway? Clear Private Data Crtl+Shift+Delete - - Enable Web &Inspector - Aktivér Web&inspektør - &Help &Hjælp @@ -678,10 +422,6 @@ Do you want to quit anyway? About &Qt Om &Qt - - About &Arora - Om &Arora - Navigation Navigation @@ -702,23 +442,6 @@ Do you want to quit anyway? Hide Toolbar Skjul værktøjslinje - - Show Bookmarks bar - Vis bogmærkelinje - - - Hide Bookmarks bar - Skjul bogmærkelinje - - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Åbn netressource @@ -727,36 +450,10 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Netressourcer (*.html *.htm *.svg *.png *.gif *.svgz);; Alle filer (*.*) - - Print Document - Udskriv dokument - Are you sure you want to turn on private browsing? Er du sikker på du vil slå privat browsing til? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Når privat browsing er slået til, vil nogle handlinger vedrørende dine hemmeligheder blive slået fra:<ul><li>Sider bliver ikke tilføjet til historikken.</li><li> Filer bliver automatisk fjernet fra "Downloads"-vinduet.</li><li> Nye cookies bliver ikke gemt og eksisterende cookies kan ikke tilgås.</li><li> Sideikoner bliver ikke gemt, og sessioner vil ikke blive gemt.</li><li> Søgetermer bliver ikke tilføjet pop-op-menuen i søgefeltet.</li></ul>Indtil du lukker vinduet, kan du stadig klikke på frem- og tilbage-knapperne for at komme tilbage til åbne netsider. - - - Are you sure you want to close the window? There are %1 tab open - Er du sikker på du vil lukke vinduet? Der er %1 faneblade åbne - - - Page Source of %1 - Kilde til %1 - - - Web Inspector - Webinspektør - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Webinspektøren vil kun virke korrekt for sider der er indlæst efter webinspektøren er aktiveret -Vil du genindlæse alle sider? - Stop loading the current page Stop indlæsning af den aktuelle side @@ -769,11 +466,6 @@ Vil du genindlæse alle sider? Downloads Downloads - - Alt+Ctrl+L - Download Manager - Alt+Crtl+L - Find P&revious @@ -818,10 +510,6 @@ Vil du genindlæse alle sider? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -834,10 +522,6 @@ Vil du genindlæse alle sider? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -878,6 +562,11 @@ Vil du genindlæse alle sider? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -908,18 +597,6 @@ Vil du genindlæse alle sider? &Search History &Søgehistorik - - &Cookies - &Cookies - - - C&ached Web Pages - - - - C&ache - C&ache - Website &Icons Side&Ikoner @@ -934,1152 +611,324 @@ Vil du genindlæse alle sider? - ClickToFlash - - Load - - + DownloadDialog - Load All - + Downloads + Downloads - Add %1 to Whitelist + Downloading %1 + + + DownloadItem - Remove from Whitelist - + Save File + Gem fil - Settings - Opsætning + Download canceled: %1 + Download annulleret: %1 - Load Flash + %1 of %2 (%3/sec) - %4 - - - ClickToFlashSettings - Whitelist sites - + Error saving: %1 + Fejl ved skrivning: %1 - - - CookieExceptionsModel - Website - Hjemmeside + Network Error: %1 + Netværksfejl: %1 - Status - Status + ? + ? - Rule + Error opening output file: %1 - Allow - Tillad - - - Block - Blokér + Download directory (%1) couldn't be created. + - Allow For Session - Tillad for session + %1 of %2 - Download Complete + - CookieModel - - Website - Hjemmeside - - - Name - Navn - - - Path - Sti - + DownloadManager - Secure - Sikker - - - Expires - Udløber - - - Contents - Indhold - - - true - - - - false - - - - Session cookie - - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Fjern - - - Remove &All Cookies - Fjern &alle cookies - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - cookie-undtagelser - - - New Exception - Ny undtagelse - - - Domain: - Domæne: - - - Block - Blokér - - - Allow For Session - Tillad for session - - - Allow - Tillad - - - Exceptions - Undtagelser - - - &Remove - &Fjern - - - Remove &All - Fjern &alle - - - - DownloadDialog - - Downloads - Downloads - - - Clean up - Ryd op - - - 0 Items - 0 elementer - - - Downloading %1 - - - - - DownloadItem - - Form - Formular - - - Ico - Ikon - - - Filename - Filnavn - - - Try Again - Prøv Igen - - - Stop - Stop - - - Open - Åbn - - - Save File - Gem fil - - - Download canceled: %1 - Download annulleret: %1 - - - %1 of %2 (%3/sec) - %4 - - - - Error opening save file: %1 - Fejl under åbning af fil for skrivning: %1 - - - Error saving: %1 - Fejl ved skrivning: %1 - - - Network Error: %1 - Netværksfejl: %1 - - - seconds - Sekunder - - - minutes - Minutter - - - - %4 %5 remaining - - %4 %5 tilbage - - - %1 of %2 (%3/sec) %4 - %1 af %2 (%3/sek) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 af %2 - Stoppet - - - bytes - Bytes - - - kB - kB - - - MB - MB - - - Error opening output file: %1 - - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - There are %1 downloads in progress -Do you want to quit anyway? - + There are %1 downloads in progress +Do you want to quit anyway? + %n minutes remaining - - - - - %n seconds remaining - - - - - - - bytes - Bytes - - - kB - kB - - - MB - MB - - - 1 Download - 1 Download - - - %1 Downloads - %1 Downloads - - - %n Download(s) - - - - - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - History - Historik - - - &Remove - &Fjern - - - Remove &All - Fjern &alt - - - Open - Åbn - - - Copy - Kopiér - - - Delete - Slet - - - - HistoryMenu - - Show All History - Vis fuld historik - - - Clear History - Ryd historik - - - Clear History... - - - - Do you want to clear the history? - - - - - HistoryModel - - Title - Titel - - - Address - Adresse - - - - HistoryTreeModel - - Earlier Today - Tidligere i dag - - - %1 items - %1 elementer - - - %n item(s) - - - - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - Choose language - - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Indtast brugernavn og kodeord for "%1" på %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Forbind til proxy'en "%1" ved brug af:</qt> - - - - SSL Errors - - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - SSL-fejl: - -%1 - -%2 - -Vil du ignorere disse fejl? - - - Do you want to accept all these certificates? - Vil du acceptere alle disse certifikater? - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - Navn - - - - NetworkMonitorDialog - - &Remove - &Fjern - - - - OpenSearchDialog - - Open File - Åbn fil - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Navn - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - Godkendelse påkrævet - - - DUMMY ICON - STANDARDIKON - - - INTRO TEXT DUMMY - INTRODUKTIONSSTANDARDTEKST - - - Username: - Brugernavn: - - - Password: - Kodeord: - - - - PlainTextEditSearch - - Not Found - Ikke fundet - - - - ProxyDialog - - Proxy Authentication - Proxy-godkendelse - - - ICON - IKON - - - Connect to proxy - Forbind til proxy - - - Username: - Brugernavn: - - - Password: - Kodeord: - - - - QObject - - The file is not an XBEL version 1.0 file. - Filen er ikke af typen XBEL version 1.0. - - - Unknown title - Ukendt titel - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Address - Adresse - - - - SearchBanner - - Form - Formular - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - Færdig - - - Highlight All - - - - - SearchLineEdit - - Search - Søg - - - - Settings - - Settings - Opsætning - - - General - Generelt - - - Home: - Hjem: - - - Home Page: - - - - Set to current page - Sæt til nuværende side - - - Remove history items: - Fjern elementer fra historik: - - - After one day - Efter en dag - - - After one week - Efter en uge - - - After two weeks - Efter to uger - - - After one month - Efter en måned - - - After one year - Efter et år - - - Manually - Manuelt - - - On application exit - Ved afslutning af program - - - Open links from applications: - Åbn links fra programmer: - - - In a tab in the current window - I et faneblad i nuværende vindue - - - In a new window - I et nyt vindue - - - Downloads - Downloads - - - Ask for a destination each time - Bed om destination hver gang - - - Use this destination: - Brug denne destination: - - - Appearance - Udseende - - - Standard font: - Standardskrifttype: - - - Times 16 - Times 16 - - - Select... - Vælg... + + - - Fixed-width font: - Skrifttype med fast bredde: + + %n seconds remaining + + + + - Courier 13 - Courier 13 + bytes + Bytes - Preferred languages for viewing webpages in: - + kB + kB - Privacy - Privatliv + MB + MB - - Web Content - Netindhold + + %n Download(s) + + + + - Block Popup Windows + GB + + + HistoryDialog - Enable Plugins - Aktivér plugins - - - Use ClickToFlash on flash plugins - + Open + Åbn - Enable Javascript - Aktivér JavaScript + Copy + Kopiér - View Images - + Delete + Slet + + + HistoryMenu - Keep Cookies Until: - + Show All History + Vis fuld historik - Filter Tracking Cookies - + Clear History + Ryd historik - Confirm when closing multiple tabs or windows + Clear History... - Quit the application when last tab is closed + Do you want to clear the history? + + + HistoryModel - Opening links - + Title + Titel - Links that want to open in a new window: - + Address + Adresse + + + HistoryTreeModel - In a new selected tab in the current window - + Earlier Today + Tidligere i dag - - In a new tab in the current window - + + %n item(s) + + + + + + + JavaScriptEndorphinObject - In the current tab + Welcome to Endorphin! - Use proxy server + Endorphin Start - Http (Secure) + Search! - Http (Transparent) + Search the web with - Host name: + Search results provided by - Enable network cache + About Endorphin + + + LanguageManager - Maximum Size: + Choose language - MB + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - Enable Images - Aktivér billeder - - - Cookies - Cookies - - - Accept Cookies: - Acceptér cookies: - - - Always - Altid - - - Never - Aldrig - - - Only from sites you navigate to - Kun fra sider du aktivt besøger - - - Exceptions... - Undtagelser... - - - Keep until: - Behold indtil: - - - They expire - De udløber - - - I exit the application - Jeg afslutter programmet - - - At most 90 days - Højst 90 dage - - - Cookies... - Cookies... - - - Tabs - Faneblade - - - Select tabs and windows as they are created - Vælg faneblade og vinduer når de oprettes - - - Confirm when closing multiple tabs - Bekræft ved afslutning af flere faneblade - - - Show only one close button instead of one for each tab + No translation files are installed at %1. + + + OpenSearchDialog - Proxy - Proxy - - - Enable proxy - Aktivér proxy - - - Type: - Type: - - - Socks5 - Socks5 - - - Http - Http - - - Host: - Vært: - - - Port: - Port: - - - User Name: - Brugernavn: - - - Password: - Kodeord: - - - Advanced - Avanceret - - - Style Sheet: - Stilark: - - - On startup: - + Open File + Åbn fil - Preferences + OpenSearch - Show my home page + Error - Show a blank page + %1 is not a valid OpenSearch 1.1 description or is already on your list. - Restore windows and tabs from last time + You must have at least one search engine in here. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid + <strong>Description:</strong> %1 - Choose Directory... + <strong>Provides contextual suggestions</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Navn - 1 day + Keywords + + + OpenSearchManager - 2 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 3 days - + Allow + Tillad - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + Ikke fundet + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + Filen er ikke af typen XBEL version 1.0. - User names and passwords - + Unknown title + Ukendt titel - Edit... + The file is not an OpenSearch 1.1 file. - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Søg SettingsDialog - - Restart required - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - - Choose Directory @@ -2107,10 +956,6 @@ Vil du ignorere disse fejl? &Find &Find - - &View - &Vis - Source of Page %1 @@ -2126,10 +971,6 @@ Vil du ignorere disse fejl? Hide Tab Bar Skjul fanebladslinje - - New &Tab - Nyt &faneblad - Duplicate Tab Duplikér faneblad @@ -2173,10 +1014,6 @@ Vil du ignorere disse fejl? Loading... Indlæser... - - Loading %1% (%2 %3)... - - Finished loading @@ -2210,36 +1047,16 @@ Vil du ignorere disse fejl? - (Untitled) - (Uden titel) - - - Do you really want to close this page? - Vil du virkelig lukke denne side? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Du har ændret i denne side og ved at lukke den, vil du miste ændringerne -Er du sikker på du vil lukke siden? - + Loading ... + ToolbarSearch - - Google - Google - Suggestions - - Add '%1' - - No Recent Searches Ingen nylige søgninger @@ -2272,37 +1089,6 @@ Er du sikker på du vil lukke siden? - - WebPage - - Error loading page: %1 - Fejl ved indlæsning af side: %1 - - - When connecting to: %1. - - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - - - - If the address is correct, try checking the network connection. - - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2353,38 +1139,6 @@ Er du sikker på du vil lukke siden? Loading... Indlæser... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/de_DE.ts b/src/locale/de_DE.ts index 82ac30dc..8cf7d5f5 100644 --- a/src/locale/de_DE.ts +++ b/src/locale/de_DE.ts @@ -1,23 +1,8 @@ - - - - Error - Fehler - - - Arora is already running. Exiting. - Arora läuft bereits. - - AboutDialog - - About - Über - About %1 Über %1 @@ -30,146 +15,6 @@ License Lizenz - - Lightweight WebKit-based web browser - schlanker WebKit-basierter Webbrowser - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Schließen - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - WebKit Version: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Sprachen - - - Languages: in order of preference: - Sprachen: bevorzugte Reihenfolge: - - - Move &Up - Nach &Oben - - - Move &Down - Nach &Unten - - - &Remove - &Entfernen - - - Add... - Hinzufügen... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Blockiert durch AdBlockRegel: %1 - - - - AdBlockDialog - - Add Custom Rule - Benutzerdefinierte Regel hinzufügen - - - Learn more about writing rules... - Weitere Informationen zum Schreiben von Regeln... - - - Update Subscription - Abonnement aktualisieren - - - Browse Subscriptions... - Abonnements anzeigen... - - - Remove Subscription - Abonnement entfernen - - - AdBlock Configuration - AdBlock Konfiguration - - - Enable AdBlock - AdBlock aktivieren - - - Action - Aktion - - - - AdBlockManager - - Custom Rules - Benutzerdefinierte Regeln - - - - AdBlockModel - - Rule - Regel - - - - AdBlockSchemeAccessHandler - - Subscribe? - Abonnieren? - - - Subscribe to this AdBlock subscription? -%1 - Wollen sie dieses AdBlock Abonnement hinzufügen? -%1 - AddBookmarkDialog @@ -177,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Lesezeichen hinzufügen - - Type a name for the bookmark, and choose where to keep it. - Geben Sie einen Namen und Speicherort für das Lesezeichen an. - Url Url @@ -194,51 +35,6 @@ p, li { white-space: pre-wrap; } Ordner hinzufügen - - AutoFillDialog - - Form Passwords - Formular Passwörter - - - Remove - Löschen - - - Remove All - Alle löschen - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Möchten Sie dieses Passwort speichern?</b><br> Um die gespeicherte Passwörter anzuzeigen oder zu löschen, nutzen Sie das Autovervollständigungs-Tab im Einstellungsmenü. - - - Never for this site - Nie für diese Seite - - - Not now - Nicht jetzt - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - <b>Möchten Sie dieses Passwort speichern?</b><br> Um die gespeicherte Passwörter anzuzeigen oder zu löschen, nutzen Sie das Autovervollständigungs-Tab im Einstellungsmenü. - - - - AutoFillModel - - WebSite - Webseite - - - User Name - Benutzername - - BookmarksDialog @@ -253,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Neuer Ordner - - Bookmarks - Lesezeichen - - - &Remove - &Entfernen - - - Add Folder - Ordner hinzufügen - Open in New Tab In einem neuen Tab öffnen @@ -306,23 +90,10 @@ p, li { white-space: pre-wrap; } Open File Datei öffnen - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Importiert %1 - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Fehler beim Laden der html Lesezeichen: %1 - Save File Datei speichern @@ -347,14 +118,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Lesezeichen einfügen - - Name Change - Namensänderung - - - Address Change - Adressänderung - Name Change Undo bookmark title change @@ -377,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required htmlToXbel wird benötigt - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - htmlToXBel - welches mit Arora vertrieben wird und nötig ist um HTML Lesezeichen zu importieren - ist nicht installiert oder nicht im Suchpfad verfügbar. - Loading Bookmark Lade Lesezeichen @@ -391,6 +150,10 @@ p, li { white-space: pre-wrap; } Fehler beim Laden der HTML Lesezeichen: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + htmlToXBel, ein Tool, das mit Endorphin ausgeliefert wird und benötigt wir, um HTML-Lesezeichen zu importieren, fehlt oder ist nicht im Suchpfad enthalten. + BookmarksMenu @@ -412,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Lesezeichen - Open Öffnen @@ -436,10 +195,6 @@ p, li { white-space: pre-wrap; } Add Folder... Ordner hinzufügen... - - Bookmarks - Lesezeichen - BrowserApplication @@ -454,20 +209,8 @@ Arora wirklich beenden? Wiederherstellung fehlgeschlagen - The saved session will not being restored because last time it was restored Arora crashed. - Die gespeicherte Sitzung wird nicht wiederhergestellt weil bei der letzten Wiederherstellung Arora abgestürzt ist. - - - (Change: %1 %2) - (Änderung: %1 %2) - - - The saved session will not be restored because Arora crashed while trying to restore this session. - Die gespeicherte Sitzung wird nicht wiederhergestellt, weil bei der letzten Wiederherstellung Arora abgestürzt ist. - - - Arora crashed while trying to restore this session. Should I try again? - Arora ist bei dem Versuch die Sitzung wiederherzustellen abgestürzt. Soll erneut versucht werden, die Sitzung wiederherzustellen? + Endorphin crashed while trying to restore this session. Should I try again? + Endorphin ist abgestöürzt, während die Sitzung wiederhergestellt wurde. Soll ich es nochmal versuchen? @@ -500,14 +243,6 @@ Arora wirklich beenden? &Export Bookmarks... Lesezeichen &exportieren... - - P&rint Preview... - Druck&vorschau... - - - &Print... - &Drucken... - Private &Browsing... &Private Browsing... @@ -559,18 +294,6 @@ Arora wirklich beenden? Not sure if the Key is the same in german Strg+Y - - &Find Next - Nächstes &Ergebnis - - - &Find Previous - Vorheriges &Ergebnis - - - &Preferences - &Einstellungen - Ctrl+, Strg+, @@ -579,10 +302,6 @@ Arora wirklich beenden? &View &Ansicht - - Shift+Ctrl+B - Shift+Strg+B - Ctrl+| Strg+| @@ -595,22 +314,6 @@ Arora wirklich beenden? &Stop &Stop - - Reload Page - Seite aktualisieren - - - &Make Text Bigger - &Text vergrößern - - - &Make Text Normal - Normale &Textgröße - - - &Make Text Smaller - &Text verkleinern - Page S&ource &Quelltext @@ -647,10 +350,6 @@ Arora wirklich beenden? &Bookmarks &Lesezeichen - - Manage Bookmarks... - Lesezeichen verwalten... - Add Bookmark... Lesezeichen hinzufügen... @@ -676,14 +375,6 @@ Arora wirklich beenden? Web Search Strg+K - - Show &Network Monitor - &Netzwerk Monitor anzeigen - - - Enable Web &Inspector - Web-&Inspector aktivieren - &Help &Hilfe @@ -692,10 +383,6 @@ Arora wirklich beenden? About &Qt Über &Qt - - About &Arora - Über &Arora - Navigation Navigation @@ -716,23 +403,6 @@ Arora wirklich beenden? Hide Toolbar Werkzeugleiste verbergen - - Show Bookmarks bar - Lesezeichenleiste zeigen - - - Hide Bookmarks bar - Lesezeichenleiste verbergen - - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Webinhalte öffnen @@ -741,36 +411,14 @@ Arora wirklich beenden? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Webinhalte (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) - - Print Document - Dokument drucken - Are you sure you want to turn on private browsing? Private Browsing wirklich aktivieren? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Wenn Private Browsing aktiviert ist, werden einige Funktionen deaktiviert die Ihre Privatsphäre betreffen:<ul><li> Aufgerufene Webseiten erscheinen nicht im Verlauf.</li><li> Einträge im Downloadfenster werden automatisch entfernt.</li><li> Neue Cookies werden nicht gespeichert, auf bestehende Cookies gibt es keinen Zugriff.</li><li> Seitensymbole und Sitzungen werden nicht gespeichert.</li><li> Suchen erscheinen nicht im Suchverlauf.</li></ul>Die Zurück- und Vorwärtsbuttons funktionieren noch auf offenen Webseiten bis das Fenster geschlossen wird. - Are you sure you want to close the window? There are %1 tabs open Soll das Fenster wirklich geschlossen werden? Es sind %1 Tabs geöffnet - - Page Source of %1 - Quelltext von %1 - - - Web Inspector - Web Inspector - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Der Web Inspector funktioniert nur auf neu geladenen Seiten. -Sollen alle Seiten neu geladen werden? - Stop loading the current page Ladevorgang abbrechen @@ -783,15 +431,6 @@ Sollen alle Seiten neu geladen werden? Downloads Downloads - - Alt+Ctrl+L - Download Manager - Alt+Strg+L - - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttonsto return to the webpages you have opened. - <b>%1</b><br><br>Wenn Private Browsing aktiviert ist, werden einige Funktionen deaktiviert die Ihre Privatsphäre betreffen:<ul><li> Aufgerufene Webseiten erscheinen nicht im Verlauf.</li><li> Einträge im Downloadfenster werden automatisch entfernt.</li><li> Neue Cookies werden nicht gespeichert, auf bestehende Cookies gibt es keinen Zugriff.</li><li> Seitensymbole und Sitzungen werden nicht gespeichert.</li><li> Suchen erscheinen nicht im Suchverlauf.</li></ul>Die Zurück- und Vorwärtsbuttons funktionieren noch auf offenen Webseiten bis das Fenster geschlossen wird. - &Clear Private Data Private Daten &löschen @@ -801,38 +440,14 @@ Sollen alle Seiten neu geladen werden? Clear Private Data Ctrl+Shift+Delete - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Wenn Private Browsing aktiviert ist, werden einige Funktionen deaktiviert die Ihre Privatsphäre betreffen:<ul><li> Aufgerufene Webseiten erscheinen nicht im Verlauf.</li><li> Einträge im Downloadfenster werden automatisch entfernt.</li><li> Neue Cookies werden nicht gespeichert, auf bestehende Cookies gibt es keinen Zugriff.</li><li> Seitensymbole und Sitzungen werden nicht gespeichert.</li><li> Suchen erscheinen nicht im Suchverlauf.</li></ul>Die Zurück- und Vorwärtsbuttons funktionieren noch auf offenen Webseiten bis das Fenster geschlossen wird. - - - Find &Next - Nächstes &Ergebnis - Find P&revious &Vorheriges Ergebnis - - Prefe&rences - &Einstellungen - &Reload Page Seite &aktualisieren - - Make Text &Bigger - Text ver&größern - - - Make Text &Normal - &Normale Textgröße - - - Make Text &Smaller - Text ver&kleinern - Show Bookmarks Bar Lesezeichenleiste zeigen @@ -845,10 +460,6 @@ Sollen alle Seiten neu geladen werden? Find Nex&t &Nächstes Ergebnis - - Prefere&nces... - Einstellun&gen... - Show Menu Bar Menüleiste zeigen @@ -901,10 +512,6 @@ Sollen alle Seiten neu geladen werden? Configure Search Engines... Suchmaschinen verwalten... - - &Ad Block... - &AdBlock... - When private browsing is turned on, some actions concerning your privacy will be disabled: Sobald privates Surfen aktiviert ist, sind einige Aktionen die ihre Privatsphäre betreffen deaktiviert: @@ -917,10 +524,6 @@ Sollen alle Seiten neu geladen werden? Items are automatically removed from the Downloads window. Objekte werden automatisch aus dem Download Fenster entfernt. - - New cookies are not stored, current cookies can't be accessed. - Neue Cookies werden nicht gespeichert, auf aktuelle Cookies kann nicht zugegriffen werden. - Site icons won't be stored. Website Symbole werden nicht gespeichert. @@ -961,6 +564,11 @@ Sollen alle Seiten neu geladen werden? Reload Neu laden + + %1 - Endorphin + Page title and Browser name + %1 - Endorphin + ClearButton @@ -991,14 +599,6 @@ Sollen alle Seiten neu geladen werden? &Search History &Suchverlauf - - &Cookies - &Cookies - - - C&ache - C&ache - Website &Icons &Webseiten-Symbole @@ -1011,1274 +611,327 @@ Sollen alle Seiten neu geladen werden? &Cancel &Abbrechen - - C&ached Web Pages - &Zwischengespeicherte Webseiten - - ClickToFlash - - Load - Laden - - - Load All - Alle Laden - + DownloadDialog - Add %1 to Whitelist - %1 zur Whitelist hinzufügen + Downloads + Downloads - Remove from Whitelist - Von der Whitelist entfernen + Downloading %1 + %1 wird heruntergeladen + + + DownloadItem - Settings - Einstellungen + Save File + Datei speichern - Load Flash - Flash laden + Download canceled: %1 + Download abgebrochen: %1 - - - ClickToFlashSettings - Whitelist sites - Webseiten auf der Whitelist + %1 of %2 (%3/sec) - %4 + %1 von %2 (%3/Sek) - %4 - - - CookieExceptionsModel - Website - Website + Error saving: %1 + Fehler beim Speichern: %1 - Status - Status + Network Error: %1 + Netzwerk-Fehler: %1 - Allow - Erlauben + ? + ? - Block - Blocken + Error opening output file: %1 + Fehler beim Öffnen der Ausgabedatei: %1 - Allow For Session - Für diese Sitzung erlauben + Download directory (%1) couldn't be created. + Download Verzeichnis (%1) konnte nicht erstellt werden. - Rule - Regel + %1 of %2 - Download Complete + %1 von %2 - Downloads abgeschlossen - CookieModel + DownloadManager - Website - Website + There are %1 downloads in progress +Do you want to quit anyway? + Es sind noch %1 Download(s) aktiv. +Trotzdem beenden? - - Name - Name - - - Path - Pfad - - - Secure - Sicher - - - Expires - Läuft ab am - - - Contents - Inhalte - - - true - wahr - - - false - falsch - - - Session cookie - Sitzungs-Cookie - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Entfernen - - - Remove &All Cookies - &Alle Cookies entfernen - - - Add &Rule - Regel &hinzufügen - - - - CookiesExceptionsDialog - - Cookie Exceptions - Cookie Ausnahmen - - - New Exception - Neue Ausnahme - - - Domain: - Domain: - - - Block - Blocken - - - Allow For Session - Für diese Sitzung erlauben - - - Allow - Erlauben - - - Exceptions - Ausnahmen - - - &Remove - &Entfernen - - - Remove &All - &Alle entfernen - - - - Dialog - - Bookmark - Lesezeichen - - - - DownloadDialog - - Downloads - Downloads - - - Clean up - Leeren - - - 0 Items - 0 Einträge - - - &OK - &OK - - - Downloading %1 - %1 wird heruntergeladen - - - - DownloadItem - - Save File - Datei speichern - - - Download canceled: %1 - Download abgebrochen: %1 - - - %1 of %2 (%3/sec) - %4 - %1 von %2 (%3/Sek) - %4 - - - Error opening save file: %1 - Fehler beim öffnen der gespeicherten Datei: %1 - - - Error saving: %1 - Fehler beim Speichern: %1 - - - Network Error: %1 - Netzwerk-Fehler: %1 - - - seconds - Sekunden - - - minutes - Minuten - - - - %4 %5 remaining - - noch %4 %5 - - - %1 of %2 (%3/sec) %4 - %1 von %2 (%3/Sek) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 von %2 - Angehalten - - - bytes - bytes - - - kB - kB - - - MB - MB - - - Form - Form - - - Ico - Ico - - - Filename - Dateiname - - - Try Again - Erneut versuchen - - - Stop - Stop - - - Open - Öffnen - - - - %n minutes remaining - - - noch %n Minute(n) - - - - - - %n seconds remaining - - - noch %n Sekunden - - - - - Error opening output file: %1 - Fehler beim Öffnen der Ausgabedatei: %1 - - - Download directory (%1) couldn't be created. - Download Verzeichnis (%1) konnte nicht erstellt werden. - - - %1 of %2 - Download Complete - %1 von %2 - Downloads abgeschlossen - - - - DownloadManager - - There are %1 downloads in progress -Do you want to quit anyway? - Es sind noch %1 Download(s) aktiv. -Trotzdem beenden? - - - %n minutes remaining - - noch %n Minute verbleibend - noch %n Minuten verbleibend - - - - %n seconds remaining - - noch %n sekunde verbleibend - noch %n sekunden verbleibend - - - - bytes - bytes - - - kB - kB - - - MB - MB - - - 1 Download - 1 Download - - - %1 Downloads - %1 Downloads - - - %n Download(s) - - %n Download - %n Downloads - - - - GB - GB - - - - FileAccessReply - - No Error - Kein Fehler - - - Error opening: %1: No such file or directory - Fehler beim Öffnen von %1: Datei oder Verzeichnis nicht gefunden - - - Unable to read %1 - Kann %1 nicht lesen - - - Contents of %1 - Inhalt von %1 - - - %1 KB - %1 KB - - - Show Hidden Files - Versteckte Dateien anzeigen - - - - HistoryDialog - - Open - Öffnen - - - Copy - Kopieren - - - Delete - Löschen - - - History - Verlauf - - - &Remove - &Entfernen - - - Remove &All - &Alle entfernen - - - - HistoryMenu - - Show All History - Kompletten Verlauf zeigen - - - Clear History - Verlauf leeren - - - Clear History... - Verlauf leeren... - - - Do you want to clear the history? - Soll der Verlauf geleert werden? - - - - HistoryModel - - Title - Titel - - - Address - Adresse - - - - HistoryTreeModel - - Earlier Today - Heute - - - %1 items - %1 Einträge - - - %n item(s) - - %n Einträg - %n Einträge - - - - - JavaScriptAroraObject - - Welcome to Arora! - Willkommen bei Arora! - - - Arora Start - Arora Start - - - Search! - Suche! - - - Search the web - Das Web durchsuchen mit - - - Search results provided by - Suchergebnisse werden zur Verfügung gestellt von - - - About Arora - Über Arora - - - Search the web with - - - - - LanguageManager - - System locale (%1) %2 - System-Vorgabe (%1) %2 - - - Default - Standard - - - No translation files are installed. - Keine Sprachdateien installiert. - - - Choose language - Sprache wählen - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Sie können eine andere Sprache wählen,<br>als im Betriebssystem voreingestellt.</p><p>Bitte wählen Sie die Sprache,<br> die verwendet werden soll - - - No translation files are installed at %1. - In %1 befinden sich keine Übersetzungsdateien. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Benutzernamen und Password eingeben für "%1" bei "%2"</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Mit Proxy "%1" verbinden mit:</qt> - - - - SSL Errors - - SSL Fehler - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL-Fehler:<br/><br/>für:<tt>%1</tt><ul><li>%2</li></ul> - -Möchten Sie diese Fehler ignorieren?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certificates:<br/>%1<br/>Möchten Sie all diese Zertifikate akzeptieren?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Zertifikate:<br/>%1<br/>Alle Zertifikate akzeptieren?</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - SSL-Fehler: - -%1 - -%2 - -Möchten Sie diese Fehler ignorieren? - - - Do you want to accept all these certificates? - Alle Zertifikate akzeptieren? - - - Issuer: %1 - Herausgeber: %1 - - - Not valid before: %1 - Nicht gültig vor: %1 - - - Valid until: %1 - Gültig bis: %1 - - - Alternate Names: - Alternative Namen: - - - - NetworkMonitor - - Name - Name - - - Value - Wert - - - - NetworkMonitorDialog - - Network Monitor - Netzwerk Monitor - - - Network Requests - Netzwerkanfragen - - - Request Headers - Anfrage Header - - - Response Headers - Antwort Header - - - &Remove - &Entfernen - - - Remove &All Requests - &Alle Entfernen - - - - OpenSearchDialog - - Open File - Datei öffnen - - - OpenSearch - OpenSearch - - - Error - Fehler - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 ist keine gültige OpenSearch 1.1 Beschreibung oder schon in Ihrer Liste. - - - You must have at least one search engine in here. - Mindestens eine Suchmaschiene muss hier eingetragen sein. - - - OpenSearch Manager - OpenSearch Verwaltung - - - &Restore Defaults - Auf Standard zu&rücksetzen - - - &Delete - &Löschen - - - &Add - &Hinzufügen - - - &Close - &Schließen - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Beschreibung:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Stellt Kontextvorschläge bereit</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - Mit Kommas getrennte Liste von Schlüsselwörtern die In der Adressleiste von Suchbegriffen gefolgt eingegeben werden können um mit dieser Suchmaschine zu suchen - - - Name - Name - - - Keywords - Schlüsselwörter - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Möchten Sie die folgende Suchmaschiene zu Ihrer Liste hinzufügen?<br /><br />Name: %1<br />Sucht mit: %2 - - - - PasswordDialog - - Authentication Required - Authentifikation erforderlich - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Benutzername: - - - Password: - Passwort: - - - - PlainTextEditSearch - - Not Found - Nicht gefunden - - - - ProxyDialog - - Proxy Authentication - Proxy Authentifikation - - - ICON - ICON - - - Connect to proxy - Zum Proxy verbinden - - - Username: - Benutzername: - - - Password: - Passwort: - - - - QObject - - The file is not an XBEL version 1.0 file. - Die Datei ist keine XBEL Version 1.0 Datei. - - - Unknown title - Unbekannter Titel - - - The file is not an OpenSearch 1.1 file. - Diese Datei ist keine OpenSearch 1.1 Datei. - - - - RequestModel - - Redirect: %1 - Umleitung: %1 - - - Method - Methode - - - Address - Adresse - - - Response - Antwort - - - Length - Länge - - - Content Type - Format - - - Info - Information - - - - SearchBanner - - Form - Form - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - Fertig - - - Highlight All - Alle hervorheben - - - - SearchLineEdit - - Search - Suche - - - - Settings - - Settings - Einstellungen - - - General - Allgemein - - - Home: - Startseite: - - - Set to current page - Aktuelle Seite - - - Remove history items: - Verlauf Einträge löschen: - - - After one day - Nach einem Tag - - - After one week - Nach einer Woche - - - After two weeks - Nach zwei Wochen - - - After one month - Nach einem Monat - - - After one year - Nach einem Jahr - - - Manually - Manuell - - - Save downloads to: - Downloads speichern nach: - - - Open links from applications: - Links von Programmen öffnen in: - - - In a tab in the current window - einem Tab im aktuellen Fenster - - - In a new window - einem neuen Fenster - - - Appearance - Aussehen - - - Fixed-width font: - Schrift fester Breite: - - - Preferred languages for viewing webpages in: - Sprachen: bevorzugte Reihenfolge für Webseiten: - - - Privacy - Privatsphäre - - - Web Content - Webinhalt - - - Block Popup Windows - Popup Fenster blockieren - - - Enable Plugins - Plugins aktivieren - - - Use ClickToFlash on flash plugins - KlickToFlash benutzen - - - Enable Javascript - Javascript aktivieren - - - Cookies - Cookies - - - Accept Cookies: - Cookies akzeptieren: - - - Always - Immer - - - Never - Nie - - - Only from sites you navigate to - Nur von besuchten Seiten - - - Exceptions... - Ausnahmen... - - - Keep until: - Speichern bis: - - - They expire - die Cookies ablaufen - - - I exit the application - das Programm beende - - - At most 90 days - maximal 90 Tage - - - Cookies... - Cookies... - - - Proxy - Proxy - - - Enable proxy - Proxy aktivieren - - - Type: - Typ: - - - Socks5 - Socks5 - - - Http - Http - - - Host: - Host: - - - Port: - Port: - - - User Name: - Benutzername: - - - Password: - Passwort: - - - Advanced - Erweitert - - - Style Sheet: - Style Sheet: - - - Size: - Größe: - - - Default font: - Standardschrift: - - - Sans serif - Sans serif - - - Serif - Serif - - - Downloads - Downloads - - - Ask for a destination each time - Jedes Mal nach Ziel fragen - - - Use this destination: - Hier speichern: - - - Standard font: - Standard-Schriftart: - - - Times 16 - Times 16 + + %n minutes remaining + + noch %n Minute verbleibend + noch %n Minuten verbleibend + - - Select... - Auswahl... + + %n seconds remaining + + noch %n sekunde verbleibend + noch %n sekunden verbleibend + - Courier 13 - Courier 13 + bytes + bytes - Tabs - Tabs + kB + kB - Select tabs and windows as they are created - Neue erzeugte Tabs und Fenster selektieren + MB + MB - - Confirm when closing multiple tabs - Nachfragen, wenn mehrere Tabs geschlossen werden + + %n Download(s) + + %n Download + %n Downloads + - Enable Images - Bilder anzeigen + GB + GB + + + HistoryDialog - On startup: - Beim Starten: + Open + Öffnen - Show my home page - Meine Homepage zeigen + Copy + Kopieren - Show a blank page - Eine leere Seite zeigen + Delete + Löschen + + + HistoryMenu - Restore windows and tabs from last time - Letzte Sitzung wiederherstellen + Show All History + Kompletten Verlauf zeigen - On application exit - Beim Beenden + Clear History + Verlauf leeren - Preferences - Einstellungen + Clear History... + Verlauf leeren... - Home Page: - Startseite: + Do you want to clear the history? + Soll der Verlauf geleert werden? + + + HistoryModel - View Images - Bilder anzeigen + Title + Titel - Keep Cookies Until: - Cookies speichern bis: + Address + Adresse + + + HistoryTreeModel - Filter Tracking Cookies - Seitenfremde Cookies verbieten + Earlier Today + Heute - - Confirm when closing multiple tabs or windows - Das Schließen mehrerer Tabs oder Fenster bestätigen + + %n item(s) + + %n Einträg + %n Einträge + + + + JavaScriptEndorphinObject - Show only one close button instead of one for each tab - Nur einen Schließen Button anzeigen, statt einen für jeden Tab + Welcome to Endorphin! + Willkommen bei Endorphin! - Quit the application when last tab is closed - Anwendung beenden wenn letztes Tab geschlossen wurde + Endorphin Start + Endorphin-Startseite - Opening links - Öffnen von LInks + Search! + Suchen! - Links that want to open in a new window: - Links die in einem neuen Fenster geöffnet werden sollen: + Search the web with + Das Web durchsuchen mit - In a new selected tab in the current window - In einem neuen aktiven Tab im aktuellen Fenster + Search results provided by + Suchergebnisse angeboten von - In a new tab in the current window - In einem neuen Tab im aktiven Fenster + About Endorphin + Über Endorphin + + + LanguageManager - In the current tab - Im aktuellen Tab + Choose language + Sprache wählen - Use proxy server - Proxyserver verwenden + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Sie können eine andere Sprache wählen,<br>als im Betriebssystem voreingestellt.</p><p>Bitte wählen Sie die Sprache,<br> die verwendet werden soll - Http (Secure) - Http (Sicher) + No translation files are installed at %1. + In %1 befinden sich keine Übersetzungsdateien. + + + OpenSearchDialog - Http (Transparent) - Http (Unsicher) + Open File + Datei öffnen - Host name: - Hostname: + OpenSearch + OpenSearch - Enable network cache - Netzwerk-Cache aktivieren + Error + Fehler - Maximum Size: - Maximale Größe: + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 ist keine gültige OpenSearch 1.1 Beschreibung oder schon in Ihrer Liste. - MB - MB + You must have at least one search engine in here. + Mindestens eine Suchmaschiene muss hier eingetragen sein. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid - Standardsuchmaschine benutzen falls die vom Nutzer angegebene URL ungültig ist + <strong>Description:</strong> %1 + <strong>Beschreibung:</strong> %1 - Choose Directory... - Verzeichnis auswählen... + <strong>Provides contextual suggestions</strong> + <strong>Stellt Kontextvorschläge bereit</strong> - A cookie session ends: - Gültigkeit einer Cookie Sitzung: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + Mit Kommas getrennte Liste von Schlüsselwörtern die In der Adressleiste von Suchbegriffen gefolgt eingegeben werden können um mit dieser Suchmaschine zu suchen - When I exit the application - Bis zum schließen des Browsers + Name + Name - 1 day - 1 Tag + Keywords + Schlüsselwörter + + + OpenSearchManager - 2 days - 2 Tage + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Möchten Sie die folgende Suchmaschiene zu Ihrer Liste hinzufügen?<br /><br />Name: %1<br />Sucht mit: %2 + + + PermissionBar - 3 days - 3 Tage + Allow + Erlauben - 7 days - 7 Tage + Deny + Ablehnen - 30 days - 30 Tage + %1 wants to %2. + %1 möchte %2. + + + PlainTextEditSearch - AutoFill - Autovervollständigung + Not Found + Nicht gefunden + + + QObject - AutoFill web forms: - Autovervollständigungs Formulare: + The file is not an XBEL version 1.0 file. + Die Datei ist keine XBEL Version 1.0 Datei. - User names and passwords - Benutzernamen und Passwörter + Unknown title + Unbekannter Titel - Edit... - Editieren... + The file is not an OpenSearch 1.1 file. + Diese Datei ist keine OpenSearch 1.1 Datei. - Browse... - Anzeigen... + use desktop notifications + Desktopbenachrichtigungen anzeigen - Enable access keys - Zugriffstasten aktivieren + use your position + Deinen Standort verwenden - Use this external download program: - Dieses externe Downloadprogramm verwenden: + use your microphone + Dein Mikrofon verwenden - Choose Program... - Programm wählen... + use your camera + Deine Kamera verwenden - Minimum Font size: - Mindest-Schriftgröße: + use your camera and microphone + Deine Kamera und dein Mikrofon verwenden - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. - Wenn diese Option aktiviert ist, werden Flash-Objekte standardmäßig nicht geladen. Statdessen wird jedes durch einen Knopf ersetzt, der es erlaubt, zu kontrollieren, welche Objekte geladen werden und welche nicht. + lock your mouse + Deine Maus sperren + + + SearchLineEdit - Persistent Data Storage - Persistent Data Storage + Search + Suche SettingsDialog - - Restart required - Neustart nötig - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Die Netzwerk-Cache Konfiguration wurde geändert. Damit diese Änderung Effekt hat, muss der Browser neu gestartet werden. - Choose Directory Verzeichnis auswählen @@ -2306,36 +959,13 @@ Möchten Sie diese Fehler ignorieren? &Find &Suchen - - &View - &Ansicht - - - &Wrap lines - Zeilen &Umbrechen - - - Source of Page - Quelltext der Seite - Source of Page %1 Quelltext der Seite %1 - - SuggestionsTestNetworkReply - - No Error - Kein Fehler - - TabBar - - New &Tab - Neuer &Tab - Duplicate Tab Tab duplizieren @@ -2356,10 +986,6 @@ Möchten Sie diese Fehler ignorieren? Reload All Tabs Alle Tabs neu laden - - Shift+Ctrl+T - Shift+Ctrl+T - Show Tab Bar Tableiste zeigen @@ -2391,10 +1017,6 @@ Möchten Sie diese Fehler ignorieren? Loading... Laden... - - Loading %1% (%2 %3)... - Laden %1% (%2 %3)... - Finished loading Laden abgeschlossen @@ -2425,41 +1047,21 @@ Möchten Sie diese Fehler ignorieren? Bookmark All Tabs Alle Tabs als Lezeichen hinzufügen - - (Untitled) - (Unbetitelt) - - - Do you really want to close this page? - Diese Seite wirklich schließen? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Die Seite wurde modifiziert. Wenn die Seite geschlossen wird gehen die Änderungen verloren. -Diese Seite wirklich schließen? - - Untitled Namenlos + + Loading ... + Laden... + ToolbarSearch - - Google - Google - Suggestions Vorschläge - - Add '%1' - '%1' hinzufügen - No Recent Searches Keine vorherigen Suchvorgänge @@ -2492,41 +1094,6 @@ Diese Seite wirklich schließen? User-Agent: - - WebPage - - Error loading page: %1 - Fehler beim Laden von: %1 - - - When connecting to: %1. - Beim Verbinden zu: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Überprüfen Sie die Adresse auf Fehler wie <b>ww</b>.arora-browser.org statt <b>www</b>.arora-browser.org - - - If the address is correct, try to check the network connection. - Falls die Adresse stimmt, versuchen Sie, die Netzwerkverbindung zu überprüfen. - - - If the address is correct, try checking the network connection. - Falls die Adresse stimmt, versuchen Sie, die Netzwerkverbindung zu überprüfen. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Wenn Ihr Computer oder Ihr Netzwerk durch eine Firewall oder einen Proxy geschützt ist, stellen Sie sicher, dass der Browser auf das Netzwerk zugreifen darf. - - - Resending POST request - Erneutes Senden einer POST Anfrage - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Um diese Seite anzeigen können, muss die Anfrage mit allen Daten erneut gesendet werden, was zu unerwartetem Verhalten der Seite führen kann, so könnte z.B. die selbe Aktion erneut ausgeführt werden. Möchten Sie trotzdem fortfahren? - - WebView @@ -2577,38 +1144,6 @@ Diese Seite wirklich schließen? Loading... Laden... - - Add to the toolbar search - Zur Suchleiste hinzufügen - - - Method not supported - Methode nicht unterstützt - - - %1 method is not supported. - %1 Methode wird nicht unterstützt. - - - Search engine - Suchmaschiene - - - Choose the desired search engine - Wählen Sie die gewünschte Suchmaschiene - - - Engine name - Name - - - Type in a name for the engine - Geben Sie einen Namen für die Suchmaschiene ein - - - Block Image - Bild unterdrücken - WebViewSearch diff --git a/src/locale/el_GR.ts b/src/locale/el_GR.ts index e7616880..12f04ebc 100644 --- a/src/locale/el_GR.ts +++ b/src/locale/el_GR.ts @@ -3,10 +3,6 @@ AboutDialog - - About - Σχετικά με το - About %1 @@ -19,133 +15,6 @@ License Άδεια - - Lightweight WebKit-based web browser - Ένας ελαφρύς περιηγητής ιστοσελίδων βασισμένος στο WebKit - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Κλείσιμο - - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Γλώσσες - - - Languages: in order of preference: - Γλώσσες: κατά σειρά προτίμησης: - - - Move &Up - Μετακίνηση &Πάνω - - - Move &Down - Μετακίνηση &Κάτω - - - &Remove - &Αφαίρεση - - - Add... - Προσθήκη... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - Κανόνας - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -153,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Προσθήκη σελιδοδείκτη - - Type a name for the bookmark, and choose where to keep it. - Δώστε ένα όνομα και επιλέξτε θέση. - Url Url @@ -170,47 +35,6 @@ p, li { white-space: pre-wrap; } Προσθήκη Φακέλου - - AutoFillDialog - - Form Passwords - - - - Remove - Αφαίρεση - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -237,18 +61,6 @@ p, li { white-space: pre-wrap; } New Folder Νέος Φάκελος - - Bookmarks - Σελιδοδείκτες - - - &Remove - &Αφαίρεση - - - Add Folder - Προσθήκη Φακέλου - BookmarksManager @@ -278,10 +90,6 @@ p, li { white-space: pre-wrap; } Open File Άνοιγμα Αρχείου - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Εισήχθησαν %1 @@ -310,24 +118,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Εισαγωγή Σελιδοδείκτη - - Name Change - Αλλαγή Ονόματος - - - Address Change - Αλλαγή Διεύθυνσης - - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Σφάλμα κατά τη φόρτωση html σελιδοδεικτών: %1 - - Name Change Undo bookmark title change @@ -350,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -363,6 +149,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -384,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Σελιδοδείκτης - Open Άνοιγμα @@ -408,17 +194,9 @@ p, li { white-space: pre-wrap; } Add Folder... Προσθήκη Φακέλου... - - Bookmarks - Σελιδοδείκτες - BrowserApplication - - (Change: %1 %2) - (Αλλαγή: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -430,11 +208,7 @@ Do you want to quit anyway? Η επαναφορά απέτυχε - The saved session will not be restored because Arora crashed while trying to restore this session. - Δεν μπορεί να γίνει επαναφορά της αποθηκευμένης συνεδρίας επειδή το Arora τερμάτισε απρόσμενα κατά τη διάρκεια της επαναφοράς. - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -468,14 +242,6 @@ Do you want to quit anyway? &Export Bookmarks... Εξαγωγή &Σελιδοδεικτών... - - P&rint Preview... - Π&ροεπισκόπηση Εκτύπωσης... - - - &Print... - Ε&κτύπωση... - Private &Browsing... Ασφαλής &Περιήγηση... @@ -520,10 +286,6 @@ Do you want to quit anyway? Find P&revious Αναζήτηση Προη&γούμενου - - Prefere&nces... - Προ&τιμήσεις... - Ctrl+, Ctrl+, @@ -540,10 +302,6 @@ Do you want to quit anyway? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -556,18 +314,6 @@ Do you want to quit anyway? &Reload Page &Επαναφόρτωση - - Make Text &Bigger - &Μεγέθυνση Γραμματοσειράς - - - Make Text &Normal - Ε&παναφορά Γραμματοσειράς - - - Make Text &Smaller - &Σμίκρυνση Γραμματοσειράς - Page S&ource &Κώδικας Σελίδας @@ -604,10 +350,6 @@ Do you want to quit anyway? &Bookmarks &Σελιδοδείκτες - - Manage Bookmarks... - Οργάνωση Σελιδοδεικτών... - Add Bookmark... Προσθήκη Σελιδοδείκτη... @@ -638,14 +380,6 @@ Do you want to quit anyway? Clear Private Data Ctrl+Shift+Delete - - Show &Network Monitor - Παρακο&λούθηση Δικτύου - - - Enable Web &Inspector - Ενε&ργοποίηση του Επόπτη Ιστοσελίδων - &Help &Βοήθεια @@ -658,10 +392,6 @@ Do you want to quit anyway? About &Qt Σχετικά με το &Qt - - About &Arora - Σχετικά με το &Arora - Navigation Πλοήγηση @@ -690,15 +420,6 @@ Do you want to quit anyway? Hide Bookmarks Bar Απόκρυψη Γραμμής Σελιδοδεικτών - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Άνοιγμα Αρχείου @@ -707,32 +428,14 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Αρχεία Web (*.html *.htm *.svg *.png *.gif *.svgz);;Όλα τα αρχεία (*.*) - - Print Document - Εκτύπωση - Are you sure you want to turn on private browsing? Είσαι βέβαιος ότι θέλεις να ενεργοποιήσεις την ασφαλή περιήγηση; - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Όταν η ασφαλής περιήγηση είναι ενεργή, μερικές λειτουργίες θα απενεργοποιηθούν:<ul><li> Οι ιστοσελίδες δεν προστίθενται στο ιστορικό.</li><li> Τα αντικείμενα που κατεβάζετε, αυτομάτως απομακρύνονται από το παράθυρο λήψης αρχείων.</li><li> Δεν αποθηκεύονται νέα cookies και τα ήδη υπάρχοντα είναι αδύνατον να προσπελαστούν.</li><li> Το εικονίδια των ιστοσελίδων δεν αποθηκεύονται, η συνεδρία δεν θα αποθηκευτεί.</li><li> Το ιστορικό των αναζητήσεων δεν αποθηκεύεται στο πλαίσιο αναζητήσεων.</li></ul>Εώς ότου να κλείσετε το παράθυρο, μπορείτε να κάνετε χρήση των κουμπιών Πίσω και Μπροστά, για να πάτε σε σελίδες που έχει ήδη ανοίξει. - Are you sure you want to close the window? There are %1 tabs open Είστε σίγουροι ότι θέλετε να κλείσετε το παράθυρο; Υπάρχουν %1 ανοιχτές καρτέλες - - Web Inspector - Επόπτης Ιστοσελίδων - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Ο επόπτης ιστοσελίδων θα δουλέψει σωστά μόνο για τις σελίδες μετά την ενεργοποίηση του. -Θέλετε να επαναφορτώσετε όλες τις σελίδες; - Stop loading the current page Διακοπή φόρτωσης αυτής της σελίδας @@ -745,11 +448,6 @@ Do you want to reload all pages? Downloads Λήψεις Αρχείων - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - Close Window Κλείσιμο Παραθύρου @@ -775,10 +473,6 @@ Do you want to reload all pages? About Browser Σχετικά με το &%1 - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Όταν η ασφαλής περιήγηση είναι ενεργή, μερικές λειτουργίες θα απενεργοποιηθούν:<ul><li> Οι ιστοσελίδες δεν προστίθενται στο ιστορικό.</li><li> Τα αντικείμενα που κατεβάζετε, αυτομάτως απομακρύνονται από το παράθυρο λήψης αρχείων.</li><li> Δεν αποθηκεύονται νέα cookies και τα ήδη υπάρχοντα είναι αδύνατον να προσπελαστούν.</li><li> Το εικονίδια των ιστοσελίδων δεν αποθηκεύονται, η συνεδρία δεν θα αποθηκευτεί.</li><li> Το ιστορικό των αναζητήσεων δεν αποθηκεύεται στο πλαίσιο αναζητήσεων.</li></ul>Εώς ότου να κλείσετε το παράθυρο, μπορείτε να κάνετε χρήση των κουμπιών Πίσω και Μπροστά, για να πάτε σε σελίδες που έχει ήδη ανοίξει. - Ctrl+Y Download Manager @@ -816,10 +510,6 @@ Do you want to reload all pages? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -832,10 +522,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -876,6 +562,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -906,14 +597,6 @@ Do you want to reload all pages? &Search History Ιστορικό &Αναζήτησης - - &Cookies - &Cookies - - - C&ached Web Pages - &Λανθάνουσα Μνήμη - Website &Icons Εικονίδια &Ιστοσελίδων @@ -928,304 +611,76 @@ Do you want to reload all pages? - ClickToFlash - - Load - - + DownloadDialog - Load All - + Downloads + Λήψεις Αρχείων - Add %1 to Whitelist + Downloading %1 + + + DownloadItem - Remove from Whitelist - + Save File + Αποθήκευση Αρχείου - Settings - + Download canceled: %1 + Η μεταφόρτωση ακυρώθηκε: %1 - Load Flash - + Error opening output file: %1 + Σφάλμα κατά το άνοιγμα του αρχείου εξόδου: %1 - - - ClickToFlashSettings - Whitelist sites - + Error saving: %1 + Σφάλμα αποθήκευσης: %1 - - - CookieExceptionsModel - Website - Ιστοσελίδα + Network Error: %1 + Σφάλμα Δικτύου: %1 - Rule - Κανόνας + ? + ; - Allow - Να επιτρέπεται + %1 of %2 (%3/sec) - %4 + %1 από %2 (%3/δευτ) - %4 - Block - Φραγή + Download directory (%1) couldn't be created. + - Allow For Session - Να επιτρέπεται μόνο για τη συνεδρία + %1 of %2 - Download Complete + - CookieModel - - Website - Ιστοσελίδα + DownloadManager + + %n Download(s) + + %n Λήψη + %n Λήψεις + - Name - Όνομα + There are %1 downloads in progress +Do you want to quit anyway? + Είναι %1 λήψεις σε εξέλιξη +Είστε σίγουροι ότι θέλετε να κλείσετε; - - Path - Διαδρομή - - - Secure - Ασφάλεια - - - Expires - Λήξη - - - Contents - Περιεχόμενα - - - true - αληθές - - - false - ψευδές - - - Session cookie - - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Απομάκρυνση - - - Remove &All Cookies - Απομάκρυνση &Όλων των Cookies - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - Εξαιρέσεις Cookies - - - New Exception - Νέα Εξαίρεση - - - Domain: - Διεύθυνση: - - - Block - Φραγή - - - Allow For Session - Να επιτρέπεται μόνο για τη συνεδρία - - - Allow - Να επιτρέπεται - - - Exceptions - Εξαιρέσεις - - - &Remove - &Απομάκρυνση - - - Remove &All - Απομάκρυνση &Όλων - - - - DownloadDialog - - Downloads - Λήψεις Αρχείων - - - Clean up - Εκκαθάριση λίστας - - - 0 Items - 0 Αντικείμενα - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Form - Φόρμα - - - Ico - Ico - - - Filename - Όνομα Αρχείου - - - Try Again - Ξανά Προσπαθήστε - - - Stop - Διακοπή - - - Open - Άνοιγμα - - - Save File - Αποθήκευση Αρχείου - - - Download canceled: %1 - Η μεταφόρτωση ακυρώθηκε: %1 - - - Error opening output file: %1 - Σφάλμα κατά το άνοιγμα του αρχείου εξόδου: %1 - - - Error saving: %1 - Σφάλμα αποθήκευσης: %1 - - - Network Error: %1 - Σφάλμα Δικτύου: %1 - - - seconds - δευτερόλεπτα - - - - %n minutes remaining - - - απομένει %n λεπτό - - απομένουν %n λεπτά - - - - - %n seconds remaining - - - απομένει %n δευτερόλεπτο - - απομένουν %n δευτερόλεπτα - - - - %1 of %2 (%3/sec) %4 - %1 από %2 (%3/δευτ) %4 - - - ? - ; - - - %1 of %2 - Stopped - %1 από %2 - Διακόπηκε - - - bytes - bytes - - - kB - kB - - - MB - MB - - - %1 of %2 (%3/sec) - %4 - %1 από %2 (%3/δευτ) - %4 - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n Λήψη - %n Λήψεις - - - - There are %1 downloads in progress -Do you want to quit anyway? - Είναι %1 λήψεις σε εξέλιξη -Είστε σίγουροι ότι θέλετε να κλείσετε; - - - %n minutes remaining - - απομένει %n λεπτό - απομένουν %n λεπτά - + + %n minutes remaining + + απομένει %n λεπτό + απομένουν %n λεπτά + %n seconds remaining @@ -1235,878 +690,246 @@ Do you want to quit anyway? - bytes - bytes - - - kB - kB - - - MB - MB - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - Άνοιγμα - - - Copy - Αντιγραφή - - - Delete - Διαγραφή - - - History - Ιστορικό - - - &Remove - &Απομάκρυνση - - - Remove &All - Α&πομάκρυνση Όλων - - - - HistoryMenu - - Show All History - Προβολή Ιστορικού - - - Clear History... - Εκκαθάριση Ιστορικού... - - - Clear History - Εκκαθάριση Ιστορικού - - - Do you want to clear the history? - Θέλετε να διαγράψετε το ιστορικό; - - - - HistoryModel - - Title - Τίτλος - - - Address - Διεύθυνση - - - - HistoryTreeModel - - Earlier Today - Νωρίτερα Σήμερα - - - %n item(s) - - %n αντικείμενο - %n αντικείμενα - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - Default - Προεπιλογή - - - Choose language - Επιλογή γλώσσας - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Μπορείτε να επιλέξετε μια γλώσσα διαφορετική από<br>την προεπιλεγμένη του λειτουργικού συστήματος.</p><p>Παρακαλώ επιλέξτε τη γλώσσα που επιθυμείτε</p> - - - No translation files are installed. - Δεν έχουν εγκατασταθεί αρχεία μεταφράσεων. - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Εισάγετε το όνομα χρήστη και τον κωδικό για "%1" στο %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Σύνδεση στον διαμεσολαβητή "%1" χρησιμοποιώντας:</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Σφάλματα SSL: - -%1 - -%2 - -Θέλετε να αγνοήσετε αυτά τα σφάλματα; - - - Do you want to accept all these certificates? - Θέλετε να αποδεχτείτε όλα αυτά τα πιστοποιητικά; - - - - SSL Errors - - Σφάλματα SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Σφάλματα SSL:<br/><br/>για: <tt>%1</tt><ul><li>%2</li></ul> - -Θέλετε να αγνοήσετε αυτά τα σφάλματα;</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Πιστοποιητικά:<br/>%1<br/>Θέλετε να αποδεχτείτε όλα αυτά τα πιστοποιητικά;</qt> - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - Όνομα - - - Value - Τιμή - - - - NetworkMonitorDialog - - Network Monitor - Παρακολούθηση Δικτύου - - - Network Requests - Αιτήσεις Δικτύου - - - Request Headers - Κεφαλίδες Αίτησης - - - Response Headers - Κεφαλίδες Απάντησης - - - &Remove - &Αφαίρεση - - - Remove &All Requests - Αφαίρεση &Όλων των Αιτημάτων - - - - OpenSearchDialog - - Open File - Άνοιγμα Αρχείου - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Όνομα - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - Χρειάζεται Αυθεντικοποίηση - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Όνομα Χρήστη: - - - Password: - Κωδικός: - - - - PlainTextEditSearch - - Not Found - Δεν Βρέθηκε - - - - ProxyDialog - - Proxy Authentication - Αυθεντικοποίηση Διαμεσολαβητή - - - ICON - ICON - - - Connect to proxy - Σύνδεση σε διαμεσολαβητή - - - Username: - Όνομα Χρήστη: - - - Password: - Κωδικός: - - - - QObject - - The file is not an XBEL version 1.0 file. - Το αρχείο δεν είναι XBEL έκδοσης 1.0. - - - Unknown title - Άγνωστος τίτλος - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Redirect: %1 - Επαναδρομολόγηση: %1 - - - Method - Μέθοδος - - - Address - Διεύθυνση - - - Response - Απάντηση - - - Length - Μήκος - - - Content Type - Τύπος Περιεχομένου - - - Info - Πληροφορίες - - - - SearchBanner - - Form - Φόρμα - - - TextLabel - Ετικέτα - - - < - < - - - > - > - - - Done - Ολοκλήρωση - - - Highlight All - - - - - SearchLineEdit - - Search - Αναζήτηση - - - - Settings - - Preferences - Προτιμήσεις - - - General - Γενικά - - - On startup: - Στην εκκίνηση του Arora: - - - Show my home page - Προβολή της αρχικής μου σελίδας - - - Show a blank page - Προβολή μιας κενής σελίδας - - - Restore windows and tabs from last time - Επαναφορά των παραθύρων και καρτελών που υπήρχαν την τελευταία φορά - - - Home Page: - Αρχική Σελίδα: - - - Set to current page - Χρήση της τρέχουσας - - - Remove history items: - Απαλοιφή ιστορικού: - - - After one day - Μετά από μια μέρα - - - After one week - Μετά από μια εβδομάδα - - - After two weeks - Μετά από δύο εβδομάδες - - - After one month - Μετά από ένα μήνα - - - After one year - Μετά από ένα χρόνο - - - Manually - Χειροκίνητα + bytes + bytes - On application exit - Κατά την έξοδο από την εφαρμογή + kB + kB - Confirm when closing multiple tabs or windows - + MB + MB - Quit the application when last tab is closed + GB + + + HistoryDialog - Open links from applications: - Άνοιγμα συνδέσμων από εφαρμογές: - - - In a tab in the current window - Σε καρτέλα στο τρέχον παράθυρο - - - In a new window - Σε νέο παράθυρο - - - Downloads - Λήψεις Αρχείων - - - Ask for a destination each time - Πάντα ερώτηση για την τοποθεσία αποθήκευσης + Open + Άνοιγμα - Use this destination: - Αποθήκευση αρχείων σε: + Copy + Αντιγραφή - Appearance - Εμφάνιση + Delete + Διαγραφή + + + HistoryMenu - Standard font: - Προεπιλεγμένη γραμματοσειρά: + Show All History + Προβολή Ιστορικού - Times 16 - Times 16 + Clear History... + Εκκαθάριση Ιστορικού... - Select... - Επιλογή... + Clear History + Εκκαθάριση Ιστορικού - Fixed-width font: - Σταθερού πλάτους γραμματοσειρά: + Do you want to clear the history? + Θέλετε να διαγράψετε το ιστορικό; + + + HistoryModel - Courier 13 - Courier 13 + Title + Τίτλος - Privacy - Απόρρητο + Address + Διεύθυνση + + + HistoryTreeModel - Web Content - Περιεχόμενο Ιστοσελίδων + Earlier Today + Νωρίτερα Σήμερα - - Enable Plugins - Ενεργοποίηση Πρόσθετων + + %n item(s) + + %n αντικείμενο + %n αντικείμενα + + + + JavaScriptEndorphinObject - Use ClickToFlash on flash plugins + Welcome to Endorphin! - Enable Javascript - Ενεργοποίηση της Javascript - - - View Images - Προβολή Εικόνων - - - Cookies - Cookies - - - Accept Cookies: - Αποδοχή Cookies: - - - Always - Πάντα - - - Never - Ποτέ - - - Only from sites you navigate to - Μόνο από σελίδες που μπαίνει ο ίδιος ο χρήστης - - - Exceptions... - Εξαιρέσεις... - - - Keep Cookies Until: - Διατήρηση Cookies Μέχρι: - - - They expire - Να λήξουν - - - I exit the application - Να βγω από την εφαρμογή - - - At most 90 days - Το πολύ 90 ημέρες - - - Cookies... - Cookies... - - - Filter Tracking Cookies + Endorphin Start - Tabs - Καρτέλες - - - Select tabs and windows as they are created - Επιλογή καρτελών και παραθύρων καθώς δημιουργούνται - - - Enable network cache + Search! - Maximum Size: + Search the web with - MB + Search results provided by - Confirm when closing multiple tabs - Προειδοποίηση στο κλείσιμο πολλαπλών καρτελών - - - Show only one close button instead of one for each tab - Εμφάνισε μόνο ένα κουμπί κλεισίματος αντί για ένα σε κάθε καρτέλα - - - Proxy - Διαμεσολαβητής - - - Use proxy server - Χρήση διαμεσολαβητή - - - Type: - Τύπος: - - - Socks5 - Socks5 - - - Http - Http - - - Host name: - Διαμεσολαβητής: - - - Port: - Θύρα: - - - User Name: - Όνομα Χρήστη: - - - Password: - Κωδικός: - - - Advanced - Για Προχωρημένους - - - Style Sheet: - Style Sheet: - - - Prefered languages for viewing webpages in: - Προτιμώμενες γλώσσες για την εμφάνιση των ιστοσελίδων: - - - Block Popup Windows - Φραγή Αναδυόμενων Παραθύρων - - - Opening links - Άνοιγμα συνδέσμων + About Endorphin + + + + LanguageManager - Links that want to open in a new window: - Συνδέσμους που θέλετε να ανοίξετε σε νέο παράθυρο: + Choose language + Επιλογή γλώσσας - In a new selected tab in the current window - Σε μια νέα επιλεγμένη καρτέλα στο τρέχον παράθυρο + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Μπορείτε να επιλέξετε μια γλώσσα διαφορετική από<br>την προεπιλεγμένη του λειτουργικού συστήματος.</p><p>Παρακαλώ επιλέξτε τη γλώσσα που επιθυμείτε</p> - In a new tab in the current window - Σε μια νέα καρτέλα στο τρέχον παράθυρο + No translation files are installed at %1. + + + + OpenSearchDialog - In the current tab - Στην τρέχουσα καρτέλα + Open File + Άνοιγμα Αρχείου - Http (Secure) - Http (Ασφαλές) + OpenSearch + - Http (Transparent) - Http (Διαφανές) + Error + - Preferred languages for viewing webpages in: - Προτιμώμενες γλώσσες για την εμφάνιση των ιστοσελίδων: + %1 is not a valid OpenSearch 1.1 description or is already on your list. + - Use the default search engine as fallback when the URL given by the user is invalid + You must have at least one search engine in here. + + + OpenSearchEngineModel - Choose Directory... + <strong>Description:</strong> %1 - A cookie session ends: + <strong>Provides contextual suggestions</strong> - When I exit the application + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - 1 day - + Name + Όνομα - 2 days + Keywords + + + OpenSearchManager - 3 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 7 days - + Allow + Να επιτρέπεται - 30 days + Deny - AutoFill + %1 wants to %2. + + + PlainTextEditSearch - AutoFill web forms: - + Not Found + Δεν Βρέθηκε + + + QObject - User names and passwords - + The file is not an XBEL version 1.0 file. + Το αρχείο δεν είναι XBEL έκδοσης 1.0. - Edit... - + Unknown title + Άγνωστος τίτλος - Browse... + The file is not an OpenSearch 1.1 file. - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - + Search + Αναζήτηση + + + SettingsDialog Choose Directory @@ -2134,18 +957,6 @@ Do you want to ignore these errors?</qt> &Find &Αναζήτηση - - &View - &Προβολή - - - &Wrap lines - &Περιορισμός γραμμής κειμένου στο παράθυρο - - - Source of Page - Κώδικας της Σελίδας - Source of Page %1 @@ -2161,10 +972,6 @@ Do you want to ignore these errors?</qt> Hide Tab Bar Απόκρυψη Γραμμής Καρτελών - - New &Tab - Νέα &Καρτέλα - Duplicate Tab Αντίγραφο Καρτέλας @@ -2220,26 +1027,10 @@ Do you want to ignore these errors?</qt> Untitled Χωρίς τίτλο - - Do you really want to close this page? - Θέλετε σίγουρα να κλείσετε αυτή τη σελίδα; - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Έχετε τροποποιήσει τη σελίδα και μόλις την κλείσετε θα χάσετε τις αλλαγές. -Θέλετε σίγουρα να κλείσετε αυτή τη σελίδα; - - Loading... Φορτώνει... - - Loading %1% (%2 %3)... - Φορτώνει %1% (%2 %3)... - Finished loading Ολοκλήρωση φόρτωσης @@ -2256,13 +1047,13 @@ Do you really want to close this page? Bookmark All Tabs Όλες οι Καρτέλες ως Σελιδοδείκτης - - - ToolbarSearch - Add '%1' + Loading ... + + + ToolbarSearch No Recent Searches Δεν Υπάρχουν Πρόσφατες Αναζητήσεις @@ -2299,41 +1090,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - Σφάλμα κατά την φόρτωση της σελίδας: %1 - - - When connecting to: %1. - Κατά τη σύνδεση στο: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Έλεγξε την διεύθυνση για λάθη όπως <b>ww</b>.arora-browser.org αντί για <b>www</b>.arora-browser.org - - - If the address is correct, try to check the network connection. - Εάν η διεύθυνση είναι σωστή, ελέγξτε την σύνδεση σας. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Εάν ο υπολογιστής σας ή το δίκτυο σας προστατεύεται από τείχος προστασίας ή διαμεσολαβητή, βεβαιωθείται ότι ο περιηγητής σας έχει τα κατάλληλα δικαιώματα για πρόσβαση στο δίκτυο. - - - If the address is correct, try checking the network connection. - Εάν η διεύθυνση είναι σωστή, ελέγξτε την σύνδεση σας. - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2384,38 +1140,6 @@ Do you really want to close this page? Loading... Φορτώνει... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/es_CR.ts b/src/locale/es_CR.ts index 196e474e..d00bf261 100644 --- a/src/locale/es_CR.ts +++ b/src/locale/es_CR.ts @@ -3,10 +3,6 @@ AboutDialog - - About - Acerca de - Authors Autores @@ -15,137 +11,10 @@ License Licencia - - Lightweight WebKit-based web browser - Navegador web ligero, basado en WebKit - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Cerrar - About %1 Acerca %1 - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Idiomas - - - Languages: in order of preference: - Idiomas: En orden de preferencia: - - - Move &Up - Ir &Arriba - - - Move &Down - Ir &Abajo - - - &Remove - &Remover - - - Add... - Agregar... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - Regla - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -153,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Agregar marcador - - Type a name for the bookmark, and choose where to keep it. - Introduzca un nombre para el marcador y seleccione donde desea guardarlo. - Url URL @@ -170,47 +35,6 @@ p, li { white-space: pre-wrap; } Agregar carpeta - - AutoFillDialog - - Form Passwords - - - - Remove - Remover - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -229,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder Nueva carpeta - - Bookmarks - Marcadores - - - &Remove - &Remover - - - Add Folder - Agregar carpeta - Edit Name Editar nombre @@ -270,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File Abrir archivo - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Importado %1 @@ -302,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Insertar marcador - - Name Change - Cambiar nombre - - - Address Change - Cambiar dirección - Bookmarks Bar Barra de marcadores @@ -340,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Herramienta htmlToXBel requerida - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Herramienta htmlToXBel, la cual viene incluida con Arora y es necesaria para importar marcadores HTML, no está instalado o disponible en las rutas de búsqueda. - Loading Bookmark Cargando marcador @@ -354,6 +150,10 @@ p, li { white-space: pre-wrap; } Error durante la carga de marcadores HTML: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -375,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Marcador - Open Abrir @@ -399,17 +195,9 @@ p, li { white-space: pre-wrap; } Add Folder... Agregar carpeta... - - Bookmarks - Marcadores - BrowserApplication - - (Change: %1 %2) - (Cambiar: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -421,11 +209,7 @@ Do you want to quit anyway? Restauración fallida - The saved session will not be restored because Arora crashed while trying to restore this session. - La sesión guardada no pudo ser restaurada porque Arora se bloqueó mientras intentaba restaurar esta sesión. - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -459,14 +243,6 @@ Do you want to quit anyway? &Export Bookmarks... &Exportar marcadores... - - P&rint Preview... - Vista p&reliminar... - - - &Print... - &Imprimir... - Private &Browsing... Navegación &privada... @@ -511,10 +287,6 @@ Do you want to quit anyway? Find P&revious Encontrar A&nterior - - Prefere&nces... - Prefere&ncias... - Ctrl+, Ctrl+, @@ -531,10 +303,6 @@ Do you want to quit anyway? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -547,18 +315,6 @@ Do you want to quit anyway? &Reload Page &Recargar página - - Make Text &Bigger - Hacer el texto más &grande - - - Make Text &Normal - Hacer el texto &normal - - - Make Text &Smaller - Hacer el texto más &pequeño - Page S&ource F&uente de la página @@ -595,10 +351,6 @@ Do you want to quit anyway? &Bookmarks &Marcadores - - Manage Bookmarks... - Administrar Marcadores... - Add Bookmark... Agregar Marcador... @@ -629,10 +381,6 @@ Do you want to quit anyway? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Habilitar &Inspección Web - &Help &Ayuda @@ -641,10 +389,6 @@ Do you want to quit anyway? About &Qt Acerca de &QT - - About &Arora - Acerca de &Arora - Navigation Navegación @@ -673,15 +417,6 @@ Do you want to quit anyway? Hide Bookmarks Bar Esconder barra de marcadores - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Abrir recurso web @@ -690,36 +425,14 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Recursos web (*.html *.htm *.svg *.png *.gif *.svgz);;Todos los archivos (*.*) - - Print Document - Imprimir documento - Are you sure you want to turn on private browsing? ¿Está seguro de activar la navegación privada? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Cuando la navegación privada se activa, algunas accciones relacionadas con su privacidad son deshabilitadas:<ul><li> Las páginas web no son agregadas en el historial.</li><li> Los objetos son automáticamente removidos de la ventana de descargas.</li><li> Las cookies nuevas no son guardadas, las cookies actuales no podrán ser accesadas.</li><li> Los íconos de los sitios no serán guardados, la sesión tampoco podrá ser guardada.</li><li> Las búsquedas no son agregadas al menú emergente de la caja de búsqueda.</li></ul> A menos que usted cierre la ventana, podrá utilizar los botones Regresar y Adelantar para regresar a páginas web que han sido abiertas. - Are you sure you want to close the window? There are %1 tabs open ¿Está seguro que desea cerrar esta ventana? Hay %1 pestañana(s) abierta(s) - - Page Source of %1 - Página fuente de %1 - - - Web Inspector - Inspector web - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - El Inspector web solo funcionará correctamente para páginas que fueron cargadas después de haber sido habilitado. -¿Desea recargar las páginas? - Stop loading the current page Detener la carga de la página actual @@ -732,11 +445,6 @@ Do you want to reload all pages? Downloads Descargas - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - Switch application language Cambiar el idioma del programa @@ -787,10 +495,6 @@ Do you want to reload all pages? Text Encoding Codificación de caracteres - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> Network cache is disabled.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Cuando la navegación privada se activa, algunas accciones relacionadas con su privacidad son deshabilitadas:<ul><li> Las páginas web no son agregadas en el historial.</li><li> Los objetos son automáticamente removidos de la ventana de descargas.</li><li> Las cookies nuevas no son guardadas, las cookies actuales no podrán ser accesadas.</li><li> Los íconos de los sitios no serán guardados, la sesión tampoco podrá ser guardada.</li><li> Las búsquedas no son agregadas al menú emergente de la caja de búsqueda.</li></ul> A menos que usted cierre la ventana, podrá utilizar los botones Regresar y Adelantar para regresar a páginas web que han sido abiertas. - Select &All @@ -807,10 +511,6 @@ Do you want to reload all pages? Configure Search Engines... Configurar motores de búsqueda... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -823,10 +523,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -867,6 +563,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -897,14 +598,6 @@ Do you want to reload all pages? &Search History &Historial de búsquedas - - &Cookies - &Cookies - - - C&ached Web Pages - Páginas web c&acheadas - Website &Icons &Íconos del sitio web @@ -919,1123 +612,325 @@ Do you want to reload all pages? - ClickToFlash - - Load - Cargar - + DownloadDialog - Load All - Cargar todo + Downloads + Descargas - Add %1 to Whitelist - Agregar %1 a la lista blanca + Downloading %1 + + + + DownloadItem - Remove from Whitelist - Remover de la lista blanca + Save File + Guardar archivo - Settings - Configuraciones + Download canceled: %1 + Descarga cancelada: %1 - Load Flash - Cargar Flash + Error opening output file: %1 + Error abriendo el archivo de salida: %1 - - - ClickToFlashSettings - Whitelist sites - Sitios de la lista blanca + Error saving: %1 + Error guardando: %1 - - - CookieExceptionsModel - Website - Sitio web + Network Error: %1 + Error de red: %1 - Rule - Regla + ? + ? - Allow - Permitir + %1 of %2 (%3/sec) - %4 + %1 de %2 (%3/seg) - %4 - Block - Bloquear + Download directory (%1) couldn't be created. + Descargando directorio (%1) no puede ser creado. - Allow For Session - Permitir por esta sesión + %1 of %2 - Download Complete + - CookieModel - - Website - Stio web + DownloadManager + + %n Download(s) + + %n Descargado + %n Descargados + - Name - Nombre + There are %1 downloads in progress +Do you want to quit anyway? + Hay %1 descarga(s) en progreso +¿Desea quitarlo de todos modos? - - Path - Ruta + + %n minutes remaining + + %n minuto restante + %n minutos restantes + - - Secure - Seguridad + + %n seconds remaining + + %n segundo restante + %n segundos restantes + - Expires - Expiración + bytes + bites - Contents - Contenidos + kB + kB - true - verdadero - - - false - falso - - - Session cookie - Cookie de la sesión - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Remover - - - Remove &All Cookies - Remove &todas las cookies - - - Add &Rule - Agregar &regla - - - - CookiesExceptionsDialog - - Cookie Exceptions - Excepciones de Cookies - - - New Exception - Nueva excepción - - - Domain: - Dominio: - - - Block - Bloquear - - - Allow For Session - Permitir por esta sesión - - - Allow - Permitir - - - Exceptions - Excepciones - - - &Remove - &Remover - - - Remove &All - Remover &Todo - - - - DownloadDialog - - Downloads - Descargas - - - Clean up - Borrar - - - 0 Items - 0 objetos - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Form - Foma - - - Ico - Ícono - - - Filename - Nombre del archivo - - - Try Again - Intentar de nuevo - - - Stop - Detener - - - Open - Abrir - - - Save File - Guardar archivo - - - Download canceled: %1 - Descarga cancelada: %1 - - - Error opening output file: %1 - Error abriendo el archivo de salida: %1 - - - Error saving: %1 - Error guardando: %1 - - - Network Error: %1 - Error de red: %1 - - - seconds - segundos - - - - %n minutes remaining - - - %n minuto restante - - %n minutos restantes - - - - - %n seconds remaining - - - %n segundo restante - - %n segundos restantes - - - - %1 of %2 (%3/sec) %4 - %1 de %2 (%3/seg) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 de %2 - Detenido - - - bytes - bytes - - - kB - kB - - - MB - MB - - - %1 of %2 (%3/sec) - %4 - %1 de %2 (%3/seg) - %4 - - - Download directory (%1) couldn't be created. - Descargando directorio (%1) no puede ser creado. - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n Descargado - %n Descargados - - - - There are %1 downloads in progress -Do you want to quit anyway? - Hay %1 descarga(s) en progreso -¿Desea quitarlo de todos modos? - - - %n minutes remaining - - %n minuto restante - %n minutos restantes - - - - %n seconds remaining - - %n segundo restante - %n segundos restantes - - - - bytes - bites - - - kB - kB - - - MB - MB - - - GB - - - - - FileAccessReply - - No Error - Sin Error - - - Error opening: %1: No such file or directory - Error abriendo %1: No s pudo encontrar el archivo o directorio - - - Unable to read %1 - No se puede leer %1 - - - Contents of %1 - Contenidos de %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - Open - Abrir - - - Copy - Copiar - - - Delete - Borrar - - - History - Historial - - - &Remove - &Remover - - - Remove &All - Remover &Todo - - - - HistoryMenu - - Show All History - Mostrar todo el historial - - - Clear History... - Borrar historial... - - - Clear History - Borrar historial - - - Do you want to clear the history? - ¿Desea borrar el historial? - - - - HistoryModel - - Title - Título - - - Address - Dirección - - - - HistoryTreeModel - - Earlier Today - Lo más antiguo - - - %n item(s) - - %n objeto - %n objetos - - - - - JavaScriptAroraObject - - Welcome to Arora! - ¡Bienvenido a Arora! - - - Arora Start - Iniciar Arora - - - Search! - ¡Buscar! - - - Search results provided by - Resultados de la búsqueda proveídos por - - - About Arora - Acerca de Arora - - - Search the web with - - - - - LanguageManager - - Choose language - Elija el idioma - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Usted puede ejecutar un idioma distinto al del <br>sistema operativo predeterminado.</p><p>Por favor el idioma que desea utilizar</p> - - - No translation files are installed. - No se instalarán archivos de traducción - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Digite el usuario y clave para "%1" en %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Conectarse al proxy "%1" usando:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Errores SSL: - -%1 -%2 -¿Desea ignorar esos errores? - - - Do you want to accept all these certificates? - ¿Desea aceptar todos esos certificados? - - - - SSL Errors - - Errores-SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Errores SSL:<br/><br/>para: <tt>%1</tt><ul><li>%2</li></ul> - -¿Quieres ignorar esos errores?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certificados:<br/>%1<br/>¿Quieres aceptar todos esos certificados?</qt> - - - Issuer: %1 - Emitido por: %1 - - - Not valid before: %1 - No válido antes: %1 - - - Valid until: %1 - Válidao hasta: %1 - - - Alternate Names: - Nombres alternativos: - - - - NetworkMonitor - - Name - Nombre - - - - NetworkMonitorDialog - - &Remove - &Remover - - - - OpenSearchDialog - - Open File - Abrir archivo - - - OpenSearch - BuscadorLibre - - - Error - Error - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 no es una descripción de BuscadorLibre 1.1 o ya está en su lista. - - - You must have at least one search engine in here. - Debes tener al menos un motor de búsqueda acá. - - - OpenSearch Manager - Administrador de BuscadorLibre - - - &Restore Defaults - &Restaurar Predeterminado - - - &Delete - &Borrar - - - &Add - &Agregar - - - &Close - &Cerrar - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Descripción:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Provee sugerencias contextuales</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Nombre - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - ¿Quieres agregar el siguiente motor a su lista de motores de búsqueda?<br /><br />Nombre: %1<br />Reliza búsquedas en: %2 - - - - PasswordDialog - - Authentication Required - Autenticación requerida - - - DUMMY ICON - ÍCONO VIRTUAL - - - INTRO TEXT DUMMY - DIGITAR TEXTO VIRTUAL - - - Username: - Nombre de usuario: - - - Password: - Contraseña: - - - - PlainTextEditSearch - - Not Found - No encontrado - - - - ProxyDialog - - Proxy Authentication - Autenticación de Proxy - - - ICON - ÍCONO - - - Connect to proxy - Conactar al proxsy - - - Username: - Usuario: - - - Password: - Clave: - - - - QObject - - The file is not an XBEL version 1.0 file. - El archivo no es una versión 1.0 XBEL. - - - Unknown title - Título desconocido - - - The file is not an OpenSearch 1.1 file. - Este no es un archivo BuscadorLibre 1.1 - - - - RequestModel - - Address - Dirección - - - - SearchBanner - - Form - Forma - - - TextLabel - Etiqueta de texto - - - < - < - - - > - > - - - Done - Finalizado - - - Highlight All - Marcar todo - - - - SearchLineEdit - - Search - Buscar - - - - Settings - - Preferences - Preferencias - - - General - General - - - On startup: - Al iniciar: - - - Show my home page - Mostrar mi página de Inicio - - - Show a blank page - Mostrar una página en blanco - - - Restore windows and tabs from last time - Restaurar ventanas y pestañas de la última sesión - - - Home Page: - Página de Inicio: - - - Set to current page - Fijar la página actual - - - Remove history items: - Remover objetos del historial: - - - After one day - Después de un día - - - After one week - Después de una semana - - - After two weeks - Después de dos semanas - - - After one month - Después de un mes - - - After one year - Después de un año - - - Manually - Manualmente - - - On application exit - Al salir de la aplicación - - - Open links from applications: - Abrir enlaces desde aplicaciones: - - - In a tab in the current window - En una pestaña en la ventana actual - - - In a new window - En una nueva ventana - - - Downloads - Descargas - - - Ask for a destination each time - Preguntar en cada caso por el destino - - - Use this destination: - Usar este destino: - - - Appearance - Apariencia - - - Standard font: - Fuente estándar: - - - Times 16 - Times 16 - - - Select... - Seleccionar... - - - Fixed-width font: - Fuente de anchura-fija: - - - Courier 13 - Courier 13 - - - Privacy - Privacidad - - - Web Content - Contenido web - - - Enable Plugins - Habilitar agregados - - - Enable Javascript - Habilitar Javascript - - - View Images - Vier Imagenes - - - Cookies - Cookies - - - Accept Cookies: - Aceptar Cookies: - - - Always - Siempre - - - Never - Nunca - - - Only from sites you navigate to - Solo de las páginas visitadas - - - Exceptions... - Excepciones... - - - Keep Cookies Until: - Mantener Cookies hasta: - - - They expire - Que expiren (caduquen) - - - I exit the application - Al salir de la aplicación - - - At most 90 days - Durante 90 días - - - Cookies... - Cookies... - - - Tabs - Pestañas - - - Select tabs and windows as they are created - Seleccionar pestañas y ventanas cuando se crean - - - Confirm when closing multiple tabs - Confirmar cuando se cierran múltiples pestañas - - - Proxy - Proxy - - - Use proxy server - Usar servidor proxsy + MB + MB - Type: - Tipo: + GB + + + + HistoryDialog - Socks5 - Socks5 + Open + Abrir - Http - Http + Copy + Copiar - Host name: - Nombre del Host: + Delete + Borrar + + + HistoryMenu - Port: - Puerto: + Show All History + Mostrar todo el historial - User Name: - Usuario: + Clear History... + Borrar historial... - Password: - Clave: + Clear History + Borrar historial - Advanced - Avanzado + Do you want to clear the history? + ¿Desea borrar el historial? + + + HistoryModel - Style Sheet: - Estilo de hoja: + Title + Título - Show only one close button instead of one for each tab - + Address + Dirección + + + HistoryTreeModel - Preferred languages for viewing webpages in: - + Earlier Today + Lo más antiguo - - Block Popup Windows - + + %n item(s) + + %n objeto + %n objetos + + + + JavaScriptEndorphinObject - Opening links + Welcome to Endorphin! - Links that want to open in a new window: + Endorphin Start - In a new selected tab in the current window + Search! - In a new tab in the current window + Search the web with - In the current tab + Search results provided by - Http (Secure) + About Endorphin + + + LanguageManager - Http (Transparent) - + Choose language + Elija el idioma - Use ClickToFlash on flash plugins - + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Usted puede ejecutar un idioma distinto al del <br>sistema operativo predeterminado.</p><p>Por favor el idioma que desea utilizar</p> - Filter Tracking Cookies + No translation files are installed at %1. + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - + Open File + Abrir archivo - Quit the application when last tab is closed - + OpenSearch + BuscadorLibre - Enable network cache - + Error + Error - Maximum Size: - + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 no es una descripción de BuscadorLibre 1.1 o ya está en su lista. - MB - + You must have at least one search engine in here. + Debes tener al menos un motor de búsqueda acá. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid - + <strong>Description:</strong> %1 + <strong>Descripción:</strong> %1 - Choose Directory... - + <strong>Provides contextual suggestions</strong> + <strong>Provee sugerencias contextuales</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Nombre - 1 day + Keywords + + + OpenSearchManager - 2 days - + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + ¿Quieres agregar el siguiente motor a su lista de motores de búsqueda?<br /><br />Nombre: %1<br />Reliza búsquedas en: %2 + + + PermissionBar - 3 days - + Allow + Permitir - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + No encontrado + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + El archivo no es una versión 1.0 XBEL. - User names and passwords - + Unknown title + Título desconocido - Edit... - + The file is not an OpenSearch 1.1 file. + Este no es un archivo BuscadorLibre 1.1 - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Buscar SettingsDialog - - Restart required - Reinicio requerido - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - La configuración del cache de red ha cambiado. Con el fin de que sea tomado en su cuenta, el navegador debe ser reiniciado. - Choose Directory @@ -2063,14 +958,6 @@ Do you want to ignore these errors?</qt> &Find &Buscar - - &View - &Ver - - - &Wrap lines - &Ajustar líneas - Source of Page %1 Fuente de la página %1 @@ -2086,10 +973,6 @@ Do you want to ignore these errors?</qt> Hide Tab Bar Esconder la barra de pestañas - - New &Tab - Nueva &pestaña - Duplicate Tab Duplicar pestaña @@ -2137,18 +1020,6 @@ Do you want to ignore these errors?</qt> Untitled Sin título - - Do you really want to close this page? - ¿Desea relamente cerrar esta página? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Usted ha modificado esta página y una vez que la haya cerrado los cambios se perderán -¿Desea realmente cerrrar esta página? - - Ctrl-] Ctrl-] @@ -2165,10 +1036,6 @@ Do you really want to close this page? Loading... Cargando... - - Loading %1% (%2 %3)... - Cargando %1% (%2 %3)... - Finished loading Carga finalizada @@ -2181,6 +1048,10 @@ Do you really want to close this page? Bookmark All Tabs Guardar en los marcadores todas las pestañas + + Loading ... + + ToolbarSearch @@ -2200,14 +1071,6 @@ Do you really want to close this page? Suggestions Sugerencies - - Add '%1' - Agregar '%1' - - - Configure Search Engines... - Configurar motores de búsqueda... - UserAgentMenu @@ -2228,37 +1091,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - Error cargando página: %1 - - - When connecting to: %1. - Cuando se conecta a: %1 - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Verifica errores en la dirección como <b>ww</b>.arora-browser.org en lugar de <b>www</b>.arora-browser.org - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - si su computadora o red está protegida por un corta fuegos o proxy, asegúrese de que el navegador web tiene acceso permitido a la red. - - - If the address is correct, try checking the network connection. - si la dirección es correcta, intente verificar la conexión de red. - - - Resending POST request - Reenviando petición POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Con el fin de mostrar el sitio, la solicitud con toda la información debe ser enviada una vez más, lo cual puede generar un comportamiento inesperado en el sitio p.e. la misma acción debe ser desempeñada una vez más. ¿Quieres continuar de todos modos? - - WebView @@ -2309,38 +1141,6 @@ Do you really want to close this page? Search with... Buscar con... - - Add to the toolbar search - Agregar a la barra de búsqueda - - - Method not supported - Método no soportado - - - %1 method is not supported. - %1 método no es soportado. - - - Search engine - Motor de búsqueda - - - Choose the desired search engine - Elija el nombre deseado para el motor de búsqueda - - - Engine name - Nombre de motor - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/et_EE.ts b/src/locale/et_EE.ts index abd3206e..cabb3d4f 100644 --- a/src/locale/et_EE.ts +++ b/src/locale/et_EE.ts @@ -3,10 +3,6 @@ AboutDialog - - About - Info - Authors Autorid @@ -15,141 +11,10 @@ License Litsents - - Lightweight WebKit-based web browser - Lihtne WebKit-põhine veebilehitseja - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Sulge - About %1 - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - - - AcceptLanguage - - Languages - - - - Languages: in order of preference: - - - - Move &Up - - - - Move &Down - - - - &Remove - &Eemalda - - - Add... - - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -157,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Lisa järjehoidja - - Type a name for the bookmark, and choose where to keep it. - Sisestage järjehoidjale nimi ja valige, kus seda hoida. - Url @@ -174,47 +35,6 @@ p, li { white-space: pre-wrap; } Lisa kaust - - AutoFillDialog - - Form Passwords - - - - Remove - - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -229,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Uus kaust - - Bookmarks - Järjehoidjad - - - &Remove - &Eemalda - - - Add Folder - Lisa kaust - Open in New Tab Ava uues &sakis @@ -273,10 +81,6 @@ p, li { white-space: pre-wrap; } Open File Ava fail - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 %1 imporditud @@ -305,14 +109,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Sisesta järjehoidja - - Name Change - Nime muutus - - - Address Change - Aadressi muutus - Bookmarks Bar @@ -343,10 +139,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -356,6 +148,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -377,13 +173,9 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Järjehoidja - Open - + &Ava Open in New &Tab @@ -401,10 +193,6 @@ p, li { white-space: pre-wrap; } Add Folder... - - Bookmarks - Järjehoidjad - BrowserApplication @@ -418,11 +206,7 @@ Do you want to quit anyway? Taastamine ebaõnnestus - The saved session will not being restored because last time it was restored Arora crashed. - Salvestatud sessiooni ei taastata, sest viimane kord kui Arora seda üritas, jooksis ta kokku. - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -456,14 +240,6 @@ Do you want to quit anyway? &Export Bookmarks... &Ekspordi järjehoidjad... - - P&rint Preview... - P&rintimise eelvaade... - - - &Print... - &Prindi... - Private &Browsing... Privaatne veebi&lehitsemine... @@ -500,18 +276,6 @@ Do you want to quit anyway? &Find &Otsi - - &Find Next - Otsi &järgmist - - - &Find Previous - Otsi eel&mist - - - &Preferences - &Eelistused - Ctrl+, @@ -532,22 +296,6 @@ Do you want to quit anyway? &Stop &Katkesta lehekülje laadimine - - Reload Page - Lae lehekülg &uuesti - - - &Make Text Bigger - Tee tekst &suuremaks - - - &Make Text Normal - T&aasta teksti suurus - - - &Make Text Smaller - Tee tekst &väiksemaks - Page S&ource Veebilehe &lähtekood @@ -584,10 +332,6 @@ Do you want to quit anyway? &Bookmarks &Järjehoidjad - - Manage Bookmarks... - &Halda järjehoidjaid... - Add Bookmark... &Lisa järjehoidja... @@ -609,10 +353,6 @@ Do you want to quit anyway? Web Search - - Enable Web &Inspector - Aktiveeri &Veebiinspektor - &Help &Abi @@ -621,10 +361,6 @@ Do you want to quit anyway? About &Qt Lähemalt &Qt kohta - - About &Arora - Lähemalt &Arora kohta - Navigation Navigeerimine @@ -645,15 +381,6 @@ Do you want to quit anyway? Hide Toolbar Peida tööriistariba - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Ava veebiressurss @@ -662,10 +389,6 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Veebiressursid (*.html *.htm *.svg *.png *.gif *.svgz);;Kõik failid (*.*) - - Print Document - Prindi dokument - Are you sure you want to turn on private browsing? Kas Te olete kindel, et soovite sisse lülitada privaatse lehitsemise? @@ -674,20 +397,6 @@ Do you want to quit anyway? Are you sure you want to close the window? There are %1 tabs open Kas Te olete kindel, et soovite akent sulgeda? Avatud on %1 sakki - - Page Source of %1 - Lehekülje %1 lähtekood - - - Web Inspector - Veebiinspektor - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Veebiinspektor töötab korrektselt ainult lehekülgede puhul, mis laetakse pärast Veebiinspektori aktiveerimist. -Kas Te soovite kõik leheküljed uuesti laadida? - Stop loading the current page Peata käesoleva lehekülje laadimine @@ -717,38 +426,14 @@ Kas Te soovite kõik leheküljed uuesti laadida? Hide Bookmarks Bar Peida järjehoidjate riba - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Kui privaatne lehitsemine on sisse lülitatud, ei viida läbi teatud Teie privaatsust puudutavaid toiminguid:<ul><li> Veebilehti ei sisestata ajalukku.</li><li> Allalaadimisakent puhastatakse automaatselt.</li><li> Uusi küpsiseid ei salvestata, olemasolevatele küpsistele keelatakse veebilehtedel ligipääs.</li><li> Veebilehtede ikoone ei salvestata.</li><li> Sessioone ei salvestata.</li><li> Tehtud otsinguid ei lisata otsingukasti rippmenüüsse.</li></ul>Akna sulgemiseni võite siiski kasutada Edasi- ja Tagasi-nuppe avatud veebilehtedele tagasi pöördumiseks. - - - Find &Next - Otsi &järgmist - Find P&revious Otsi eel&mist - - Prefe&rences - &Eelistused - &Reload Page Lae lehekülg &uuesti - - Make Text &Bigger - Tee tekst &suuremaks - - - Make Text &Normal - T&aasta teksti suurus - - - Make Text &Smaller - Tee tekst &väiksemaks - Find Nex&t @@ -823,10 +508,6 @@ Kas Te soovite kõik leheküljed uuesti laadida? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -839,10 +520,6 @@ Kas Te soovite kõik leheküljed uuesti laadida? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -883,6 +560,11 @@ Kas Te soovite kõik leheküljed uuesti laadida? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -913,14 +595,6 @@ Kas Te soovite kõik leheküljed uuesti laadida? &Search History &Otsingute ajalugu - - &Cookies - &Küpsised - - - C&ache - &Puhverdatud veebileheküljed - Website &Icons Veebilehekülgede &ikoonid @@ -933,1136 +607,326 @@ Kas Te soovite kõik leheküljed uuesti laadida? &Cancel &Loobu - - C&ached Web Pages - - - ClickToFlash - - Load - - - - Load All - - - - Add %1 to Whitelist - - - - Remove from Whitelist - - - - Settings - Eelistused - + DownloadDialog - Load Flash - + Downloads + Allalaadimised - - - ClickToFlashSettings - Whitelist sites + Downloading %1 - CookieExceptionsModel + DownloadItem - Website - Veebileht + Save File + Salvesta fail - Status - Reegel + Download canceled: %1 + Allalaadimine katkestatud: %1 - Allow - Luba + Error saving: %1 + Viga salvestamisel: %1 - Block - Keela + Network Error: %1 + Võrgu viga: %1 - Allow For Session - Luba sessiooniks + ? + ? - Rule + Error opening output file: %1 - - - CookieModel - - Website - Veebileht - - Name - Nimi + %1 of %2 (%3/sec) - %4 + - Path - Asukoht + Download directory (%1) couldn't be created. + - Secure - Turvaline + %1 of %2 - Download Complete + - - Expires - Aegub - - - Contents - Sisu - - - true - - - - false - - - - Session cookie - - - - - CookiesDialog - - Cookies - Küpsised - - - &Remove - &Eemalda - - - Remove &All Cookies - Eemalda &kõik küpsised - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - Küpsiste erandid - - - New Exception - Uus erand - - - Domain: - Domeen: - - - Block - Keela - - - Allow For Session - Luba sessiooniks - - - Allow - Luba - - - Exceptions - Erandid - - - &Remove - &Eemalda - - - Remove &All - Eemalda &kõik - - - - DownloadDialog - - Downloads - Allalaadimised - - - Clean up - Puhasta - - - 0 Items - 0 elementi - - - Downloading %1 - - - - - DownloadItem - - Save File - Salvesta fail - - - Download canceled: %1 - Allalaadimine katkestatud: %1 - - - Error opening save file: %1 - Viga väljundfaili avamisel: %1 - - - Error saving: %1 - Viga salvestamisel: %1 - - - Network Error: %1 - Võrgu viga: %1 - - - seconds - sekundit - - - %1 of %2 (%3/sec) %4 - %1 / %2 (%3/s) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 / %2 - Katkestatud - - - bytes - baiti - - - kB - kiB - - - MB - MiB - - - Ico - - - - Filename - Faili nimi - - - Try Again - Proovi uuesti - - - Stop - Katkesta - - - Open - Ava - - - - %n minutes remaining - - - %n minut jäänud - - %n minutit jäänud - - - - - %n seconds remaining - - - %n sekund jäänud - - %n sekundit jäänud - - - - Error opening output file: %1 - - - - %1 of %2 (%3/sec) - %4 - - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n Download - %n Downloads - - - - There are %1 downloads in progress -Do you want to quit anyway? - - - - %n minutes remaining - - - - - - - %n seconds remaining - - - - - - - bytes - baiti - - - kB - kiB - - - MB - MiB - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - &Ava - - - Copy - &Kopeeri - - - Delete - K&ustuta - - - History - Ajalugu - - - &Remove - &Eemalda - - - Remove &All - Eemalda &kõik - - - - HistoryMenu - - Show All History - &Näita tervet ajalugu - - - Clear History - &Unusta ajalugu - - - Clear History... - - - - Do you want to clear the history? - - - - - HistoryModel - - Title - Pealkiri - - - Address - Aadress - - - - HistoryTreeModel - - Earlier Today - Varem täna - - - %n item(s) - - %n item - %n items - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - Choose language - - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Palun sisestage kasutajanimi ja salasõna "%1" jaoks aadressilt %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Ühendu puhverserveriga "%1" kasutades:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - SSL vead: - -%1 - -%2 - -Kas Te soovite neid vigu ignoreerida? - - - Do you want to accept all these certificates? - Kas Te soovite kõik need sertifikaadid aksepteerida? - - - - SSL Errors - - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - Nimi - - - - NetworkMonitorDialog - - &Remove - &Eemalda - - - - OpenSearchDialog - - Open File - Ava fail - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Nimi - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - Nõutud audentimine - - - DUMMY ICON - - - - INTRO TEXT DUMMY - - - - Username: - Kasutajanimi: - - - Password: - Salasõna: - - - - PlainTextEditSearch - - Not Found - Ei leitud - - - - ProxyDialog - - Proxy Authentication - Audentimine puhverserveriga - - - Connect to proxy - Ühendu puhverserveriga - - - Username: - Kasutajanimi: - - - Password: - Salasõna: - - - - QObject - - The file is not an XBEL version 1.0 file. - See fail ei ole XBEL versioon 1.0 vormingus. - - - Unknown title - Tundmatu pealkiri - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Address - Aadress - - - - SearchBanner - - < - < - - - > - > - - - Done - Valmis - - - Highlight All - - - - - SearchLineEdit - - Search - Otsi - - - - Settings - - Settings - Eelistused - - - General - Üldine - - - Home: - Koduleht: - - - Set to current page - Muuda hetkel avatud leheks - - - Remove history items: - Eemalda ajaloo elemendid: - - - After one day - Pärast ühte päeva - - - After one week - Pärast ühte nädalat - - - After two weeks - Pärast kahte nädalat - - - After one month - Pärast ühte kuud - - - After one year - Pärast ühte aastat - - - Manually - Käsitsi - - - Open links from applications: - Ava viitasid teistest rakendustest: - - - In a tab in the current window - Aktiivse akna uues sakis - - - In a new window - Uues aknas - - - Appearance - Välimus - - - Fixed-width font: - Fikseeritud laiusega kirjatüüp: - - - Privacy - Privaatsus - - - Web Content - Veebilehtede sisu - - - Enable Plugins - Luba pistikprogrammid - - - Enable Javascript - Luba Javascript - - - Cookies - Küpsised - - - Accept Cookies: - Luba küpsiseid: - - - Always - Alati - - - Never - Mitte kunagi - - - Only from sites you navigate to - Ainult veebilehtedelt, mida külastan - - - Exceptions... - Erandid... - - - Keep until: - Hoia küpsiseid kuni: - - - They expire - Nad aeguvad - - - I exit the application - Rakendus suletakse - - - At most 90 days - Ülimalt 90 päeva - - - Cookies... - Küpsised... - - - Proxy - Puhverserver - - - Enable proxy - Kasuta puhverserverit - - - Type: - Tüüp: - - - Socks5 - Socks5 - - - Http - HTTP - - - Host: - Hostinimi: - - - Port: - Port: - - - User Name: - Kasutajanimi: - - - Password: - Salasõna: - - - Advanced - Muud - - - Style Sheet: - Stiilileht: - - - Downloads - Allalaadimised - - - Ask for a destination each time - Küsi sihtkataloogi iga allalaadimise puhul - - - Use this destination: - Kasuta seda kataloogi: - - - Standard font: - Vaikimisi kirjatüüp: - - - Times 16 - Times 16 - - - Select... - Vali... - - - Courier 13 - Courier 13 + + + DownloadManager + + %n Download(s) + + %n Download + %n Downloads + - On application exit - Rakenduse sulgemisel + There are %1 downloads in progress +Do you want to quit anyway? + - - Enable Images - Näita pilte + + %n minutes remaining + + + + - - Tabs - Sakid + + %n seconds remaining + + + + - Select tabs and windows as they are created - Vali sakid ja aknad kui nad luuakse + bytes + baiti - Confirm when closing multiple tabs - Küsi kinnitust mitme saki sulgemisel + kB + kiB - On startup: - Programmi käivitamisel: + MB + MiB - Show my home page - Näita kodulehte + GB + + + + HistoryDialog - Show a blank page - Näita tühja lehte + Open + &Ava - Restore windows and tabs from last time - Taasta aknad ja sakid eelmisest korrast + Copy + &Kopeeri - Preferences - + Delete + K&ustuta + + + HistoryMenu - Home Page: - + Show All History + &Näita tervet ajalugu - View Images - + Clear History + &Unusta ajalugu - Keep Cookies Until: + Clear History... - Show only one close button instead of one for each tab + Do you want to clear the history? + + + HistoryModel - Use proxy server - + Title + Pealkiri - Host name: - + Address + Aadress + + + HistoryTreeModel - Preferred languages for viewing webpages in: - + Earlier Today + Varem täna - - Block Popup Windows - + + %n item(s) + + %n item + %n items + + + + JavaScriptEndorphinObject - Opening links + Welcome to Endorphin! - Links that want to open in a new window: + Endorphin Start - In a new selected tab in the current window + Search! - In a new tab in the current window + Search the web with - In the current tab + Search results provided by - Http (Secure) + About Endorphin + + + LanguageManager - Http (Transparent) + Choose language - Use ClickToFlash on flash plugins + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - Filter Tracking Cookies + No translation files are installed at %1. + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - + Open File + Ava fail - Quit the application when last tab is closed + OpenSearch - Enable network cache + Error - Maximum Size: + %1 is not a valid OpenSearch 1.1 description or is already on your list. - MB + You must have at least one search engine in here. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid + <strong>Description:</strong> %1 - Choose Directory... + <strong>Provides contextual suggestions</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Nimi - 1 day + Keywords + + + OpenSearchManager - 2 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 3 days - + Allow + Luba - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + Ei leitud + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + See fail ei ole XBEL versioon 1.0 vormingus. - User names and passwords - + Unknown title + Tundmatu pealkiri - Edit... + The file is not an OpenSearch 1.1 file. - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Otsi SettingsDialog - - Restart required - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - - Choose Directory @@ -2090,10 +954,6 @@ Do you want to ignore these errors?</qt> &Find &Otsi - - &View - &Vaade - Source of Page %1 @@ -2101,10 +961,6 @@ Do you want to ignore these errors?</qt> TabBar - - New &Tab - Uus &sakk - Duplicate Tab &Duplikeeri sakk @@ -2156,20 +1012,6 @@ Do you want to ignore these errors?</qt> Recently Closed Tabs &Viimati suletud sakid - - (Untitled) - (nimetu) - - - Do you really want to close this page? - Kas Te tõesti soovite selle lehekülje sulgeda? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Te olete seda lehekülge muutnud. Lehekülje sulgemisel muutused kaotatakse.Kas Te tõesti soovite selle lehekülje sulgeda? - Ctrl-] @@ -2190,10 +1032,6 @@ Do you really want to close this page? Loading... Laadimine... - - Loading %1% (%2 %3)... - - Finished loading @@ -2206,6 +1044,10 @@ Do you really want to close this page? Bookmark All Tabs + + Loading ... + + ToolbarSearch @@ -2225,10 +1067,6 @@ Do you really want to close this page? Suggestions - - Add '%1' - - UserAgentMenu @@ -2249,37 +1087,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - Viga lehekülje laadimisel: %1 - - - When connecting to: %1. - - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - - - - If the address is correct, try checking the network connection. - - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2330,38 +1137,6 @@ Do you really want to close this page? Search with... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/fi_FI.ts b/src/locale/fi_FI.ts index 18958b7f..7e1c52f3 100644 --- a/src/locale/fi_FI.ts +++ b/src/locale/fi_FI.ts @@ -3,10 +3,6 @@ AboutDialog - - About - Tietoja - Authors Tekijät @@ -15,129 +11,10 @@ License Lisenssi - - Lightweight WebKit-based web browser - Kevyt WebKit-pohjainen verkkoselain - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - - Close - Sulje - About %1 - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - - - AcceptLanguage - - Languages - Kielet - - - Languages: in order of preference: - Kielet mielekkyysjärjestyksessä: - - - Move &Up - Siirrä &ylös - - - Move &Down - Siirrä &alas - - - &Remove - &Poista - - - Add... - Lisää... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - Sääntö - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -145,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Lisää kirjanmerkki - - Type a name for the bookmark, and choose where to keep it. - Kirjoita nimi kirjanmerkille ja valitse minne se lisätään. - Url Url @@ -162,47 +35,6 @@ p, li { white-space: pre-wrap; } Lisää kansio - - AutoFillDialog - - Form Passwords - - - - Remove - Poista - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -229,18 +61,6 @@ p, li { white-space: pre-wrap; } New Folder Uusi kansio - - Bookmarks - Kirjanmerkit - - - &Remove - &Poista - - - Add Folder - Lisää kansio - BookmarksManager @@ -298,20 +118,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Lisää kirjanmerkki - - Name Change - Nimen muutos - - - Address Change - Osoitteen muutos - - - Error when loading html bookmarks: %1 - - Virhe ladattaessa html kirjanmerkkejä: %1 - - Name Change Undo bookmark title change @@ -334,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -347,6 +149,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -368,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Kirjanmerkkipalkki - Open Avaa @@ -392,17 +194,9 @@ p, li { white-space: pre-wrap; } Add Folder... Lisää kansio... - - Bookmarks - Kirjanmerkit - BrowserApplication - - (Change: %1 %2) - (Muuta: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -414,11 +208,7 @@ Haluatko lopettaa siitä huolimatta? Palautus epäonnistui - The saved session will not be restored because Arora crashed while trying to restore this session. - Tallennettua istuntoa ei palautettu koska Arora kaatui yrittäessään palauttaa tätä istuntoa. - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -452,14 +242,6 @@ Haluatko lopettaa siitä huolimatta? &Export Bookmarks... &Vie kirjanmerkkejä... - - P&rint Preview... - T&ulostuksen esikatselu... - - - &Print... - &Tulosta... - Private &Browsing... Yksityinen &selailu... @@ -508,10 +290,6 @@ Haluatko lopettaa siitä huolimatta? Find P&revious Etsi e&dellinen - - Prefere&nces... - Asetu&kset... - Ctrl+, @@ -630,14 +408,6 @@ Haluatko lopettaa siitä huolimatta? Clear Private Data - - Show &Network Monitor - Näytä &verkkomonitori - - - Enable Web &Inspector - Käytä Web &Inspectoria - &Help &Ohje @@ -683,11 +453,6 @@ Haluatko lopettaa siitä huolimatta? Hide Bookmarks Bar Piilota kirjanmerkkipalkki - - %1 - Arora - Page title and Browser name - - Open Web Resource Avaa web-tiedostoja @@ -696,32 +461,14 @@ Haluatko lopettaa siitä huolimatta? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Web-tiedostot (*.html *.htm *.svg *.png *.gif *.svgz);;Kaikki tiedostot (*.*) - - Print Document - Tulosta dokumentti - Are you sure you want to turn on private browsing? Oletko varma että haluat sulkea yksityisen selailun? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Kun yksityinen selailu on päällä, jotkut toiminnot liittyen yksityisyyteesi ovat pois päältä:<ul><li> Verkkosivuja ei lisätä sivuhistoriaan.</li><li>Tiedostot poistetaan automaattisesti Lataukset ikkunasta</li><li>Uusia evästeitä ei lisätä, eikä nykyisiin evästeisiin pääse käsiksi.</li><li>Sivujen kuvakkeita ei tallenneta, istuntoja ei tallenneta.</li><li>Hakuja ei lisätä ponnahdusikkuna-valikkoon hakulaatikossa.</li></ul>Kunnes suljet ikkunan, vois yhä napsauttaa Edellinen ja Seuraava painikkeita palataksesi verkkosivulle minkä olet avannut. - Are you sure you want to close the window? There are %1 tabs open Oletko varma että haluat sulkea ikkunan? Siinä on %1 välilehteä avoinna - - Web Inspector - - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Web Inspector toimii oikein vain sivuilla jotka on päivitetty sen käyttöön ottamisen jälkeen. -Haluatko päivittää kaikki sivut? - Stop loading the current page Lopeta nykyisen sivun lataaminen @@ -763,10 +510,6 @@ Haluatko päivittää kaikki sivut? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -779,10 +522,6 @@ Haluatko päivittää kaikki sivut? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -823,6 +562,11 @@ Haluatko päivittää kaikki sivut? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -853,14 +597,6 @@ Haluatko päivittää kaikki sivut? &Search History &Haut - - &Cookies - &Evästeet - - - C&ached Web Pages - &Välimuisti - Website &Icons Verkkosivujen &kuvakkeet @@ -875,1121 +611,325 @@ Haluatko päivittää kaikki sivut? - ClickToFlash - - Load - - + DownloadDialog - Load All - + Downloads + Lataukset - Add %1 to Whitelist + Downloading %1 + + + DownloadItem - Remove from Whitelist - + Save File + Tallenna tiedosto - Settings - + Download canceled: %1 + Lataus keskeytetty: %1 - Load Flash - + Error opening output file: %1 + Virhe avattaessa tiedostoa: %1 - - - ClickToFlashSettings - Whitelist sites - + Error saving: %1 + Virhe tallennettaessa: %1 - - - CookieExceptionsModel - Website - Verkkosivu + Network Error: %1 + Verkon virhe: %1 - Rule - Sääntö + ? + - Allow - Salli + %1 of %2 (%3/sec) - %4 + %1/%2 (%3/sek) %4 - Block - Estä + Download directory (%1) couldn't be created. + - Allow For Session - Salli istunnon ajaksi + %1 of %2 - Download Complete + - CookieModel - - Website - Verkkosivu - + DownloadManager - Name - Nimi + There are %1 downloads in progress +Do you want to quit anyway? + Käynnissä on %1 latausta +Haluatko lopettaa siitä huolimatta? - - Path - Polku + + %n Download(s) + + %n Lataus + %n Latausta + - - Secure - Turvallinen + + %n minutes remaining + + %n minuutti jäljellä + %n minuuttia jäljellä + - - Expires - Vanhenee + + %n seconds remaining + + %n sekunti jäljellä + %n sekuntia jäljellä + - Contents - Sisältö + bytes + tavua - true - tosi + kB + kt - false - epätosi + MB + Mt - Session cookie + GB - CookiesDialog + HistoryDialog - Cookies - Evästeet + Open + Avaa - &Remove - &Poista + Copy + Kopio - Remove &All Cookies - Poista &kaikki evästeet - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - Evästeiden poikkeukset - - - New Exception - Uusi poikkeus - - - Domain: - - - - Block - Estä - - - Allow For Session - Salli istunnon ajaksi - - - Allow - Salli - - - Exceptions - Poikkeukset - - - &Remove - &Poista - - - Remove &All - Poista &kaikki - - - - DownloadDialog - - Downloads - Lataukset - - - Clean up - Tyhjennä - - - 0 Items - 0 tiedostoa - - - Downloading %1 - - - - - DownloadItem - - Form - Lomake - - - Ico - Kuvake - - - Filename - Tiedostonimi - - - Try Again - Yritä uudestaan - - - Stop - Pysäytä - - - Open - Avaa - - - Save File - Tallenna tiedosto - - - Download canceled: %1 - Lataus keskeytetty: %1 - - - Error opening output file: %1 - Virhe avattaessa tiedostoa: %1 - - - Error saving: %1 - Virhe tallennettaessa: %1 - - - Network Error: %1 - Verkon virhe: %1 - - - seconds - sekunnit - - - - %n minutes remaining - - - %n minuutti jäljellä - - %n minuuttia jäljellä - - - - - %n seconds remaining - - - %n sekunti jäljellä - - %n sekuntia jäljellä - - - - %1 of %2 (%3/sec) %4 - %1/%2 (%3/sek) %4 - - - ? - - - - %1 of %2 - Stopped - %1/%2 - Pysäytetty - - - bytes - tavua - - - kB - kt - - - MB - Mt - - - %1 of %2 (%3/sec) - %4 - %1/%2 (%3/sek) %4 - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - There are %1 downloads in progress -Do you want to quit anyway? - Käynnissä on %1 latausta -Haluatko lopettaa siitä huolimatta? - - - %n Download(s) - - %n Lataus - %n Latausta - - - - %n minutes remaining - - %n minuutti jäljellä - %n minuuttia jäljellä - - - - %n seconds remaining - - %n sekunti jäljellä - %n sekuntia jäljellä - - - - bytes - tavua - - - kB - kt - - - MB - Mt - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - Avaa - - - Copy - Kopio - - - Delete - Poista - - - History - Historia - - - &Remove - &Poista - - - Remove &All - Poista &kaikki - - - - HistoryMenu - - Show All History - Näytä koko historia - - - Clear History... - Tyhjennä historia... - - - Clear History - Poista historia - - - Do you want to clear the history? - Haluatko poistaa historian? - - - - HistoryModel - - Title - Otsikko - - - Address - Osoite - - - - HistoryTreeModel - - Earlier Today - Aiemmin tänään - - - %n item(s) - - %n kohde - %n kohdetta - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - No translation files are installed. - Yhtään käännöstä ei ole asennettu. - - - Choose language - Valitse kieli - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Voit käyttää eri kieltä<br>kuin käyttöjärjestelmän oletus.</p><p>Ole hyvä ja valitse kieli mitä käytetään</p> - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Anna käyttäjätunnus ja salasana palvelimelle %2, sivuston viesti "%1"</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Yhdistä välityspalvelimeen "%1" käyttäen:</qt> - - - - SSL Errors - - SSL Virheet - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL virheet:<br/><br/><tt>%1</tt><ul><li>%2</li></ul> - -Haluatko sivuuttaa nämä virheet?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Varmenteet:<br/>%1<br/>Hyväksytkö kaikki nämä varmenteet?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - Nimi - - - Value - Arvo - - - - NetworkMonitorDialog - - Network Monitor - Verkkomonitori - - - Network Requests - Verkon pyynnöt - - - Request Headers - Pyynnön otsakkeet - - - Response Headers - Vastauksen otsakkeet - - - &Remove - &Poista - - - Remove &All Requests - Poista &kaikki pyynnöt - - - - OpenSearchDialog - - Open File - Avaa tiedosto - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Nimi - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - Tunnistautuminen vaaditaan - - - DUMMY ICON - - - - INTRO TEXT DUMMY - - - - Username: - Käyttäjätunnus: - - - Password: - Salasana: - - - - PlainTextEditSearch - - Not Found - Ei löytynyt - - - - ProxyDialog - - Proxy Authentication - Välityspalvelimen varmennus - - - Connect to proxy - Yhdistä välityspalvelimeen - - - Username: - Käyttäjätunnus: - - - Password: - Salasana: - - - - QObject - - The file is not an XBEL version 1.0 file. - Tiedosto ei ole XBEL versio 1.0 tiedosto. - - - Unknown title - Tuntematon otsikko - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Redirect: %1 - Uudelleenohjaus: %1 - - - Method - Menetelmä - - - Address - Osoite - - - Response - Vastaus - - - Length - Pituus - - - Content Type - Sisältötyyppi - - - Info - Tietoja - - - - SearchBanner - - Form - Lomake - - - Done - Valmis - - - Highlight All - - - - - SearchLineEdit - - Search - Haku - - - - Settings - - Preferences - Asetukset - - - General - Yleiset - - - On startup: - Käynnistettäessä: - - - Show my home page - Näytä kotisivuni - - - Show a blank page - Näytä tyhjä sivu - - - Restore windows and tabs from last time - Palauta ikkunat ja välilehdet viime kerralta - - - Home Page: - Kotisivu: - - - Set to current page - Käytä avointa sivua - - - Remove history items: - Poista historia: - - - After one day - Päivän jälkeen - - - After one week - Viikon jälkeen - - - After two weeks - Kahden viikon jälkeen - - - After one month - Kuukauden jälkeen - - - After one year - Vuoden jälkeen - - - Manually - Käsin - - - On application exit - Lopetettaessa - - - Downloads - Lataukset - - - Ask for a destination each time - Kysy kansiota joka kerta - - - Use this destination: - Käytä kansiota: - - - Appearance - Ulkoasu - - - Standard font: - Oletuskirjasinlaji: - - - Select... - Valitse... - - - Fixed-width font: - Tasalevyinen kirjasin: - - - Preferred languages for viewing webpages in: - Kieli, jolla sivut näytetään: - - - Privacy - Yksityisyys - - - Web Content - Sisältö - - - Block Popup Windows - Estä ponnahdusikkunat - - - Enable Plugins - Käytä liitännäisiä - - - Enable Javascript - Käytä Javascriptiä - - - View Images - Näytä kuvat - - - Cookies - Evästeet - - - Accept Cookies: - Hyväksy evästeet: - - - Always - Aina - - - Never - Ei ikinä - - - Only from sites you navigate to - Ainoastaan sivuilta joille menet - - - Exceptions... - Poikkeukset... - - - Keep Cookies Until: - Säilytä evästeet: - - - They expire - kunnes ne vanhenevat - - - I exit the application - kunnes selain suljetaan - - - At most 90 days - Korkeintaan 90 päivää - - - Cookies... - Evästeet... - - - Tabs - Välilehdet - - - Select tabs and windows as they are created - Valitse välilehdet ja ikkunat silloin kun ne luodaan - - - Confirm when closing multiple tabs - Varoita, kun yritän sulkea useita välilehtiä samanaikaisesti - - - Show only one close button instead of one for each tab - Näytä ainoastaan yksi sulkupainike sen sijaan, että jokaisella välilehdella olisi oma sulkupainike - - - Opening links - Avautuvat linkit - - - Links that want to open in a new window: - Avaa linkit jotka haluavat avautua uuteen ikkunaan: - - - In a new window - Uuteen ikkunaan - - - In a new selected tab in the current window - Uuteen valittuun välilehteen nykyisessä ikkunassa + Delete + Poista + + + HistoryMenu - In a new tab in the current window - Uuteen välilehteen nykyisessä ikkunassa + Show All History + Näytä koko historia - In the current tab - Nykyiseen välilehteen + Clear History... + Tyhjennä historia... - Open links from applications: - Avaa linkit: + Clear History + Poista historia - Proxy - Välityspalvelin + Do you want to clear the history? + Haluatko poistaa historian? + + + HistoryModel - Use proxy server - Käytä välityspalvelinta + Title + Otsikko - Type: - Tyyppi: + Address + Osoite + + + HistoryTreeModel - Socks5 - + Earlier Today + Aiemmin tänään - - Http (Secure) - Http (turvallinen) + + %n item(s) + + %n kohde + %n kohdetta + + + + JavaScriptEndorphinObject - Http (Transparent) - Http (läpinäkyvä) + Welcome to Endorphin! + - Host name: - Verkko-osoite: + Endorphin Start + - Port: - Portti: + Search! + - User Name: - Käyttäjätunnus: + Search the web with + - Password: - Salasana: + Search results provided by + - Advanced - Kehittyneet + About Endorphin + + + + LanguageManager - Style Sheet: - Tyylitiedosto: + Choose language + Valitse kieli - Use ClickToFlash on flash plugins - + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Voit käyttää eri kieltä<br>kuin käyttöjärjestelmän oletus.</p><p>Ole hyvä ja valitse kieli mitä käytetään</p> - Filter Tracking Cookies + No translation files are installed at %1. + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - + Open File + Avaa tiedosto - Quit the application when last tab is closed + OpenSearch - Enable network cache + Error - Maximum Size: + %1 is not a valid OpenSearch 1.1 description or is already on your list. - MB + You must have at least one search engine in here. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid + <strong>Description:</strong> %1 - Choose Directory... + <strong>Provides contextual suggestions</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Nimi - 1 day + Keywords + + + OpenSearchManager - 2 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 3 days - + Allow + Salli - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + Ei löytynyt + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + Tiedosto ei ole XBEL versio 1.0 tiedosto. - User names and passwords - + Unknown title + Tuntematon otsikko - Edit... + The file is not an OpenSearch 1.1 file. - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Haku SettingsDialog - - Restart required - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - - Choose Directory @@ -2017,18 +957,6 @@ Haluatko sivuuttaa nämä virheet?</qt> &Find &Etsi - - &View - &Katso - - - &Wrap lines - &Rivitys - - - Source of Page - Sivun lähdekoodi - Source of Page %1 @@ -2075,26 +1003,10 @@ Haluatko sivuuttaa nämä virheet?</qt> Saved Tabs Tallennetut välilehdet - - Do you really want to close this page? - Oletko varma että haluat sulkea tämän sivun? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Olet muokannut tätä sivua ja jos se suljetaan menetät muokkaukset. -Haluatko varmasti sulkea tämän sivun? - - Loading... Ladataan... - - Loading %1% (%2 %3)... - Ladataan %1 % (%2 %3)... - Finished loading Ladattu @@ -2135,6 +1047,10 @@ Haluatko varmasti sulkea tämän sivun? Bookmark All Tabs Lisää kaikki välilehdet kirjanmerkkeihin + + Loading ... + + ToolbarSearch @@ -2154,10 +1070,6 @@ Haluatko varmasti sulkea tämän sivun? Suggestions Ehdotukset - - Add '%1' - - UserAgentMenu @@ -2178,37 +1090,6 @@ Haluatko varmasti sulkea tämän sivun? - - WebPage - - Error loading page: %1 - Virhe ladattaessa sivua: %1 - - - When connecting to: %1. - Yhdistettäessä: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Tarkista osoite virheiden varalta, esim. "<b>ww</b>.arora-browser.org" oikean muodon sijaan "<b>www</b>.arora-browser.org" - - - If the address is correct, try checking the network connection. - Jos osoite on oikea, tarkista yhteytesi. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Jos tietokoneesi tai verkkosi on suojattu palomuurilla tai välityspalvelimella, tarkista että selaimella on pääsy verkkoon. - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2259,38 +1140,6 @@ Haluatko varmasti sulkea tämän sivun? Search with... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/fr_CA.ts b/src/locale/fr_CA.ts index 4a65caab..31530e52 100644 --- a/src/locale/fr_CA.ts +++ b/src/locale/fr_CA.ts @@ -3,10 +3,6 @@ AboutDialog - - About - À propos - Authors @@ -15,129 +11,10 @@ License - - Lightweight WebKit-based web browser - - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - - Close - - About %1 - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - - - AcceptLanguage - - Languages - - - - Languages: in order of preference: - - - - Move &Up - - - - Move &Down - - - - &Remove - - - - Add... - - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -145,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Ajouter un marque-page - - Type a name for the bookmark, and choose where to keep it. - Entrer un nom pour le marque-page et choisissez où le conserver. - Url @@ -162,47 +35,6 @@ p, li { white-space: pre-wrap; } Ajouter un dossier - - AutoFillDialog - - Form Passwords - - - - Remove - - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -217,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Nouveau dossier - - Bookmarks - Marque-pages - - - &Remove - &Retirer - - - Add Folder - Ajouter un dossier - Open in New Tab Ouvrir dans un nouvel onglet @@ -290,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Insérer un marque-page - - Name Change - Changement de nom - - - Address Change - Changement d'adresse - Bookmarks Bar @@ -328,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -341,6 +149,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -362,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Marque-page - Open Ouvrir @@ -386,10 +194,6 @@ p, li { white-space: pre-wrap; } Add Folder... - - Bookmarks - Marque-pages - BrowserApplication @@ -404,7 +208,7 @@ Voulez-vous tout de même quitter? - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -438,14 +242,6 @@ Voulez-vous tout de même quitter? &Export Bookmarks... &Exporter les marque-pages... - - P&rint Preview... - Ape&rçu avant impression... - - - &Print... - Im&pression - Private &Browsing... Navigation en mode privé @@ -482,18 +278,6 @@ Voulez-vous tout de même quitter? &Find &Rechercher - - &Find Next - Rechercher le &suivant - - - &Find Previous - Rechercher le p&récédent - - - &Preferences - &Préférences - Ctrl+, @@ -514,34 +298,6 @@ Voulez-vous tout de même quitter? &Stop A&rrêter - - Reload Page - &Recharger la page - - - &Make Text Bigger - Agrandir le texte - - - &Make Text Smaller - Réduire le texte - - - &Make Content Bigger - Agrandir la page - - - &Make Content Smaller - Réduire la page - - - &Make Text Normal - Réinitialiser la taile du texte - - - &Make Content Normal - Réinitialiser la taile de la page - Page S&ource Code s&ource de la page @@ -578,10 +334,6 @@ Voulez-vous tout de même quitter? &Bookmarks &Marque-pages - - Manage Bookmarks... - Gérer les marque-pages - Add Bookmark... Ajouter un marque-page... @@ -603,10 +355,6 @@ Voulez-vous tout de même quitter? Web Search - - Enable Web &Inspector - Activer l'&inspecteur Web - &Help &Aide @@ -615,10 +363,6 @@ Voulez-vous tout de même quitter? About &Qt À propos de &Qt - - About &Arora - À propos d'&Arora - Navigation @@ -639,19 +383,6 @@ Voulez-vous tout de même quitter? Hide Toolbar Masquer la barre d'outils - - Show Bookmarks bar - Afficher la barre de marque-pages - - - Hide Bookmarks bar - Masquer la barre de marque-pages - - - %1 - Arora - Page title and Browser name - - Open Web Resource Ouvrir un fichier Web @@ -660,35 +391,14 @@ Voulez-vous tout de même quitter? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Fichier Web (*.html *.htm *.svg *.png *.gif *.svgz);;Tous les fichiers (*.*) - - Print Document - Imprimer le document - Are you sure you want to turn on private browsing? Êtes-vous sûr de vouloir activer la navigation en mode privé? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttonsto return to the webpages you have opened. - <b>%1</b><br><br>Lorsque la navigation en mode privé est activée, certaines actions concernant votre vie privée seront désactivées:<ul><li> Les pages Web ne sont pas ajoutées à l'historique.</li><li> Les téléchargements sont automatiquement retiré de la fenêtre des téléchargements.</li><li> Les nouveaux fichiers témoins ne sont pas conservés et les fichiers témoins déjà existant ne sont pas accessibles.</li><li> Les icônes de sites Web et la session ne sont pas enregistrés.</li><li> Les recherches ne sont pas ajoutées dans la liste des recherches récentes.</li></ul>Jusqu'à la fermeture de l'écran, vous pouvez encore utiliser les boutons Page précédente et Page suivante. - Are you sure you want to close the window? There are %1 tabs open Êtes-vous sûr de vouloir fermer cette fenêtre? Il y a %1 onglets ouverts. - - Page Source of %1 - Code source de %1 - - - Web Inspector - Inspecteur Web - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - L'inspecteur Web ne fonctionne que pour les pages qui ont été chargées après son activation. Voulez-vous recharcher toutes les pages? - Stop loading the current page Arrêter le chargement de la page en cours @@ -800,10 +510,6 @@ Do you want to reload all pages? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -816,10 +522,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -860,6 +562,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -890,14 +597,6 @@ Do you want to reload all pages? &Search History Historique de recherche - - &Cookies - Fichiers témoins - - - C&ache - Mémoire cache - Website &Icons Icônes de sites Web @@ -910,1112 +609,326 @@ Do you want to reload all pages? &Cancel &Annuler - - C&ached Web Pages - - - ClickToFlash + DownloadDialog - Load - + Downloads + Téléchargements - Load All + Downloading %1 + + + DownloadItem - Add %1 to Whitelist - + Save File + Enregistrer le fichier - Remove from Whitelist - + Download canceled: %1 + Téléchargement annulé: %1 - Settings - Paramètres + Error saving: %1 + Erreur à l'enregistrement: %1 - Load Flash - + Network Error: %1 + Erreur réseau: %1 - - - ClickToFlashSettings - Whitelist sites + ? - - - CookieExceptionsModel - - Website - Site Web - - - Status - Statut - - Allow - Permettre + Error opening output file: %1 + - Block - Bloquer + %1 of %2 (%3/sec) - %4 + - Allow For Session - Permettre pour la session + Download directory (%1) couldn't be created. + - Rule + %1 of %2 - Download Complete - CookieModel - - Website - Site Web + DownloadManager + + %n Download(s) + + + + - Name - Nom + There are %1 downloads in progress +Do you want to quit anyway? + - - Path - Chemin d'accès - - - Secure - Sécure - - - Expires - Expire - - - Contents - Contenu - - - true - - - - false - - - - Session cookie - - - - - CookiesDialog - - Cookies - Fichiers témoins - - - &Remove - &Retirer - - - Remove &All Cookies - Retirer tous les fichiers témoins - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - Exceptions pour les fichiers témoins - - - New Exception - Nouvelle exception - - - Domain: - Domaine: - - - Block - Bloquer - - - Allow For Session - Permettre pour la session - - - Allow - Permettre - - - Exceptions - Exceptions - - - &Remove - Retirer - - - Remove &All - Tout retirer - - - - DownloadDialog - - Downloads - Téléchargements - - - Clean up - Vider la liste - - - 0 Items - 0 items - - - Downloading %1 - - - - - DownloadItem - - Form - Formulaire - - - Ico - - - - Filename - Nom de fichier - - - Try Again - Essayer à nouveau - - - Stop - Interrompre - - - Open - Ouvrir - - - Save File - Enregistrer le fichier - - - Download canceled: %1 - Téléchargement annulé: %1 - - - Error opening save file: %1 - Erreur à l'ouverture du fichier destination: %1 - - - Error saving: %1 - Erreur à l'enregistrement: %1 - - - Network Error: %1 - Erreur réseau: %1 - - - seconds - secondes - - - minutes - minutes - - - - %4 %5 remaining - - %4 %5 restant - - - %1 of %2 (%3/sec) %4 - %1 de %2 (%3/sec) %4 - - - ? - - - - %1 of %2 - Stopped - %1 de %2 - Interrompu - - - bytes - octets - - - kB - kO - - - MB - MO - - - Error opening output file: %1 - - - - %1 of %2 (%3/sec) - %4 - - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - 1 Download - 1 téléchargement - - - %1 Downloads - %1 téléchargements - - - %n Download(s) - - - - - - - There are %1 downloads in progress -Do you want to quit anyway? - - - - %n minutes remaining - - - - - - - %n seconds remaining - - - - - - - bytes - octets - - - kB - kO - - - MB - MO - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - Ouvrir - - - Copy - Copier - - - Delete - Supprimer - - - History - Historique - - - &Remove - &Retirer - - - Remove &All - Tout retirer - - - - HistoryMenu - - Show All History - Montrer tout l'historique - - - Clear History - Effacer l'historique - - - Clear History... - - - - Do you want to clear the history? - - - - - HistoryModel - - Title - Titre - - - Address - Adresse - - - - HistoryTreeModel - - Earlier Today - Plutôt aujourd'hui - - - %1 items - %1 items - - - %n item(s) - - - - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - Choose language - - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Entrer le nombre d'utilisateur et le mot de passe pour "%1" sur %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Se brancher au serveur mandataire "%1" en utilisant:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Erreurs SSL: -%1 -%2 -Voulez-vous ignorer ses erreurs? - - - Do you want to accept all these certificates? - Voulez-vous accepter tous ces certificats? - - - - SSL Errors - - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - Nom - - - - OpenSearchDialog - - Open File - Ouvrir un fichier - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Nom - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - Authentification requise - - - DUMMY ICON - - - - INTRO TEXT DUMMY - - - - Username: - Nom d'utilisateur: - - - Password: - Mot de passe: - - - - PlainTextEditSearch - - Not Found - Non trouvé - - - - ProxyDialog - - Proxy Authentication - Authentification au serveur mandataire - - - Connect to proxy - Se brancher au serveur mandataire - - - Username: - Nom d'utilisateur: - - - Password: - Mot de passe: - - - - QObject - - The file is not an XBEL version 1.0 file. - Ce fichier n'est pas un fichier XBEL version 1.0. - - - Unknown title - Titre inconnu - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Address - Adresse - - - - SearchBanner - - Form - Fromulaire - - - Done - Fermer - - - Highlight All - - - - - SearchLineEdit - - Search - Rechercher - - - - Settings - - Settings - Paramètres - - - General - Général - - - Home: - Page d'accueil: - - - Set to current page - Utiliser la page en cours - - - Remove history items: - Retirer les éléments de l'historique: - - - After one day - Après une journée - - - After one week - Après une semaine - - - After two weeks - Après 2 semaines - - - After one month - Après un mois - - - After one year - Après un an - - - Manually - Manuellement - - - Open links from applications: - Ouvrir les liens provenant d'applications: - - - In a tab in the current window - Dans un onglet dans la fenêtre en cours - - - In a new window - Dans une nouvelle fenêtre - - - Appearance - Apparence - - - Standard font: - Police par défaut: - - - Select... - Sélectionner... - - - Fixed-width font: - Police à espacement constant: - - - Privacy - Vie privée - - - Web Content - Contenu Web - - - Enable Plugins - Activer les plugiciels - - - Enable Javascript - Activer le Javascript - - - Cookies - Fichier témoins - - - Accept Cookies: - Accepter les fichiers témoins: - - - Always - Toujours - - - Never - Jamais - - - Only from sites you navigate to - Seulement des sites que vous visitez - - - Exceptions... - Exceptions... - - - Keep until: - Expiration: - - - They expire - Lorsqu'ils expirent - - - I exit the application - Lorsque je quitte l'application - - - At most 90 days - Au plus tard dans 90 jours - - - Cookies... - Fichiers témoins... - - - Proxy - Serveur mandataire - - - Enable proxy - Activer le serveur mandataire - - - Type: - Type: - - - Socks5 - - - - Host: - Hôte: - - - Port: - Port: - - - User Name: - Nom d'utilisateur: - - - Password: - Mot de passe: - - - Advanced - Avancé - - - Style Sheet: - Feuille de style: - - - Downloads - Téléchargements - - - Ask for a destination each time - Demander le dossier de destination à chaque fois - - - Use this destination: - Utiliser ce dossier + + %n minutes remaining + + + + - - On startup: - + + %n seconds remaining + + + + - Show my home page - + bytes + octets - Show a blank page - + kB + kO - Restore windows and tabs from last time - + MB + MO - On application exit + GB + + + HistoryDialog - Tabs - + Open + Ouvrir - Select tabs and windows as they are created - + Copy + Copier - Preferences - + Delete + Supprimer + + + HistoryMenu - Home Page: - + Show All History + Montrer tout l'historique - View Images - + Clear History + Effacer l'historique - Keep Cookies Until: + Clear History... - Show only one close button instead of one for each tab + Do you want to clear the history? + + + HistoryModel - Use proxy server - + Title + Titre - Host name: - + Address + Adresse + + + HistoryTreeModel - Preferred languages for viewing webpages in: - + Earlier Today + Plutôt aujourd'hui - - Block Popup Windows - + + %n item(s) + + + + + + + JavaScriptEndorphinObject - Opening links + Welcome to Endorphin! - Links that want to open in a new window: + Endorphin Start - In a new selected tab in the current window + Search! - In a new tab in the current window + Search the web with - In the current tab + Search results provided by - Http (Secure) + About Endorphin + + + LanguageManager - Http (Transparent) + Choose language - Use ClickToFlash on flash plugins + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - Filter Tracking Cookies + No translation files are installed at %1. + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - + Open File + Ouvrir un fichier - Quit the application when last tab is closed + OpenSearch - Enable network cache + Error - Maximum Size: + %1 is not a valid OpenSearch 1.1 description or is already on your list. - MB + You must have at least one search engine in here. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid + <strong>Description:</strong> %1 - Choose Directory... + <strong>Provides contextual suggestions</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Nom - 1 day + Keywords + + + OpenSearchManager - 2 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 3 days - + Allow + Permettre - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + Non trouvé + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + Ce fichier n'est pas un fichier XBEL version 1.0. - User names and passwords - + Unknown title + Titre inconnu - Edit... + The file is not an OpenSearch 1.1 file. - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Rechercher SettingsDialog - - Restart required - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - - Choose Directory @@ -2043,10 +956,6 @@ Do you want to ignore these errors?</qt> &Find &Rechercher - - &View - &Affichage - Source of Page %1 @@ -2054,10 +963,6 @@ Do you want to ignore these errors?</qt> TabBar - - New &Tab - Nouvel onglet - Duplicate Tab Dupliquer l'onglet @@ -2109,22 +1014,6 @@ Do you want to ignore these errors?</qt> Recently Closed Tabs Onglet récement fermés - - (Untitled) - (Sans titre) - - - Do you really want to close this page? - Voulez-vous vraiment fermer cette page? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Vous avez modifié cette page et en fermant l'onglet, vous allez perdre les modifications. -Voulez-vous vraiment fermer cette page? - - Ctrl-] @@ -2145,10 +1034,6 @@ Voulez-vous vraiment fermer cette page? Loading... - - Loading %1% (%2 %3)... - - Finished loading @@ -2161,6 +1046,10 @@ Voulez-vous vraiment fermer cette page? Bookmark All Tabs + + Loading ... + + ToolbarSearch @@ -2180,10 +1069,6 @@ Voulez-vous vraiment fermer cette page? Suggestions - - Add '%1' - - UserAgentMenu @@ -2204,37 +1089,6 @@ Voulez-vous vraiment fermer cette page? - - WebPage - - Error loading page: %1 - Erreur au chargement de la page: %1 - - - When connecting to: %1. - - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - - - - If the address is correct, try checking the network connection. - - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2285,38 +1139,6 @@ Voulez-vous vraiment fermer cette page? Search with... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/fr_FR.ts b/src/locale/fr_FR.ts index 4a322ab6..4e746119 100644 --- a/src/locale/fr_FR.ts +++ b/src/locale/fr_FR.ts @@ -11,146 +11,10 @@ License Licence - - Lightweight WebKit-based web browser - Navigateur web léger basé sur WebKit - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Fermer - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - About %1 À propos de %1 - - WebKit version: %1 - WebKit version %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Langues - - - Languages: in order of preference: - Langues dans l'ordre de préférence : - - - Move &Up - Mo&nter - - - Move &Down - Des&cendre - - - &Remove - Sup&primer - - - Add... - Ajouter... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Bloqué par la règle AdBlock: %1 - - - - AdBlockDialog - - Add Custom Rule - Ajouter une règle personnalisée - - - Learn more about writing rules... - En savoir plus sur l'écriture de règles... - - - Update Subscription - Mettre à jour l'abonnement - - - Browse Subscriptions... - Parcourir les abonnements... - - - Remove Subscription - Supprimer un abonnement - - - AdBlock Configuration - Configuration d'AdBlock - - - Enable AdBlock - Activer AdBlock - - - Action - Action - - - - AdBlockManager - - Custom Rules - Règles personnalisées - - - - AdBlockModel - - Rule - Règle - - - - AdBlockSchemeAccessHandler - - Subscribe? - S'abonner ? - - - Subscribe to this AdBlock subscription? -%1 - Souscrire à cet abonnement AdBlock ? -%1 - AddBookmarkDialog @@ -158,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Ajouter un marque-page - - Type a name for the bookmark, and choose where to keep it. - Entrez un nom pour le marque-page et choisissez où le conserver. - Url URL @@ -175,51 +35,6 @@ p, li { white-space: pre-wrap; } Ajouter un dossier - - AutoFillDialog - - Form Passwords - Mots de passe - - - Remove - Supprimer - - - Remove All - Supprimer tout - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Voulez-vous sauvegarder ce mot de passe ?</b><br> Pour voir les mots de passe que vous avez sauvegardé et en supprimer, ouvrez le panneau Complétion automatique dans les préférences. - - - Never for this site - Jamais pour ce site - - - Not now - Pas maintenant - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Site web - - - User Name - Nom d'utilisateur - - BookmarksDialog @@ -234,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Nouveau dossier - - Bookmarks - Marque-pages - - - &Remove - Supp&rimer - - - Add Folder - Ajouter un dossier - Open in New Tab Ouvrir dans un nouvel onglet @@ -337,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required L'outil htmlToXBel est requis - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - L'outil htmlToXBel, fourni avec Arora et nécessaire à l'importation de marque-pages HTML, n'est pas installé ou non disponible dans les chemins de recherche. - Loading Bookmark Charger des marque-pages @@ -351,6 +150,10 @@ p, li { white-space: pre-wrap; } Erreur lors du chargement des marque-pages HTML:%1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -392,10 +195,6 @@ p, li { white-space: pre-wrap; } Add Folder... Ajouter un dossier... - - Bookmarks - Marque-pages - BrowserApplication @@ -410,12 +209,8 @@ Voulez-vous tout de même quitter? Échec de la restauration - The saved session will not be restored because Arora crashed while trying to restore this session. - La session enregistrée ne sera pas restaurée car Arora s'est anormalement arrêté lors de la précedente tentative de restauration. - - - Arora crashed while trying to restore this session. Should I try again? - Arora s'est planté lors de la restauration de la session. Voulez-vous réessayer ? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -448,14 +243,6 @@ Voulez-vous tout de même quitter? &Export Bookmarks... &Exporter les marque-pages... - - P&rint Preview... - Ape&rçu avant impression... - - - &Print... - Im&pression... - Private &Browsing... Navi&gation privée... @@ -569,10 +356,6 @@ Voulez-vous tout de même quitter? Web Search Ctrl+K - - Enable Web &Inspector - Activer l'&inspecteur Web - &Help &Aide @@ -601,11 +384,6 @@ Voulez-vous tout de même quitter? Hide Toolbar Masquer la barre d'outils - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Ouvrir un fichier Web @@ -614,10 +392,6 @@ Voulez-vous tout de même quitter? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Fichier Web (*.html *.htm *.svg *.png *.gif *.svgz);;Tous les fichiers (*.*) - - Print Document - Imprimer le document - Are you sure you want to turn on private browsing? Êtes-vous sûr de vouloir activer la navigation privée? @@ -626,15 +400,6 @@ Voulez-vous tout de même quitter? Are you sure you want to close the window? There are %1 tabs open Êtes-vous sûr de vouloir fermer cette fenêtre ? Il y a %1 onglets ouverts - - Web Inspector - Inspecteur Web - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - L'inspecteur Web ne fonctionne que pour les pages qui ont été chargées après son activation. Voulez-vous recharcher toutes les pages ? - Stop loading the current page Arrêter le chargement de la page en cours @@ -676,10 +441,6 @@ Do you want to reload all pages? Find Nex&t &Poursuivre la recherche - - Prefere&nces... - Préféren&ces... - Show Menu Bar Afficher la barre de menus @@ -742,10 +503,6 @@ Do you want to reload all pages? Alt+Ctrl+B Alt+Ctrl+B - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> No new network cache is written to disk.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Lorsque la navigation privée est activé, certaines actions qui concernent votre vie privée seront désactivés:<ul><li> Les sites consultés ne seront pas ajoutés à l'historique.</li><li> Les téléchargements seront automatiquement supprimés de la fenêtre des téléchargements.</li><li> Les nouveaux cookies ne seront pas stockés, les cookies actuels ne peuvent pas être accédés.</li><li> Les icônes des sites web ne seront pas stockés, la session ne sera pas sauvegardé.</li><li> Les recherches effectuées ne seront pas ajoutés aux recherches récentes.</li><li>Le cache sera désactivé.</li></ul>Vous pourrez toujours utiliser les boutons Précédent et Suivant pour naviguer dans les pages que vous avez ouvert, jusqu'à ce que vous fermiez la fenêtre. - Options... Options... @@ -754,10 +511,6 @@ Do you want to reload all pages? Configure Search Engines... Configurer les moteurs de recherche... - - &Ad Block... - &AdBlock... - When private browsing is turned on, some actions concerning your privacy will be disabled: Lorsque la navigation privée est activée, certaines actions concernant votre vie privée seront désactivées: @@ -770,10 +523,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. Les téléchargements sont automatiquement supprimés du gestionnaire de téléchargement. - - New cookies are not stored, current cookies can't be accessed. - Aucun nouveau cookie n'est stocké, les cookies actuels ne sont pas accessibles. - Site icons won't be stored. Les icônes des sites web ne sont pas stockées. @@ -814,6 +563,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -844,10 +598,6 @@ Do you want to reload all pages? &Search History Historique de &Recherche - - &Cookies - &Cookies - Website &Icons &Icônes de sites web @@ -860,164 +610,6 @@ Do you want to reload all pages? &Cancel &Annuler - - C&ached Web Pages - C&ache Web - - - - ClickToFlash - - Load - Charger - - - Load All - Tout charger - - - Add %1 to Whitelist - Ajouter %1 à la liste blanche - - - Remove from Whitelist - Supprimer de la liste blanche - - - Settings - Paramètres - - - Load Flash - Charger Flash - - - - ClickToFlashSettings - - Whitelist sites - Sites en liste blanche - - - - CookieExceptionsModel - - Website - Site Web - - - Allow - Permettre - - - Block - Bloquer - - - Allow For Session - Permettre pour la session - - - Rule - Règle - - - - CookieModel - - Website - Site Web - - - Name - Nom - - - Path - Chemin d'accès - - - Secure - Sécurisé - - - Expires - Expire - - - Contents - Contenu - - - true - vrai - - - false - faux - - - Session cookie - Cookie de session - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Effacer - - - Remove &All Cookies - Effacer &Tous les Cookies - - - Add &Rule - Ajouter une &règle - - - - CookiesExceptionsDialog - - Cookie Exceptions - Exceptions pour les cookies - - - New Exception - Nouvelle exception - - - Domain: - Domaine: - - - Block - Bloquer - - - Allow For Session - Permettre pour la session - - - Allow - Permettre - - - Exceptions - Exceptions - - - &Remove - &Supp&rimer - - - Remove &All - &Tout supprimer - DownloadDialog @@ -1025,14 +617,6 @@ Do you want to reload all pages? Downloads Téléchargements - - Clean up - Vider la liste - - - 0 Items - 0 téléchargements - Downloading %1 @@ -1040,26 +624,6 @@ Do you want to reload all pages? DownloadItem - - Ico - Ico - - - Filename - Nom de fichier - - - Try Again - Essayer à nouveau - - - Stop - Interrompre - - - Open - Ouvrir - Save File Enregistrer le fichier @@ -1080,10 +644,6 @@ Do you want to reload all pages? ? ? - - %1 of %2 - Stopped - %1 de %2 - Interrompu - Error opening output file: %1 Erreur à l'ouverture du fichier:   %1 @@ -1148,64 +708,25 @@ Voulez-vous tout de même quitter? - FileAccessReply + HistoryDialog - No Error - Pas d'erreurs + Open + Ouvrir - Error opening: %1: No such file or directory - Erreur lors de l'ouverture de %1: le fichier ou répertoire n'existe pas + Copy + Copier - Unable to read %1 - Impossible de lire %1 + Delete + Supprimer + + + HistoryMenu - Contents of %1 - Contenu de %1 - - - %1 KB - %1 ko - - - Show Hidden Files - - - - - HistoryDialog - - Open - Ouvrir - - - Copy - Copier - - - Delete - Supprimer - - - History - Historique - - - &Remove - Supp&rimer - - - Remove &All - &Tout supprimer - - - - HistoryMenu - - Show All History - Montrer tout l'historique + Show All History + Montrer tout l'historique Clear History @@ -1246,29 +767,29 @@ Voulez-vous tout de même quitter? - JavaScriptAroraObject + JavaScriptEndorphinObject - Welcome to Arora! - Bienvenue sur Arora! + Welcome to Endorphin! + - Arora Start - Démarrage de Arora + Endorphin Start + Search! - Recherche! + - Search results provided by - Résultats de recherche fournis par + Search the web with + - About Arora - A propos d'Arora + Search results provided by + - Search the web with + About Endorphin @@ -1282,58 +803,11 @@ Voulez-vous tout de même quitter? <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> <p>Vous pouvez utiliser une langue différente de<br>celle du système d'exploitation par défaut.</p><p>Veuillez choisir la langue à utiliser.</p> - - No translation files are installed. - Aucun fichier de traduction n'est installé. - No translation files are installed at %1. Aucun fichier de traduction n'est installé à %1. - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Entrez le nom d'utilisateur et le mot de passe pour "%1" sur %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Se connecter au serveur mandataire "%1" en utilisant:</qt> - - - - SSL Errors - - Erreurs SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Erreurs SSL:<br/><br/>pour: <tt>%1</tt><ul><li>%2</li></ul> - -Voulez-vous ignorer ces erreurs?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certificats: <br/>%1<br/>Voulez-vous accepter ces certificats?</qt> - - - Issuer: %1 - Émetteur: %1 - - - Not valid before: %1 - Invalide avant: %1 - - - Valid until: %1 - Valide jusqu'à: %1 - - - Alternate Names: - Noms alternatifs: - - OpenSearchDialog @@ -1356,26 +830,6 @@ Voulez-vous ignorer ces erreurs?</qt> You must have at least one search engine in here. Vous devez avoir au moins un moteur de recherche ici. - - OpenSearch Manager - Gestionnaire OpenSearch - - - &Restore Defaults - &Réglages par défaut - - - &Delete - Supp&rimer - - - &Add - &Ajouter - - - &Close - &Fermer - OpenSearchEngineModel @@ -1408,26 +862,18 @@ Voulez-vous ignorer ces erreurs?</qt> - PasswordDialog - - Authentication Required - Authentification requise - + PermissionBar - DUMMY ICON - - - - INTRO TEXT DUMMY - + Allow + Permettre - Username: - Nom d'utilisateur: + Deny + - Password: - Mot de passe: + %1 wants to %2. + @@ -1437,25 +883,6 @@ Voulez-vous ignorer ces erreurs?</qt> Aucun résultat - - ProxyDialog - - Proxy Authentication - Authentification du serveur mandataire - - - Connect to proxy - Connexion au serveur mandataire - - - Username: - Nom d'utilisateur: - - - Password: - Mot de passe: - - QObject @@ -1470,398 +897,40 @@ Voulez-vous ignorer ces erreurs?</qt> The file is not an OpenSearch 1.1 file. Ce fichier n'est pas un fichier OpenSearch 1.1. - - - SearchBanner - - Done - Fermer - - - Highlight All - Surligner tous - - - - SearchLineEdit - - Search - Rechercher - - - - Settings - - General - Général - - - Set to current page - Utiliser la page en cours - - - Remove history items: - Retirer les éléments de l'historique: - - - After one day - Après une journée - - - After one week - Après une semaine - - - After two weeks - Après deux semaines - - - After one month - Après un mois - - - After one year - Après un an - - - Manually - Manuellement - - - Open links from applications: - Ouvrir les liens provenant d'applications: - - - In a new window - Dans une nouvelle fenêtre - - - Appearance - Apparence - - - Standard font: - Police par défaut: - - - Select... - Sélectionner... - - - Fixed-width font: - Police à espacement constant: - - - Privacy - Vie privée - - - Web Content - Contenu Web - - - Enable Plugins - Activer les Plugins - - - Enable Javascript - Activer le Javascript - - - Cookies - Cookies - - - Accept Cookies: - Accepter les cookies: - - - Always - Toujours - - - Never - Jamais - - - Only from sites you navigate to - Seulement des sites que vous visitez - - - Exceptions... - Exceptions... - - - They expire - Lorsqu'ils expirent - - - I exit the application - Lorsque je quitte l'application - - - At most 90 days - Au plus tard dans 90 jours - - - Cookies... - Cookies... - - - Proxy - Proxy - - - Type: - Type: - - - Socks5 - Socks5 - - Port: - Port: - - - User Name: - Nom d'utilisateur: - - - Password: - Mot de passe: - - - Advanced - Avancé - - - Style Sheet: - Feuille de style: - - - Downloads - Téléchargements - - - Ask for a destination each time - Demander le dossier de destination à chaque fois - - - Use this destination: - Utiliser ce dossier: - - - On startup: - Au démarrage: - - - Show my home page - Afficher ma page d'accueil - - - Show a blank page - Afficher une page blanche - - - Restore windows and tabs from last time - Restaurer les fenêtres et les onglets de la session précédente - - - On application exit - A la sortie de l'application - - - Tabs - Onglets - - - Select tabs and windows as they are created - Sélectionner les onglets et les fenêtres comme ils ont été créés - - - Preferences - Préférences - - - Home Page: - Page d'accueil: - - - View Images - Afficher les images - - - Keep Cookies Until: - Garder les cookies jusqu'à : - - - Show only one close button instead of one for each tab - Afficher uniquement un bouton de fermeture à la place d'un sur chaque onglet - - - Use proxy server - Utiliser le serveur proxy - - - Host name: - Nom de l'hôte: - - - Preferred languages for viewing webpages in: - Langues préférées pour visualiser les pages web: - - - Block Popup Windows - Bloquer les fenêtres popup - - - Opening links - Ouvrir les liens - - - Links that want to open in a new window: - Liens voulant s'ouvrir dans une nouvelle fenêtre: - - - In a new selected tab in the current window - Dans un nouvel onglet au premier plan dans la fenêtre courante - - - In a new tab in the current window - Dans un nouvel onglet en arrière-plan dans la fenêtre courante - - - In the current tab - Dans l'onglet courant - - - Http (Secure) - Http (Sécurisé) - - - Http (Transparent) - Http (Transparent) - - - Use ClickToFlash on flash plugins - Utiliser ClickToFlash pour les plugins flash - - - Filter Tracking Cookies - Filtrer les cookies traceurs - - - Confirm when closing multiple tabs or windows - Demander confirmation lors de la fermeture de plusieurs onglets ou fenêtres - - - Quit the application when last tab is closed - Quitter l'application quand le dernier onglet est fermé - - - Enable network cache - Activer le cache réseau - - - Maximum Size: - Taille maximum : - - - MB - Mo - - - Use the default search engine as fallback when the URL given by the user is invalid - Utiliser le moteur de recherche par défaut en secours quand l'URL donnée par l'utilisateur est invalide - - - Choose Directory... - Choisir le répertoire... - - - A cookie session ends: - Un cookie de session se termine: - - - When I exit the application - Quand je ferme l'application - - - 1 day - Après 1 jour - - - 2 days - Après 2 jours - - - 3 days - Après 3 jours - - - 7 days - Après 7 jours - - - 30 days - Après 30 jours - - - AutoFill - Complétion automatique - - - AutoFill web forms: - Formulaires complétés automatiquement: - - - User names and passwords - Noms d'utilisateur et mots de passe - - - Edit... - Édition... - - - Browse... - Parcourir... - - - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Redémarrage requis - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - La configuration du cache réseau a changée. Pour que ces changements soient pris en compte, le navigateur doit être redémarrer. + Search + Rechercher + + + SettingsDialog Choose Directory Choisir le répertoire @@ -1889,14 +958,6 @@ Voulez-vous ignorer ces erreurs?</qt> &Find &Rechercher - - &View - &Affichage - - - &Wrap lines - Retours à la ligne &statiques - Source of Page %1 Source de la page %1 @@ -1955,18 +1016,6 @@ Voulez-vous ignorer ces erreurs?</qt> Recently Closed Tabs Onglets récemment fermés - - Do you really want to close this page? - Voulez-vous vraiment fermer cette page? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Vous avez modifié cette page et en fermant l'onglet, vous allez perdre les modifications. -Voulez-vous vraiment fermer cette page? - - Ctrl-] Ctrl-] @@ -1987,10 +1036,6 @@ Voulez-vous vraiment fermer cette page? Loading... Chargement... - - Loading %1% (%2 %3)... - Chargement à %1% (%2 %3)... - Finished loading Terminé @@ -2003,6 +1048,10 @@ Voulez-vous vraiment fermer cette page? Bookmark All Tabs Ajouter tous les onglets aux marque-pages + + Loading ... + + ToolbarSearch @@ -2018,14 +1067,6 @@ Voulez-vous vraiment fermer cette page? Suggestions Suggestions - - Add '%1' - Ajouter '%1' - - - Configure Search Engines... - Configurer les moteurs de recherche... - Clear Recent Searches Effacer les recherches récentes @@ -2050,37 +1091,6 @@ Voulez-vous vraiment fermer cette page? - - WebPage - - Error loading page: %1 - Erreur au chargement de la page: %1 - - - When connecting to: %1. - Durant la connection à: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Vérifiez que vous n'avez pas commis d'erreurs dans l'adresse tel que <b>ww</b>.arora-browser.org à la place de <b>www</b>.arora-browser.org - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy, vérifiez que votre navigateur à le droit d'accéder au réseau. - - - If the address is correct, try checking the network connection. - Si l'adresse est correcte, vérifiez votre connexion au réseau. - - - Resending POST request - Renvoi d'une requête POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Afin d'afficher le site, la requête ainsi que toutes les données doivent être réenvoyés, ce qui peut conduire à un comportement innatendu du site, par exemple la même action peut être exécuté une nouvelle fois. Continuer quand même ? - - WebView @@ -2131,38 +1141,6 @@ Voulez-vous vraiment fermer cette page? Search with... Chercher avec... - - Add to the toolbar search - Ajouter à la barre de recherche - - - Method not supported - Méthode non supportée - - - %1 method is not supported. - La méthode %1 n'est pas supporté. - - - Search engine - Moteur de recherche - - - Choose the desired search engine - Choisir le moteur de recherche voulu - - - Engine name - Nom du moteur - - - Type in a name for the engine - Insérer un nom pour le moteur - - - Block Image - Bloquer l'image - WebViewSearch diff --git a/src/locale/he_IL.ts b/src/locale/he_IL.ts index 1b2f4e92..18df6467 100644 --- a/src/locale/he_IL.ts +++ b/src/locale/he_IL.ts @@ -3,10 +3,6 @@ AboutDialog - - About - אודות - Authors כותבים @@ -15,158 +11,10 @@ License רישיון - - Lightweight WebKit-based web browser - דפדפן רשת קליל מבוסס WebKit - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body dir="RTL" style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">כל הזכויות שמורות © 2007-2008 Aaron Dewes &lt;‏<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - סגור - About %1 אודות %1 - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">כל הזכויות שמורות © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - גרסת WebKit: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">כל הזכויות שמורות © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - שפות - - - Languages: in order of preference: - שפות: בסדר המועדף: - - - Move &Up - &מעלה - - - Move &Down - מ&טה - - - &Remove - &הסר - - - Add... - הוסף... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - נחסם על ידי חוק: %1 - - - - AdBlockDialog - - Add Custom Rule - הוסף חוק מותאם אישית - - - Learn more about writing rules... - מידע נודף אודות כתיבת חוקים... - - - Update Subscription - עדכן רישום - - - Browse Subscriptions... - עדיין ברישומים... - - - Remove Subscription - הסר רישום - - - AdBlock Configuration - תצורת AdBlock - - - Enable AdBlock - אפשר AdBlock - - - Action - פעולה - - - - AdBlockManager - - Custom Rules - חוקים מותאמים אישית - - - - AdBlockModel - - Rule - חוק - - - - AdBlockSchemeAccessHandler - - Subscribe? - רישום? - - - Subscribe to this AdBlock subscription? -%1 - האים להירשם לחוק AdBlock? -%1 - AddBookmarkDialog @@ -174,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark הוסף סימנית - - Type a name for the bookmark, and choose where to keep it. - כתוב שם עבור הסימנית ובחר היכן לשמור אותה. - Url כתובת @@ -191,51 +35,6 @@ p, li { white-space: pre-wrap; } הוסף תיקייה - - AutoFillDialog - - Form Passwords - ססמאות של טפסים - - - Remove - הסר - - - Remove All - הסר הכל - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>האם ברצונך לשמור את הססמה הזאת?<b><br> לעיון בססמאות השמורות, ובכדי למחוק אותן, אנא פתח את חלון ההגדרות בלשונית המילוי האוטומטי. - - - Never for this site - לעולם לא עבור אתר זה - - - Not now - לא כעת - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - אתר - - - User Name - שם משתמש - - BookmarksDialog @@ -254,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder תיקייה חדשה - - Bookmarks - סימניות - - - &Remove - ה&סר - - - Add Folder - הוסף תיקייה - Edit Name ערוך שם @@ -295,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File פתח קובץ - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 הייבוא של %1 הסתיים @@ -327,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark ייבוא של סימניות - - Name Change - שנה שם - - - Address Change - שנה כתובת - Bookmarks Bar סרגל סימניות @@ -365,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required נדרש הכלי htmlToXBell - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - הכלי htmlToXBel המופץ עם הדפדפן Arora נדרש בכדי לייבא סימניות HTML, ונראה כי הוא לא מותקן או לא זמין בנתיב החיפוש PATH. - Loading Bookmark טוען סימנייה @@ -378,6 +149,10 @@ p, li { white-space: pre-wrap; } שגיאה בעת טעינת סימניות: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -399,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - סימניות - Open פתח @@ -423,17 +194,9 @@ p, li { white-space: pre-wrap; } Add Folder... הוסף תיקייה... - - Bookmarks - סימניות - BrowserApplication - - (Change: %1 %2) - (שינוי %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -445,12 +208,8 @@ Do you want to quit anyway? השחזרור נכשל - The saved session will not be restored because Arora crashed while trying to restore this session. - אין אפשרות לשחזר את ההפעלה השמורה כיוון ש־Arora קרס בזמן השיחזור של ההפעלה. - - - Arora crashed while trying to restore this session. Should I try again? - היישום קרס בעת ניסיון השחזור של ההפעלה. האם לנסות שוב? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -483,14 +242,6 @@ Do you want to quit anyway? &Export Bookmarks... יי&צא סימניות... - - P&rint Preview... - ת&צוגת הדפסה... - - - &Print... - &הדפס... - Private &Browsing... &גלישה מאובטחת... @@ -535,10 +286,6 @@ Do you want to quit anyway? Find P&revious חפש &קודם - - Prefere&nces... - &הגדרות... - Ctrl+, Ctrl+, ‎ @@ -555,10 +302,6 @@ Do you want to quit anyway? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -571,18 +314,6 @@ Do you want to quit anyway? &Reload Page &רענן עמוד - - Make Text &Bigger - &הגדל גופן - - - Make Text &Normal - גופן &רגיל - - - Make Text &Smaller - ה&קטן גופן - Page S&ource &הצג מקור המסמך @@ -619,10 +350,6 @@ Do you want to quit anyway? &Bookmarks &סימניות - - Manage Bookmarks... - ניהול סימניות... - Add Bookmark... הוסף סימנייה... @@ -653,10 +380,6 @@ Do you want to quit anyway? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - &אפשר סורק רשת - &Help &עזרה @@ -665,10 +388,6 @@ Do you want to quit anyway? About &Qt &אודות Qt - - About &Arora - א&ודות Arora - Navigation ניווט @@ -697,15 +416,6 @@ Do you want to quit anyway? Hide Bookmarks Bar הסתר סרגל סימניות - - Arora - Arora - - - %1 - Arora - Page title and Browser name - ‏Arora‏ - %1 - Open Web Resource פתח משאב רשת @@ -714,37 +424,14 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) משאב רשת (*.html *.htm *.svg *.png *.gif *.svgz);; כל הקבצים (*.*) - - Print Document - הדפס מסמך - Are you sure you want to turn on private browsing? האם באמת ברצונך להפעיל גלישה מאובטחת? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <span dir="rtl"><b>%1</b><br><br>כאשר מופעלת גלישה מאובטחת כמה פעולות הקשורות לפרטיות שלך לא יופעלו:<ul dir="rtl"><li> דפים לא נוספים להסטוריית הגלישה.</li><li> פריטים נמחקים באופן אוטומטי מרשימת ההורדות.</li><li> עוגיות חדשות לא נשמרות ואין אפשרות לגשת לעוגיות ישנות.</li><li> סמלים של אתרים לא נשמרים וההפעלה לא תישמר.</li><li> חיפושים לא מתווספים לתפריט המוקפץ של היסטוריית החיפוש.</li></ul>עד שתסגור את החלון, באפשרותך ללחוץ על כפתורי הניווט "קדימה" ו־"אחורה" לחזרה לעמודים שביקרת בהם. -</span> - Are you sure you want to close the window? There are %1 tabs open האם אתה באמת ברצונך לסגור את החלון? ישנן %1 כרטיסיות פתוחות - - Page Source of %1 - קוד המקור של %1 - - - Web Inspector - סורק רשת - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - סורק הרשת יעבוד נכון רק עבור דפים שנטענו אחרי ההפעלה שלו. -האם ברצונך לרענן את כל הדפים? - Stop loading the current page עצור את טעינת הדף הנוכחי @@ -757,11 +444,6 @@ Do you want to reload all pages? Downloads הורדות - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - Switch application language שנה את שפת היישום @@ -832,10 +514,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. פריטים מוסרים באופן אוטומטי מחלון ההורדות. - - New cookies are not stored, current cookies can't be accessed. - עוגיות חדשות לא נשמרות, אין אפשרות לגשת אל עוגיות נוכחיות. - Site icons won't be stored. סמלים של אתרים לא נשמרים. @@ -868,10 +546,6 @@ Do you want to reload all pages? Configure Search Engines... הגדרת מנועי חיפוש... - - &Ad Block... - &חסימת פרסומות - AdBlock - User Agent @@ -888,6 +562,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -918,14 +597,6 @@ Do you want to reload all pages? &Search History הסיטוריית &חיפוש - - &Cookies - &עוגיות - - - C&ached Web Pages - דפי אינטרנט ב&מטמון - Website &Icons סמלים של &אתרים @@ -940,1114 +611,325 @@ Do you want to reload all pages? - ClickToFlash - - Load - טען - + DownloadDialog - Load All - טען הכל + Downloads + הורדות - Add %1 to Whitelist - הוסף %1 לרשימה הלבנה + Downloading %1 + + + + DownloadItem - Remove from Whitelist - הסר מהרשימה הלבנה + Save File + שמור קובץ - Settings - הגדרות + Download canceled: %1 + ההורדה הופסקה: %1 - Load Flash - טען פלאש + Error opening output file: %1 + ארעה שגיאה בעת פתיחת קובץ הפלט: %1 - - - ClickToFlashSettings - Whitelist sites - אתרים ברשימה לבנה + Error saving: %1 + ארעה שגיאה בעת השמירה: %1 - - - CookieExceptionsModel - Website - אתר אינטרנט + Network Error: %1 + ארעה שגיאות רשת: %1 - Rule - חוק + ? + ? - Allow - אפשר + %1 of %2 (%3/sec) - %4 + %1 מתוך %2 (%3/שנייה) - %4 - Block - חסום + Download directory (%1) couldn't be created. + אין אפשרות ליצור את תיקיית ההורדה (%1). - Allow For Session - אפשר להפעלה נוכחית + %1 of %2 - Download Complete + - CookieModel - - Website - כתובת - - - Name - שם + DownloadManager + + %n Download(s) + + הורדה אחת + %n הורדות + - Path - נתיב + There are %1 downloads in progress +Do you want to quit anyway? + ישנן %1 הודרות פעילות. +האם לצאת בכל זאת? - - Secure - מאובטח + + %n minutes remaining + + חסרה דקה + חסרות %n דקות + - - Expires - תאריך תפוגה + + %n seconds remaining + + חסרה שנייה + חסרות %n שניות + - Contents - תוכן + bytes + בתים - true - true + kB + ק"ב - false - false + MB + מ"ב - Session cookie - עוגיית ההפעלה + GB + ג"ב - CookiesDialog - - Cookies - עוגיות - + HistoryDialog - &Remove - &מחק + Open + פתח - Remove &All Cookies - מחק את &כל העוגיות + Copy + העתק - Add &Rule - הוסף &חוק + Delete + מחק - CookiesExceptionsDialog - - Cookie Exceptions - עוגיות יוצאות מן הכלל - - - New Exception - יוצא מן הכלל חדש - - - Domain: - מתחם: - - - Block - בלוק - - - Allow For Session - אפשר להפעלה הנוכחית - - - Allow - אפשר - - - Exceptions - יוצרים מן הכלל - - - &Remove - ה&סר - - - Remove &All - &הסר הכל - - - - DownloadDialog - - Downloads - הורדות - - - Clean up - נקה - - - 0 Items - 0 פריטים - - - &OK - &אישור - - - Downloading %1 - - - - - DownloadItem - - Form - ממקום - - - Ico - Ico - - - Filename - שם קובץ - - - Try Again - נסה שוב - - - Stop - עצור - - - Open - פתח - - - Save File - שמור קובץ - - - Download canceled: %1 - ההורדה הופסקה: %1 - - - Error opening output file: %1 - ארעה שגיאה בעת פתיחת קובץ הפלט: %1 - - - Error saving: %1 - ארעה שגיאה בעת השמירה: %1 - - - Network Error: %1 - ארעה שגיאות רשת: %1 - - - seconds - שניות - - - - %n minutes remaining - - נשארו עוד %n שניות - - - - - - %n seconds remaining - - נשארו עוד %n דקות - - - - - %1 of %2 (%3/sec) %4 - %1 מתוך %2 (%3 קס"ש) %2 - - - ? - ? - - - %1 of %2 - Stopped - %1 מתוך %2 - נעצר - - - bytes - בתים - - - kB - ק"ב - - - MB - מ"ב - - - %1 of %2 (%3/sec) - %4 - %1 מתוך %2 (%3/שנייה) - %4 - - - Download directory (%1) couldn't be created. - אין אפשרות ליצור את תיקיית ההורדה (%1). - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - הורדה אחת - %n הורדות - - - - There are %1 downloads in progress -Do you want to quit anyway? - ישנן %1 הודרות פעילות. -האם לצאת בכל זאת? - - - %n minutes remaining - - חסרה דקה - חסרות %n דקות - - - - %n seconds remaining - - חסרה שנייה - חסרות %n שניות - - - - bytes - בתים - - - kB - ק"ב - - - MB - מ"ב - - - GB - ג"ב - - - - FileAccessReply - - No Error - אין שגיאה - - - Error opening: %1: No such file or directory - ארעה שגיאה בעת הפתיחה: %1 : אין קובץ או ספרייה - - - Unable to read %1 - אין אפשרות לקרוא את %1 - - - Contents of %1 - התוכן של %1 - - - %1 KB - %1 ק"ב - - - Show Hidden Files - - - - - HistoryDialog - - Open - פתח - - - Copy - העתק - - - Delete - מחק - - - History - היסטוריה - - - &Remove - ה&סר - - - Remove &All - &הסר הכל - - - - HistoryMenu - - Show All History - הצג את כל ההסטוריה - - - Clear History... - מחק את ההיסטוריה... - - - Clear History - מחק את ההיסטוריה - - - Do you want to clear the history? - האם ברצונך למחוק את ההיסטוריה? - - - - HistoryModel - - Title - כותרת - - - Address - כתובת - - - - HistoryTreeModel - - Earlier Today - מוקדם היום - - - %n item(s) - - פריט אחד - %n פריטים - - - - - JavaScriptAroraObject - - Welcome to Arora! - Please put RLE in the beginning of the translation and RLM+PDF at the end. The PushDirectionFlag is needed because of the Right(to)LftEmbeding at the beginning, and the Right(to)Leftmark is needed, to put the ! and the right of the arora name. - -Don't ask why next time, ok? :) - ‫ברוך בואך אל Arora!‏‬ - - - Arora Start - דף ההפעלה של Arora - - - Search! - חפש! - - - Search results provided by - תוצאות החיפוש מסופקות על ידי - - - About Arora - אודות Arora - - - Search the web with - - - - - LanguageManager - - Choose language - בחר שפה - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>ניתן להפעיל את היישום עם ממשק בשפה שונה <br>מזאת של מערכת ההפעלה.</p><p>אנא בחר את השפה לשימוש</p> - - - No translation files are installed at %1. - לא מותקנים קבצי תרגום בתיקיות %1. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>הכנס את שם המשתמש והססמה עבור "%1" באתר %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>מתחבר לשרת מתווך "%1" באמצעות:<qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - שגיאות SSL:<div dir="ltr">%1 -%2 -</div> -האם ברצונך להתעלם מהשגיאות הללו? - - - Do you want to accept all these certificates? - האם ברצונך לקבל את האישורים הללו? - - - - SSL Errors - - שגיאות SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>שגיאות SSL:<br/><br/> עבור: <tt>%1</tt><ul><li>%2</li></ul> - -האם ברצונך להתעלם מהשגיאות הללו?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>תעודות:<br/>%1<br/>האם ברצונך לקבל את כל התעודות הללו?</qt> - - - Issuer: %1 - מנפיק: %1 - - - Not valid before: %1 - לא תקין לפני: %1 - - - Valid until: %1 - תקין עד: %1 - - - Alternate Names: - שמות נוספים: - - - - NetworkMonitor - - Name - שם - - - - OpenSearchDialog - - Open File - פתח קובץ - - - OpenSearch - OpenSearch - - - Error - שגיאה - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 הוא לא תיאור תקין של OpenSearch 1.1 או הוא כבר ברשימה שלך. - - - You must have at least one search engine in here. - חייב להכיל לפחות מנוע חיפוש אחד. - - - OpenSearch Manager - מנהל OpenSearch - - - &Restore Defaults - &שחזר ברירות מחדל - - - &Delete - &מחק - - - &Add - &הוסף - - - &Close - &סגור - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>תיאור:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - רשימה מופרדת פסיקים של מילות המפתח שייתכן נכנסו במיקום שלאחריה מונחי החיפוש של מנוע זה - - - Name - שם - - - Keywords - מילות מפתח - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - האם ברצונך להוסיף את המנוע הבא לרשימה של מנוע החיפוש? <br /><br />שם: %1<br />מחפש בתוך: %2 - - - - PasswordDialog - - Authentication Required - נדרש אימות - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - שם משתמש: - - - Password: - ססמה: - - - - PlainTextEditSearch - - Not Found - לא נמצא - - - - ProxyDialog - - Proxy Authentication - אימות שאת מתווך - - - ICON - ICON - - - Connect to proxy - התחבר לשרת מתווך - - - Username: - שם משתמש: - - - Password: - ססמה: - - - - QObject - - The file is not an XBEL version 1.0 file. - הקובץ הוא לא קובץ XBEL מגרסה 1.0. - - - Unknown title - כותרת לא ידועה - - - The file is not an OpenSearch 1.1 file. - הקובץ הוא לא קובץ של OpenSearch 1.1. - - - - RequestModel - - Address - כתובת - - - - SearchBanner - - Form - מאת - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - סיים - - - Highlight All - סמן הכל - - - - SearchLineEdit - - Search - חפש - - - - Settings - - Preferences - הגדרות - - - General - כללי - - - On startup: - בהפעלה: - - - Show my home page - הצג את דף הבית שלי - - - Show a blank page - הצג דף ריק - - - Restore windows and tabs from last time - שחזר חלונות וכרטיסיות מהפעם הקודמת - - - Home Page: - דף הבית: - - - Set to current page - קבע לעמוד הנוכחי - - - Remove history items: - הסר פריטי היסטוריה: - - - After one day - אחרי יום אחד - - - After one week - אחרי שבוע אחד - - - After two weeks - אחרי שבועיים - - - After one month - אחרי חודש - - - After one year - אחרי שנה - - - Manually - ידנית - - - On application exit - בעת היציאה מהיישום - - - Open links from applications: - פתח קישורים מהיישומים: - - - In a tab in the current window - בכרטיסייה בחלון הנוכחי - - - In a new window - בחלון הנוכחי - - - Downloads - הורדות - - - Ask for a destination each time - שאל היכן לשמור בכל פעם - - - Use this destination: - השתמש במקום הבא: - - - Appearance - מראה - - - Standard font: - גופן ברירת־מחדל: - - - Times 16 - Times 16 - - - Select... - בחר... - - - Fixed-width font: - גופן רוחב קבוע: - - - Courier 13 - Courier 13 - - - Privacy - פרטיות - - - Web Content - תוכן - - - Enable Plugins - אפשר תוספים - - - Enable Javascript - אפשר JavaScript - - - View Images - הצג תמונות - - - Cookies - עוגיות - - - Accept Cookies: - אפשר עוגיות: - - - Always - תמיד - - - Never - אך פעם - - - Only from sites you navigate to - רק מאתרים שאתה גולש בהם - - - Exceptions... - יוצאים מן הכלל... - - - Keep Cookies Until: - שמור עוגיות עד: - - - They expire - שהן פגות - - - I exit the application - אני יוצא מהיישום - - - At most 90 days - עד 90 יום - - - Cookies... - עוגיות... - - - Tabs - כרטיסיות - - - Select tabs and windows as they are created - בחר כרטיסיות כשהן נוצרות - - - Confirm when closing multiple tabs - וודא יציאה כאשר מספר כרטיסיות פתוחות - - - Proxy - שרת מתווך - - - Use proxy server - השתמש בשרת מתווך - - - Type: - סוג: - - - Socks5 - Socks5 - - - Http - Http - - - Host name: - שם משתמש: - - - Port: - יציאה: - + HistoryMenu - User Name: - שם משתמש: + Show All History + הצג את כל ההסטוריה - Password: - ססמה: + Clear History... + מחק את ההיסטוריה... - Advanced - מתקדם + Clear History + מחק את ההיסטוריה - Style Sheet: - גיליון סגנון: + Do you want to clear the history? + האם ברצונך למחוק את ההיסטוריה? + + + HistoryModel - Show only one close button instead of one for each tab - הצג רק כפתור סגירה אחד, במקום בכל כרטיסייה + Title + כותרת - Preferred languages for viewing webpages in: - שפות מועדפות לתצוגת דפים: + Address + כתובת + + + HistoryTreeModel - Block Popup Windows - חסום חלונות קופצים + Earlier Today + מוקדם היום - - Opening links - פתיחת קישורים + + %n item(s) + + פריט אחד + %n פריטים + + + + JavaScriptEndorphinObject - Links that want to open in a new window: - קישורים שרוצים להיפתח בחלון חדש: + Welcome to Endorphin! + - In a new selected tab in the current window - בכרטיסייה חדשה בעלת פוקוס + Endorphin Start + - In a new tab in the current window - בכרטיסייה חדשה בחלון הנוכחי + Search! + - In the current tab - בכרטיסייה הנוכחית + Search the web with + - Http (Secure) - Http (מאובטח) + Search results provided by + - Http (Transparent) - Http (שקוף) + About Endorphin + + + + LanguageManager - Use ClickToFlash on flash plugins - השתמש בתוסף ClickToFlash עבור תוספי פלאש + Choose language + בחר שפה - Filter Tracking Cookies - מסנן עוגיות מעקב + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>ניתן להפעיל את היישום עם ממשק בשפה שונה <br>מזאת של מערכת ההפעלה.</p><p>אנא בחר את השפה לשימוש</p> - Confirm when closing multiple tabs or windows - אשר בעת סגירה כאשר יש מספר כרטיסיות או חלונות + No translation files are installed at %1. + לא מותקנים קבצי תרגום בתיקיות %1. + + + OpenSearchDialog - Quit the application when last tab is closed - סגור את היישום כאשר הלשונית האחרונה נסגרת + Open File + פתח קובץ - Enable network cache - אפשר מטמון רשת + OpenSearch + OpenSearch - Maximum Size: - גודל מירבי: + Error + שגיאה - MB - מ"ב + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 הוא לא תיאור תקין של OpenSearch 1.1 או הוא כבר ברשימה שלך. - Use the default search engine as fallback when the URL given by the user is invalid - השתמש במנוע החיפוש כאשר הכתובת המתקבלת על ידי המשתמש אינה תקינה + You must have at least one search engine in here. + חייב להכיל לפחות מנוע חיפוש אחד. + + + OpenSearchEngineModel - Choose Directory... - בחר ספרייה... + <strong>Description:</strong> %1 + <strong>תיאור:</strong> %1 - A cookie session ends: - עוגייה ההפעלה מסתיימת: + <strong>Provides contextual suggestions</strong> + - When I exit the application - כאשר אני יוצא מהיישום + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + רשימה מופרדת פסיקים של מילות המפתח שייתכן נכנסו במיקום שלאחריה מונחי החיפוש של מנוע זה - 1 day - יום אחד + Name + שם - 2 days - שני ימים + Keywords + מילות מפתח + + + OpenSearchManager - 3 days - שלושה ימים + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + האם ברצונך להוסיף את המנוע הבא לרשימה של מנוע החיפוש? <br /><br />שם: %1<br />מחפש בתוך: %2 + + + PermissionBar - 7 days - שבעה ימים + Allow + אפשר - 30 days - 30 יום + Deny + - AutoFill - מילוי אוטומטי + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - מילוי אוטומטי של טפסים: + Not Found + לא נמצא + + + QObject - User names and passwords - שמות משתמשים וססמאות + The file is not an XBEL version 1.0 file. + הקובץ הוא לא קובץ XBEL מגרסה 1.0. - Edit... - עריכה... + Unknown title + כותרת לא ידועה - Browse... - עיון... + The file is not an OpenSearch 1.1 file. + הקובץ הוא לא קובץ של OpenSearch 1.1. - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - נדרשת הפעלה מחדש - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - הגדרות מטמון הרשת שונו. בכדי שיכנסו לתוקף יש להפעיל מחדש את הדפדפן. + Search + חפש + + + SettingsDialog Choose Directory בחר ספרייה @@ -2076,10 +958,6 @@ Do you want to ignore these errors?</qt> &Find &חפש - - &View - &תצוגה - Source of Page %1 קוד מקור של דף %1 @@ -2095,10 +973,6 @@ Do you want to ignore these errors?</qt> Hide Tab Bar הסתר כותרת כרטיסיות - - New &Tab - כרטיסייה &חדשה - Duplicate Tab שכפל כרטיסייה @@ -2146,17 +1020,6 @@ Do you want to ignore these errors?</qt> Untitled ללא שם - - Do you really want to close this page? - האם באמת ברצונך לסגור את העמוד הזה? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - אתה שינית את העמוד הזה וכאשר תסגור אותו אתה עללו לאבד מידע. -האם לסגור את העמוד בכל זאת? - Ctrl-] Ctrl-] @@ -2173,10 +1036,6 @@ Do you really want to close this page? Loading... טוען... - - Loading %1% (%2 %3)... - טוען %1% (%2 %3)... - Finished loading הטעינה הסתיימה @@ -2189,6 +1048,10 @@ Do you really want to close this page? Bookmark All Tabs שמור את כל הכרטיסיות בסימניות + + Loading ... + + ToolbarSearch @@ -2208,14 +1071,6 @@ Do you really want to close this page? Suggestions המלצות - - Add '%1' - הוסף "%1" - - - Configure Search Engines... - הגדרת מנועי חיפוש... - UserAgentMenu @@ -2236,37 +1091,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - ארעה שגיאה באת הטעינה של העמוד: %1 - - - When connecting to: %1. - בעת החיבור אל %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - בדוק האם הכתובת מכילה שגיאות בנוסחח <b>ww</b>.arora-browse.org במקום <b>www</b>.arora-browser.org - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - אם המחשב שלך או הרשת שלך מוגנת על ידי חומת או או שרת proxy, אנא וודא שהדפדפן מורה לגשת לרשת. - - - If the address is correct, try checking the network connection. - אם הכתובת היא נכונה, אנא בדוק את חיבור הרשת. - - - Resending POST request - שולחת מחדש בקשת POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - בכדי להציג את האתר, הבקשה וכל המידע שאיתה חייב להישלח מחדש, דבר אשר יכול לגרום להתנהגויות לא צפויות באתר. למשל ייתכן והפעולה שניסית לעשות תתבצע שוב. האם ברצונך להמשיך בכל זאת? - - WebView @@ -2317,38 +1141,6 @@ Do you really want to close this page? Search with... חפש בעזרת... - - Add to the toolbar search - הוסף תסרגל החיפוש - - - Method not supported - לא סופקה שיטה - - - %1 method is not supported. - השיטה %1 לא נתמכת. - - - Search engine - מנוע חיפוש - - - Choose the desired search engine - בחר את מנוע החיפוש - - - Engine name - שם המנוע - - - Type in a name for the engine - אנא הקלד את שם המנוע - - - Block Image - חסום תמונה - WebViewSearch diff --git a/src/locale/hu_HU.ts b/src/locale/hu_HU.ts index b2d52627..27ecad6b 100644 --- a/src/locale/hu_HU.ts +++ b/src/locale/hu_HU.ts @@ -15,141 +15,6 @@ License Licenc - - Lightweight WebKit-based web browser - WebKit-alapú böngésző - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minden jog fenntartva © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Bezárás - - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Minden jog fenntartva © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Nyelvek - - - Languages: in order of preference: - Nyelvek: prferencia szerint rendezve: - - - Move &Up - &Fel - - - Move &Down - &Le - - - &Remove - &Eltávolítás - - - Add... - Hozzáadás... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - Szabály - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -157,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Hozzáadás a könyvjelzőkhöz - - Type a name for the bookmark, and choose where to keep it. - Adja meg a könyvjelző nevét és jelölje ki a helyét. - Url Hivatkozás @@ -174,47 +35,6 @@ p, li { white-space: pre-wrap; } Új könyvjelzőmappa - - AutoFillDialog - - Form Passwords - - - - Remove - Eltávolítás - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -241,18 +61,6 @@ p, li { white-space: pre-wrap; } New Folder Új könyvjelzőmappa - - Bookmarks - Könyvjelzők - - - &Remove - &Eltávolítás - - - Add Folder - Új könyvjelzőmappa - BookmarksManager @@ -282,16 +90,6 @@ p, li { white-space: pre-wrap; } Open File Fájl megnyitása - - XBEL - XBEL - - - Error when loading html bookmarks: %1 - - Hiba a html könyvjelzők betöltése közben: %1 - - Imported %1 %1 importálva @@ -304,10 +102,6 @@ p, li { white-space: pre-wrap; } %1 Bookmarks.xbel %1 Konyvjelzok.xbel - - XBEL (*.xbel *.xml) - lupdate ../src/src.pro - Export error Hiba az exportálás közben @@ -346,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required htmlToXBel eszköz szükséges - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - A HTML könyvjelzők importálására szolgáló, az Arora részeként szállított htmlToXBel eszköz nincs telepítve, vagy nem érhető el a keresési útvonalon. - Loading Bookmark Könyvjelző betöltése @@ -360,6 +150,10 @@ p, li { white-space: pre-wrap; } Hiba a HTML könyvjelzők betöltése közben: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -381,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Könyvjelző - Open Megnyitás @@ -405,17 +195,9 @@ p, li { white-space: pre-wrap; } Add Folder... Könyvjelzőmappa hozzáadása... - - Bookmarks - Könyvjelzők - BrowserApplication - - (Change: %1 %2) - (Verzió: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -427,11 +209,7 @@ Biztosan ki akar lépni? A visszaállítás sikertelen - The saved session will not be restored because Arora crashed while trying to restore this session. - Az elmentett munkamenet nem kerül visszaállításra, mert az Arora összeomlott a művelet közben. - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -465,14 +243,6 @@ Biztosan ki akar lépni? &Export Bookmarks... Könyvjelzők &exportálása... - - P&rint Preview... - Ny&omtatás előnézete... - - - &Print... - &Nyomtatás... - Private &Browsing... &Privát böngészés... @@ -521,10 +291,6 @@ Biztosan ki akar lépni? Find P&revious E&lőző keresése - - Prefere&nces... - &Beállítások... - Ctrl+, Ctrl+, @@ -537,10 +303,6 @@ Biztosan ki akar lépni? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -647,14 +409,6 @@ Biztosan ki akar lépni? Clear Private Data Ctrl+Shift+Delete - - Show &Network Monitor - &Hálózatfigyelő megjelenítése - - - Enable Web &Inspector - Webfelügyelő &engedélyezése - &Help &Súgó @@ -700,11 +454,6 @@ Biztosan ki akar lépni? Hide Bookmarks Bar Könyvjelző eszköztár elrejtése - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Webes tartalom megnyitása @@ -713,32 +462,14 @@ Biztosan ki akar lépni? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Webes tartalom (*.html *.htm *.svg *.png *.gif *.svgz);;Minden fájl (*.*) - - Print Document - Dokumentum nyomtatása - Are you sure you want to turn on private browsing? Biztosan be akarja kapcsolni a privát böngészést? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Ha a privát böngészés be van kapcsolva, akkor néhány személyes adatokat érintő művelet tiltásra kerül:<ul><li> A meglátogatott oldalak nem kerülnek hozzáadásra az előzményekhez.</li><li> Az új elemek automatikusan eltávolításra kerülnek a letöltések listájáról.</li><li> Az új sütik nem kerülnek eltárolásra, a korábban tárolt sütik pedig nem érhetőek el.</li><li> Az oldalak ikonjai és a munkamenetek nem kerülnek mentésre.</li><li> A keresések nem kerülnek hozzáadásra a keresőmező listájához.</li></ul>A böngészőablak bezárásáig a Vissza és Előre gombokkal navigálhatunk a megnyitott oldalak között. - Are you sure you want to close the window? There are %1 tabs open Biztosan be akarja zárni az ablakot? Jelenleg %1 lap van megnyitva - - Web Inspector - Webfelügyelő - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - A webfelügyelő csak azokkal az oldalakkal fog rendeltetésszerűen működni, amelyek az aktiválása előtt kerültek megnyitásra. -Újra akar tölteni minden oldalt? - Stop loading the current page Oldal letöltésének megszakítása @@ -780,10 +511,6 @@ Do you want to reload all pages? Configure Search Engines... Keresőmotorok beállítása... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -796,10 +523,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -840,6 +563,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -870,14 +598,6 @@ Do you want to reload all pages? &Search History &Keresési előzmények - - &Cookies - &Sütik - - - C&ached Web Pages - Kapcs&olat nélküli webhelyadatok - Website &Icons Oldalak &ikonjai @@ -892,1079 +612,321 @@ Do you want to reload all pages? - ClickToFlash - - Load - Betöltés - + DownloadDialog - Load All - Összes betöltése + Downloads + Letöltések - Add %1 to Whitelist - %1 hozzáadása az engedélyezési listához + Downloading %1 + + + + DownloadItem - Remove from Whitelist - Eltávolítás az engedélyezési listáról + Save File + Fájl mentése - Settings - Beállítások + Download canceled: %1 + Letöltés megszakítva: %1 - Load Flash - Flash betöltése + Error opening output file: %1 + Hiba a kimeneti fájl megnyitásánál: %1 - - - ClickToFlashSettings - Whitelist sites - Engedélyezett oldalak + Error saving: %1 + Hiba a mentésnél: %1 - - - CookieExceptionsModel - Website - Oldal + Network Error: %1 + Hálózati hiba: %1 - Rule - Szabály + %1 of %2 (%3/sec) - %4 + %1 / %2 (%3/mp) - %4 - Allow - Engedélyezés + ? + ? - Block - Tiltás + Download directory (%1) couldn't be created. + - Allow For Session - Engedélyezés a munkamenetre + %1 of %2 - Download Complete + - CookieModel - - Website - Oldal - + DownloadManager - Name - Név + There are %1 downloads in progress +Do you want to quit anyway? + Jelenleg %1 letöltés van folyamatban. +Biztosan ki akar lépni? - - Path - Útvonal + + %n Download(s) + + %n letöltés + - - Secure - Biztonságos + + %n minutes remaining + + %n perc van hátra + - - Expires - Lejárat + + %n seconds remaining + + %n másodperc van hátra + - Contents - Tartalmak + bytes + bájt - true - igen + kB + kB - false - nem + MB + MB - Session cookie - Ideiglenes süti + GB + GB - CookiesDialog - - Cookies - Sütik - + HistoryDialog - &Remove - &Eltávolítás + Open + Megnyitás - Remove &All Cookies - &Összes süti eltávolítása + Copy + Másolás - Add &Rule - &Szabály hozzáadása + Delete + Törlése - CookiesExceptionsDialog + HistoryMenu - Cookie Exceptions - Süti kivételek + Show All History + Összes előzmény megjelenítése - New Exception - Új kivétel + Clear History... + Előzmények törlése... - Domain: - Domain: + Clear History + Előzmények törlése - Block - Tiltás - - - Allow For Session - Engedélyezés a munkamenetre - - - Allow - Engedélyezés - - - Exceptions - Kivételek - - - &Remove - &Eltávolítás - - - Remove &All - &Összes eltávolítása - - - - DownloadDialog - - Downloads - Letöltések - - - Clean up - Lista törlése - - - 0 Items - 0 elem - - - Downloading %1 - - - - - DownloadItem - - Form - Letöltés - - - Ico - Ico - - - Filename - Fájlnév - - - Try Again - Újra - - - Stop - Állj - - - Open - Megnyitás - - - Save File - Fájl mentése - - - Download canceled: %1 - Letöltés megszakítva: %1 - - - Error opening output file: %1 - Hiba a kimeneti fájl megnyitásánál: %1 - - - Error saving: %1 - Hiba a mentésnél: %1 - - - Network Error: %1 - Hálózati hiba: %1 - - - %1 of %2 (%3/sec) - %4 - %1 / %2 (%3/mp) - %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 / %2 - Megállítva - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - There are %1 downloads in progress -Do you want to quit anyway? - Jelenleg %1 letöltés van folyamatban. -Biztosan ki akar lépni? - - - %n Download(s) - - %n letöltés - - - - %n minutes remaining - - %n perc van hátra - - - - %n seconds remaining - - %n másodperc van hátra - - - - bytes - bájt - - - kB - kB - - - MB - MB - - - GB - GB - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - Megnyitás - - - Copy - Másolás - - - Delete - Törlése - - - History - Előzmények - - - &Remove - &Eltávolítás - - - Remove &All - &Összes eltávolítása - - - - HistoryMenu - - Show All History - Összes előzmény megjelenítése - - - Clear History... - Előzmények törlése... - - - Clear History - Előzmények törlése - - - Do you want to clear the history? - Törölni akarja az előzményeket? - - - - HistoryModel - - Title - Cím - - - Address - Hivatkozás - - - - HistoryTreeModel - - Earlier Today - Korábban a mai napon - - - %n item(s) - - %n elem - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - No translation files are installed. - Nincs telepített fordítási fájl. - - - Choose language - Nyelv kiválasztása - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <b>Az operációs rendszer alapértelmezett nyelvén kívül választható további nyelv is.</p><p>Válassza ki a használni kívánt nyelvet!</p> - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Adja meg "%1" felhasználónevét és jelszavát itt: %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Csatlakozás a(z) "%1" proxyhoz:</qt> - - - - SSL Errors - - SSL hibák - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL hibák:<br/><br/> <tt>%1</tt><ul><li>%2</li></ul> - -Figyelmen kívül akarja hagyni ezeket a hibákat?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Tanúsítványok:<br/>%1<br/>El akarja fogadni ezeket a tanúsítványokat?</qt> - - - Issuer: %1 - Kibocsátó: %1 - - - Not valid before: %1 - Nem érvényes ezelőtt: %1 - - - Valid until: %1 - Érvényes eddig: %1 - - - Alternate Names: - Alternatív nevek: - - - - NetworkMonitor - - Name - Név - - - Value - Érték - - - - NetworkMonitorDialog - - Network Monitor - Hálózatfigyelő - - - Network Requests - Hálózati kérések - - - Request Headers - Kérés fejlécek - - - Response Headers - Válasz fejlécek - - - &Remove - &Eltávolítás - - - Remove &All Requests - &Összes kérés eltávolítása - - - - OpenSearchDialog - - Open File - Fájl megnyitása - - - OpenSearch - Keresőmotorok - - - Error - Hiba - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 nem érvényes OpenSearch 1.1 leírás, vagy már szerepel a listán. - - - You must have at least one search engine in here. - Legalább egy keresőmotor szükséges. - - - OpenSearch Manager - Keresőmotorok kezelése - - - &Add - &Hozzáadás - - - &Delete - &Törlés - - - &Restore Defaults - &Alapértelmezések visszaállítása - - - &Close - &Bezárás - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Leírás:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Javaslatokat szolgáltat</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Név - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Hozzá akarja adni ezt a keresőmotort a listához?<br /><br />Név: %1<br />Keresés itt: %2 - - - - PasswordDialog - - Authentication Required - Azonosítás szükséges - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Felhasználónév: - - - Password: - Jelszó: - - - - PlainTextEditSearch - - Not Found - Nincs találat - - - - ProxyDialog - - Proxy Authentication - Proxy azonosítás - - - Connect to proxy - Kapcsolódás a proxyhoz - - - Username: - Felhasználónév: - - - Password: - Jelszó: - - - - QObject - - The file is not an OpenSearch 1.1 file. - A fájl nem egy OpenSearch 1.1 fájl. - - - The file is not an XBEL version 1.0 file. - A fájl nem egy XBEL 1.0 fájl. - - - Unknown title - Ismeretlen cím - - - - RequestModel - - Redirect: %1 - Átirányítás: %1 - - - Method - Típus - - - Address - Cím - - - Response - Válasz - - - Length - Hossz - - - Content Type - Tartalom típusa - - - Info - Információ - - - Unknown - Ismeretlen - - - - SearchBanner - - Form - Keresés - - - Done - Bezárás - - - Highlight All - - - - - SearchLineEdit - - Search - Keresés - - - - Settings - - Preferences - Beállítások - - - General - Általános - - - On startup: - Induláskor: - - - Show my home page - Kezdőlap megjelenítése - - - Show a blank page - Üres oldal megjelenítése - - - Restore windows and tabs from last time - Legutóbbi ablakok és lapok visszaállítása - - - Home Page: - Kezdőlap: - - - Set to current page - Beállítás az aktuális oldalra - - - Remove history items: - Előzmények eltávolítása: - - - After one day - Egy nap után - - - After one week - Egy hét után - - - After two weeks - Két hét után - - - After one month - Egy hónap után - - - After one year - Egy év után - - - Manually - Manuálisan - - - On application exit - Kilépéskor - - - Downloads - Letöltések - - - Ask for a destination each time - Rákérdezés a letöltés helyére minden alkalommal - - - Use this destination: - Letöltések helyének megadása: - - - Appearance - Megjelenés - - - Standard font: - Általános betűtípus: - - - Select... - Kiválasztás... - - - Fixed-width font: - Rögzített szélességű betűtípus: - - - Preferred languages for viewing webpages in: - Oldalak megtekintésekor előnyben részesített nyelvek: - - - Privacy - Adatvédelem - - - Web Content - Webes tartalom - - - Block Popup Windows - Felugró ablakok blokkolása - - - Enable Plugins - Bővítmények engedélyezése - - - Use ClickToFlash on flash plugins - Flash tartalmak megjelenítése kattintásra - - - Enable Javascript - Javascript engedélyezése - - - View Images - Képek megjelenítése - - - Cookies - Sütik - - - Accept Cookies: - Sütik elfogadása: - - - Always - Mindig - - - Never - Soha - - - Only from sites you navigate to - Csak a meglátogatott oldalakon - - - Exceptions... - Kivételek... - - - Keep Cookies Until: - Sütik megtartása: - - - They expire - Lejáratig - - - I exit the application - Kilépésig - - - At most 90 days - Legfeljebb 90 napig - - - Cookies... - Sütik... - - - Filter Tracking Cookies - Nyomkövető sütik szűrése - - - Tabs - Lapok - - - Select tabs and windows as they are created - Lapok és ablakok kiválasztása megnyitáskor - - - Confirm when closing multiple tabs or windows - Megerősítés kérése több lap vagy ablak bezárásakor - - - Show only one close button instead of one for each tab - Csak egy bezárás gomb megjelenítése - - - Quit the application when last tab is closed - Kilépés az alkalmazásból az utolsó lap bezárásakor - - - Opening links - Hivatkozások megnyitása - - - Links that want to open in a new window: - Az új ablakban megnyitandó hivatkozások: - - - In a new window - Új ablakban - - - In a new selected tab in the current window - Az aktuális ablakban, új aktív lapon + Do you want to clear the history? + Törölni akarja az előzményeket? + + + HistoryModel - In a new tab in the current window - Az aktuális ablakban, új lapon + Title + Cím - In the current tab - Az aktuális lapon + Address + Hivatkozás + + + HistoryTreeModel - Open links from applications: - Külső hivatkozások megnyitása: + Earlier Today + Korábban a mai napon - - Proxy - Proxy + + %n item(s) + + %n elem + + + + JavaScriptEndorphinObject - Use proxy server - Proxy kiszolgáló használata + Welcome to Endorphin! + - Type: - Típus: + Endorphin Start + - Socks5 - Socks5 + Search! + - Http (Secure) - Http (biztonságos) + Search the web with + - Http (Transparent) - Http (nem biztonságos) + Search results provided by + - Host name: - Kiszolgáló: + About Endorphin + + + + LanguageManager - Port: - Port: + Choose language + Nyelv kiválasztása - User Name: - Felhasználónév: + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <b>Az operációs rendszer alapértelmezett nyelvén kívül választható további nyelv is.</p><p>Válassza ki a használni kívánt nyelvet!</p> - Password: - Jelszó: + No translation files are installed at %1. + + + + OpenSearchDialog - Advanced - Haladó + Open File + Fájl megnyitása - Style Sheet: - Stíluslap: + OpenSearch + Keresőmotorok - Enable network cache - Hálózati gyorstár engedélyezése + Error + Hiba - Maximum Size: - Maximális méret: + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 nem érvényes OpenSearch 1.1 leírás, vagy már szerepel a listán. - MB - MB + You must have at least one search engine in here. + Legalább egy keresőmotor szükséges. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid - + <strong>Description:</strong> %1 + <strong>Leírás:</strong> %1 - Choose Directory... - + <strong>Provides contextual suggestions</strong> + <strong>Javaslatokat szolgáltat</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Név - 1 day + Keywords + + + OpenSearchManager - 2 days - + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Hozzá akarja adni ezt a keresőmotort a listához?<br /><br />Név: %1<br />Keresés itt: %2 + + + PermissionBar - 3 days - + Allow + Engedélyezés - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + Nincs találat + + + QObject - AutoFill web forms: - + The file is not an OpenSearch 1.1 file. + A fájl nem egy OpenSearch 1.1 fájl. - User names and passwords - + The file is not an XBEL version 1.0 file. + A fájl nem egy XBEL 1.0 fájl. - Edit... - + Unknown title + Ismeretlen cím - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Keresés SettingsDialog - - Restart required - Újraindítás szükséges - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - A hálózati gyorstárazás beállításai megváltoztak. A módosítások használatához a böngésző újraindítása szükséges. - Choose Directory @@ -1992,18 +954,6 @@ Figyelmen kívül akarja hagyni ezeket a hibákat?</qt> &Find &Keresés - - &View - &Nézet - - - &Wrap lines - &Sorok tördelése - - - Source of Page - Oldal forrása - Source of Page %1 %1 oldal forrása @@ -2050,26 +1000,10 @@ Figyelmen kívül akarja hagyni ezeket a hibákat?</qt> Saved Tabs Mentett lapok - - Do you really want to close this page? - Biztosan be akarja zárni ezt az oldalt? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Az oldalon elvégzett módosítások bezáráskor elveszhetnek. -Biztosan be akarja zárni ezt az oldalt? - - Loading... Töltés... - - Loading %1% (%2 %3)... - Töltés %1% (%2 %3)... - Finished loading A letöltés befejeződött @@ -2110,6 +1044,10 @@ Biztosan be akarja zárni ezt az oldalt? Bookmark All Tabs Összes lap felvétele a könyvjelzők közé + + Loading ... + + ToolbarSearch @@ -2117,14 +1055,6 @@ Biztosan be akarja zárni ezt az oldalt? Suggestions Javaslatok - - Add '%1' - '%1' hozzáadása - - - Configure Search Engines... - Keresőmotorok beállítása... - Clear Recent Searches Keresési előzmények törlése @@ -2157,37 +1087,6 @@ Biztosan be akarja zárni ezt az oldalt? - - WebPage - - Error loading page: %1 - Hiba a következő oldal betöltésekor: %1 - - - When connecting to: %1. - Kapcsolódás: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Nem vétett hibát a hivatkozás beírásakor? (pl. "<b>ww</b>.arora-browser.org" a "<b>www</b>.arora-browser.org" helyett) - - - If the address is correct, try checking the network connection. - Amennyiben a hivatkozás helyes, próbálja ellenőrizni a hálózati kapcsolatot. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Ha a számítógép vagy a hálózat tűzfal, illetve proxy mögött van, a hálózat eléréséhez megfelelő hozzáférési jogosultság szükséges. - - - Resending POST request - POST kérés újraküldése - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Az oldal megjelenítéséhez az űrlapot minden adattal együtt újra el kell küldeni. A kétszer végrehajtott megegyező művelet az oldalon nem várt komplikációkkal járhat. Biztosan folytatni szeretné? - - WebView @@ -2238,38 +1137,6 @@ Biztosan be akarja zárni ezt az oldalt? Loading... Töltés... - - Add to the toolbar search - Hozzáadás az eszköztár keresőmezőjéhez - - - Method not supported - Az eljárás nem támogatott - - - %1 method is not supported. - %1 eljárás nem támogatott. - - - Search engine - Keresőmotor - - - Choose the desired search engine - Válassza ki a kívánt keresőmotort - - - Engine name - Motor neve - - - Type in a name for the engine - Adjon meg egy nevet a motornak - - - Block Image - - WebViewSearch diff --git a/src/locale/it_IT.ts b/src/locale/it_IT.ts index 2751bdf6..308ec663 100644 --- a/src/locale/it_IT.ts +++ b/src/locale/it_IT.ts @@ -3,26 +3,6 @@ AboutDialog - - About - Informazioni - - - Lightweight WebKit-based web browser - Browser web leggero basato su WebKit - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - Authors Autori @@ -31,145 +11,10 @@ p, li { white-space: pre-wrap; } License Licenza - - Close - Chiudi - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - About %1 Informazioni su %1 - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - Versione di WebKit: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Lingue - - - Languages: in order of preference: - Lingue: in ordine di preferenza: - - - Move &Up - &Sposta in alto - - - Move &Down - Sposta in &basso - - - &Remove - &Rimuovi - - - Add... - Aggiungi... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - Regola - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -177,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Aggiungi un segnalibro - - Type a name for the bookmark, and choose where to keep it. - Scrivi il nome del segnalibro, e scegli dove metterlo. - Url @@ -194,47 +35,6 @@ p, li { white-space: pre-wrap; } Aggiungi cartella - - AutoFillDialog - - Form Passwords - - - - Remove - Rimuovi - - - Remove All - - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - Never for this site - - - - Not now - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -249,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Nuova cartella - - Bookmarks - Segnalibri - - - &Remove - &Rimuovi - - - Add Folder - Aggiungi cartella - Open in New Tab Apri in una nuova scheda @@ -294,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File Apri file - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Importati %1 @@ -326,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Inserisci segnalibro - - Name Change - Cambia il nome - - - Address Change - Cambia l'indirizzo - Bookmarks Bar Barra dei segnalibri @@ -342,16 +118,6 @@ p, li { white-space: pre-wrap; } Bookmarks Menu Menu Segnalibri - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Errore durante il caricamento di segnalibri html: %1 - - Name Change Undo bookmark title change @@ -374,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Strumento htmlToXBel richiesto - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Lo strumento htmlToXBel, fornito con Arora e necessario a importare segnalibri HTML, non è installato o non è disponibile nei percorsi di ricerca. - Loading Bookmark Caricamento segnalibro @@ -388,6 +150,10 @@ p, li { white-space: pre-wrap; } Errore durante il caricamento dei segnalibri HTML: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -409,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Segnalibro - Open Apri @@ -433,10 +195,6 @@ p, li { white-space: pre-wrap; } Add Folder... Aggiungi cartella... - - Bookmarks - Segnalibri - BrowserApplication @@ -451,19 +209,7 @@ Sei sicuro di voler uscire? Ripristino non riuscito - The saved session will not being restored because last time it was restored Arora crashed. - La sessione salvata non sarà ripristinata perché l'ultima volta che è stata ripristinata Arora è andato in crash. - - - (Change: %1 %2) - (Cambia: %1 %2) - - - The saved session will not be restored because Arora crashed while trying to restore this session. - La sessione salvata non sarà ripristinata perché Arora si è chiuso in modo inatteso nel tentativo di ripristinarla. - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -497,14 +243,6 @@ Sei sicuro di voler uscire? &Export Bookmarks... &Esporta i segnalibri... - - P&rint Preview... - An&teprima di stampa... - - - &Print... - Stam&pa... - Private &Browsing... &Navigazione anonima... @@ -541,18 +279,6 @@ Sei sicuro di voler uscire? &Find Tro&va - - &Find Next - Tro&va successivo - - - &Find Previous - Tro&va precedente - - - &Preferences - &Preferenze - Ctrl+, Ctrl+, @@ -561,10 +287,6 @@ Sei sicuro di voler uscire? &View &Visualizza - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+| Ctrl+| @@ -577,22 +299,6 @@ Sei sicuro di voler uscire? &Stop &Ferma - - Reload Page - Ricarica la pagina - - - &Make Text Bigger - &Ingrandisci il testo - - - &Make Text Normal - &Dimensione normale - - - &Make Text Smaller - &Rimpicciolisci il testo - Page S&ource &Sorgente della pagina @@ -629,10 +335,6 @@ Sei sicuro di voler uscire? &Bookmarks &Segnalibri - - Manage Bookmarks... - Gestione dei segnalibri... - Add Bookmark... Aggiungi segnalibro... @@ -654,10 +356,6 @@ Sei sicuro di voler uscire? Web Search Ctrl+K - - Enable Web &Inspector - Abilita l'anal&izzatore web - &Help &Aiuto @@ -666,10 +364,6 @@ Sei sicuro di voler uscire? About &Qt Informazioni su &Qt - - About &Arora - Informazioni su &Arora - Navigation Navigazione @@ -690,23 +384,6 @@ Sei sicuro di voler uscire? Hide Toolbar Nascondi la barra degli strumenti - - Show Bookmarks bar - Mostra la Barra Dei Segnalibri - - - Hide Bookmarks bar - Nascondi la Barra Dei Segnalibri - - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Apri risorsa web @@ -715,10 +392,6 @@ Sei sicuro di voler uscire? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Risorse web (*.html *.htm *.svg *.png *.gif *.svgz);;Tutti i file (*.*) - - Print Document - Stampa documento - Are you sure you want to turn on private browsing? Sei sicuro di voler passare alla navigazione anonima? @@ -727,20 +400,6 @@ Sei sicuro di voler uscire? Are you sure you want to close the window? There are %1 tabs open Sei sicuro di voler chiudere la finestra? Ci sono %1 schede aperte - - Page Source of %1 - Sorgente di %1 - - - Web Inspector - Analizzatore web - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - L'analizzatore web funziona correttamente solo con le pagine che sono caricate dopo averlo abilitato. -Vuoi ricaricare tutte le pagine? - Stop loading the current page Ferma il caricamento della pagina attuale @@ -753,11 +412,6 @@ Vuoi ricaricare tutte le pagine? Downloads Scaricamenti - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - &Clear Private Data &Cancella i dati privati @@ -767,10 +421,6 @@ Vuoi ricaricare tutte le pagine? Clear Private Data Ctrl+Shift+Canc - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Quando la navigazione anonima è attivata, alcune azioni sono disabilitate nel rispetto della tua privacy:<ul><li> Le pagine non sono aggiunte alla cronologia.</li><li> Gli elementi sono rimossi automaticamente dalla finestra degli scaricamenti.</li><li> Non vengono salvati i nuovi cookie e non è possibile accedere a quelli attuali.</li><li> Le chiavi di ricerca non sono aggiunte al menu che appare sulla riquadro di ricerca.</li></ul>Fino a che la finestra è aperta, puoi comunque usare i pulsanti Avanti e Indietro per tornare alle pagine che hai già visitato. - Show Bookmarks Bar Mostra la barra dei segnalibri @@ -787,10 +437,6 @@ Vuoi ricaricare tutte le pagine? Find P&revious Trova p&recedente - - Prefere&nces... - Prefere&nze... - Show Menu Bar Mostra barra dei menu @@ -799,22 +445,6 @@ Vuoi ricaricare tutte le pagine? &Reload Page &Ricarica pagina - - Make Text &Bigger - &Ingrandisci testo - - - Make Text &Normal - Ripristi&na dimensione testo - - - Make Text &Smaller - Riduci te&sto - - - Show &Network Monitor - Mostra mo&nitor di rete - Switch application language Cambia lingua applicazione @@ -852,10 +482,6 @@ Vuoi ricaricare tutte le pagine? About Browser Informazioni su &%1 - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Quando la navigazione anonima è attiva, alcune azioni riguardanti la riservatezza saranno disabilitate:<ul><li> Le pagine web non sono aggiunte alla cronologia.</li><li> Gli elementi sono rimossi automaticamente dalla finestra Scaricamenti.</li><li> I nuovi cookie non sono conservati, non è possibile accedere ai cookie correnti.</li><li> Le icone dei siti non saranno memorizzate, le sessioni non saranno salvate.</li><li> Le ricerche non sono aggiunte al menu a comparsa nel riquadro di ricerca.</li></ul>Fino alla chiusura della finestra, è ancora possibile fare clic sui pulsanti Indietro e Avanti per tornare alle pagine web aperte in precedenza. - Ctrl+Y Download Manager @@ -869,10 +495,6 @@ Vuoi ricaricare tutte le pagine? Text Encoding Codifica del testo - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> Network cache is disabled.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Quando la navigazione anonima è attivata, alcune azioni relative alla riservatezza saranno disabilitate:<ul><li> Le pagine web non saranno aggiunte alla cronologia.</li><li> Gli elementi presenti nella finestra Scaricamenti saranno rimossi automaticamente.</li><li> I nuovi cookie non sono conservati, i cookie correnti non sono accessibili.</li><li> Le icone dei siti non saranno conservate, le sessioni non saranno salvate.</li><li> Le ricerche non sono aggiunte al menu a comparsa nel riquadro di ricerca.</li><li> La cache di rete è disabilitata.</li></ul>Fino alla chiusura della finestra, potrai fare clic sui pulsanti Indietro e Avanti per tornare alle pagine precedentemente aperte. - Select &All Selezion&a tutto @@ -881,10 +503,6 @@ Vuoi ricaricare tutte le pagine? Alt+Ctrl+B Alt+Ctrl+B - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> No new network cache is written to disk.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Quando la navigazione anonima è abilitata, alcune azioni relative alla riservatezza saranno disabilitate:<ul><li> Le pagine web non sono aggiunte alla cronologia.</li><li> Gli elementi sono automaticamente rimossi dalla finestra Scaricamenti.</li><li> I nuovi cookie non sono salvati, i cookie attuali non sono accessibili.</li><li> Le icone dei siti non saranno salvate, come le sessioni.</li><li> Le ricerche non sono aggiunte al menu a comparsa nel riquadro di ricerca.</li><li> Nessuna cache di rete sarà scritta su disco.</li></ul>Fino alla chiusura della finestra, sarà possibile fare clic sui pulsanti Indietro e Avanti per tornare alle pagine web aperte. - Options... @@ -897,10 +515,6 @@ Vuoi ricaricare tutte le pagine? User Agent - - &Ad Block... - - Reload / Stop @@ -917,10 +531,6 @@ Vuoi ricaricare tutte le pagine? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -953,6 +563,11 @@ Vuoi ricaricare tutte le pagine? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -983,14 +598,6 @@ Vuoi ricaricare tutte le pagine? &Search History Cronologia delle &ricerche - - &Cookies - &Cookie - - - C&ache - C&ache - Website &Icons &Icone dei siti @@ -1003,1239 +610,327 @@ Vuoi ricaricare tutte le pagine? &Cancel &Annulla - - C&ached Web Pages - Pagine web in c&ache - - ClickToFlash + DownloadDialog - Load - Carica + Downloads + Scaricamenti - Load All - Carica tutto + Downloading %1 + + + + DownloadItem - Add %1 to Whitelist - Aggiungi %1 ai siti autorizzati + Save File + Salva il file - Remove from Whitelist - Rimuovi dai siti autorizzati + Download canceled: %1 + Scaricamento annullato: %1 - Settings - Impostazioni + Error saving: %1 + Errore durante il salvataggio: %1 - Load Flash - Carica Flash + Network Error: %1 + Errore di rete: %1 - - - ClickToFlashSettings - Whitelist sites - Siti autorizzati + ? + ? - - - CookieExceptionsModel - Website - Sito web + Error opening output file: %1 + Errore nel file di output: %1 - Status - Stato + %1 of %2 (%3/sec) - %4 + %1 di %2 (%3/sec) - %4 - Allow - Consenti - - - Block - Rifiuta - - - Allow For Session - Consenti nella sessione - - - Rule - Regola - - - - CookieModel - - Website - Sito web - - - Name - Nome - - - Path - Percorso - - - Secure - Sicuro - - - Expires - Scade - - - Contents - Contenuti - - - true - vero - - - false - falso - - - Session cookie - Cookie di sessione - - - - CookiesDialog - - Cookies - Cookie - - - &Remove - &Rimuovi - - - Remove &All Cookies - Rimuovi &tutti i cookie - - - Add &Rule - Aggiungi &regola - - - - CookiesExceptionsDialog - - Cookie Exceptions - Eccezioni - - - New Exception - Nuova eccezione - - - Domain: - Dominio: - - - Block - Rifiuta - - - Allow For Session - Consenti nella sessione - - - Allow - Consenti - - - Exceptions - Eccezioni - - - &Remove - &Rimuovi - - - Remove &All - Rimuovi &tutti - - - - DownloadDialog - - Downloads - Scaricamenti - - - Clean up - Pulisci - - - 0 Items - 0 elementi - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Save File - Salva il file - - - Download canceled: %1 - Scaricamento annullato: %1 - - - Error opening save file: %1 - Errore durante l'apertura del file: %1 - - - Error saving: %1 - Errore durante il salvataggio: %1 - - - Network Error: %1 - Errore di rete: %1 - - - seconds - secondi - - - minutes - minuti - - - - %4 %5 remaining - - %4 %5 rimanenti - - - %1 of %2 (%3/sec) %4 - %1 di %2 (%3/sec) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 di %2 - Fermato - - - bytes - byte - - - kB - kB - - - MB - MB - - - Form - Modulo - - - Ico - Ico - - - Filename - Nome del file - - - Try Again - Riprova - - - Stop - Ferma - - - Open - Apri - - - - %n minutes remaining - - - %n minuto rimanente - - %n minuti rimanenti - - - - - %n seconds remaining - - - %n secondo rimanente - - %n secondi rimanenti - - - - Error opening output file: %1 - Errore nel file di output: %1 - - - %1 of %2 (%3/sec) - %4 - %1 di %2 (%3/sec) - %4 - - - Download directory (%1) couldn't be created. - La cartella degli scaricamenti (%1) non può essere creata. - - - %1 of %2 - Download Complete - - - - - DownloadManager - - 1 Download - 1 Scaricamento - - - %1 Downloads - %2 Scaricamenti - - - %n Download(s) - - %n scaricamento - %n scaricamenti - - - - There are %1 downloads in progress -Do you want to quit anyway? - Ci sono %1 scaricamenti in corso -Vuoi uscire comunque? - - - %n minutes remaining - - Un minuto rimanente - %n minuti rimanenti - - - - %n seconds remaining - - Un secondo rimanente - %n secondi rimanenti - - - - bytes - byte - - - kB - kB - - - MB - MB - - - GB - GB - - - - FileAccessReply - - No Error - Nessun errore - - - Error opening: %1: No such file or directory - Errore di apertura: %1: Nessun file o cartella - - - Unable to read %1 - Impossibile leggere %1 - - - Contents of %1 - Contenuto di %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - Open - Apri - - - Copy - Copia - - - Delete - Elimina - - - History - Cronologia - - - &Remove - &Rimuovi - - - Remove &All - Rimuovi &tutti - - - - HistoryMenu - - Show All History - Mostra tutta la cronologia - - - Clear History - Cancella la cronologia - - - Clear History... - Cancella la cronologia... - - - Do you want to clear the history? - Sei sicuro di voler cancellare la cronologia? - - - - HistoryModel - - Title - Titolo - - - Address - Indirizzo - - - - HistoryTreeModel - - Earlier Today - Prima di oggi - - - %1 items - %1 elementi - - - %n item(s) - - %n elemento - %n elementi - - - - - JavaScriptAroraObject - - Welcome to Arora! - Benvenuti in Arora! - - - Arora Start - Avvio di Arora - - - Search! - Cerca! - - - Search results provided by - Risultati di ricerca forniti da - - - About Arora - Informazioni su Arora - - - Search the web with - - - - - LanguageManager - - Default - Predefinita - - - Choose language - Scegli la lingua - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Puoi utilizzare una lingua differente da<br>quella predefinita del sistema operativo.</p><p>Scegli la lingua da utilizzare</p> - - - No translation files are installed. - Nessun file di traduzione installato. - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Inserisci nome utente e password per "%1" su %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Connettiti al proxy "%1" usando:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Errori SSL: - -%1 - -%2 - -Vuoi ignorare questi errori? - - - Do you want to accept all these certificates? - Vuoi accettare tutti questi certificati? - - - - SSL Errors - - Errori SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Errori SSL:<br/><br/>per: <tt>%1</tt><ul><li>%2</li></ul> - -Vuoi ignorare questi errori?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certificati:<br/>%1<br/>Vuoi accettare tutti questi certificati?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certificati:<br/>%1<br/>Vuoi accettare tutti questi certificati?</qt> - - - Issuer: %1 - Emittente: %1 - - - Not valid before: %1 - Non valido prima di: %1 - - - Valid until: %1 - Valido fino a: %1 - - - Alternate Names: - Nomi alternativi: - - - - NetworkMonitor - - Name - Nome - - - Value - Valore - - - - NetworkMonitorDialog - - Network Monitor - Monitor di rete - - - Network Requests - Richieste di rete - - - Request Headers - Intestazioni di richiesta - - - Response Headers - Intestazioni di risposta - - - &Remove - &Rimuovi - - - Remove &All Requests - Rimuovi &tutte le richieste - - - - OpenSearchDialog - - Open File - Apri file - - - OpenSearch - - - - Error - Errore - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 non è una descrizione OpenSearch 1.1 valida o è già nell'elenco. - - - You must have at least one search engine in here. - Devi avere almeno un motore di ricerca. - - - OpenSearch Manager - Gestore OpenSearch - - - &Restore Defaults - &Ripristina valori predefiniti - - - &Delete - &Elimina - - - &Add - &Aggiungi - - - &Close - &Chiudi - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Descrizione:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Fornisce suggerimenti di contesto</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - Elenco di parole chiave, separate da virgole, seguito da termini di ricerca che può essere inserito nella barra degli indirizzi per cercare con questo motore - - - Name - Nome - - - Keywords - Parole chiave - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Vuoi aggiungere il seguente motore all'elenco dei motori di ricerca?<br /><br />Nome: %1<br />Ricerca in: %2 - - - - PasswordDialog - - Authentication Required - Autenticazione richiesta - - - DUMMY ICON - ICONA FANTASMA - - - INTRO TEXT DUMMY - TESTO INTRODUTTIVO FANTASMA - - - Username: - Nome utente: - - - Password: - Password: - - - - PlainTextEditSearch - - Not Found - Non trovato - - - - ProxyDialog - - Proxy Authentication - Autenticazione al proxy - - - ICON - ICONA - - - Connect to proxy - Connettiti al proxy - - - Username: - Nome utente: - - - Password: - Password: - - - - QObject - - The file is not an XBEL version 1.0 file. - Questo file non è un XBEL versione 1.0. - - - Unknown title - Titolo sconosciuto - - - The file is not an OpenSearch 1.1 file. - Non è un file OpenSearch 1.1. - - - - RequestModel - - Redirect: %1 - Redirezione: %1 - - - Method - Metodo - - - Address - Indirizzo - - - Response - Risposta - - - Length - Lunghezza - - - Content Type - Tipo contenuto - - - Info - Info - - - - SearchBanner - - Form - Modulo - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - Finito - - - Highlight All - Seleziona tutto - - - - SearchLineEdit - - Search - Cerca - - - - Settings - - Settings - Impostazioni - - - General - Generale - - - Home: - Pagina iniziale: - - - Set to current page - Usa la pagina corrente - - - Remove history items: - Rimuovi gli elementi dalla cronologia: - - - After one day - Dopo un giorno - - - After one week - Dopo una settimana - - - After two weeks - Dopo due settimane - - - After one month - Dopo un mese - - - After one year - Dopo un anno - - - Manually - Manualmente - - - Open links from applications: - Apri i collegamenti dalle applicazioni: - - - In a tab in the current window - In una scheda nella finestra corrente - - - In a new window - In una nuova finestra - - - Appearance - Aspetto - - - Fixed-width font: - Carattere a larghezza fissa: - - - Privacy - Riservatezza - - - Web Content - Contenuto web - - - Enable Plugins - Abilita i plugin - - - Enable Javascript - Abilita Javascript - - - Cookies - Cookie - - - Accept Cookies: - Accetta cookie: - - - Always - Sempre - - - Never - Mai - - - Only from sites you navigate to - Solo dai siti che stai navigando - - - Exceptions... - Eccezioni... - - - Keep until: - Mantienili fino a che: - - - They expire - Scadono - - - I exit the application - Esci dall'applicazione - - - At most 90 days - Al massimo 90 giorni - - - Cookies... - Cookie... - - - Proxy - Proxy - - - Enable proxy - Abilita il proxy - - - Type: - Tipo: - - - Socks5 - Socks5 - - - Http - Http - - - Host: - Host: - - - Port: - Porta: - - - User Name: - Nome utente: - - - Password: - Password: - - - Advanced - Avanzate - - - Style Sheet: - Foglio di stile: - - - Downloads - Scaricamenti - - - Ask for a destination each time - Chiedi la cartella di destinazione ogni volta - - - Use this destination: - Usa questa cartella di destinazione: - - - Standard font: - Carattere standard: - - - Times 16 - Times 16 + Download directory (%1) couldn't be created. + La cartella degli scaricamenti (%1) non può essere creata. - Select... - Seleziona... + %1 of %2 - Download Complete + - - Courier 13 - Courier 13 + + + DownloadManager + + %n Download(s) + + %n scaricamento + %n scaricamenti + - On startup: - All'avvio: + There are %1 downloads in progress +Do you want to quit anyway? + Ci sono %1 scaricamenti in corso +Vuoi uscire comunque? - - Show my home page - Mostra la pagina iniziale + + %n minutes remaining + + Un minuto rimanente + %n minuti rimanenti + - - Show a blank page - Mostra una pagina vuota + + %n seconds remaining + + Un secondo rimanente + %n secondi rimanenti + - Restore windows and tabs from last time - Ripristina le finestre e le schede dell'ultima sessione + bytes + byte - On application exit - All'uscita + kB + kB - Enable Images - Abilita immagini + MB + MB - Tabs - Schede + GB + GB + + + HistoryDialog - Select tabs and windows as they are created - Seleziona schede e finestre a seconda di come sono state create + Open + Apri - Confirm when closing multiple tabs - Chiedi conferma durante la chiusura di schede multiple + Copy + Copia - Preferences - Preferenze + Delete + Elimina + + + HistoryMenu - Home Page: - Pagina iniziale: + Show All History + Mostra tutta la cronologia - View Images - Visualizza immagini + Clear History + Cancella la cronologia - Keep Cookies Until: - Mantieni i cookie fino a che: + Clear History... + Cancella la cronologia... - Use proxy server - Utilizza server proxy + Do you want to clear the history? + Sei sicuro di voler cancellare la cronologia? + + + HistoryModel - Host name: - Nome server: + Title + Titolo - Show only one close button instead of one for each tab - Mostra solo un pulsante di chiusura al posto di uno per ogni scheda + Address + Indirizzo + + + HistoryTreeModel - Preferred languages for viewing webpages in: - Lingue preferite per visualizzare le pagine web: + Earlier Today + Prima di oggi - - Block Popup Windows - Blocca finestre a comparsa + + %n item(s) + + %n elemento + %n elementi + + + + JavaScriptEndorphinObject - Opening links - Apertura collegamenti + Welcome to Endorphin! + - Links that want to open in a new window: - Collegamenti da aprire in una nuova finestra: + Endorphin Start + - In a new selected tab in the current window - In una nuova scheda selezionata nella finestra corrente + Search! + - In a new tab in the current window - In una nuova scheda della finestra corrente + Search the web with + - In the current tab - Nella scheda corrente + Search results provided by + - Http (Secure) - Http (Sicuro) + About Endorphin + + + + LanguageManager - Http (Transparent) - Http (Trasparente) + Choose language + Scegli la lingua - Use ClickToFlash on flash plugins - Utilizza ClickToFlash sui plugin flash + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Puoi utilizzare una lingua differente da<br>quella predefinita del sistema operativo.</p><p>Scegli la lingua da utilizzare</p> - Filter Tracking Cookies - Filtra i cookie traccianti + No translation files are installed at %1. + + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - Conferma in caso di chiusura di più schede o finestre + Open File + Apri file - Quit the application when last tab is closed - Esci dall'applicazione alla chiusura dell'ultima scheda + OpenSearch + - Enable network cache - Abilita cache di rete + Error + Errore - Maximum Size: - Dimensione massima: + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 non è una descrizione OpenSearch 1.1 valida o è già nell'elenco. - MB - + You must have at least one search engine in here. + Devi avere almeno un motore di ricerca. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid - Utilizza il motore di ricerca predefinito come ripiego quando l'URL specificato dall'utente non è valido + <strong>Description:</strong> %1 + <strong>Descrizione:</strong> %1 - Choose Directory... - Scegli cartella... + <strong>Provides contextual suggestions</strong> + <strong>Fornisce suggerimenti di contesto</strong> - Enable access keys - + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + Elenco di parole chiave, separate da virgole, seguito da termini di ricerca che può essere inserito nella barra degli indirizzi per cercare con questo motore - Use this external download program: - + Name + Nome - Choose Program... - + Keywords + Parole chiave + + + OpenSearchManager - Minimum Font size: - + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Vuoi aggiungere il seguente motore all'elenco dei motori di ricerca?<br /><br />Nome: %1<br />Ricerca in: %2 + + + PermissionBar - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. - + Allow + Consenti - Persistent Data Storage + Deny - A cookie session ends: + %1 wants to %2. + + + PlainTextEditSearch - When I exit the application - + Not Found + Non trovato + + + QObject - 1 day - + The file is not an XBEL version 1.0 file. + Questo file non è un XBEL versione 1.0. - 2 days - + Unknown title + Titolo sconosciuto - 3 days - + The file is not an OpenSearch 1.1 file. + Non è un file OpenSearch 1.1. - 7 days + use desktop notifications - 30 days + use your position - AutoFill + use your microphone - AutoFill web forms: + use your camera - User names and passwords + use your camera and microphone - Edit... + lock your mouse + + + SearchLineEdit - Browse... - + Search + Cerca SettingsDialog - - Restart required - Riavvio necessario - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - La configurazione della cache di rete è cambiata. Affiché le modifiche abbiano effetto, è necessario riavviare il browser. - Choose Directory Scegli cartella @@ -2263,18 +958,6 @@ Vuoi ignorare questi errori?</qt> &Find Tro&va - - &View - &Visualizza - - - &Wrap lines - Test&o a capo - - - Source of Page - Sorgente della pagina - Source of Page %1 Sorgente della pagina %1 @@ -2282,10 +965,6 @@ Vuoi ignorare questi errori?</qt> TabBar - - New &Tab - &Nuova scheda - Duplicate Tab Duplica scheda @@ -2337,22 +1016,6 @@ Vuoi ignorare questi errori?</qt> Recently Closed Tabs Schede chiuse di recente - - (Untitled) - (Senza titolo) - - - Do you really want to close this page? - Sei sicuro di voler chiudere questa pagina? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Hai modificato questa pagina e chiudendola perderai le modifiche. -Sei sicuro di volerlo fare? - - Untitled Senza titolo @@ -2373,10 +1036,6 @@ Sei sicuro di volerlo fare? Loading... Caricamento in corso... - - Loading %1% (%2 %3)... - Caricamento di %1% (%2 %3)... - Finished loading Caricamento completato @@ -2389,13 +1048,13 @@ Sei sicuro di volerlo fare? Bookmark All Tabs Segnalibri di tutte le schede + + Loading ... + + ToolbarSearch - - Google - Google - No Recent Searches Nessuna ricerca recente @@ -2412,14 +1071,6 @@ Sei sicuro di volerlo fare? Suggestions Suggerimenti - - Add '%1' - Aggiungi '%1' - - - Configure Search Engines... - Configura motori di ricerca... - UserAgentMenu @@ -2440,45 +1091,6 @@ Sei sicuro di volerlo fare? - - WebPage - - Error loading page: %1 - Errore durante l'apertura della pagina: %1 - - - When connecting to: %1. - Durante la connessione a: %1. - - - Check the address for errors such as <b>ww</b>.trolltech.com instead of <b>www</b>.trolltech.com. - Controlla che l'indirizzo non contenga errori tipo <b>ww</b>.trolltech.com al posto di <b>www</b>.trolltech.com. - - - If the address is correct, try to check the network connection. - Se l'indirizzo è corretto, controlla il corretto funzionamento della connessione di rete. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Se il computer o la rete sono protette da un firewall o da un proxy, controlla che il browser abbia i permessi per accedere alla rete. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Controlla la presenza nell'indirizzo di errori del tipo <b>ww</b>.arora-browser.org invece che <b>www</b>.arora-browser.org - - - If the address is correct, try checking the network connection. - Se l'indirizzo è corretto, prova a verificare la connessione di rete. - - - Resending POST request - Nuovo invio della richiesta POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Per visualizzare il sito, la richiesta con tutti i dati deve essere inviata nuovamente, ciò potrebbe causare un comportamento imprevisto del sito, ad es. la stessa azione potrebbe essere eseguita due volte. Vuoi continuare comunque? - - WebView @@ -2529,38 +1141,6 @@ Sei sicuro di volerlo fare? Search with... Cerca con... - - Add to the toolbar search - Aggiungi alla barra delle ricerche - - - Method not supported - Metodo non supportato - - - %1 method is not supported. - Il metodo %1 non è supportato. - - - Search engine - Motore di ricerca - - - Choose the desired search engine - Scegli il motore di ricerca desiderato - - - Engine name - Nome del motore - - - Type in a name for the engine - Digita un nome per il motore - - - Block Image - - WebViewSearch diff --git a/src/locale/ja_JP.ts b/src/locale/ja_JP.ts index b2f57361..8642c5ca 100644 --- a/src/locale/ja_JP.ts +++ b/src/locale/ja_JP.ts @@ -3,10 +3,6 @@ AboutDialog - - About - About - Authors 著作者 @@ -15,158 +11,10 @@ License ライセンス - - Lightweight WebKit-based web browser - WebKit ベースの軽いブラウザ - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - 閉じる - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - About %1 %1 について - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - WebKit バージョン: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - 言語 - - - Languages: in order of preference: - 言語の優先順位: - - - Move &Up - 上へ(&U) - - - Move &Down - 下へ(&D) - - - &Remove - 削除(&R) - - - Add... - 追加... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - AdBlock ルール:%1 によってブロックされました - - - - AdBlockDialog - - Add Custom Rule - カスタム ルールの追加 - - - Learn more about writing rules... - ルールの書き方について... - - - Update Subscription - サブスクリプションの更新 - - - Browse Subscriptions... - サブスクリプションを参照... - - - Remove Subscription - サブスクリプションを削除 - - - AdBlock Configuration - AdBlock 設定 - - - Enable AdBlock - AdBlock を有効にする - - - Action - アクション - - - - AdBlockManager - - Custom Rules - カスタム ルール - - - - AdBlockModel - - Rule - ルール - - - - AdBlockSchemeAccessHandler - - Subscribe? - 登録しますか? - - - Subscribe to this AdBlock subscription? -%1 - この AdBlock サブスクリプションを登録しますか? -%1 - AddBookmarkDialog @@ -174,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark ブックマークの追加 - - Type a name for the bookmark, and choose where to keep it. - ブックマーク名を入力して、保存先を選択してください. - Url URL @@ -191,51 +35,6 @@ p, li { white-space: pre-wrap; } フォルダの追加 - - AutoFillDialog - - Form Passwords - フォーム パスワード - - - Remove - 削除 - - - Remove All - 全て削除 - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>パスワードを保存しますか?</b><br> 保存したり削除したパスワードを見直すには、オプションの自動入力タブを開いてください。 - - - Never for this site - このサイトでは記憶しない - - - Not now - 今は記憶しない - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Webサイト - - - User Name - ユーザ名 - - BookmarksDialog @@ -254,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder 新しいフォルダ - - Bookmarks - ブックマーク - - - &Remove - 削除(&R) - - - Add Folder - フォルダの追加 - Edit Name 名前を編集 @@ -281,10 +68,6 @@ p, li { white-space: pre-wrap; } Open File ブックマークのインポート - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 %1 をインポートしました @@ -327,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark ブックマークの追加 - - Name Change - 名前変更 - - - Address Change - アドレス変更 - Bookmarks Bar ブックマーク バー @@ -343,20 +118,6 @@ p, li { white-space: pre-wrap; } Bookmarks Menu ブックマーク メニュー - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - HTML形式ブックマークの読み込み中にエラー: %1 - - - - XBEL - XBEL - Name Change Undo bookmark title change @@ -379,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required htmlToXBel ツールが必要です - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - HTML ブックマークをインポートするのに必要な Arora に搭載されている htmlToXBel ツールがインストールされていないかパスが通っていません。 - Loading Bookmark ブックマークを読み込んでいます @@ -393,6 +150,10 @@ p, li { white-space: pre-wrap; } HTML ブックマーク読込時にエラー: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -414,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - ブックマーク - Open 開く @@ -438,10 +195,6 @@ p, li { white-space: pre-wrap; } Add Folder... フォルダの追加... - - Bookmarks - ブックマーク - BrowserApplication @@ -456,16 +209,8 @@ Do you want to quit anyway? 復元に失敗 - (Change: %1 %2) - (Change: %1 %2) - - - The saved session will not be restored because Arora crashed while trying to restore this session. - このセッションを復元を試みて Arora がクラッシュした為、保存されたセッションは復元されない可能性があります。 - - - Arora crashed while trying to restore this session. Should I try again? - Arora は、セッションの復元を試みている時にクラッシュしました。再度復元を試みますか? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -498,14 +243,6 @@ Do you want to quit anyway? &Export Bookmarks... ブックマークをエクスポート(&E)... - - P&rint Preview... - 印刷プレビュー(&R)... - - - &Print... - 印刷(&P)... - Private &Browsing... プライベート ブラウジング(&B)... @@ -550,10 +287,6 @@ Do you want to quit anyway? Find P&revious 前を検索(&R) - - Prefere&nces... - 設定(&N)... - Ctrl+, Ctrl+, @@ -570,10 +303,6 @@ Do you want to quit anyway? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -586,18 +315,6 @@ Do you want to quit anyway? &Reload Page 再読込(&R) - - Make Text &Bigger - 文字を大きくする(&B) - - - Make Text &Normal - 文字を通常サイズにする(&N) - - - Make Text &Smaller - 文字を小さくする(&S) - Page S&ource ソースを表示(&O) @@ -634,10 +351,6 @@ Do you want to quit anyway? &Bookmarks ブックマーク(&B) - - Manage Bookmarks... - ブックマークの管理... - Add Bookmark... ブックマークに追加... @@ -668,10 +381,6 @@ Do you want to quit anyway? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Web インスペクタを有効化(&I) - &Help ヘルプ(&H) @@ -684,10 +393,6 @@ Do you want to quit anyway? About &Qt Qt について(&Q) - - About &Arora - Arora について(&A) - Navigation ナビゲーション @@ -716,15 +421,6 @@ Do you want to quit anyway? Hide Bookmarks Bar ブックマーク バーを隠す - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Web リソースを開く @@ -733,10 +429,6 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Web リソース (*.html *.htm *.svg *.png *.gif *.svgz);;全てのファイル (*.*) - - Print Document - ドキュメントの印刷 - Are you sure you want to turn on private browsing? プライベート ブラウジングを開始しますか? @@ -745,16 +437,6 @@ Do you want to quit anyway? Are you sure you want to close the window? There are %1 tabs open %1 個のタブを開いていますが、ウィンドウを閉じますか? - - Web Inspector - Web インスペクタ - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Web インスペクタは、ページを読み込む前から有効になっていなければ正しく動作しません. -全てのページを再読込しますか? - Stop loading the current page 現在のページの読込を中止します @@ -767,19 +449,6 @@ Do you want to reload all pages? Downloads ダウンロード - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>プライベート モードに移行した場合、あなたのプライバシーを守る為、いくつかの機能は制限されます:<ul><li> 表示したページは履歴に追加されません。</li><li> ダウンロード履歴は残りません。</li><li> 新しく受け取った Cookie は保存されません。既に保存済みの Cookie を参照する事もできません。</li><li> Web サイトのアイコンやセッションは保存されません。</li><li> 検索ボックスの検索履歴に追加されません。</li></ul>ウィンドウを閉じるまで閲覧した Web ページに戻る/進むボタンで戻る事ができます。 - - - Show &Network Monitor - ネットワーク モニタを表示(&N) - Close Window ウィンドウを閉じる @@ -813,10 +482,6 @@ Do you want to reload all pages? About Browser &%1 について - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>プライベート モードに移行した場合、あなたのプライバシーを守る為、いくつかの機能は制限されます:<ul><li> 表示したページは履歴に追加されません。</li><li> ダウンロード履歴は残りません。</li><li> 新しく受け取った Cookie は保存されません。既に保存済みの Cookie を参照する事もできません。</li><li> Web サイトのアイコンやセッションは保存されません。</li><li> 検索ボックスの検索履歴に追加されません。</li></ul>ウィンドウを閉じるまでに閲覧した Web ページには戻る/進むボタンで移動する事ができます。 - Ctrl+Y Download Manager @@ -830,10 +495,6 @@ Do you want to reload all pages? Text Encoding 文字コード - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> Network cache is disabled.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>プライベート モードに移行した場合、あなたのプライバシーを守る為、いくつかの機能は制限されます:<ul><li> 表示したページは履歴に追加されません。</li><li> ダウンロード履歴は残りません。</li><li> 新しく受け取った Cookie は保存されません。既に保存済みの Cookie を参照する事もできません。</li><li> Web サイトのアイコンやセッションは保存されません。</li><li> 検索ボックスの検索履歴に追加されません。</li><li>ネットワークキャッシュは無効です。</li></ul>ウィンドウを閉じるまで閲覧した Web ページに戻る/進むボタンで戻る事ができます。 - Select &All すべてを選択(&A) @@ -842,10 +503,6 @@ Do you want to reload all pages? Alt+Ctrl+B Alt+Ctrl+B - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> No new network cache is written to disk.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>プライベート モードに移行した場合、あなたのプライバシーを守る為、いくつかの機能は制限されます:<ul><li> 表示したページは履歴に追加されません。</li><li> ダウンロード履歴は残りません。</li><li> 新しく受け取った Cookie は保存されません。既に保存済みの Cookie を参照する事もできません。</li><li> Web サイトのアイコンやセッションは保存されません。</li><li> 検索ボックスの検索履歴に追加されません。</li><li>新しいネットワークキャッシュをディスクに保存しません。</li></ul>ウィンドウを閉じるまで閲覧した Web ページに戻る/進むボタンで戻る事ができます。 - Options... オプション... @@ -854,10 +511,6 @@ Do you want to reload all pages? Configure Search Engines... 検索エンジンのカスタマイズ... - - &Ad Block... - 広告ブロック(AdBlock)(&A)... - When private browsing is turned on, some actions concerning your privacy will be disabled: プライベート ブラウジングを有効にすると、あなたのプライバシーを守る為、いくつかの動作が制限されます: @@ -870,10 +523,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. ダウンロードが終了したものは、自動的にダウンロード ウィンドウから削除されます。 - - New cookies are not stored, current cookies can't be accessed. - 新しく受け取った Cookie は保存されなくなり、既に保存されている Cookie へアクセスする事もできません。 - Site icons won't be stored. Web サイトのアイコン(favicon)は、保存されません。 @@ -914,6 +563,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -944,14 +598,6 @@ Do you want to reload all pages? &Search History 検索履歴(&S) - - &Cookies - Cookie(&C) - - - C&ached Web Pages - キャッシュされた Web ページ(&A) - Website &Icons Web サイトのアイコン(&I) @@ -966,1175 +612,321 @@ Do you want to reload all pages? - ClickToFlash - - Load - Flash をロード - + DownloadDialog - Load All - このページの全ての Flash をロード + Downloads + ダウンロード - Add %1 to Whitelist - このサイト(%1)をホワイトリストに追加 + Downloading %1 + + + + DownloadItem - Remove from Whitelist - ホワイトリストから除外 + Save File + ブックマークのエクスポート - Settings - 設定 + Download canceled: %1 + %1 のダウンロードは中止しました - Load Flash - Flash のロード + Error opening output file: %1 + 保存ファイルの作成中にエラー:%1 - - - ClickToFlashSettings - Whitelist sites - ホワイトリスト一覧 + Error saving: %1 + 保存中にエラー:%1 - - - CookieExceptionsModel - Website - Web サイト + Network Error: %1 + ネットワーク エラー:%1 - Rule - ルール + ? + ? - Allow - 許可 + %1 of %2 (%3/sec) - %4 + %1 / %2 (%3/秒) - %4 - Block - 不許可 + Download directory (%1) couldn't be created. + ダウンロード先ディレクトリ (%1) を作成できませんでした。 - Allow For Session - セッション内のみ許可 + %1 of %2 - Download Complete + - CookieModel - - Website - Web サイト + DownloadManager + + %n Download(s) + + %n 件のダウンロード アイテム + - Name - 名前 + There are %1 downloads in progress +Do you want to quit anyway? + %1 件の項目がダウンロード中です +本当に終了しますか? - - Path - パス + + %n minutes remaining + + 残り %n 分 + - - Secure - 安全 + + %n seconds remaining + + 残り %n 秒 + - Expires - 期限 + bytes + bytes - Contents - 内容 + kB + kB - true - はい + MB + MB - false - いいえ - - - Session cookie - セッション Cookie - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - 削除(&R) - - - Remove &All Cookies - 全ての Cookie を削除(&A) - - - Add &Rule - ルールを追加(&R) - - - - CookiesExceptionsDialog - - Domain: - ドメイン: - - - Block - ブロック - - - Allow For Session - セッション内のみ許可 - - - Allow - 許可 - - - &Remove - 削除(&R) - - - Remove &All - 全て削除(&A) - - - Cookie Exceptions - Cookie 例外条件 - - - New Exception - 新しい例外条件 - - - Exceptions - 例外条件 - - - - DownloadDialog - - Downloads - ダウンロード - - - Clean up - 履歴の消去 - - - 0 Items - 0 件 - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Form - Form - - - Open - 開く - - - Ico - Ico - - - Filename - Filename - - - Try Again - リトライ - - - Stop - 停止 - - - Save File - ブックマークのエクスポート - - - Download canceled: %1 - %1 のダウンロードは中止しました - - - Error opening output file: %1 - 保存ファイルの作成中にエラー:%1 - - - Error saving: %1 - 保存中にエラー:%1 - - - Network Error: %1 - ネットワーク エラー:%1 - - - seconds - - - - - %n minutes remaining - - - 残り %n 分 - - - - - %n seconds remaining - - - 残り %n 秒 - - - - %1 of %2 (%3/sec) %4 - %1 / %2 (%3/sec) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 / %2 - 停止しました - - - bytes - bytes - - - kB - kB - - - MB - MB - - - %1 of %2 (%3/sec) - %4 - %1 / %2 (%3/秒) - %4 - - - Download directory (%1) couldn't be created. - ダウンロード先ディレクトリ (%1) を作成できませんでした。 - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n 件のダウンロード アイテム - - - - There are %1 downloads in progress -Do you want to quit anyway? - %1 件の項目がダウンロード中です -本当に終了しますか? - - - %n minutes remaining - - 残り %n 分 - - - - %n seconds remaining - - 残り %n 秒 - - - - bytes - bytes - - - kB - kB - - - MB - MB - - - GB - GB - - - - FileAccessReply - - No Error - エラーはありません - - - Error opening: %1: No such file or directory - ディレクトリ( %1 )読込中にエラー:ディレクトリがありません - - - Unable to read %1 - ディレクトリ( %1 )の内容を読み込めません - - - Contents of %1 - %1 の中身 - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - Open - 開く - - - Copy - コピー - - - Delete - 削除 - - - History - 履歴 - - - &Remove - 削除(&R) - - - Remove &All - 全て削除(&A) - - - - HistoryMenu - - Show All History - 全ての履歴を表示 - - - Clear History... - 履歴をクリア... - - - Clear History - 履歴をクリア - - - Do you want to clear the history? - 履歴をクリアしますか? - - - - HistoryModel - - Title - タイトル - - - Address - アドレス - - - - HistoryTreeModel - - Earlier Today - 本日 - - - %n item(s) - - %n 件 - - - - - JavaScriptAroraObject - - Welcome to Arora! - Arora にようこそ! - - - Arora Start - Arora スタート - - - Search! - 検索! - - - Search results provided by - 検索結果の提供 - - - About Arora - Arora について - - - Search the web with - - - - - LanguageManager - - Default - デフォルト - - - Choose language - 言語の選択 - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>OSのデフォルト設定とは異なる言語で動作させる事ができます.</p><p>使用したい言語を選択して下さい</p> - - - No translation files are installed. - 翻訳ファイルがインストールされていません。 - - - No translation files are installed at %1. - %1 に翻訳ファイルがありません。 - - - - NetworkAccessManager - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - SSL エラー: - -%1 - -%2 - -エラーを無視しますか? - - - Do you want to accept all these certificates? - 全ての証明書を受け入れますか? - - - <qt>Enter username and password for "%1" at %2</qt> - <qt>%1(%2)にアクセスするにはユーザ名とパスワードが必要です</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>プロキシ サーバ "%1" に接続:</qt> - - - - SSL Errors - - SSL エラー - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL エラー:<br/><br/>URL: <tt>%1</tt><ul><li>%2</li></ul> - -エラーを無視しますか?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>証明書:<br/>%1<br/>全ての証明書を受け入れますか?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>証明書:<br/>%1<br/>全ての証明書を受け入れますか?</qt> - - - Issuer: %1 - 発行者: %1 - - - Not valid before: %1 - 発行日: %1 - - - Valid until: %1 - 有効期限: %1 - - - Alternate Names: - 代理名: - - - - NetworkMonitor - - Name - 名前 - - - Value - - - - - NetworkMonitorDialog - - Network Monitor - ネットワーク モニタ - - - Network Requests - ネットワーク リクエスト - - - Request Headers - リクエスト ヘッダ - - - Response Headers - レスポンス ヘッダ - - - &Remove - 削除(&R) - - - Remove &All Requests - 全てのリクエストを削除(&A) - - - - OpenSearchDialog - - Open File - ファイルを開く - - - OpenSearch - OpenSearch - - - Error - エラー - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 は有効なOpenSearch 1.1定義ではないか、既にリストに登録済みです。 - - - You must have at least one search engine in here. - 1つ以上の検索エンジンを登録して下さい。 - - - OpenSearch Manager - OpenSearch マネージャ - - - &Restore Defaults - デフォルトに戻す(&R) - - - &Delete - 削除(&D) - - - &Add - 追加(&A) - - - &Close - 閉じる(&C) - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>説明:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>文脈に沿った候補を提供する</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - カンマで区切られたキーワードのリストは、検索時にロケーション バー内の検索語に続けて渡されます - - - Name - 名前 - - - Keywords - キーワード - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - 以下の検索エンジンを追加しますか?<br /><br />検索エンジン名: %1<br />URL: %2 - - - - PasswordDialog - - Authentication Required - 認証要求 - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - ユーザ名: - - - Password: - パスワード: - - - - PlainTextEditSearch - - Not Found - 見つかりません - - - - ProxyDialog - - Proxy Authentication - プロキシ認証 - - - ICON - ICON - - - Connect to proxy - プロキシに接続 - - - Username: - ユーザ名: - - - Password: - パスワード: - - - - QObject - - The file is not an XBEL version 1.0 file. - XBEL バージョン 1.0 ファイルではありません. - - - Unknown title - 不明なタイトル - - - The file is not an OpenSearch 1.1 file. - これは OpenSearch 1.1 ファイルではありません。 - - - - RequestModel - - Redirect: %1 - リダイレクト: %1 - - - Method - メソッド - - - Address - アドレス - - - Response - レスポンス - - - Length - 長さ - - - Content Type - Content Type - - - Info - 情報 - - - - SearchBanner - - Form - Form - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - 閉じる - - - Highlight All - 全て強調表示 - - - - SearchLineEdit - - Search - 検索 - - - - Settings - - Preferences - 設定 - - - General - 全般 - - - On startup: - 起動時: - - - Show my home page - ホームページを開く - - - Show a blank page - 空白ページを開く - - - Restore windows and tabs from last time - 最後に開いていたウィンドウとタブを復元する - - - Home Page: - ホームページ: - - - Set to current page - 現在のページを使用 - - - Remove history items: - 履歴を削除するタイミング: - - - After one day - 1日後 - - - After one week - 1週間後 - - - After two weeks - 2週間後 - - - After one month - 1ヶ月後 - - - After one year - 1年後 - - - Manually - 手動 - - - On application exit - アプリケーション終了時 - - - Open links from applications: - リンクを開く時の動作: - - - In a tab in the current window - 表示しているタブで開く - - - In a new window - 新しいウィンドウで開く - - - Downloads - ダウンロード - - - Ask for a destination each time - 毎回保存先を指定する - - - Use this destination: - デフォルトの保存先: - - - Appearance - 外観 - - - Standard font: - 標準のフォント: - - - Times 16 - Times 16 - - - Select... - 選択... - - - Fixed-width font: - 固定幅フォント: - - - Courier 13 - Courier 13 - - - Privacy - プライバシー - - - Web Content - コンテンツ - - - Enable Plugins - プラグインを有効にする - - - Enable Javascript - Javascript を有効にする - - - View Images - 画像を表示 - - - Cookies - Cookie - - - Exceptions... - 例外... - - - Keep Cookies Until: - Cookie の保持期間: - - - I exit the application - arora が終了するまで - - - At most 90 days - 最長90日間 - - - Cookies... - Cookie を表示... - - - Tabs - タブ - - - Select tabs and windows as they are created - タブやウィンドウを作成した時に移動する - - - Confirm when closing multiple tabs - 複数のタブを閉じる時に確認する - - - Proxy - プロキシ - - - Use proxy server - プロキシを使用する - - - Type: - 種類: - - - Socks5 - Socks5 - - - Http - Http - - - Host name: - ホスト名: - - - Port: - ポート: - - - User Name: - ユーザ名: - - - Password: - パスワード: + GB + GB + + + HistoryDialog - Advanced - 拡張 + Open + 開く - Style Sheet: - スタイルシート: + Copy + コピー - Accept Cookies: - Cookie が送られてきたら: + Delete + 削除 + + + HistoryMenu - Always - 受け取る + Show All History + 全ての履歴を表示 - Never - 受け取らない + Clear History... + 履歴をクリア... - Only from sites you navigate to - サードパーティの Cookie は無視 + Clear History + 履歴をクリア - They expire - Cookie の有効期限が切れるまで + Do you want to clear the history? + 履歴をクリアしますか? + + + HistoryModel - Show only one close button instead of one for each tab - タブ毎の閉じるボタンをつけない + Title + タイトル - Preferred languages for viewing webpages in: - Web ページを表示する際に使用する言語の設定: + Address + アドレス + + + HistoryTreeModel - Block Popup Windows - ポップアップウィンドウをブロックする + Earlier Today + 本日 - - Opening links - リンクを開く + + %n item(s) + + %n 件 + + + + JavaScriptEndorphinObject - Links that want to open in a new window: - リンクを新しいウィンドウで開こうとした時の動作: + Welcome to Endorphin! + - In a new selected tab in the current window - 現在のウィンドウの新しいタブで開いて、そのタブに移動する + Endorphin Start + - In a new tab in the current window - 現在のウィンドウの新しいタブで開く + Search! + - In the current tab - 現在のタブで開く + Search the web with + - Http (Secure) - Http (安全な) + Search results provided by + - Http (Transparent) - Http (透過) + About Endorphin + + + + LanguageManager - Use ClickToFlash on flash plugins - Flash プラグインとして ClickToFlash を使う + Choose language + 言語の選択 - Filter Tracking Cookies - 追跡用 Cookie をフィルタする + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>OSのデフォルト設定とは異なる言語で動作させる事ができます.</p><p>使用したい言語を選択して下さい</p> - Confirm when closing multiple tabs or windows - 複数のタブやウィンドウを閉じる時に確認する + No translation files are installed at %1. + %1 に翻訳ファイルがありません。 + + + OpenSearchDialog - Quit the application when last tab is closed - 最後のタブを閉じる時にアプリケーションを終了する + Open File + ファイルを開く - Enable network cache - ネットワーク キャッシュを有功にする + OpenSearch + OpenSearch - Maximum Size: - 最大サイズ: + Error + エラー - MB - MB + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 は有効なOpenSearch 1.1定義ではないか、既にリストに登録済みです。 - Use the default search engine as fallback when the URL given by the user is invalid - 不正なURLが入力された場合、デフォルトの検索エンジンを使用する + You must have at least one search engine in here. + 1つ以上の検索エンジンを登録して下さい。 + + + OpenSearchEngineModel - Choose Directory... - ディレクトリを選択... + <strong>Description:</strong> %1 + <strong>説明:</strong> %1 - A cookie session ends: - Cookie セッションの有効期間: + <strong>Provides contextual suggestions</strong> + <strong>文脈に沿った候補を提供する</strong> - When I exit the application - アプリケーションが終了するまで + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + カンマで区切られたキーワードのリストは、検索時にロケーション バー内の検索語に続けて渡されます - 1 day - 1 日間 + Name + 名前 - 2 days - 2 日間 + Keywords + キーワード + + + OpenSearchManager - 3 days - 3 日間 + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + 以下の検索エンジンを追加しますか?<br /><br />検索エンジン名: %1<br />URL: %2 + + + PermissionBar - 7 days - 7 日間 + Allow + 許可 - 30 days - 30 日間 + Deny + - AutoFill - 自動入力 + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - フォームの自動入力: + Not Found + 見つかりません + + + QObject - User names and passwords - ユーザ名とパスワード + The file is not an XBEL version 1.0 file. + XBEL バージョン 1.0 ファイルではありません. - Edit... - 編集... + Unknown title + 不明なタイトル - Browse... - 参照... + The file is not an OpenSearch 1.1 file. + これは OpenSearch 1.1 ファイルではありません。 - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - 再起動が必要 - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - ネットワーク キャッシュの構成を変更しました。設定を有効にするにはブラウザの再起動が必要です。 + Search + 検索 + + + SettingsDialog Choose Directory ディレクトリを選択 @@ -2162,18 +954,6 @@ Do you want to ignore these errors?</qt> &Find 検索(&F) - - Source of Page - ソース表示 - - - &View - 表示(&V) - - - &Wrap lines - 行を折り返す(&W) - Source of Page %1 ページ(%1)のソース @@ -2189,10 +969,6 @@ Do you want to ignore these errors?</qt> Hide Tab Bar タブ バーを隠す - - New &Tab - 新しいタブ(&T) - Duplicate Tab タブを複製 @@ -2240,17 +1016,6 @@ Do you want to ignore these errors?</qt> Untitled (無題) - - Do you really want to close this page? - 本当にこのページを閉じますか? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - このページは変更されていますが、ページを閉じると変更は失われてしまいます. -本当にこのページを閉じますか? - Ctrl-] Ctrl-] @@ -2267,10 +1032,6 @@ Do you really want to close this page? Loading... 読み込み中... - - Loading %1% (%2 %3)... - 読み込み中 %1% (%2 %3)... - Finished loading 読み込み完了 @@ -2283,6 +1044,10 @@ Do you really want to close this page? Bookmark All Tabs 全てのタブをブックマーク + + Loading ... + + ToolbarSearch @@ -2302,14 +1067,6 @@ Do you really want to close this page? Suggestions 候補 - - Add '%1' - '%1' を追加 - - - Configure Search Engines... - 検索エンジンのカスタマイズ... - UserAgentMenu @@ -2330,41 +1087,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - %1 の読み込みでエラー - - - When connecting to: %1. - %1 への接続中にエラーが発生しました。 - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - <b>www</b>.arora-browser.org ではなく <b>ww</b>.arora-browser.org のような、URL誤りがないか確認してください - - - If the address is correct, try to check the network connection. - URLが正しい場合は、ネットワークの接続状況を確認してみてください。 - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - あなたのコンピュータやネットワークがファイアウォールやプロキシによって保護されている場合、Arora ブラウザにネットワークへのアクセスを許可してください。 - - - If the address is correct, try checking the network connection. - URLが正しい場合は、ネットワークの接続状況を確認してみてください。 - - - Resending POST request - POST リクエストを再送します - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - サイトを表示する為に、全てのデータを再送する必要がありますが、予期しない動作を引き起こす(例えば、注文やコメント投稿等の操作が再度行われる)可能性があります。それでも続行しますか? - - WebView @@ -2415,38 +1137,6 @@ Do you really want to close this page? Search with... 検索エンジンを指定して検索... - - Add to the toolbar search - ツールバーの検索エンジンに追加する - - - Method not supported - サポートされていないメソッド - - - %1 method is not supported. - メソッド( %1 )はサポートされていません。 - - - Search engine - 検索エンジン - - - Choose the desired search engine - 使用したい検索エンジンを選んでください - - - Engine name - 検索エンジン名の入力 - - - Type in a name for the engine - 検索エンジンの名前を入力してください - - - Block Image - 画像の読み込みをブロック - WebViewSearch diff --git a/src/locale/ko_KR.ts b/src/locale/ko_KR.ts index 3df35cff..3cde08b2 100644 --- a/src/locale/ko_KR.ts +++ b/src/locale/ko_KR.ts @@ -4,293 +4,73 @@ AboutDialog - - Lightweight WebKit-based web browser - WebKit 기반 경량 웹 브라우저 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - - + Authors 제작자 - - + License 라이센스 - - Close - 닫기 - - - + About %1 %1에 대하여 - - - WebKit version: %1 - WebKit 버전: %1 - - - - AcceptLanguage - - - Languages - 언어 - - - - Languages: in order of preference: - 언어 (선호순): - - - - Move &Up - 위로 (&U) - - - - Move &Down - 아래로 (&D) - - - - &Remove - 제거 (&R) - - - - Add... - 추가... - - - - AdBlockBlockedNetworkReply - - - Blocked by AdBlockRule: %1 - AdBlockRule 에 의해 차단됨: %1 - - - - AdBlockDialog - - - AdBlock Configuration - AdBlock 설정 - - - - Enable AdBlock - AdBlock 활성화 - - - - Action - 동작 - - - - Add Custom Rule - 개별 규칙 추가 - - - - Learn more about writing rules... - 규칙 작성하는 방법 배우기... - - - - Update Subscription - 구독 업데이트 - - - - Browse Subscriptions... - 구독 찾기... - - - - Remove Subscription - 구독 제거 - - - - AdBlockManager - - - Custom Rules - 개별 규칙 - - - - AdBlockModel - - - Rule - 규칙 - - - - AdBlockSchemeAccessHandler - - - Subscribe? - 구독 여부 확인 - - - - Subscribe to this AdBlock subscription? -%1 - 이 AdBlock 규칙을 구독할까요? -%1 - AddBookmarkDialog - - + Add Bookmark 북마크 추가 - - Type a name for the bookmark, and choose where to keep it. - 북마크 이름을 입력한 후 저장할 위치를 선택하여 주십시요. - - - + Url URL - + Title 제목 - + Add Folder 폴더 추가 - - AutoFillDialog - - - Form Passwords - 폼 비밀번호 - - - - Remove - 제거 - - - - Remove All - 모두 제거 - - - - AutoFillManager - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - <b>이 비밀번호를 저장할까요?</b><br> 저장된 비밀번호를 확인하고 제거하려면 설정에서 자동 채움 항목을 확인하여 주십시요. - - - - Never for this site - 이 사이트에서는 안 함 - - - - Not now - 지금 안 함 - - - - AutoFillModel - - - WebSite - 웹사이트 - - - - User Name - 사용자명 - - BookmarksDialog - - Bookmarks - 북마크 목록 - - - - &Remove - 제거 (&R) - - - - Add Folder - 폴더 추가 - - - + Open 열기 - + Open in New Tab 새 탭에서 열기 - + Edit Name 이름 편집 - + Edit Address 주소 편집 - + Delete 삭제 - + New Folder 새 폴더 @@ -298,114 +78,114 @@ p, li { white-space: pre-wrap; } BookmarksManager - + Bookmarks Bar 북마크 바 - + Bookmarks Menu 북마크 메뉴 - - + + Error when loading bookmarks on line %1, column %2: %3 북마크 목록을 읽는 데에 오류가 발생하였습니다. %1 번째 줄, %2번째 열을 확인하십시오. %3 - + Toolbar Bookmarks 북마크 도구 바 - + Menu 메뉴 - - + + XBEL bookmarks XBEL 북마크 목록 - + HTML Netscape bookmarks HTML Netscape 북마크 목록 - + Open File 파일 열기 - + htmlToXBel tool required htmlToXBel 도구가 필요합니다 - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Arora에 포함된 htmlToXBel 도구는 HTML 북마크 목록을 가지고 오는 데 필요하지만 지정된 경로에 설치되지 않았거나 찾을 수 없습니다. + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + - + Loading Bookmark 북마크 가져오기 - + Error when loading HTML bookmarks: %1 HTML 북마크 목록을 가져오는 데에 오류가 발생하였습니다: %1 - + Imported %1 %1 을(를) 가져왔습니다 - + Save File 파일로 저장 - + %1 Bookmarks.xbel %1 북마크 목록.xbel - + Export error 내보내기 오류 - + error saving bookmarks 북마크 목록 저장에 실패함 - + Remove Bookmark 북마크 제거 - + Insert Bookmark 북마크 추가 - + Name Change Undo bookmark title change 이름 바꾸기 - + Address Change Undo bookmark url change 주소 바꾸기 @@ -414,7 +194,7 @@ p, li { white-space: pre-wrap; } BookmarksMenu - + Open in Tabs 탭에서 열기 @@ -422,12 +202,12 @@ p, li { white-space: pre-wrap; } BookmarksModel - + Title 제목 - + Address 주소 @@ -435,27 +215,27 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - + Open 열기 - + Open in New &Tab 새 탭에서 열기 (&T) - + Remove 제거 - + Add Bookmark... 북마크 추가... - + Add Folder... 폴더 추가... @@ -463,504 +243,462 @@ p, li { white-space: pre-wrap; } BrowserApplication - + There are %1 windows and %2 tabs open Do you want to quit anyway? 지금 %1 개의 창과 %2 개의 탭이 열려 있습니다. 모든 창과 탭을 닫고 종료하시겠습니까? - + Restore failed 복원 실패함 - - Arora crashed while trying to restore this session. Should I try again? - Arora가 세션을 복원하는 과정에서 동작을 정지하였습니다. 다시 시도할까요? + + Endorphin crashed while trying to restore this session. Should I try again? + BrowserMainWindow - + Hide Toolbar 도구 바 숨기기 - + Show Toolbar 도구 바 보이기 - + Hide Bookmarks Bar 북마크 바 숨기기 - + Show Bookmarks Bar 북마크 바 보이기 - + Hide Status Bar 상태 바 숨기기 - + Show Status Bar 상태 바 보이기 - + Default 기본값 - + &File 파일 (&F) - + &New Window 새 창 열기 (&N) - + &Open File... 파일 열기 (&O)... - + Open &Location... 경로 열기 (&L)... - + &Save As... 새 이름으로 저장 (&S)... - + &Import Bookmarks... 북마크 목록 가져오기 (&I)... - + &Export Bookmarks... 북마크 목록 내보내기 (&E)... - - P&rint Preview... - 인쇄 미리보기 (&R)... - - - - &Print... - 인쇄 (&P)... - - - + Private &Browsing... 개인정보 보호 브라우징 (&B)... - + Close Window 창 닫기 - + &Quit 종료 (&Q) - + &Edit 편집 (&E) - + &Undo 되돌리기 (&U) - + &Redo 다시하기 (&R) - + Cu&t 잘라내기 (&T) - + &Copy 복사 (&C) - + &Paste 붙여넣기 (&P) - + Select &All 모두 선택 (&A) - + &Find 찾기 (&F) - + Find Nex&t 다음 항목 찾기 (&T) - + Find P&revious 이전 항목 찾기 (&R) - + &View 보기 (&V) - + Ctrl+| Ctrl+| - + Alt+Ctrl+B Alt+Ctrl+B - + Ctrl+/ Ctrl+/ - + Show Menu Bar 메뉴 바 보이기 - + &Reload Page 페이지 새로 고침 (&R) - + &Stop 중지 (&S) - + Zoom &In 확대 (&I) - + Zoom &Normal 기본 배율로 (&N) - + Zoom &Out 축소 (&O) - + Zoom &Text Only 글자만 확대 (&T) - + Page S&ource 페이지 소스 (&O) - + Ctrl+Alt+U Ctrl+Alt+U - + &Full Screen 전체 화면 (&F) - + Text Encoding 문자 인코딩 - + Hi&story 기록 (&S) - + Back 뒤로 - + Forward 앞으로 - + Home - + Restore Last Session 마지막 세션 복원 - - + + &Bookmarks 북마크 목록 (&B) - + Show All Bookmarks... 모든 북마크 목록 보기... - + Add Bookmark... 북마크 추가... - + Add Folder... 폴더 추가... - + &Window 창 (&W) - + &Tools 도구 (&T) - + Web &Search 웹 검색 (&S) - + Ctrl+K Web Search Ctrl+K - + &Clear Private Data 개인정보 데이터 지우기 (&C) - + Ctrl+Shift+Delete Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - 웹 속성 도구 활성화 (&I) + + %1 - Endorphin + Page title and Browser name + - + Options... 옵션... - + Ctrl+, Ctrl+, - + Configure Search Engines... 검색 엔진 설정... - + User Agent 사용자 에이전트 - - &Ad Block... - 광고 차단 (&A)... - - - + &Help 도움말 (&H) - + Switch application language 응용 프로그램 언어 변경 - + About &Qt Qt 에 대하여 (&Q) - + About &%1 About Browser &%1에 대하여 - + Navigation 탐색 - + Reload / Stop 새로 고침 / 중지 - - %1 - Arora - Page title and Browser name - %1 - Arora - - - + Open Web Resource 웹 리소스 열기 - + Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) 웹 리소스 (*.html *.htm *.svg *.png *.gif *.svgz);;모든 파일 (*.*) - - Print Document - 문서 인쇄 - - - + Are you sure you want to turn on private browsing? 개인정보 보호 브라우징으로 전환할까요? - + When private browsing is turned on, some actions concerning your privacy will be disabled: 개인정보 보호 브라우징으로 전환하게 되면 개인정보를 침해할 수 있는 일부 기능은 비활성화됩니다. - + Webpages are not added to the history. 웹 페이지가 기록에 추가되지 않습니다. - + Items are automatically removed from the Downloads window. 다운로드 목록 창의 항목은 자동으로 제거됩니다. - - New cookies are not stored, current cookies can't be accessed. - 새 쿠키는 저장하지 않으며, 현재 쿠키도 접근할 수 없습니다. - - - + Site icons won't be stored. 사이트 아이콘이 저장되지 않습니다. - + Session won't be saved. 세션이 저장되지 않습니다. - + Searches are not added to the pop-up menu in the search box. 검색 상자 안에서 이루어진 검색은 팝업 메뉴에 추가되지 않습니다. - + No new network cache is written to disk. 디스크에 새로운 네트워크 캐시를 저장하지 않습니다. - + Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. 창을 닫을 때까지 열었던 페이지는 "뒤로" "앞으로" 버튼을 클릭하면 언제든지 접근할 수 있습니다. - + Private Browsing 개인정보 보호 브라우징 - + Are you sure you want to close the window? There are %1 tabs open 모든 탭을 닫고 종료하시겠습니까? 지금 %1 개의 탭이 열려 있습니다. - - Web Inspector - 웹 속성 도구 - - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - 웹 속성 도구가 페이지를 올바르게 조사하려면 페이지가 열리기 전에 활성화되어야 합니다. -지금 모든 페이지를 새로 고칠까요? - - - + Stop loading the current page 이 페이지를 불러오는 것을 중단합니다 - + Stop 중지 - + Reload the current page 이 페이지를 새로 고칩니다 - + Reload 새로 고침 - + Downloads 다운로드 목록 - + Ctrl+Y Download Manager Ctrl+Y @@ -969,7 +707,7 @@ Do you want to reload all pages? ClearButton - + Clear 지우기 @@ -977,264 +715,55 @@ Do you want to reload all pages? ClearPrivateData - + Clear Private Data 개인정보 데이터 지우기 - + Clear the following items: 다음 항목이 지워집니다. - + &Browsing History 웹 브라우징 기록 (&B) - + &Download History 다운로드한 기록 (&D) - + &Search History 검색한 기록 (&S) - - &Cookies - 쿠키 (&C) - - - - C&ached Web Pages - 저장된 웹 페이지 (&A) - - - + Website &Icons 웹사이트 아이콘 (&I) - + Clear &Private Data 개인정보 데이터 (&P) - + &Cancel 취소 (&C) - - ClickToFlash - - - Load Flash - 플래시 불러오기 - - - - Load - 불러오기 - - - - Load All - 모두 불러오기 - - - - Add %1 to Whitelist - %1 을(를) 허용 목록에 추가 - - - - Remove from Whitelist - 허용 목록에서 제거 - - - - Settings - 설정 - - - - ClickToFlashSettings - - - Whitelist sites - 사이트 허용 목록 - - - - CookieExceptionsModel - - - Website - 웹사이트 - - - - Rule - 규칙 - - - - Allow - 허용 - - - - Block - 차단 - - - - Allow For Session - 이 세션에서 허용 - - - - CookieModel - - - Website - 웹사이트 - - - - Name - 이름 - - - - Path - 경로 - - - - Secure - 보안 - - - - Expires - 만료일 - - - - Contents - 내용 - - - - true - 안전함 - - - - false - 안전하지 않음 - - - - Session cookie - 세션 쿠키 - - - - CookiesDialog - - - Cookies - 쿠키 목록 - - - - &Remove - 제거 (&R) - - - - Remove &All Cookies - 모든 쿠키 제거 (&A) - - - - Add &Rule - 규칙 추가 (&R) - - - - CookiesExceptionsDialog - - - Cookie Exceptions - 쿠키 예외 목록 - - - - New Exception - 새 예외 항목 - - - - Domain: - 도메인: - - - - Block - 차단 - - - - Allow For Session - 이 세션에서 허용 - - - - Allow - 허용 - - - - Exceptions - 예외 목록 - - - - &Remove - 제거 (&R) - - - - Remove &All - 모두 제거 (&A) - - DownloadDialog - - + Downloads 다운로드 목록 - - Clean up - 비우기 - - - - 0 Items - 0 항목 - - - + Downloading %1 %1 다운로드 중 @@ -1242,72 +771,47 @@ Do you want to reload all pages? DownloadItem - - Ico - 아이콘 - - - - Filename - 파일명 - - - - Try Again - 재시도 - - - - Stop - 중지 - - - - Open - 열기 - - - + Save File 파일 저장 - + Download canceled: %1 다운로드 취소됨: %1 - + Download directory (%1) couldn't be created. 다운로드할 디렉토리 (%1) 을(를) 만들 수 없었습니다. - + Error opening output file: %1 출력 파일 열기 오류: %1 - + Error saving: %1 저장 오류: %1 - + Network Error: %1 네트워크 오류: %1 - + %1 of %2 (%3/sec) - %4 %2 중 %1 (%3/초) - %4 - + ? ? - + %1 of %2 - Download Complete %2 중 %1 (%3/초) - 다운로드를 완료하였습니다. @@ -1315,116 +819,68 @@ Do you want to reload all pages? DownloadManager - + There are %1 downloads in progress Do you want to quit anyway? 지금 %1 개의 다운로드 항목이 완료되지 않았습니다. 다운로드를 중지하고 종료하시겠습니까? - + %n Download(s) %n 개의 다운로드 항목 - + %n minutes remaining %n 분 남음 - + %n seconds remaining %n 초 남음 - + bytes 바이트 - + kB KB - + MB MB - + GB GB - - FileAccessReply - - - No Error - 오류 없음 - - - - Error opening: %1: No such file or directory - %1 을(를) 열 수 없습니다. 파일이나 디렉토리가 아닙니다. - - - - Unable to read %1 - %1 을 읽을 수 없습니다 - - - - Contents of %1 - %1 의 내용 - - - - %1 KB - %1 KB - - - - Show Hidden Files - 숨겨진 파일 보기 - - HistoryDialog - - History - 기록 - - - - &Remove - 제거 (&R) - - - - Remove &All - 모두 제거 (&A) - - - + Open 열기 - + Copy 복사 - + Delete 삭제 @@ -1432,22 +888,22 @@ Do you want to quit anyway? HistoryMenu - + Show All History 모든 기록 보기 - + Clear History... 기록 비우기... - + Clear History 기록 비우기 - + Do you want to clear the history? 기록을 비우시겠습니까? @@ -1455,12 +911,12 @@ Do you want to quit anyway? HistoryModel - + Title 제목 - + Address 주소 @@ -1468,12 +924,12 @@ Do you want to quit anyway? HistoryTreeModel - + Earlier Today 방금 전 - + %n item(s) %n 항목 @@ -1481,158 +937,81 @@ Do you want to quit anyway? - JavaScriptAroraObject + JavaScriptEndorphinObject - - Welcome to Arora! - Arora 를 사용해 주셔서 감사합니다. + + Welcome to Endorphin! + - - Arora Start - Arora 시작 + + Endorphin Start + - + Search! - 검색 + - + Search the web with - + Search results provided by - 검색 결과 제공자: + - - About Arora - Arora에 대하여 + + About Endorphin + LanguageManager - + No translation files are installed at %1. 언어 파일이 %1 에 설치되지 않았습니다. - + Choose language 언어 선택 - + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> <p>운영체제 기본 언어가 아닌 다른 언어라도<br>적용하여 실행할 수 있습니다.</p><p>사용할 언어를 선택하여 주십시요.</p> - NetworkAccessManager + OpenSearchDialog - - <qt>Enter username and password for "%1" at %2</qt> - <qt>"%1" 에서 사용하는 사용자명과 암호를 %2 에 입력하십시오.</qt> + + Open File + 파일 열기 - - <qt>Connect to proxy "%1" using:</qt> - <qt>"%1" 프록시 서버에 다음을 사용하여 연결:</qt> + + OpenSearch + OpenSearch - - Issuer: %1 - 발행자: %1 + + + Error + 오류 - - Not valid before: %1 - %1 부터 유효함 + + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 은(는) 올바른 OpenSearch 1.1 규격 파일이 아니거나 이미 목록에 있습니다. - - Valid until: %1 - %1 까지 유효함 - - - - Alternate Names: - 별칭: - - - - - SSL Errors - - SSL 오류 - - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL 오류:<br/><br/><tt>%1</tt> 에서 발생<ul><li>%2</li></ul> - -이 오류를 무시하겠습니까?</qt> - - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>인증서:<br/>%1<br/>이 인증서를 모두 허용하시겠습니까?</qt> - - - - OpenSearchDialog - - - OpenSearch Manager - OpenSearch 관리자 - - - - &Add - 추가 (&A) - - - - &Delete - 삭제 (&D) - - - - &Restore Defaults - 기본값으로 (&R) - - - - &Close - 닫기 (&C) - - - - Open File - 파일 열기 - - - - OpenSearch - OpenSearch - - - - - Error - 오류 - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 은(는) 올바른 OpenSearch 1.1 규격 파일이 아니거나 이미 목록에 있습니다. - - - + You must have at least one search engine in here. 하나 이상의 검색 엔진이 있어야 합니다. @@ -1640,27 +1019,27 @@ Do you want to ignore these errors?</qt> OpenSearchEngineModel - + <strong>Description:</strong> %1 <strong>규격:</strong> %1 - + <strong>Provides contextual suggestions</strong> <strong>문장 제안을 제공함</strong> - + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine 구분점으로 구분된 단어 목록은 주소 바에 입력할 수 있고, 이 검색 엔진을 사용할 때 검색 규칙에 따라 처리됩니다 - + Name 이름 - + Keywords 키워드 @@ -1668,592 +1047,107 @@ Do you want to ignore these errors?</qt> OpenSearchManager - + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 이 검색 엔진 목록을 브라우저에서 이용할 검색 목록에 추가하시겠습니까?<br /><br />이름: %1<br />검색 위치: %2 - PasswordDialog - - - Authentication Required - 인증이 필요함 - - - - DUMMY ICON - 더미 아이콘 - + PermissionBar - - INTRO TEXT DUMMY - 텍스트 더미 인트로 + + Allow + 허용 - - Username: - 사용자명: + + Deny + - - Password: - 암호: + + %1 wants to %2. + PlainTextEditSearch - + Not Found 찾을 수 없음 - - ProxyDialog - - - Proxy Authentication - 프록시 서버 인증 - - - - Connect to proxy - 프록시 서버에 연결 - - - - Username: - 사용자명: - - - - Password: - 암호: - - QObject - + The file is not an XBEL version 1.0 file. 이 파일은 XBEL 1.0 규격 파일이 아닙니다. - + Unknown title 제목 없음 - + The file is not an OpenSearch 1.1 file. 이 파일은 OpenSearch 1.1 규격 파일이 아닙니다. - - - SearchBanner - - - Highlight All - 모두 표시 - - - - Done - 완료 - - - - SearchLineEdit - - - Search - 검색 - - - - Settings - - - Preferences - 설정 - - - - General - 일반 - - - - On startup: - 시작할 때: - - - - Show my home page - 내 홈 페이지 보이기 - - - - Show a blank page - 빈 페이지 보이기 - - - - Restore windows and tabs from last time - 마지막으로 열었던 창과 탭 복원 - - - - Home Page: - 홈 페이지: - - - - Set to current page - 현재 페이지로 설정 - - - - Remove history items: - 기록 항목 제거: - - - - After one day - 하루마다 - - - - After one week - 1주마다 - - - - After two weeks - 2주마다 - - - - After one month - 1달마다 - - - - After one year - 1년마다 - - - - Manually - 수동으로 - - - - On application exit - 어플리케이션을 종료할 때 - - - - Use the default search engine as fallback when the URL given by the user is invalid - 입력한 URL이 올바르지 않을 때 기본 검색 엔진 사용 - - - - Enable access keys - 접근 키 활성화 - - - - Downloads - 다운로드 - - - - Ask for a destination each time - 다운로드할 경로를 매번 물어봄 - - - - Use this destination: - 이 경로를 사용: - - - - Choose Directory... - 디렉토리 선택... - - - - Use this external download program: - 다른 다운로드 프로그램 사용: - - - - Choose Program... - 프로그램 선택... - - - - Appearance - 모양새 - - - - Standard font: - 기본 글꼴: - - - - - - Select... - 선택... - - - - Fixed-width font: - 고정폭 글꼴: - - - - Preferred languages for viewing webpages in: - 웹 페이지를 볼 언어: - - - - Minimum Font size: - 글꼴 최소 크기: - - - - Privacy - 개인 정보 - - - - Web Content - 웹 항목 - - - - Block Popup Windows - 팝업 창 차단 - - - - Enable Plugins - 플러그인 활성화 - - - - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. - 이 옵션을 활성화하면 플래시 객체를 바로 불러들이지 않도록 않도록 설정됩니다. 이 플래시 객체는 각각 버튼으로 대체되며, 사용자가 버튼을 눌러 이 플래시 객체를 불러들일 것인지 선택할 수 있습니다. - - - - Use ClickToFlash on flash plugins - 플래시 플러그인에 ClickToFlash 사용 - - - - Enable Javascript - Javascript 활성화 - - - - View Images - 이미지 보기 - - - - Persistent Data Storage - 오프라인 저장소 사용 - - - - Cookies - 쿠키 - - - - Accept Cookies: - 쿠키 허용: - - - - Always - 항상 - - - - Never - 안함 - - - - Only from sites you navigate to - 방문한 사이트만 - - - - Exceptions... - 예외... - - - - Keep Cookies Until: - 쿠키 보존 기한: - - - - They expire - 사이트가 지정한 만료일 - - - - I exit the application - 어플리케이션을 닫을 때까지 - - - - At most 90 days - 90일간 - - - - Cookies... - 쿠키... - - - - Filter Tracking Cookies - 방문자 추적 쿠키 거르기 - - - - A cookie session ends: - 쿠키 세션 만료일: - - - - When I exit the application - 어플리케이션을 닫을 때 - - - - 1 day - 1일 - - - - 2 days - 2일 - - - - 3 days - 3일 - - - 7 days - 7일 - - - - 30 days - 30일 - - - - Tabs - - - - - Select tabs and windows as they are created - 생성된 탭과 창을 보여줌 - - - - Confirm when closing multiple tabs or windows - 여러 탭과 창을 닫을 때 물어보기 - - - - Show only one close button instead of one for each tab - 각 탭의 닫기 버튼을 단일 닫기 버튼으로 대체 - - - - Quit the application when last tab is closed - 마지막 탭을 닫았을 때 어플리케이션을 종료 - - - - Opening links - 링크를 열 방법 - - - - Links that want to open in a new window: - 새 창으로 링크를 열 때: - - - - - In a new window - 새 창 열기 - - - - - In a new selected tab in the current window - 현재 창에서 새 탭을 열어 보이기 - - - - - In a new tab in the current window - 현재 창에서 새 탭으로 열기 - - - - - In the current tab - 현재 탭에서 보이기 - - - - Open links from applications: - 어플리케이션에서 링크를 열 때: - - - - Proxy - 프록시 - - - - Use proxy server - 프록시 서버 사용 - - - - Type: - 연결 종류: - - - - Socks5 - Socks5 - - - - Http (Secure) - Http (보안) - - - - Http (Transparent) - Http (투명) - - - - Host name: - 호스트: - - - - Port: - 포트: - - - - User Name: - 사용자명: - - - - Password: - 암호: - - - - AutoFill - 자동완성 - - - - AutoFill web forms: - 웹 폼 자동완성 - - - - User names and passwords - 사용자명과 암호 - - - - Edit... - 편집... + + use desktop notifications + - - Advanced - 고급 + + use your position + - - Style Sheet: - 스타일시트: + + use your microphone + - - Browse... - 찾기... + + use your camera + - - Enable network cache - 네트워크 캐시 활성화 + + use your camera and microphone + - - Maximum Size: - 용량 한도: + + lock your mouse + + + + SearchLineEdit - - MB - MB + + Search + 검색 SettingsDialog - - Restart required - 다시 시작이 필요함 - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - 네트워크 캐시 설정이 변경되었습니다. 변경된 설정을 적용하려면 브라우저를 다시 시작해야 합니다. - - - + Choose Directory 디렉토리 선택 - + Choose Program 프로그램 선택 - + Choose CSS File CSS 파일 선택 @@ -2261,22 +1155,22 @@ Do you want to ignore these errors?</qt> SourceViewer - + Loading... 불러오는 중... - + &Edit 편집 (&E) - + &Find 찾기 (&F) - + Source of Page %1 %1 페이지의 소스 @@ -2284,37 +1178,37 @@ Do you want to ignore these errors?</qt> TabBar - + Show Tab Bar 탭 바 보이기 - + Hide Tab Bar 탭 바 숨기기 - + Duplicate Tab 탭 복제 - + &Close Tab 탭 닫기 (&C) - + Close &Other Tabs 다른 탭 닫기 (&O) - + Reload Tab 탭 새로 고침 - + Reload All Tabs 모든 탭 새로 고침 @@ -2322,86 +1216,72 @@ Do you want to ignore these errors?</qt> TabWidget - + Untitled 제목 없음 - + Saved Tabs 저장된 탭 목록 - - Do you really want to close this page? - 이 페이지를 정말 닫으시겠습니까? - - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - 이 페이지에서 편집한 내용은 페이지를 닫을 때 손실될 수 있습니다. -이 페이지를 정말 닫으시겠습니까? - - - - + Loading... 불러오는 중... - - Loading %1% (%2 %3)... - %1% 불러옴 (%2 %3)... + + Loading ... + - + Finished loading 불러오기 성공 - + Failed to load 불러오기 실패 - + Show Next Tab 다음 탭 보기 - + Ctrl-] Ctrl-] - + Show Previous Tab 기존 탭 보기 - + Ctrl-[ Ctrl-[ - + Recently Closed Tabs 이전에 닫은 탭 보기 - + New &Tab 새 탭 (&T) - + &Close Tab 탭 닫기 (&C) - + Bookmark All Tabs 모든 탭 북마크 @@ -2409,27 +1289,22 @@ Do you really want to close this page? ToolbarSearch - + Suggestions 제안 - - Add '%1' - '%1' 추가 - - - + Clear Recent Searches 최근 검색 기록 비우기 - + No Recent Searches 최근 검색 기록 없음 - + Recent Searches 최근 검색 기록 @@ -2437,163 +1312,85 @@ Do you really want to close this page? UserAgentMenu - + Default 기본값 - + Other... 다른 설정... - + Custom user agent 사용자 에이전트 지정 - + User agent: 사용자 에이전트: - - WebPage - - - Resending POST request - POST 요청 재전송 필요함 - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - 이 사이트를 표시하려면 사이트를 요청할 때 이용한 모든 데이터를 다시 보내야 합니다. 이 작업은 사이트에서 기대하지 않은 동작을 진행할 수 있습니다. 예로, 방금 했던 작업이 다시 실행될 수 있습니다. 계속 진행하시겠습니까? - - - - Error loading page: %1 - %1 페이지 불러오기 오류 - - - - When connecting to: %1. - %1 에 접속하려고 하였습니다. - - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - 주소를 실수로 <b>www</b>.arora-browser.org 대신 <b>ww</b>.arora-browser.org 와 같이 입력하였는지 확인하여 주십시요. - - - - If the address is correct, try checking the network connection. - 주소를 제대로 입력하였다면 네트워크 연결을 확인하여 주십시요. - - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - 컴퓨터나 네트워크가 방화벽이나 프록시 서버로 보호받고 있다면 브라우저가 네트워크에 접속하는 데 제한이 있는지 확인하여 주십시요. - - WebView - + Open in New &Window 새 창에서 열기 (&N) - + Open in New &Tab 새 탭에서 열기 (&T) - + Save Lin&k 링크 저장 (&K) - + &Bookmark This Link 이 링크를 북마크 (&B) - + &Copy Link Location 링크 주소 복사 (&C) - + Open Image in New &Window 새 창에 이미지 열기 (&W) - + Open Image in New &Tab 새 탭에 이미지 열기 (&T) - + &Save Image 이미지 저장 (&S) - + &Copy Image 이미지 복사 (&C) - + C&opy Image Location 이미지 주소 복사 (&O) - - Block Image - 이미지 차단 - - - + Search with... 이 부분을 검색... - - Add to the toolbar search - 도구 검색에 추가 - - - - Method not supported - 기능 지원 안됨 - - - - %1 method is not supported. - %1 기능은 지원하지 않습니다. - - - - Search engine - 검색 엔진 - - - - Choose the desired search engine - 검색할 엔진을 선택하십시오 - - - - Engine name - 엔진 이름 - - - - Type in a name for the engine - 엔진 이름을 입력하십시오 - - - + Loading... 불러오는 중... @@ -2601,7 +1398,7 @@ Do you really want to close this page? WebViewSearch - + Not Found 찾을 수 없음 diff --git a/src/locale/ms.ts b/src/locale/ms.ts index f9527f56..2fd2b36c 100644 --- a/src/locale/ms.ts +++ b/src/locale/ms.ts @@ -3,10 +3,6 @@ AboutDialog - - About - Perihal - Authors Penulis @@ -15,137 +11,10 @@ License Lesen - - Lightweight WebKit-based web browser - Pelayan web ringan berasaskan WebKit - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Tutup - About %1 - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Bahasa - - - Languages: in order of preference: - Bahasa di dalam turutan minat: - - - Move &Up - Naik A&tas - - - Move &Down - Turun Ba&wah - - - &Remove - &Keluarkan - - - Add... - Tambah... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - Peraturan - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -153,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Tambah Tandabuku - - Type a name for the bookmark, and choose where to keep it. - Taipkan nama tandabuku dan pilih di mana harus disimpan. - Url Url @@ -170,47 +35,6 @@ p, li { white-space: pre-wrap; } Tambah Folder - - AutoFillDialog - - Form Passwords - - - - Remove - Buang - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -229,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder Folder Baru - - Bookmarks - Tandabuku - - - &Remove - &Buang - - - Add Folder - Tambah Folder - Edit Name Sunting Nama @@ -270,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File Buka Fail - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 %1 diimport @@ -302,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Masukkan tandabuku - - Name Change - Perubahan Nama - - - Address Change - Alamat Berubah - Bookmarks Bar Bar Tandabuku @@ -318,16 +118,6 @@ p, li { white-space: pre-wrap; } Bookmarks Menu Menu Tandabuku - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Ralat semasa memuatkan tandabuku html: %1 - - Name Change Undo bookmark title change @@ -350,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -363,6 +149,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -384,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Tandabuku - Open Buka @@ -408,17 +194,9 @@ p, li { white-space: pre-wrap; } Add Folder... Tambah Folder... - - Bookmarks - Tandabuku - BrowserApplication - - (Change: %1 %2) - (Ubah: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -430,11 +208,7 @@ Teruskan untuk keluar? Gagal mengembalikan - The saved session will not be restored because Arora crashed while trying to restore this session. - Arora gagal berfungsi semasa cuba mengembalikan sessi yang disimpan. Sessi berkenaan tidak akan dikembalikan. - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -468,14 +242,6 @@ Teruskan untuk keluar? &Export Bookmarks... &Eksport Tandabuku... - - P&rint Preview... - P&rapapar Pencetak... - - - &Print... - &Pencetak... - Private &Browsing... Melungsur secara pri&vasi... @@ -520,10 +286,6 @@ Teruskan untuk keluar? Find P&revious C&ari Sebelumnya - - Prefere&nces... - Opsye&n... - Ctrl+, Ctrl+, @@ -540,10 +302,6 @@ Teruskan untuk keluar? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -556,18 +314,6 @@ Teruskan untuk keluar? &Reload Page &Muatsemula Laman - - Make Text &Bigger - &Besarkan Text - - - Make Text &Normal - &Normalkan Text - - - Make Text &Smaller - &Kecilkan Text - Page S&ource S&umber Laman @@ -604,10 +350,6 @@ Teruskan untuk keluar? &Bookmarks Tanda&buku - - Manage Bookmarks... - Urus Tandabuku... - Add Bookmark... Tambah Tandabuku... @@ -638,10 +380,6 @@ Teruskan untuk keluar? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Benarkan Peny&iasat Web - &Help Bant&uan @@ -654,10 +392,6 @@ Teruskan untuk keluar? About &Qt Perihal &Qt - - About &Arora - Perihal &Arora - Navigation Navigasi @@ -686,15 +420,6 @@ Teruskan untuk keluar? Hide Bookmarks Bar Sembunyi Bar Tandabuku - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Buka Sumber Web @@ -703,32 +428,10 @@ Teruskan untuk keluar? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Sumber Web (*.html *.htm *.svg *.png *.gif *.svgz);;Semua fail (*.*) - - Print Document - Cetak Dokumen - Are you sure you want to turn on private browsing? Anda pasti ingin membuka lungsuran secara privasi? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Apabila lungsuran secara privasi sedang dibuka, Aksi yang melibatkan privasi anda dilumpuhkan:<ul><li> Laman yang dilawati tidak ditambah ke sejarah.</li><li> Senarai muaturun dibersihkan.</li><li> Cookies baru tidak disimpan, cookies semasa tidak boleh dicapai.</li><li> Ikon laman web dan sessi tidak disimpan.</li><li> Carian tidak disimpan di menu popup kotak carian.</li></ul>Selagi tetingkap tidak ditutup, anda masih boleh klik pada butang Undur dan Maju untuk kembalik ke laman yang pernah dibuka. - - - Are you sure you want to close the window?  There are %1 tabs open - Anda pasti ingin menutup tetingkap ini? Masih ada %1 tab terbuka - - - Web Inspector - Penyiasat Web - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Penyiasat Web cuma akan berfungsi dengan baik di laman yang dibuka selepas ia dibenarkan berfungsi. -Anda mahu memuatsemula kesemua laman? - Stop loading the current page Henti memuat laman semasa @@ -741,15 +444,6 @@ Anda mahu memuatsemula kesemua laman? Downloads Muaturun - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - - - Show &Network Monitor - Papar Penyelia Rangkaia&n - Are you sure you want to close the window? There are %1 tabs open Anda pasti ingin menutup tetingkap ini? Masih ada %1 tab yang terbuka @@ -788,10 +482,6 @@ Anda mahu memuatsemula kesemua laman? Perihal Pelayar Perihal &%1 - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Apabila lungsuran privasi dipasang, sebahagian tindakan melibatkan privasi akan di lumpuhkan:<ul><li> Laman web tidak disimpan di dalam sejarah.</li><li> Senarai muaturun akan dikeluarkan dari tetingkap Muaturun.</li><li> Cookies baru tidak akan disimpan dan cookies semasa tidak dapat digunakan.</li><li> Ikon laman web tidak disimpan, sessi tidak disimpan.</li><li> Carian tidak ditambah pada menu popup di kekotak carian.</li></ul>Sebelum anda menutup tetingkap, anda masih boleh menggunakan butang Undur dan Maju untuk kembali ke laman web yang pernah di buka. - Ctrl+Y Download Manager @@ -822,10 +512,6 @@ Anda mahu memuatsemula kesemua laman? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -838,10 +524,6 @@ Anda mahu memuatsemula kesemua laman? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -882,6 +564,11 @@ Anda mahu memuatsemula kesemua laman? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -912,14 +599,6 @@ Anda mahu memuatsemula kesemua laman? &Search History Sejarah &Carian - - &Cookies - Coo&kie - - - C&ached Web Pages - C&ache Laman Web - Website &Icons &Ikon Laman web @@ -934,1185 +613,325 @@ Anda mahu memuatsemula kesemua laman? - ClickToFlash - - Load - - - - Load All - - - - Add %1 to Whitelist - - - - Remove from Whitelist - - - - Settings - - + DownloadDialog - Load Flash - + Downloads + Muaturun - - - ClickToFlashSettings - Whitelist sites + Downloading %1 - CookieExceptionsModel - - Website - Laman web - - - Rule - Peraturan - - - Allow - Benar - - - Block - Larang - - - Allow For Session - Benarkan Untuk Sessi - - - - CookieModel + DownloadItem - Website - Laman web + Save File + Simpan Fail - Name - Nama + Download canceled: %1 + Muaturun dibatalkan: %1 - Path - Path + Error opening output file: %1 + Ralat membuka fail keluaran: %1 - Secure - Selamat + Error saving: %1 + Ralat menyimpan: %1 - Expires - Luput + Network Error: %1 + Ralat Rangkaian: %1 - Contents - Kandungan + ? + ? - true - true + %1 of %2 (%3/sec) - %4 + %1 dari %2 (%3/saat) - %4 - false - false + Download directory (%1) couldn't be created. + - Session cookie + %1 of %2 - Download Complete - CookiesDialog - - Cookies - Cookie - - - &Remove - &Buang - - - Remove &All Cookies - Buang Semu&a Cookie - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - Pengecualian Cookie - - - New Exception - Cookie Baru - - - Domain: - Domain: - - - Block - Larang - - - Allow For Session - Benarkan Untuk Sessi - - - Allow - Benar - - - Exceptions - Pengecualian - - - &Remove - &Buang - - - Remove &All - Buang Semu&a - - - - DownloadDialog - - Downloads - Muaturun - - - Clean up - Bersihkan - - - 0 Items - 0 perkara - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Form - Form - - - Ico - Ico - - - Filename - Nama fail - - - Try Again - Cuba Semula - - - Stop - Henti - - - Open - Buka - - - Save File - Simpan Fail - - - Download canceled: %1 - Muaturun dibatalkan: %1 - - - Error opening output file: %1 - Ralat membuka fail keluaran: %1 - - - Error saving: %1 - Ralat menyimpan: %1 - - - Network Error: %1 - Ralat Rangkaian: %1 - - - seconds - saat - - - - %n minutes remaining - - lagi %n minit - - - - - - %n seconds remaining - - lagi %n saat - - - - - %1 of %2 (%3/sec) %4 - %1 dari %2 (%3/saat) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 of %2 - Berhenti - - - bytes - byte - - - kB - kB - - - MB - MB - - - %1 of %2 (%3/sec) - %4 - %1 dari %2 (%3/saat) - %4 - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n Muaturun - - - - - There are %1 downloads in progress -Do you want to quit anyway? - Masih ada %1 proses muaturun berjalan -Anda masih ingin keluar? - - - %n minutes remaining - - lagi %n minit - - - - - %n seconds remaining - - lagi %n saat - - - - - bytes - byte - - - kB - kB - - - MB - MB - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - Buka - - - Copy - Salin - - - Delete - Padam - - - History - Sejarah - - - &Remove - &Buang - - - Remove &All - Buang Semu&a - - - - HistoryMenu - - Show All History - Tunjuk Semua Sejarah - - - Clear History... - Hapus Sejarah... - - - Clear History - Hapus Sejarah - - - Do you want to clear the history? - Anda mahu hapus sejarah? - - - - HistoryModel - - Title - Tajuk - - - Address - Alamat - - - - HistoryTreeModel - - Earlier Today - Awal Hari Ini - - - %n item(s) - - %n perkara - - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - System locale (%1) %2 - Sistem Lokal (%1) %2 - - - Choose language - Pilih bahasa - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Anda boleh menggunakan bahasa selain dari<br>tetapan sistem operasi.</p><p>Sila pilih bahasa yang harus digunakan</p> - - - Default - Lalai - - - No translation files are installed. - Fail terjemahan tidak dipasang. - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Masukkan nama pengguna dan katalaluan untuk "%1" di %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Berhubung dengan proxy "%1" menggunakan:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Ralat SSL: - -%1 - -%2 - -Anda mahu abaikan ralat ini? - - - Do you want to accept all these certificates? - Anda mahu menerima kesemua sijil? - - - - SSL Errors - - Ralat SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Ralat SSL:<br/><br/>untuk: <tt>%1</tt><ul><li>%2</li></ul> - -Anda ingin abaikan ralat ini?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Sijil:<br/>%1<br/>Anda mahu menerima kesemua sijil ini?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - Nama - - - Value - Nilai - - - - NetworkMonitorDialog - - Network Monitor - Penyelia Rangkaian - - - Network Requests - Permintaan Rangkaian - - - Request Headers - Pengepala Permintaan - - - Response Headers - Pengepala Balasan - - - &Remove - &Buang - - - Remove &All Requests - Buang Semu&a Permintaan - - - - OpenSearchDialog - - Open File - Buka Fail - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Nama - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - Pengesahan Diperlukan - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Nama pengguna: - - - Password: - Katalaluan: - - - - PlainTextEditSearch - - Not Found - Tiada di laman ini - - - - ProxyDialog - - Proxy Authentication - Pengesahan Proxy - - - ICON - ICON - - - Connect to proxy - Berhubung dengan proxy - - - Username: - Nama pengguna: - - - Password: - Katalaluan: - - - - QObject - - The file is not an XBEL version 1.0 file. - Ini bukan fail XBEL versi 1.0. - - - Unknown title - Tajuk tidak diketahui - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Redirect: %1 - Lencongan %1 - - - Method - Kaedah - - - Address - Alamat - - - Response - Balasan - - - Length - Panjang - - - Content Type - Jenis Kandungan - - - Info - Maklumat - - - - SearchBanner - - Form - Form - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - Sudah - - - Highlight All - - - - - SearchLineEdit - - Search - Cari - - - - Settings - - Preferences - Opsyen - - - General - Umum - - - On startup: - Bila dibuka: - - - Show my home page - Tunjuk laman utama saya - - - Show a blank page - Tunjuk laman kosong - - - Restore windows and tabs from last time - Kembalikan tetingkap dan tab dari masa lampau - - - Home Page: - Laman Utama: - - - Set to current page - Tetapkan kepada laman semasa - - - Remove history items: - Buang sejarah: - - - After one day - Selepas sehari - - - After one week - Selepas seminggu - - - After two weeks - Selepas dua minggu - - - After one month - Selepas sebulan - - - After one year - Selepas setahun - - - Manually - Secara manual - - - On application exit - Bila aplikasi keluar - - - Open links from applications: - Buka pautan dari aplikasi: - - - In a tab in the current window - Di tab pada tetingkap semasa - - - In a new window - Di tetingkap baru - - - Downloads - Muaturun - - - Ask for a destination each time - Sentiasa menanya destinasi - - - Use this destination: - Gunakan destinasi ini: - - - Appearance - Penampilan - - - Standard font: - Font Standard: - - - Times 16 - Times 16 - - - Select... - Pilih... - - - Fixed-width font: - Font lebar-tetap: - - - Courier 13 - Courier 13 - - - Privacy - Privasi - - - Web Content - Kandungan Web - - - Enable Plugins - Benarkan Plugin - - - Enable Javascript - Benarkan Javascript - - - View Images - Tunjuk Imej - - - Cookies - Cookie - - - Accept Cookies: - Terima Cookie: - - - Always - Sentiasa - - - Never - Tidak - - - Only from sites you navigate to - Cuma dari laman yang anda pergi - - - Exceptions... - Pengecualian... - - - Keep Cookies Until: - Simpan cookie sehingga: - - - They expire - ia lupus - - - I exit the application - saya keluar dari aplikasi - - - At most 90 days - sehingga 90 hari + DownloadManager + + %n Download(s) + + %n Muaturun + + - Cookies... - Cookie... + There are %1 downloads in progress +Do you want to quit anyway? + Masih ada %1 proses muaturun berjalan +Anda masih ingin keluar? - - Tabs - Tab + + %n minutes remaining + + lagi %n minit + + - - Select tabs and windows as they are created - Pilih tab dan tetingkap sebaik ia dicipta + + %n seconds remaining + + lagi %n saat + + - Confirm when closing multiple tabs - Pastikan bila menutup berbilang tab + bytes + byte - Proxy - Proxy + kB + kB - Use proxy server - Guna server proxy + MB + MB - Type: - Type: + GB + + + + HistoryDialog - Socks5 - Socks5 + Open + Buka - Http - Http + Copy + Salin - Host name: - Host name: + Delete + Padam + + + HistoryMenu - Port: - Port: + Show All History + Tunjuk Semua Sejarah - User Name: - Nama pengguna: + Clear History... + Hapus Sejarah... - Password: - Katalaluan: + Clear History + Hapus Sejarah - Advanced - Lanjut + Do you want to clear the history? + Anda mahu hapus sejarah? + + + HistoryModel - Style Sheet: - Style Sheet: + Title + Tajuk - Show only one close button instead of one for each tab - Papar cuma satu butang tutup bagi keseluruhan tab + Address + Alamat + + + HistoryTreeModel - Preferred languages for viewing webpages in: - Bahasa digemari untuk melihat laman web: + Earlier Today + Awal Hari Ini - - Block Popup Windows - Halang Tetingkap Popup + + %n item(s) + + %n perkara + + + + + JavaScriptEndorphinObject - Opening links - Membuka capaian + Welcome to Endorphin! + - Links that want to open in a new window: - Capaian yang hendak dibuka di tetingkap baru: + Endorphin Start + - In a new selected tab in the current window - Di dalam tab terpilih baru di tetingkap semasa + Search! + - In a new tab in the current window - Di dalam tab baru di tetingkap semasa + Search the web with + - In the current tab - Di dalam tab semasa + Search results provided by + - Http (Secure) - Http (Selamat) + About Endorphin + + + + LanguageManager - Http (Transparent) - Http (Telus) + Choose language + Pilih bahasa - Use ClickToFlash on flash plugins - + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Anda boleh menggunakan bahasa selain dari<br>tetapan sistem operasi.</p><p>Sila pilih bahasa yang harus digunakan</p> - Filter Tracking Cookies + No translation files are installed at %1. + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - + Open File + Buka Fail - Quit the application when last tab is closed + OpenSearch - Enable network cache + Error - Maximum Size: + %1 is not a valid OpenSearch 1.1 description or is already on your list. - MB + You must have at least one search engine in here. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid + <strong>Description:</strong> %1 - Choose Directory... + <strong>Provides contextual suggestions</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Nama - 1 day + Keywords + + + OpenSearchManager - 2 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 3 days - + Allow + Benar - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + Tiada di laman ini + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + Ini bukan fail XBEL versi 1.0. - User names and passwords - + Unknown title + Tajuk tidak diketahui - Edit... + The file is not an OpenSearch 1.1 file. - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Cari SettingsDialog - - Restart required - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - - Choose Directory @@ -2140,18 +959,6 @@ Anda ingin abaikan ralat ini?</qt> &Find &Cari - - Source of Page - Sumber Laman - - - &View - &Lihat - - - &Wrap lines - &Wrap barisan - Source of Page %1 @@ -2167,10 +974,6 @@ Anda ingin abaikan ralat ini?</qt> Hide Tab Bar Sembunyi Bar Tab - - New &Tab - &Tab Baru - Duplicate Tab Salin Tab @@ -2218,18 +1021,6 @@ Anda ingin abaikan ralat ini?</qt> Untitled Tiada tajuk - - Do you really want to close this page? - Anda benar-benar mahu menutup laman ini? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Anda sudah mengubah laman ini dan jika menutupnya akan menyebabkan kehilangan perubahan ini. -Anda benar-benar mahu teruskan dengan menutup laman ini? - - Ctrl-] Ctrl-] @@ -2246,10 +1037,6 @@ Anda benar-benar mahu teruskan dengan menutup laman ini? Loading... Memuat... - - Loading %1% (%2 %3)... - Memuat %1% (%2 %3)... - Finished loading Selesai dimuatkan @@ -2262,6 +1049,10 @@ Anda benar-benar mahu teruskan dengan menutup laman ini? Bookmark All Tabs Tandabukukan Ke Semua Tab + + Loading ... + + ToolbarSearch @@ -2281,10 +1072,6 @@ Anda benar-benar mahu teruskan dengan menutup laman ini? Suggestions Cadangan - - Add '%1' - - UserAgentMenu @@ -2305,41 +1092,6 @@ Anda benar-benar mahu teruskan dengan menutup laman ini? - - WebPage - - Error loading page: %1 - Ralat memuat laman: %1 - - - When connecting to: %1. - Semasa berhubung ke: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Periksa alamat untuk kesilapan seperti <b>ww</br>.arora-browser.org yang sepatutnya <b>www</b>.arora-browser.org - - - If the address is correct, try to check the network connection. - Jika alamatnya betul, cuba periksa sambungan rangkaian. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Jika komputer atau rangkaian dilindungi oleh firewall atau proxy, pastikan pelungsur dibenarkan mencapai rangkaian. - - - If the address is correct, try checking the network connection. - Jika alamat betul, cuba periksa sambungan rangkaian. - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2390,38 +1142,6 @@ Anda benar-benar mahu teruskan dengan menutup laman ini? Search with... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/nb_NO.ts b/src/locale/nb_NO.ts index d28f29dd..169f05cf 100644 --- a/src/locale/nb_NO.ts +++ b/src/locale/nb_NO.ts @@ -3,10 +3,6 @@ AboutDialog - - About - Om - Authors Forfattere @@ -15,170 +11,10 @@ License Lisens - - Lightweight WebKit-based web browser - Lettvekts WebKit-basert nettleser - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Opphavsrett © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Lukk - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - Update the dates in the copyright notice? - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Opphavsrett © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - About %1 Om %1 - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Opphavsrett © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - WebKit versjon: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Opphavsrett © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Språk - - - Languages: in order of preference: - Språk: ordnet etter preferanse: - - - Move &Up - Flytt &opp - - - Move &Down - Flytt &ned - - - &Remove - &Fjern - - - Add... - Legg til... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Blokkert av AdBlockRule:%1 - - - - AdBlockDialog - - Add Custom Rule - Legg til regel - - - Learn more about writing rules... - Lær mer om å skrive regler... - - - Update Subscription - Oppdater abonement - - - Browse Subscriptions... - Bla igjennom abonementer... - - - Remove Subscription - Fjern abonement - - - AdBlock Configuration - AdBlock konfigurasjon - - - Enable AdBlock - Skru på AdBlock - - - Action - Handling - - - - AdBlockManager - - Custom Rules - Regel - - - - AdBlockModel - - Rule - Regel - - - - AdBlockSchemeAccessHandler - - Subscribe? - Abonemer? - - - Subscribe to this AdBlock subscription? -%1 - Abonemer på dette AdBlock abonementet? %1 - AddBookmarkDialog @@ -186,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Legg til bokmerke - - Type a name for the bookmark, and choose where to keep it. - Gi bokmerket et navn og velg hvor du vil lagre det. - Url Addresse @@ -203,51 +35,6 @@ p, li { white-space: pre-wrap; } Legg til mappe - - AutoFillDialog - - Form Passwords - Passord - - - Remove - Fjern - - - Remove All - Fjern alle - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Vil du lagre dette passordet?</b><br> Du kan se hvilke passord du har lagret og eventuelt slette dem under Egenskaper. - - - Never for this site - Aldri for denne siden - - - Not now - Ikke nå - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Nettside - - - User Name - Brukernavn - - BookmarksDialog @@ -262,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Ny mappe - - Bookmarks - Bokmerker - - - &Remove - &Fjern - - - Add Folder - Legg til mappe - Open in New Tab Åpne i ny fane @@ -307,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File Åpne fil - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Importerte %1 @@ -347,15 +118,6 @@ p, li { white-space: pre-wrap; } Bookmarks Menu Bokmerkemeny - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Feil ved lasting av html bokmerker: %1 - Name Change Undo bookmark title change @@ -378,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required trenger htmlToXBel verktøy - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - htmlToXBel verktøyet som følger med Arora og som trengs for å importere HTML bokmerker, er ikke installert eller er ikke i søkebanene. - Loading Bookmark Laster bokmerker @@ -391,6 +149,10 @@ p, li { white-space: pre-wrap; } Feil ved lasting av HTML bokmerker: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -412,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Bokmerker - Open Åpne @@ -436,10 +194,6 @@ p, li { white-space: pre-wrap; } Add Folder... Legg til mappe... - - Bookmarks - Bokmerker - BrowserApplication @@ -454,20 +208,8 @@ Er du sikker på at du vil avslutte Arora? Gjennopretningen misslyktes - The saved session will not being restored because last time it was restored Arora crashed. - Den lagrede økten blir ikke gjennoprettet siden forrige gang den ble gjnoprettet krasjet Arora. - - - (Change: %1 %2) - (Endring: %1 %2) - - - The saved session will not be restored because Arora crashed while trying to restore this session. - Den lagrede økten blir ikke gjennoprettet siden det førte til at Arora krasjet. - - - Arora crashed while trying to restore this session. Should I try again? - Arora kræsjet forrige gang vi prøvde å gjennoprette denne siden. Skal vi prøve igjenn? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -500,14 +242,6 @@ Er du sikker på at du vil avslutte Arora? &Export Bookmarks... &Eksporter bokmerker... - - P&rint Preview... - &Forhåndsvisning... - - - &Print... - &Skriv ut... - Private &Browsing... &Privat surfing... @@ -552,10 +286,6 @@ Er du sikker på at du vil avslutte Arora? &View &Vis - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+| Ctrl+| @@ -604,10 +334,6 @@ Er du sikker på at du vil avslutte Arora? &Bookmarks &Bokmerker - - Manage Bookmarks... - Håndter bokmerker... - Add Bookmark... Legg til bokmerke... @@ -629,10 +355,6 @@ Er du sikker på at du vil avslutte Arora? Web Search Ctrl+K - - Enable Web &Inspector - &Aktiver nettinspektøren - &Help H&jelp @@ -641,10 +363,6 @@ Er du sikker på at du vil avslutte Arora? About &Qt Om &Qt - - About &Arora - Om &Arora - Navigation Navigering @@ -665,15 +383,6 @@ Er du sikker på at du vil avslutte Arora? Hide Toolbar Skjul verktøylinjen - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Åpne nettresurs @@ -682,10 +391,6 @@ Er du sikker på at du vil avslutte Arora? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Nettresurser (*.html *.htm *.svg *.png *.gif *.svgz);;Alle filer (*.*) - - Print Document - Skriv ut dokument - Are you sure you want to turn on private browsing? Er du sikker på at du vil skru på privat surfing? @@ -694,20 +399,6 @@ Er du sikker på at du vil avslutte Arora? Are you sure you want to close the window? There are %1 tabs open Er du sikker på at du vil lukke vinduet? Du har %1 faner åpne - - Page Source of %1 - Kildekoden til %1 - - - Web Inspector - Nettinspektør - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Nettinspektøren virker kun som den skal for sider som blir lastet etter at den ble aktivert. -Vil du laste alle sider på nytt? - Stop loading the current page Avbryt lasting av denne siden @@ -720,11 +411,6 @@ Vil du laste alle sider på nytt? Downloads Nedlastinger - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - &Clear Private Data &Slett privat informasjon @@ -742,46 +428,18 @@ Vil du laste alle sider på nytt? Hide Bookmarks Bar Skjul bokmerkelinjen - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Noen handlinger relatert til dine personlige opplysninger vil bli deaktiverte når privat surfing er skrudd på:<ul><li> Nettsider blir ikke lagt til i historien.</li><li> Elementer blir automatisk fjernet fra Nedlastninger vinduet.</li><li> Nye informasjonskapsler blir ikke lagret og gamle kan ikke åpnes.</li><li> Ikoner og økter blir ikke lagret.</li><li> Søk blir ikke lagt til i sprett-opp menyen i søkeboksen.</li></ul>Du kan fremdeles klikke Tilbake og Fram intill du lukker vinduet. - - - Find &Next - Finn &Neste - Find P&revious Finn &forrige - - Prefe&rences - &Instillinger - &Reload Page &Last siden på nytt - - Make Text &Bigger - Gjør teksten &større - - - Make Text &Normal - Gjør teksten &normal - - - Make Text &Smaller - Gjør teksten &mindre - Find Nex&t Finn &neste - - Prefere&nces... - &Instillinger... - Show Menu Bar Vis menylinjen @@ -790,10 +448,6 @@ Vil du laste alle sider på nytt? Switch application language Endre språk - - Show &Network Monitor - &Vis nettverksovervåkeren - Close Window Lukk vinduet @@ -827,10 +481,6 @@ Vil du laste alle sider på nytt? About Browser Om &%1 - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Noen handlinger relatert til dine personlige opplysninger vil bli deaktiverte når privat surfing er skrudd på:<ul><li> Nettsider blir ikke lagt til i historien.</li><li> Elementer blir automatisk fjernet fra Nedlastinger vinduet.</li><li> Nye informasjonskapsler blir ikke lagret og gamle kan ikke åpnes.</li><li> Ikoner og økter blir ikke lagret.</li><li> Søk blir ikke lagt til i sprett-opp menyen i søkeboksen.</li></ul>Du kan fremdeles klikke Tilbake og Fram intill du lukker vinduet. - Ctrl+Y Download Manager @@ -852,10 +502,6 @@ Vil du laste alle sider på nytt? Alt+Ctrl+B Alt+Ctrl+B - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> No new network cache is written to disk.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Noen handlinger relatert til dine personlige opplysninger vil bli deaktiverte når privat surfing er skrudd på:<ul><li> Nettsider blir ikke lagt til i historien.</li><li> Elementer blir automatisk fjernet fra Nedlastninger vinduet.</li><li> Nye informasjonskapsler blir ikke lagret og gamle kan ikke åpnes.</li><li> Ikoner og økter blir ikke lagret.</li><li> Søk blir ikke lagt til i sprett-opp menyen i søkeboksen.</li></ul>Du kan fremdeles klikke Tilbake og Fram intill du lukker vinduet. - Options... Alternativer... @@ -864,10 +510,6 @@ Vil du laste alle sider på nytt? Configure Search Engines... Konfigurer søkemotorer... - - &Ad Block... - &AdBlock... - When private browsing is turned on, some actions concerning your privacy will be disabled: Så lenge privat surfing er skrudd på, vil noen handlinger være skrudd av: @@ -880,10 +522,6 @@ Vil du laste alle sider på nytt? Items are automatically removed from the Downloads window. Nedlastninger blir automatisk fjernet fra Nedlastninger vinduet. - - New cookies are not stored, current cookies can't be accessed. - Nye informasjonskapsler blir ikke lagret og eksisterende informasjonskapsler kan ikke brukes. - Site icons won't be stored. Nettsideikoner blir ikke lagret. @@ -924,6 +562,11 @@ Vil du laste alle sider på nytt? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -954,14 +597,6 @@ Vil du laste alle sider på nytt? &Search History S&økehistorie - - &Cookies - &Informasjonskapsler - - - C&ache - &Hurtiglager - Website &Icons N&ettside ikoner @@ -974,1205 +609,327 @@ Vil du laste alle sider på nytt? &Cancel &Avbryt - - C&ached Web Pages - &Mellomlagrede nettsider - - ClickToFlash - - Load - Last - - - Load All - Last alle - + DownloadDialog - Add %1 to Whitelist - Legg til %1 i godkjentlisten + Downloads + Nedlastinger - Remove from Whitelist - Fjern fra godkjentlisten + Downloading %1 + + + + DownloadItem - Settings - Innstilinger + Save File + Lagre fil - Load Flash - Last Flash + Download canceled: %1 + Nedlasting avbrutt: %1 - - - ClickToFlashSettings - Whitelist sites - Godkjente sider + Error saving: %1 + Feil ved lagring: %1 - - - CookieExceptionsModel - Website - Nettside + Network Error: %1 + Nettverksfeil: %1 - Status - Status + ? + ? - Allow - Tillat + Error opening output file: %1 + Feil ved skriving til fil: %1 - Block - Blokker + %1 of %2 (%3/sec) - %4 + %1 av %2 (%3/sek) - %4 - Allow For Session - Tillat for denne økten + Download directory (%1) couldn't be created. + Nedlastningsbanen (%1) kunne ikke opprettes. - Rule - Regel + %1 of %2 - Download Complete + - CookieModel - - Website - Nettside + DownloadManager + + %n Download(s) + + %n nedlasting + %n nedlastinger + - Name - Navn + There are %1 downloads in progress +Do you want to quit anyway? + Det er %1 aktive nedlastinger +Er du sikker på at du vil avslutte? - - Path - Sti + + %n minutes remaining + + %n minutt gjennstår + %n minutter gjennstår + - - Secure - Sikker + + %n seconds remaining + + %n sekund gjennstår + %n sekunder gjennstår + - Expires - Utløper + bytes + bytes - Contents - Innhold - - - true - ja - - - false - nei - - - Session cookie - Sesjonsinformasjonskapsel - - - - CookiesDialog - - Cookies - Informasjonskapsler - - - &Remove - &Slett - - - Remove &All Cookies - Slett &alle informasjonskapslene - - - Add &Rule - Legg til &regel - - - - CookiesExceptionsDialog - - Cookie Exceptions - Unntak for informasjonskapsler - - - New Exception - Nytt unntak - - - Domain: - Domene: - - - Block - Blokker - - - Allow For Session - Tillat for økt - - - Allow - Tillat - - - Exceptions - Unntak - - - &Remove - &Fjern - - - Remove &All - Fjern &alle - - - - DownloadDialog - - Downloads - Nedlastinger - - - Clean up - Rydd opp - - - 0 Items - Ingen elementer - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Save File - Lagre fil - - - Download canceled: %1 - Nedlasting avbrutt: %1 - - - Error opening save file: %1 - Feil ved åpning av lagret fil: %1 - - - Error saving: %1 - Feil ved lagring: %1 - - - Network Error: %1 - Nettverksfeil: %1 - - - seconds - sekunder - - - %1 of %2 (%3/sec) %4 - %1 av %2 (%3/sek) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 av %2 - Stoppet - - - bytes - bytes - - - kB - kB - - - MB - MB - - - Form - Skjema - - - Ico - Ikon - - - Filename - Filnavn - - - Try Again - Prøv igjenn - - - Stop - Stopp - - - Open - Åpne - - - - %n minutes remaining - - - %n minutt gjennstår - - %n minutter gjennstår - - - - - %n seconds remaining - - - %n sekund gjennstår - - %n sekunder gjennstår - - - - Error opening output file: %1 - Feil ved skriving til fil: %1 - - - %1 of %2 (%3/sec) - %4 - %1 av %2 (%3/sek) - %4 - - - Download directory (%1) couldn't be created. - Nedlastningsbanen (%1) kunne ikke opprettes. - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n nedlasting - %n nedlastinger - - - - There are %1 downloads in progress -Do you want to quit anyway? - Det er %1 aktive nedlastinger -Er du sikker på at du vil avslutte? - - - %n minutes remaining - - %n minutt gjennstår - %n minutter gjennstår - - - - %n seconds remaining - - %n sekund gjennstår - %n sekunder gjennstår - - - - bytes - bytes - - - kB - kB - - - MB - MB - - - GB - GB - - - - FileAccessReply - - No Error - Ingen feil - - - Error opening: %1: No such file or directory - Feil ved åpning av: %1: Filen eller banen finnes ikke - - - Unable to read %1 - Kan ikke lese %1 - - - Contents of %1 - Innhold i %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - Open - Åpne - - - Copy - Kopier - - - Delete - Slett - - - History - Historie - - - &Remove - &Fjern - - - Remove &All - Fjern &alle - - - - HistoryMenu - - Show All History - Vis hele historien - - - Clear History - Slett historien - - - Clear History... - Slett historien... - - - Do you want to clear the history? - Vil du slette historien? - - - - HistoryModel - - Title - Tittel - - - Address - Adresse - - - - HistoryTreeModel - - Earlier Today - I dag - - - %n item(s) - - %n element - %n elementer - - - - - JavaScriptAroraObject - - Welcome to Arora! - Velkommen til Arora! - - - Arora Start - Arora start - - - Search! - Søk! - - - Search results provided by - Søkeresultater levert av - - - About Arora - Om Arora - - - Search the web with - - - - - LanguageManager - - Default - Standardspråk - - - Choose language - Velg språk - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Du kan bruke at annet språk enn<br>operativsystemets standardspråk.</p><p>Velg språk</p> - - - No translation files are installed. - Ingen oversettelses filer er installert. - - - No translation files are installed at %1. - Ingen oversettelsesfiler er installert i %1. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Oppgi brukernavn og passord for "%1" på %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Koble til mellomtjener "%1" ved å bruke:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - SSL Feil: - -%1 - -%2 - -Vil du ignorere disse feilene? - - - Do you want to accept all these certificates? - Vil du akseptere alle disse sertifikatene? - - - - SSL Errors - - SSL Feil - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL Feil:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Vil du ignorere disse feilene?<qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Sertifikater:<br/>%1<br/>Vil du akseptere alle disse sertifikatene?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Sertifikater:<br/>%1<br/>Vil du akseptere alle disse sertifikatene?</qt> - - - Issuer: %1 - Utsteder: %1 - - - Not valid before: %1 - Ikke gyldig før: %1 - - - Valid until: %1 - Gyldig inntil: %1 - - - Alternate Names: - Alternative navn: - - - - NetworkMonitor - - Name - Navn - - - Value - Verdi - - - - NetworkMonitorDialog - - Network Monitor - Nettverksovervåker - - - Network Requests - Nettverksforespørselser - - - Request Headers - Forespørselshode - - - Response Headers - Svarhode - - - &Remove - &Fjern - - - Remove &All Requests - Fjern &alle forespørselser - - - - OpenSearchDialog - - Open File - Åpne fil - - - OpenSearch - OpenSearch - - - Error - Feil - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 er ikke en gyldig OpenSearch 1.1 beskrivelse, eller så finnes den allerede i listen. - - - You must have at least one search engine in here. - Det må være minst en søkemotor her. - - - OpenSearch Manager - OpenSearch-behandler - - - &Restore Defaults - &Gjennoprett forvalg - - - &Delete - &Slett - - - &Add - &Legg til - - - &Close - &Lukk - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Beskrivelse:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Gir forslag</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Navn - - - Keywords - Nøkkelord - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Vil du legge til den følgende motoren i listen over søkemotorer?<br /><br />Navn: %1<br />Søker på: %2 - - - - PasswordDialog - - Authentication Required - - - - DUMMY ICON - - - - INTRO TEXT DUMMY - - - - Username: - Brukernavn: - - - Password: - Passord: - - - - PlainTextEditSearch - - Not Found - Ikke funnet - - - - ProxyDialog - - Proxy Authentication - - - - Connect to proxy - Koble til mellomtjener - - - Username: - Brukernavn: - - - Password: - Passord: - - - - QObject - - The file is not an XBEL version 1.0 file. - Filen er ikke en XBEL versjon 1.0 fil. - - - Unknown title - Ukjent tittel - - - The file is not an OpenSearch 1.1 file. - Filen er ikke en OpenSearch 1.1 fil. - - - - RequestModel - - Redirect: %1 - Videresend: %1 - - - Method - Metode - - - Address - Adresse - - - Response - Svar - - - Length - Lengde - - - Content Type - Innholdstype - - - Info - Info - - - - SearchBanner - - Done - Ferdig - - - Form - Is there a way for things like these be ommitted from translation since they are never shown in the UI? A comment would probably do, so translators don't have to figure it out :-) - Skjema - - - Highlight All - Merk alt - - - - SearchLineEdit - - Search - Søk - - - - Settings - - Settings - Innstilinger - - - General - Generelt - - - Home: - Hjem: - - - Set to current page - Sett til nåværende side - - - Remove history items: - Slett elementer fra historien: - - - After one day - Etter en dag - - - After one week - Etter en uke - - - After two weeks - Etter to uker - - - After one month - Etter en måned - - - After one year - Etter ett år - - - Manually - Manuelt - - - Open links from applications: - Åpne lenker fra andre programmer: - - - In a tab in the current window - I en fane i det nåværende vinduet - - - In a new window - I et nytt vindu - - - Appearance - Utforming - - - Fixed-width font: - Fastbreddeskrift: - - - Privacy - Personvern - - - Web Content - Nettinnhold - - - Enable Plugins - Aktiver programtillegg - - - Enable Javascript - Aktiver Javascript - - - Cookies - Informasjonskapsler - - - Accept Cookies: - Aksepter informasjonskapsler: - - - Always - Alltid - - - Never - Aldri - - - Only from sites you navigate to - Kun fra sider du surfer til - - - Exceptions... - Unntak... - - - Keep until: - Behold inntil: - - - They expire - De utløper - - - I exit the application - Jeg lukker programmet - - - At most 90 days - Høyst 90 dager - - - Cookies... - Informasjonskapsler... - - - Proxy - Mellomtjener - - - Enable proxy - Aktiver mellomtjener - - - Type: - Type: - - - Socks5 - Socks5 - - - Http - Http - - - Host: - Host: - - - Port: - Port: - - - User Name: - Brukernavn: - - - Password: - Passord: - - - Advanced - Avansert - - - Style Sheet: - Stilsett: - - - Downloads - Nedlastinger - - - Ask for a destination each time - Spørr om målkatalog hver gang - - - Use this destination: - Bruk denne katalogen: - - - Standard font: - Standard skrift: - - - Times 16 - Times 16 - - - Select... - Velg... - - - Courier 13 - Courier 13 - - - On application exit - Når programmet avsluttes - - - Enable Images - Aktiver bilder - - - Tabs - Faner - - - Select tabs and windows as they are created - Aktiver faner og vinduer når de opprettes - - - Confirm when closing multiple tabs - Be om bekreftelse for å lukke flere faner - - - On startup: - Ved oppstart: + kB + kB - Show my home page - Vis min hjemmeside + MB + MB - Show a blank page - Vis en blank side + GB + GB + + + HistoryDialog - Restore windows and tabs from last time - Gjennoprett vinduer og faner fra forrige gang + Open + Åpne - Preferences - Egenskaper + Copy + Kopier - Home Page: - Hjemmeside: + Delete + Slett + + + HistoryMenu - View Images - Vis bilder + Show All History + Vis hele historien - Keep Cookies Until: - Behold informasjonskapsler inntil: + Clear History + Slett historien - Show only one close button instead of one for each tab - Vis kunn en lukkeknapp istedet for en per fane + Clear History... + Slett historien... - Use proxy server - Bruk mellomtjener + Do you want to clear the history? + Vil du slette historien? + + + HistoryModel - Host name: - Vertsnavn: + Title + Tittel - Preferred languages for viewing webpages in: - Foretrukkne språk for visning av nettsider: + Address + Adresse + + + HistoryTreeModel - Block Popup Windows - Blokker sprettoppvinduer + Earlier Today + I dag - - Opening links - Åpning av lenker + + %n item(s) + + %n element + %n elementer + + + + JavaScriptEndorphinObject - Links that want to open in a new window: - Lenker som vil åpnes i et nytt vindu: + Welcome to Endorphin! + - In a new selected tab in the current window - I en ny, aktiv fane i det aktive vinduet + Endorphin Start + - In a new tab in the current window - I en ny fane i det aktive vinduet + Search! + - In the current tab - I den aktive fanen + Search the web with + - Http (Secure) - Http (Sikker) + Search results provided by + - Http (Transparent) - I don't know the Norwegian equivalent of this word in this context. + About Endorphin + + + LanguageManager - Use ClickToFlash on flash plugins - Bruk ClickToFlash på flash-programtillegg + Choose language + Velg språk - Filter Tracking Cookies - Filtrer ut sporingsinformasjonskapsler + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Du kan bruke at annet språk enn<br>operativsystemets standardspråk.</p><p>Velg språk</p> - Confirm when closing multiple tabs or windows - Be om bekreftelse for å lukke flere faner eller viduer + No translation files are installed at %1. + Ingen oversettelsesfiler er installert i %1. + + + OpenSearchDialog - Quit the application when last tab is closed - Lukk programmet når siste fane blir lukket + Open File + Åpne fil - Enable network cache - Aktiver nettverkshurtiglager + OpenSearch + OpenSearch - Maximum Size: - Maksimal størrelse: + Error + Feil - MB - MB + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 er ikke en gyldig OpenSearch 1.1 beskrivelse, eller så finnes den allerede i listen. - Use the default search engine as fallback when the URL given by the user is invalid - Bruk standardsøkemotoren hvis URLen gitt av brukeren er ugyldig + You must have at least one search engine in here. + Det må være minst en søkemotor her. + + + OpenSearchEngineModel - Choose Directory... - Velg katalog... + <strong>Description:</strong> %1 + <strong>Beskrivelse:</strong> %1 - A cookie session ends: - En informasjonskapselsesjon slutter: + <strong>Provides contextual suggestions</strong> + <strong>Gir forslag</strong> - When I exit the application - Når jeg skruv av programmet + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + - 1 day - 1 dag + Name + Navn - 2 days - 2 dager + Keywords + Nøkkelord + + + OpenSearchManager - 3 days - 3 dager + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Vil du legge til den følgende motoren i listen over søkemotorer?<br /><br />Navn: %1<br />Søker på: %2 + + + PermissionBar - 7 days - 7 dager + Allow + Tillat - 30 days - 30 dager + Deny + - AutoFill - AutoFill + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - AutoFill skjemaer: + Not Found + Ikke funnet + + + QObject - User names and passwords - Brukernavn og passord + The file is not an XBEL version 1.0 file. + Filen er ikke en XBEL versjon 1.0 fil. - Edit... - Rediger... + Unknown title + Ukjent tittel - Browse... - Bla igjennom... + The file is not an OpenSearch 1.1 file. + Filen er ikke en OpenSearch 1.1 fil. - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Omstart påkrevd - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Nettverkshurtiglagerkonfigurasjonen har blitt endret. Nettleseren må startes på nytt for å kunne bruke endringene. + Search + Søk + + + SettingsDialog Choose Directory Velg katalog @@ -2200,18 +957,6 @@ Vil du ignorere disse feilene?<qt> &Find &Finn - - &View - &Vis - - - &Wrap lines - &Bryt linjer - - - Source of Page - Sidens kildekode - Source of Page %1 Kildekoden til %1 @@ -2219,10 +964,6 @@ Vil du ignorere disse feilene?<qt> TabBar - - New &Tab - Ny &fane - Duplicate Tab Kopier fane @@ -2274,22 +1015,6 @@ Vil du ignorere disse feilene?<qt> Recently Closed Tabs Nylig lukkede faner - - (Untitled) - (Uten tittel) - - - Do you really want to close this page? - Vil du virkelig lukke denne siden? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Du har gjort endringer til denne siden og når du lukker den vil du bli tapt. -Vil du virkelig lukke denne siden? - - Untitled Uten tittel @@ -2310,10 +1035,6 @@ Vil du virkelig lukke denne siden? Loading... Laster... - - Loading %1% (%2 %3)... - Laster %1% (%2 %3)... - Finished loading Lastet ferdig @@ -2326,13 +1047,13 @@ Vil du virkelig lukke denne siden? Bookmark All Tabs Arkiver alle faner som bokmerker + + Loading ... + + ToolbarSearch - - Google - Google - No Recent Searches Ingen nylige søk @@ -2349,20 +1070,12 @@ Vil du virkelig lukke denne siden? Suggestions Forslag - - Add '%1' - Legg til '%1' - - - Configure Search Engines... - Konfigurer søkemotorer... - UserAgentMenu Default - + Forvalg Other... @@ -2377,45 +1090,6 @@ Vil du virkelig lukke denne siden? - - WebPage - - Error loading page: %1 - Feil ved lasting av side: %1 - - - When connecting to: %1. - Ved tilkobling til: %1. - - - Check the address for errors such as <b>ww</b>.trolltech.com instead of <b>www</b>.trolltech.com. - Sjekk adresselinjen for feil som <b>ww</b>.trolltech.com isteden for <b>www</b>.trolltech.com. - - - If the address is correct, try to check the network connection. - Hvis adressen er riktig, undersøk nettilkolingen. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Hvis datamaskinen eller nettverket ditt er beskyttet av en brannmur eller mellomtjener, sjekk at nettleseren har adgang til nettverket. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Sjekk adresselinjen for feil som <b>ww</b>.arora-browser.org isteden for <b>www</b>.arora-browser.org - - - If the address is correct, try checking the network connection. - Hvis adressen er riktig undersøk nettilkoblingen. - - - Resending POST request - Sender POST forespørsel på nytt - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Forespørselen, sammen med all dataen, må sendes på nytt for å kunne vise siden. Dette kan føre til uforutsette konsekvenser. F.eks., kan den samme handlingen bli utført flere ganger. Vil du fortsette? - - WebView @@ -2466,38 +1140,6 @@ Vil du virkelig lukke denne siden? Search with... Søk med... - - Add to the toolbar search - Legg til i søkeverktøylinja - - - Method not supported - Metoden er ikke støttet - - - %1 method is not supported. - %1 metoden er ikke støttet. - - - Search engine - Søkemotor - - - Choose the desired search engine - Velg den ønskede søkemotoren - - - Engine name - Søkemotorens navn - - - Type in a name for the engine - Gi søkemotoren et navn - - - Block Image - Blokker bilde - WebViewSearch diff --git a/src/locale/nl.ts b/src/locale/nl.ts index 11909294..0371184e 100644 --- a/src/locale/nl.ts +++ b/src/locale/nl.ts @@ -11,146 +11,10 @@ License Licentie - - Lightweight WebKit-based web browser - Lichte browser gebaseerd op WebKit - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Sluiten - About %1 Over %1 - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - WebKit-versie: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Talen - - - Languages: in order of preference: - Talen in volgorde van voorkeur: - - - Move &Up - Om&hoog - - - Move &Down - Om&laag - - - &Remove - Ve&rwijderen - - - Add... - Toevoegen... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Geblokkeerd door regel: %1 - - - - AdBlockDialog - - Add Custom Rule - Eigen regel toevoegen - - - Learn more about writing rules... - Meer leren over regels schrijven... - - - Update Subscription - Abonnement bijwerken - - - Browse Subscriptions... - Abonnementen bekijken... - - - Remove Subscription - Abonnement verwijderen - - - AdBlock Configuration - Advertentieblokkering instellen - - - Enable AdBlock - Advertentieblokkering inschakelen - - - Action - Actie - - - - AdBlockManager - - Custom Rules - Eigen regels - - - - AdBlockModel - - Rule - Regel - - - - AdBlockSchemeAccessHandler - - Subscribe? - Abonneren? - - - Subscribe to this AdBlock subscription? -%1 - Aan dit abonnement voor advertentieblokkering abonneren? -%1 - AddBookmarkDialog @@ -158,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Bladwijzer toevoegen - - Type a name for the bookmark, and choose where to keep it. - Voer de naam voor de bladwijzer in, en kies waar op te slaan. - Url Url @@ -175,51 +35,6 @@ p, li { white-space: pre-wrap; } Map toevoegen - - AutoFillDialog - - Form Passwords - Formulierwachtwoorden - - - Remove - Verwijderen - - - Remove All - Alle verwijderen - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Wilt u dit wachtwoord opslaan?</b><br> Om opgeslagen wachtwoorden na te kijken of te verwijderen, open het deel Automatisch Invullen in de voorkeuren. - - - Never for this site - Nooit voor deze site - - - Not now - Niet nu - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Website - - - User Name - Gebruikersnaam - - BookmarksDialog @@ -238,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder Nieuwe map - - Bookmarks - Bladwijzers - - - &Remove - Ver&wijderen - - - Add Folder - Map toevoegen - Edit Name Naam bewerken @@ -337,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required htmlToXBel is nodig - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - htmlToXBel, wat wordt geleverd met Arora, is nodig om HTML-bladwijzers te importeren. Het is echter niet geïnstalleerd. - Loading Bookmark Bladwijzer laden @@ -351,6 +150,10 @@ p, li { white-space: pre-wrap; } Fout bij het laden van HTML-bladwijzers: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -406,8 +209,8 @@ Wilt u toch afsluiten? Herstellen mislukt - Arora crashed while trying to restore this session. Should I try again? - Arora crashte bij het herstellen van deze sessie. Opnieuw proberen? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -440,14 +243,6 @@ Wilt u toch afsluiten? &Export Bookmarks... Bladwijzers &exporteren... - - P&rint Preview... - Afdruk&voorbeeld... - - - &Print... - &Afdrukken... - Private &Browsing... Anoniem sur&fen... @@ -570,10 +365,6 @@ Wilt u toch afsluiten? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Web &Inspector inschakelen - &Help &Help @@ -602,11 +393,6 @@ Wilt u toch afsluiten? Hide Toolbar Werkbalk verbergen - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Webresources openen @@ -615,10 +401,6 @@ Wilt u toch afsluiten? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Webresources (*.html *.htm *.svg *.png *.gif *.svgz);;Alle bestanden(*.*) - - Print Document - Document afdrukken - Are you sure you want to turn on private browsing? Bent u zeker dat u anoniem surfen wilt inschakelen? @@ -627,16 +409,6 @@ Wilt u toch afsluiten? Are you sure you want to close the window? There are %1 tabs open Bent u zeker dat u het venster wil sluiten? Er zijn %1 tabs geopend - - Web Inspector - Web Inspector - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - De Web Inspector zal alleen correct werken voor pagina's die werden geladen na het inschakelen. -Wilt u alle pagina's herladen? - Stop loading the current page Stop het laden van deze pagina @@ -739,10 +511,6 @@ Wilt u alle pagina's herladen? Configure Search Engines... Zoekmachines instellen... - - &Ad Block... - &Advertentieblokkering... - When private browsing is turned on, some actions concerning your privacy will be disabled: Wanneer anoniem surfen aan staat zullen sommige acties omtrent uw privacy worden uitgeschakeld: @@ -755,10 +523,6 @@ Wilt u alle pagina's herladen? Items are automatically removed from the Downloads window. Items worden automatisch verwijderd uit het Downloads-scherm. - - New cookies are not stored, current cookies can't be accessed. - Nieuwe cookies worden niet opgeslagen, huidige cookies kunnen niet worden bereikt. - Site icons won't be stored. Sitepictogrammen worden niet opgeslagen. @@ -799,6 +563,11 @@ Wilt u alle pagina's herladen? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -829,10 +598,6 @@ Wilt u alle pagina's herladen? &Search History &Zoekgeschiedenis - - &Cookies - &Cookies - Website &Icons Website&pictogrammen @@ -845,164 +610,6 @@ Wilt u alle pagina's herladen? &Cancel &Annuleren - - C&ached Web Pages - Gec&achte pagina's - - - - ClickToFlash - - Load - Laden - - - Load All - Alles laden - - - Add %1 to Whitelist - %1 aan whitelist toevoegen - - - Remove from Whitelist - Van whitelist verwijderen - - - Settings - Instellingen - - - Load Flash - Flash laden - - - - ClickToFlashSettings - - Whitelist sites - Whitelist-sites - - - - CookieExceptionsModel - - Website - Website - - - Allow - Toestaan - - - Block - Blokkeren - - - Allow For Session - Voor deze sessie toestaan - - - Rule - Regel - - - - CookieModel - - Website - Website - - - Name - Naam - - - Path - Pad - - - Secure - Veilig - - - Expires - Vervalt - - - Contents - Inhoud - - - true - waar - - - false - fout - - - Session cookie - Sessie-cookie - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - Ver&wijderen - - - Remove &All Cookies - &Alle cookies verwijderen - - - Add &Rule - &Regel toevoegen - - - - CookiesExceptionsDialog - - Cookie Exceptions - Cookie-uitzonderingen - - - New Exception - Nieuwe uitzondering - - - Domain: - Domein: - - - Block - Blokkeren - - - Allow For Session - Toestaan voor sessie - - - Allow - Toestaan - - - Exceptions - Uitzonderingen - - - &Remove - Ver&wijderen - - - Remove &All - &Alle verwijderen - DownloadDialog @@ -1010,14 +617,6 @@ Wilt u alle pagina's herladen? Downloads Downloads - - Clean up - Opschonen - - - 0 Items - 0 items - Downloading %1 @@ -1025,26 +624,6 @@ Wilt u alle pagina's herladen? DownloadItem - - Ico - Ico - - - Filename - Bestandsnaam - - - Try Again - Opnieuw proberen - - - Stop - Stoppen - - - Open - Openen - Save File Bestand opslaan @@ -1065,10 +644,6 @@ Wilt u alle pagina's herladen? ? ? - - %1 of %2 - Stopped - %1 van %2 - Gestopt - Error opening output file: %1 Fout bij het openen van het outputbestand: %1 @@ -1132,33 +707,6 @@ Wilt u toch afsluiten? GB - - FileAccessReply - - No Error - Geen fout - - - Error opening: %1: No such file or directory - Fout bij het openen: %1: is geen bestand of map - - - Unable to read %1 - Kon %1 niet lezen - - - Contents of %1 - Inhoud van %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - HistoryDialog @@ -1173,18 +721,6 @@ Wilt u toch afsluiten? Delete Verwijderen - - History - Geschiedenis - - - &Remove - Ver&wijderen - - - Remove &All - &Alles verwijderen - HistoryMenu @@ -1231,29 +767,29 @@ Wilt u toch afsluiten? - JavaScriptAroraObject + JavaScriptEndorphinObject - Welcome to Arora! - Welkom bij Arora! + Welcome to Endorphin! + - Arora Start - Arora Start + Endorphin Start + Search! - Zoeken! + - Search results provided by - Zoekresultaten van + Search the web with + - About Arora - Over Arora + Search results provided by + - Search the web with + About Endorphin @@ -1272,49 +808,6 @@ Wilt u toch afsluiten? Er zijn geen vertaalbestanden geïnstalleerd op %1. - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Voer gebruikersnaam en wachtwoord voor "%1" op %2 in</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Verbinden met proxy "%1" met:</qt> - - - - SSL Errors - - SSL-fouten - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL-fouten:<br/><br/>voor: <tt>%1</tt><ul><li>%2</li></ul> - -Wilt u deze fouten negeren?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certificaten:<br/>%1<br/>Wilt u al deze certificaten accepteren?</qt> - - - Issuer: %1 - UItgever: %1 - - - Not valid before: %1 - Niet geldig voor: %1 - - - Valid until: %1 - Geldig tot: %1 - - - Alternate Names: - Alternatieve namen: - - OpenSearchDialog @@ -1337,26 +830,6 @@ Wilt u deze fouten negeren?</qt> You must have at least one search engine in here. U moet hiet tenminste één zoekmachine hebben. - - OpenSearch Manager - OpenSearch-manager - - - &Restore Defaults - Standaa&rdwaarden herstellen - - - &Delete - Verwij&deren - - - &Add - &Toevoegen - - - &Close - &Sluiten - OpenSearchEngineModel @@ -1389,26 +862,18 @@ Wilt u deze fouten negeren?</qt> - PasswordDialog - - Authentication Required - Authentificatie vereist - - - DUMMY ICON - DUMMY ICON - + PermissionBar - INTRO TEXT DUMMY - INTRO TEXT DUMMY + Allow + Toestaan - Username: - Gebruikersnaam: + Deny + - Password: - Wachtwoord: + %1 wants to %2. + @@ -1418,25 +883,6 @@ Wilt u deze fouten negeren?</qt> Niet gevonden - - ProxyDialog - - Proxy Authentication - Proxy-authentificatie - - - Connect to proxy - Met proxy verbinden - - - Username: - Gebruikersnaam: - - - Password: - Wachtwoord: - - QObject @@ -1451,398 +897,40 @@ Wilt u deze fouten negeren?</qt> The file is not an OpenSearch 1.1 file. Het bestand is geen OpenSearch 1.1-bestand. - - - SearchBanner - - Done - Klaar - - Highlight All + use desktop notifications - - - SearchLineEdit - - Search - Zoeken - - - - Settings - - General - Algemeen - - - Set to current page - Huidige pagina gebruiken - - - Remove history items: - Geschiedenisitems verwijderen: - - - After one day - Na één dag - - - After one week - Na één week - - - After two weeks - Na twee weken - - - After one month - Na één maand - - - After one year - Na één jaar - - - Manually - Handmatig - - - On application exit - Bij het afsluiten van het programma - - - Open links from applications: - Links uit programma's openen: - - - In a new window - In een nieuw venster - - - Downloads - Downloads - - - Ask for a destination each time - Elke keer om een bestemming vragen - - - Use this destination: - Deze bestemming gebruiken: - - - Appearance - Uiterlijk - - - Standard font: - Standaard lettertype: - - - Select... - Selecteren... - - - Fixed-width font: - Lettertype met vaste breedte: - - - Privacy - Privacy - - - Web Content - Webinhoud - - - Enable Plugins - Plugins inschakelen - - - Enable Javascript - Javascript inschakelen - - - Cookies - Cookies - - - Accept Cookies: - Cookies accepteren: - - - Always - Altijd - - - Never - Nooit - - - Only from sites you navigate to - Alleen van sites waar u heen surft - - - Exceptions... - Uitzonderingen... - - - They expire - Ze vervallen - - - I exit the application - Ik het programma afsluit - - - At most 90 days - Maximaal 90 dagen - - - Cookies... - Cookies... - - - Tabs - Tabs - - - Select tabs and windows as they are created - Tabs en vensters selecteren als ze gemaakt worden - - - Proxy - Proxy - - - Type: - Type: - - - Socks5 - Socks5 - - - Port: - Poort: - - User Name: - Gebruikersnaam: - - - Password: - Wachtwoord: - - - Advanced - Geavanceerd - - - Style Sheet: - Stijlblad: - - - On startup: - Bij het opstarten: - - - Show my home page - Toon mijn startpagina - - - Show a blank page - Toon een lege pagina - - - Restore windows and tabs from last time - Herstel vensters en tabs van de vorige keer - - - Preferences - Voorkeuren - - - Home Page: - Startpagina: - - - View Images - Afbeeldingen weergeven - - - Keep Cookies Until: - Cookies houden tot: - - - Use proxy server - Proxyserver gebruiken - - - Host name: - Hostnaam: - - - Show only one close button instead of one for each tab - Alleen één sluitknop tonen in plaats van één voor elke tab - - - Block Popup Windows - Popupvensters blokkeren - - - Opening links - Links openen - - - Links that want to open in a new window: - Links die in een nieuw venster geopend willen worden: - - - In a new selected tab in the current window - In een nieuwe geselecteerde tab in het huidige venster - - - In a new tab in the current window - In een nieuwe tab in het huidige venster - - - In the current tab - In de huidige tab - - - Http (Secure) - Http (veilig) - - - Http (Transparent) - Http (transparant) - - - Preferred languages for viewing webpages in: - Voorkeurstaal om webpagina's in te zien: - - - Use ClickToFlash on flash plugins - ClickToFlash gebruiken bij flashplugins - - - Filter Tracking Cookies - Opspoor-cookies filteren - - - Confirm when closing multiple tabs or windows - Bevestiging vragen bij het sluiten van meerdere tabs - - - Quit the application when last tab is closed - Het programma afsluiten indien de laatste tab wordt gesloten - - - Enable network cache - Netwerkcache inschakelen - - - Maximum Size: - Maximumgrootte: - - - MB - MB - - - Use the default search engine as fallback when the URL given by the user is invalid - Op de standaard zoekmachine terugvallen bij een foute URL - - - Choose Directory... - Map kiezen... - - - A cookie session ends: - Een cookiesessie eindigt: - - - When I exit the application - Wanneer ik het programma afsluit - - - 1 day - Na 1 dag - - - 2 days - Na 2 dagen - - - 3 days - Na 3 dagen - - - 7 days - Na 7 dagen - - - 30 days - Na 30 dagen - - - AutoFill - Automatisch invullen - - - AutoFill web forms: - Webformulieren automatisch invullen: - - - User names and passwords - Gebruikersnamen en wachtwoorden - - - Edit... - Bewerken... - - - Browse... - Bladeren... - - - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Zoeken SettingsDialog - - Restart required - Herstart vereist - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - De configuratie van de netwerkcache is gewijzigd. Om dit effectief toe te passen moet de browser opnieuw worden opgestart. - Choose Directory Map kiezen @@ -1928,18 +1016,6 @@ Wilt u deze fouten negeren?</qt> Recently Closed Tabs Kortgeleden gesloten tabs - - Do you really want to close this page? - Bent u zeker dat u deze pagina wilt sluiten? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - U hebt deze pagina gewijzigd en als u deze sluit zult u de wijzigingen kwijtraken. -Bent u zeker dat u deze pagina wilt sluiten? - - Ctrl-] Ctrl-] @@ -1956,10 +1032,6 @@ Bent u zeker dat u deze pagina wilt sluiten? Loading... Laden... - - Loading %1% (%2 %3)... - Laden %1% (%2 %3)... - Finished loading Laden voltooid @@ -1976,6 +1048,10 @@ Bent u zeker dat u deze pagina wilt sluiten? Bookmark All Tabs Van alle tabs bladwijzers maken + + Loading ... + + ToolbarSearch @@ -1995,10 +1071,6 @@ Bent u zeker dat u deze pagina wilt sluiten? Suggestions Suggesties - - Add '%1' - '%1' toevoegen - UserAgentMenu @@ -2019,37 +1091,6 @@ Bent u zeker dat u deze pagina wilt sluiten? - - WebPage - - Error loading page: %1 - Fout bij het laden van de pagina: %1 - - - When connecting to: %1. - Bij het verbinden met: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Het adres controleren op fouten als <b>ww</b>.arora-browser.org in plaats van <b>www</b>.arora-browser.org - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Indien uw computer of netwerk beschermd wordt door een firewall of proxy, zorg er dan voor dat de browser toegang krijgt tot het netwerk. - - - If the address is correct, try checking the network connection. - Indien het adres juist is, de netwerkverbinding proberen te testen. - - - Resending POST request - POST opnieuw versturen - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2100,38 +1141,6 @@ Bent u zeker dat u deze pagina wilt sluiten? Search with... Zoeken met... - - Add to the toolbar search - Aan zoekbalk toevoegen - - - Method not supported - Methode niet ondersteund - - - %1 method is not supported. - De methode %1 wordt niet ondersteund. - - - Search engine - Zoekmachine - - - Choose the desired search engine - Kies de zoekmachine - - - Engine name - Naam - - - Type in a name for the engine - Kies een naam voor de zoekmachine - - - Block Image - - WebViewSearch diff --git a/src/locale/pl_PL.ts b/src/locale/pl_PL.ts index 22bd0555..86c761a7 100644 --- a/src/locale/pl_PL.ts +++ b/src/locale/pl_PL.ts @@ -11,146 +11,10 @@ License Licencja - - Lightweight WebKit-based web browser - Lekka przeglądarka internetowa bazująca na silniku WebKit - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - - Close - Zamknij - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - About %1 O programie %1 - - WebKit version: %1 - Wersja WebKita: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Języki - - - Languages: in order of preference: - Języki: w kolejności preferencji: - - - Move &Up - Przesuń w &górę - - - Move &Down - Przesuń w &dół - - - &Remove - &Usuń - - - Add... - Dodaj... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Zablokowany przez regułę AdBlock: %1 - - - - AdBlockDialog - - Add Custom Rule - Dodaj własną regułę - - - Learn more about writing rules... - Dowiedz się więcej o tworzeniu reguł... - - - Update Subscription - Zaktualizuj subskrypcję - - - Browse Subscriptions... - Przeglądaj subskrypcje... - - - Remove Subscription - Usuń subskrypcję - - - AdBlock Configuration - Konfiguracja AdBlock - - - Enable AdBlock - Włącz AdBlock - - - Action - Akcja - - - - AdBlockManager - - Custom Rules - Własne reguły - - - - AdBlockModel - - Rule - Reguła - - - - AdBlockSchemeAccessHandler - - Subscribe? - Subskrybować? - - - Subscribe to this AdBlock subscription? -%1 - Dodać tę subskrypcję AdBlocka? -%1 - AddBookmarkDialog @@ -158,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Dodaj zakładkę - - Type a name for the bookmark, and choose where to keep it. - Podaj nazwę dla zakładki i wybierz gdzie chcesz ją umieścić. - Url URL @@ -175,51 +35,6 @@ p, li { white-space: pre-wrap; } Dodaj katalog - - AutoFillDialog - - Form Passwords - Hasła w formularzach - - - Remove - Usuń - - - Remove All - Usuń wszystkie - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Chciałbyś zapisać to hasło?</b><br /> By przeglądać hasła, które zapisałeś i usunąć je, otwórz panel AutoFill w preferencjach. - - - Never for this site - Nigdy dla tej strony - - - Not now - Nie teraz - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Strona - - - User Name - Nazwa użytkownika - - BookmarksDialog @@ -238,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder Nowy katalog - - Bookmarks - Zakładki - - - &Remove - &Usuń - - - Add Folder - Dodaj katalog - Edit Name Edytuj nazwę @@ -337,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Narzędzie htmlToXBel - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Narzędzie htmlToXBel, które jest dostarczane z Arorą i wymagane do zaimportowania zakładek HTML, nie jest zainstalowane bądź nie jest dostępne w systemowych ścieżkach przeszukiwania. - Loading Bookmark Ładowanie zakładek @@ -351,6 +150,10 @@ p, li { white-space: pre-wrap; } Błąd w trakcie ładowania zakładek: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -392,10 +195,6 @@ p, li { white-space: pre-wrap; } Add Folder... Dodaj katalog... - - Bookmarks - Zakładki - BrowserApplication @@ -410,12 +209,8 @@ Czy mimo to chcesz zakończyć? Przywracanie nie powiodło się - The saved session will not be restored because Arora crashed while trying to restore this session. - Zapisana sesja nie mogła zostać przywrócona ponieważ Arora wysypała się. - - - Arora crashed while trying to restore this session. Should I try again? - Arora wywalila się w trakcie odzyskiwania sesji. Spróbować jeszcze raz? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -448,14 +243,6 @@ Czy mimo to chcesz zakończyć? &Export Bookmarks... &Eksportuj zakładki... - - P&rint Preview... - Podgląd wyd&ruku... - - - &Print... - &Drukuj... - Private &Browsing... &Prywatne przeglądanie... @@ -578,10 +365,6 @@ Czy mimo to chcesz zakończyć? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Włącz &inspektora stron - &Help &Pomoc @@ -610,11 +393,6 @@ Czy mimo to chcesz zakończyć? Hide Toolbar Schowaj pasek narzędziowy - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Otwórz zasób internetowy @@ -623,10 +401,6 @@ Czy mimo to chcesz zakończyć? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Pliki internetowe (*.html *.htm *.svg *.png *.gif *.svgz);;Wszystkie pliki (*.*) - - Print Document - Drukuj dokument - Are you sure you want to turn on private browsing? Czy jesteś pewny że chcesz włączyć prywatne przeglądanie sieci? @@ -635,16 +409,6 @@ Czy mimo to chcesz zakończyć? Are you sure you want to close the window? There are %1 tabs open Czy jesteś pewien, że chcesz zamknąć okno? %1 kart jest otwartych - - Web Inspector - Inspektor stron - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Inspektor stron działa poprawnie tylko dla stron, które zostały wczytane po jego aktywowaniu. -Czy chcesz odświeżyć wszystkie strony? - Stop loading the current page Zatrzymaj ładowanie strony @@ -759,10 +523,6 @@ Czy chcesz odświeżyć wszystkie strony? Items are automatically removed from the Downloads window. Pobrane pliki są automatycznie usuwane z okna Pobierania. - - New cookies are not stored, current cookies can't be accessed. - Nowe ciasteczka nie są przechowywane, aktualnie istniejące nie mogą być modyfikowane. - Site icons won't be stored. Ikony stron nie będą zapisywane. @@ -787,10 +547,6 @@ Czy chcesz odświeżyć wszystkie strony? Private Browsing Prywatne przeglądanie - - &Ad Block... - &AdBlock... - User Agent @@ -807,6 +563,11 @@ Czy chcesz odświeżyć wszystkie strony? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -837,10 +598,6 @@ Czy chcesz odświeżyć wszystkie strony? &Search History Historia &wyszukiwania - - &Cookies - &Ciasteczka - Website &Icons &Ikony stron @@ -853,164 +610,6 @@ Czy chcesz odświeżyć wszystkie strony? &Cancel &Anuluj - - C&ached Web Pages - Z&apisane w cache strony - - - - ClickToFlash - - Load - Wczytaj - - - Load All - Wczytaj wszystkie - - - Add %1 to Whitelist - Dodaj %1 do białej listy - - - Remove from Whitelist - Usuń z białej listy - - - Settings - Ustawienia - - - Load Flash - Wczytaj Flash - - - - ClickToFlashSettings - - Whitelist sites - Strony na białej liście - - - - CookieExceptionsModel - - Website - Strona - - - Allow - Zezwól - - - Block - Blokuj - - - Allow For Session - Zezwól na czas sesji - - - Rule - Zasada - - - - CookieModel - - Website - Strona - - - Name - Nazwa - - - Path - Ścieżka - - - Secure - Bezpieczne - - - Expires - Wygasa - - - Contents - Zawartość - - - true - prawda - - - false - fałsz - - - Session cookie - Ciasteczko sesji - - - - CookiesDialog - - Cookies - Ciasteczka - - - &Remove - &Usuń - - - Remove &All Cookies - Usuń &wszystkie ciasteczka - - - Add &Rule - Dodaj &regułę - - - - CookiesExceptionsDialog - - Cookie Exceptions - Wyjątki ciasteczek - - - New Exception - Nowy wyjątek - - - Domain: - Domena: - - - Block - Blokuj - - - Allow For Session - Zezwól na czas sesji - - - Allow - Zezwól - - - Exceptions - Wyjątki - - - &Remove - &Usuń - - - Remove &All - Usuń &wszystkie - DownloadDialog @@ -1018,14 +617,6 @@ Czy chcesz odświeżyć wszystkie strony? Downloads Pobieranie - - Clean up - Wyczyść - - - 0 Items - 0 elementów - Downloading %1 @@ -1033,26 +624,6 @@ Czy chcesz odświeżyć wszystkie strony? DownloadItem - - Ico - Ikona - - - Filename - Nazwa pliku - - - Try Again - Spróbuj ponownie - - - Stop - Zatrzymaj - - - Open - Otwórz - Save File Zapisz plik @@ -1073,10 +644,6 @@ Czy chcesz odświeżyć wszystkie strony? ? ? - - %1 of %2 - Stopped - %1 z %2 - Zatrzymano - Error opening output file: %1 Błąd w trakcie otwierania pliku docelowego: %1 @@ -1143,33 +710,6 @@ Czy mimo to chcesz zakończyć? GB - - FileAccessReply - - No Error - Brak błędu - - - Error opening: %1: No such file or directory - Błąd w trakcie otwierania %1: Plik lub katalog nie istnieje - - - Unable to read %1 - Nie można czytać z %1 - - - Contents of %1 - Zawartość %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - HistoryDialog @@ -1184,18 +724,6 @@ Czy mimo to chcesz zakończyć? Delete Skasuj - - History - Historia - - - &Remove - &Usuń - - - Remove &All - Usuń &wszystkie - HistoryMenu @@ -1243,29 +771,29 @@ Czy mimo to chcesz zakończyć? - JavaScriptAroraObject + JavaScriptEndorphinObject - Welcome to Arora! - Witaj w Arorze! + Welcome to Endorphin! + - Arora Start - Arora Start + Endorphin Start + Search! - Szukaj! + - Search results provided by - Wyniki wyszukiwania pochodzą z + Search the web with + - About Arora - O programie Arora + Search results provided by + - Search the web with + About Endorphin @@ -1279,58 +807,11 @@ Czy mimo to chcesz zakończyć? <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> <p>Możesz używać innego języka niż<br />domyślny systemowy.</p><p>Wybierz język, z którego chciałbyś korzystać.</p> - - No translation files are installed. - Nie znaleziono żadnych plików językowych. - No translation files are installed at %1. Żadne pliki językowe nie są zainstalowane w %1. - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Wpisz nazwę użytkownika i hasło dla "%1" na %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Połącz się z proxy "%1" używając:</qt> - - - - SSL Errors - - Błędy SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Błędy SSL:<br/><br/>dla: <tt>%1</tt><ul><li>%2</li></ul> - -Czy chcesz zignorować te błędy?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certyfikaty:<br/>%1<br/>Czy chcesz zaakceptować wszystkie certyfikaty?</qt> - - - Issuer: %1 - Wydawca: %1 - - - Not valid before: %1 - Nieważny przed: %1 - - - Valid until: %1 - Ważny do: %1 - - - Alternate Names: - Alternatywne nazwy: - - OpenSearchDialog @@ -1353,26 +834,6 @@ Czy chcesz zignorować te błędy?</qt> You must have at least one search engine in here. Musisz mieć co najmniej jedną wyszukiwarkę. - - OpenSearch Manager - Menedżer wyszukiwarek OpenSearch - - - &Restore Defaults - &Przywróć domyślne - - - &Delete - &Usuń - - - &Add - &Dodaj - - - &Close - &Zamknij - OpenSearchEngineModel @@ -1405,26 +866,18 @@ Czy chcesz zignorować te błędy?</qt> - PasswordDialog - - Authentication Required - Wymagane uwierzytelnienie - + PermissionBar - DUMMY ICON - ATRAPA IKONY - - - INTRO TEXT DUMMY - ATRAPA TEKSTU WSTĘPNEGO + Allow + Zezwól - Username: - Nazwa użytkownika: + Deny + - Password: - Hasło: + %1 wants to %2. + @@ -1434,25 +887,6 @@ Czy chcesz zignorować te błędy?</qt> Nie znaleziono - - ProxyDialog - - Proxy Authentication - Uwierzytelnienie proxy - - - Connect to proxy - Połącz z proxy - - - Username: - Nazwa użytkownika: - - - Password: - Hasło: - - QObject @@ -1467,399 +901,40 @@ Czy chcesz zignorować te błędy?</qt> The file is not an OpenSearch 1.1 file. Plik nie jest prawidłowym plikiem OpenSearch 1.1. - - - SearchBanner - - Done - Zakończono - - - Highlight All - Podświetl wszystkie - - - - SearchLineEdit - - Search - Szukaj - - - - Settings - - General - Ogólne - - - Set to current page - Ustaw jako obecną stronę - - - Remove history items: - Usuń elementy historii: - - - After one day - Po jednym dniu - - - After one week - Po tygodniu - - - After two weeks - Po dwóch tygodniach - - - After one month - Po miesiącu - - - After one year - Po roku - - - Manually - Ręcznie - - - Open links from applications: - Otwórz linki z aplikacji: - - - In a new window - W nowym oknie - - - Downloads - Pobieranie - - - Ask for a destination each time - Za każdym razem pytaj o miejsce do zapisu - - - Use this destination: - Użyj następującego miejsca docelowego: - - - Appearance - Wygląd - - - Standard font: - Standardowa czcionka: - - - Select... - Wybierz... - - - Fixed-width font: - Czcionka o stałej szerokości: - - - Privacy - Prywatność - - - Web Content - Zawartość sieci - - - Enable Plugins - Włącz wtyczki - - - Enable Javascript - Włącz obsługę Javascript - - - Cookies - Ciasteczka - - - Accept Cookies: - Akceptuj ciasteczka: - - - Always - Zawsze - - - Never - Nigdy - - - Only from sites you navigate to - Tylko ze stron, które odwiedzasz - - - Exceptions... - Wyjątki... - - - They expire - aż wygasną - - - I exit the application - do zamknięcia programu - - - At most 90 days - najwyżej 90 dni - - - Cookies... - Ciasteczka... - - - Proxy - Proxy - - - Type: - Typ: - - - Socks5 - Socks5 - - - Port: - Port: - - User Name: - Nazwa użytkownika: - - - Password: - Hasło: - - - Advanced - Zaawansowane - - - Style Sheet: - Arkusz stylów: - - - On startup: - Podczas uruchamiania: - - - Show my home page - Otwórz moją stronę domową - - - Show a blank page - Otwórz pustą stronę - - - Restore windows and tabs from last time - Przywróć okna i karty z poprzedniej sesji - - - On application exit - Przy zamykaniu aplikacji - - - Tabs - Karty - - - Select tabs and windows as they are created - Wybierz karty i okna tak jak zostały utworzone - - - Preferences - Ustawienia - - - Home Page: - Strona domowa: - - - View Images - Wyświetlaj obrazki - - - Keep Cookies Until: - Przechowuj ciastka: - - - Use proxy server - Użyj serwera proxy - - - Host name: - Host name: - - - Show only one close button instead of one for each tab - Wyświetlaj tylko jeden przycisk zamknięcia karty zamiast jednego dla każdej karty - - - Block Popup Windows - Blokuj wyskakujące okna - - - Opening links - Otwieraj łącza - - - Links that want to open in a new window: - Łącza, które chcą utworzyć nowe okno: - - - In a new selected tab in the current window - W nowej aktywnej karcie w bieżącym oknie - - - In a new tab in the current window - W nowej karcie w bieżącym oknie - - - In the current tab - W bieżącej karcie - - - Http (Secure) - Http (bezpieczny) - - - Http (Transparent) - Http (przejrzysty) - - - Preferred languages for viewing webpages in: - Preferowane języki do przeglądania stron: - - - Use ClickToFlash on flash plugins - not sure if ClickToFlash needs to be translated at all... - Użyj ClickToFlash dla pluginów flash - - - Filter Tracking Cookies - Odrzucaj śledzące ciastka - - - Confirm when closing multiple tabs or windows - Potwierdź zamknięcie wielu kart lub okien naraz - - - Quit the application when last tab is closed - Zamknij aplikację, gdy ostatnia karta zostanie zamknięta - - - Enable network cache - Włącz sieciową pamięć podręczną - - - Maximum Size: - Maksymalny rozmiar: - - - MB - MB - - - Use the default search engine as fallback when the URL given by the user is invalid - Szukaj w domyślnej wyszukiwarce kiedy tekst niebedący URL-em jest wprowadzony przez użytkownika - - - Choose Directory... - Wybierz katalog... - - - A cookie session ends: - Sesja ciasteczka kończy się: - - - When I exit the application - Podczas zamykania aplikacji - - - 1 day - 1 dzień - - - 2 days - 2 dni - - - 3 days - 3 dni - - - 7 days - 7 dni - - - 30 days - 30 dni - - - AutoFill - Autouzupełnianie formularzy - - - AutoFill web forms: - Uzupełniaj formularze: - - - User names and passwords - Nazwy użytkownika i hasła - - - Edit... - Edytuj... - - - Browse... - Przeglądaj... - - - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Ponowne uruchomienie wymagane - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Konfiguracja pamięci podręcznej została zmieniona. Aby została wzięta pod uwagę, przeglądarka musi być uruchomiona ponownie. + Search + Szukaj + + + SettingsDialog Choose Directory Wybierz katalog @@ -1945,18 +1020,6 @@ Czy chcesz zignorować te błędy?</qt> Recently Closed Tabs Ostatnio zamknięte karty - - Do you really want to close this page? - Czy na pewno chcesz zamknąć tę stronę? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Wprowadziłeś modyfikacje na tej stronie i kiedy ją zamkniesz to utracisz wszystkie zmiany. -Czy na pewno chcesz zamknąć tę stronę? - - Untitled Bez tytułu @@ -1973,10 +1036,6 @@ Czy na pewno chcesz zamknąć tę stronę? Loading... Ładowanie... - - Loading %1% (%2 %3)... - Ładowanie %1% (%2 %3)... - Finished loading Zakończono ładowanie @@ -1993,6 +1052,10 @@ Czy na pewno chcesz zamknąć tę stronę? Bookmark All Tabs Dodaj wszystkie karty do zakładek + + Loading ... + + ToolbarSearch @@ -2012,10 +1075,6 @@ Czy na pewno chcesz zamknąć tę stronę? Suggestions Sugestie - - Add '%1' - Dodaj '%1' - UserAgentMenu @@ -2036,37 +1095,6 @@ Czy na pewno chcesz zamknąć tę stronę? - - WebPage - - Error loading page: %1 - Błąd podczas ładowania strony: %1 - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Jeśli twój komputer lub sieć jest chroniona zaporą sieciową lub proxy, upewnij się, że przeglądarka ma uprawnienia do dostępu do sieci. - - - When connecting to: %1. - Podczas łączenia z: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Sprawdź adres pod kątem błędów takich jak <b>ww</b>.arora-browser.org zamiast <b>www</b>.arora-browser.org - - - If the address is correct, try checking the network connection. - Jeśli adres jest prawidłowy, sprawdź poprawność połączenia internetowego. - - - Resending POST request - Ponowne wysyłanie żądania POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Aby wyświetlić tę stronę, żądanie razem ze wszystkimi danymi musi być ponownie wysłane, co może prowadzić do nieoczekiwanego zachowania się strony np. ta sama akcja może być wykonana jeszcze raz. Czy na pewno chcesz kontynuować? - - WebView @@ -2117,38 +1145,6 @@ Czy na pewno chcesz zamknąć tę stronę? Search with... Szukaj z... - - Add to the toolbar search - Dodaj do paska wyszukiwania - - - Method not supported - Metoda żądania nie wspierana - - - %1 method is not supported. - Metoda %1 jest nie wspierana. - - - Search engine - Wyszukiwarka - - - Choose the desired search engine - Wybierz żądaną wyszukiwarkę - - - Engine name - Nazwa wyszukiwarki - - - Type in a name for the engine - Podaj nazwę dla wyszukiwarki - - - Block Image - Zablokuj obrazek - WebViewSearch diff --git a/src/locale/pt_BR.ts b/src/locale/pt_BR.ts index c01d1ed3..e6fa9c0c 100644 --- a/src/locale/pt_BR.ts +++ b/src/locale/pt_BR.ts @@ -15,142 +15,6 @@ License Licença - - Lightweight WebKit-based web browser - Navegador web leve baseado no Webkit - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Fechar - - - WebKit version: %1 - Versão do Webkit: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Idiomas - - - Languages: in order of preference: - Idiomas: em ordem de preferência: - - - Move &Up - Para &cima - - - Move &Down - Para &baixo - - - &Remove - &Remover - - - Add... - Adicionar... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Bloqueado por AdBlockRule: %1 - - - - AdBlockDialog - - Add Custom Rule - Adicionar regra personalizada - - - Learn more about writing rules... - Saiba mais sobre escrevendo regras... - - - Update Subscription - Atualizar subscrição - - - Browse Subscriptions... - Navegar nas subscrições... - - - Remove Subscription - Remover subscrição - - - AdBlock Configuration - Configuração do AdBlock - - - Enable AdBlock - Habilitar AdBlock - - - Action - Ação - - - - AdBlockManager - - Custom Rules - Personalizar regras - - - - AdBlockModel - - Rule - Regra - - - - AdBlockSchemeAccessHandler - - Subscribe? - Inscrever-se? - - - Subscribe to this AdBlock subscription? -%1 - Inscrever-se nesta subscrição AdBlock? -%1 - AddBookmarkDialog @@ -158,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Adicionar favorito - - Type a name for the bookmark, and choose where to keep it. - Escreva um nome para o favorito, e escolha onde deseja mantê-lo. - Url Url @@ -175,51 +35,6 @@ p, li { white-space: pre-wrap; } Adicionar pasta - - AutoFillDialog - - Form Passwords - Formulário de senhas - - - Remove - Remover - - - Remove All - Remover todos - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Gostaria de salvar esta senha?</b><br> Para rever as senhas que você salvou e removê-las, abra a aba Preenchimento automático em Ferramentas > Opções. - - - Never for this site - Nunca para este site - - - Not now - Não agora - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Site - - - User Name - Usuário - - BookmarksDialog @@ -246,18 +61,6 @@ p, li { white-space: pre-wrap; } New Folder Nova pasta - - Bookmarks - Favoritos - - - &Remove - &Remover - - - Add Folder - Adicionar pasta - BookmarksManager @@ -287,16 +90,6 @@ p, li { white-space: pre-wrap; } Open File Abrir arquivo - - XBEL - XBEL - - - Error when loading html bookmarks: %1 - - Erro ao carregar html de favoritos: %1 - - Imported %1 Importado %1 @@ -309,10 +102,6 @@ p, li { white-space: pre-wrap; } %1 Bookmarks.xbel %1 Bookmarks.xbel - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Export error Erro ao exportar @@ -351,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Ferramenta htmlToXBel é requerida - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - A ferramenta htmlToXBel, que é expedida com o Arora e é necessária para importar os favoritos HTML, não está instalada ou disponível nos caminhos de procura. - Loading Bookmark Carregando favoritos @@ -365,6 +150,10 @@ p, li { white-space: pre-wrap; } Erro ao carregar os favoritos em HTML: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -386,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Favoritos - Open Abrir @@ -410,17 +195,9 @@ p, li { white-space: pre-wrap; } Add Folder... Adicionar pasta... - - Bookmarks - Favoritos - BrowserApplication - - (Change: %1 %2) - (Alteração: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -432,12 +209,8 @@ Você quer sair de qualquer maneira? Falha ao restaurar - The saved session will not be restored because Arora crashed while trying to restore this session. - A sessão salva não será restaurada porque Arora fechou ao tentar restaurar esta sessão. - - - Arora crashed while trying to restore this session. Should I try again? - Arora fechou durante a tentativa de restaurar essa sessão. Devo tentar novamente? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -470,14 +243,6 @@ Você quer sair de qualquer maneira? &Export Bookmarks... &Exportar favoritos... - - P&rint Preview... - Visualiza&r impressão... - - - &Print... - Im&primir... - Private &Browsing... Navegação pri&vada... @@ -526,10 +291,6 @@ Você quer sair de qualquer maneira? Find P&revious Ante&rior - - Prefere&nces... - Preferê&ncias... - Ctrl+, Ctrl+, @@ -542,10 +303,6 @@ Você quer sair de qualquer maneira? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -652,14 +409,6 @@ Você quer sair de qualquer maneira? Clear Private Data Ctrl+Shift+Delete - - Show &Network Monitor - Mostrar mo&nitor de rede - - - Enable Web &Inspector - Habilitar &inspetor web - &Help &Ajuda @@ -705,11 +454,6 @@ Você quer sair de qualquer maneira? Hide Bookmarks Bar Ocultar barra de favoritos - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Abrir recursos da web @@ -718,32 +462,14 @@ Você quer sair de qualquer maneira? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Recursos web (*.html *.htm *.svg *.png *.gif *.svgz);; Todos os arquivos (*.*) - - Print Document - Imprimir documento - Are you sure you want to turn on private browsing? Tem certeza que deseja ativar a navegação privada? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Quando a navegação privada está ligada, algumas medidas relativas a sua privacidade serão desativadas:<ul><li> As páginas web não serão adicionadas no histórico.</li><li> Itens serão automaticamente removidos da janela de Downloads.</li><li> Novos cookies não serão armazenados, cookies atuais não podem ser acessados.</li><li> Ícones de sites não serão armazenados, sessões não serão salvas.</li><li> Pesquisas não serão adicionadas para o menu popup na caixa de pesquisa.</li></ul>Até você fechar a janela, você ainda pode clicar nos botões Voltar e Avançar para retornar às páginas que você tinha aberto. - Are you sure you want to close the window? There are %1 tabs open Tem certeza que deseja fechar a janela? Existem %1 abas abertas - - Web Inspector - Inspetor web - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - O inspetor web só irá trabalhar corretamente para as páginas que foram carregadas após a habilitação. -Você deseja recarregar todas as páginas? - Stop loading the current page Interromper o carregamento da página atual @@ -777,10 +503,6 @@ Você deseja recarregar todas as páginas? Alt+Ctrl+B Alt+Ctrl+B - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> No new network cache is written to disk.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Quando a navegação privada estiver ligada, algumas ações a respeito de sua privacidade serão desativadas: <ul><li> As páginas web não serão adicionadas ao histórico.</li><li> Os itens serão automaticamente removidos da janela de Download.</li><li> Novos cookies não serão armazenados, e cookies atuais não poderão ser acessados.</li><li> Os ícones dos sites não serão armazenados, a sessão não será salva.</li><li> As pesquisas não serão adicionadas para o menu pop-up na caixa de pesquisa.</li><li> Nenhum novo cache de rede será escrito em disco.</li></ul> Até você fechar a janela, você ainda pode clicar nos botões Voltar e Avançar para retornar às páginas que você abriu. - Options... Opções... @@ -789,10 +511,6 @@ Você deseja recarregar todas as páginas? Configure Search Engines... Configurar mecanismos de pesquisa... - - &Ad Block... - &Ad Block... - When private browsing is turned on, some actions concerning your privacy will be disabled: Quando a navegação privada estiver ligada, algumas ações a respeito de sua privacidade serão desabilitadas: @@ -805,10 +523,6 @@ Você deseja recarregar todas as páginas? Items are automatically removed from the Downloads window. Os itens serão automaticamente removidos da janela de Download. - - New cookies are not stored, current cookies can't be accessed. - Novos cookies não serão armazenados, e cookies atuais não poderão ser acessados. - Site icons won't be stored. Os ícones dos sites não serão armazenados. @@ -849,6 +563,11 @@ Você deseja recarregar todas as páginas? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -879,14 +598,6 @@ Você deseja recarregar todas as páginas? &Search History Histórico de pe&squisa - - &Cookies - &Cookies - - - C&ached Web Pages - C&ache das páginas web - Website &Icons Ícones de s&ites @@ -901,1079 +612,325 @@ Você deseja recarregar todas as páginas? - ClickToFlash - - Load - Carregar - + DownloadDialog - Load All - Carregar todos + Downloads + Downloads - Add %1 to Whitelist - Adicionar %1 à Lista branca + Downloading %1 + + + + DownloadItem - Remove from Whitelist - Remover da Lista branca + Save File + Salvar arquivo - Settings - Configurações + Download canceled: %1 + Download cancelado: %1 - Load Flash - Carregar flash + Error opening output file: %1 + Erro ao abrir o arquivo de saída: %1 - - - ClickToFlashSettings - Whitelist sites - Sites de Lista branca + Error saving: %1 + Erro ao salvar: %1 - - - CookieExceptionsModel - Website - Site + Network Error: %1 + Erro na rede: %1 - Rule - Regra + %1 of %2 (%3/sec) - %4 + %1 de %2 (%3/seg) - %4 - Allow - Permitir + ? + ? - Block - Bloquear + Download directory (%1) couldn't be created. + O diretório de download (%1) não pôde ser criado. - Allow For Session - Permitir para sessão + %1 of %2 - Download Complete + - CookieModel - - Website - Site - + DownloadManager - Name - Nome + There are %1 downloads in progress +Do you want to quit anyway? + Existem %1 downloads em progresso. +Você deseja sair de qualquer maneira? - - Path - Caminho + + %n Download(s) + + %n download + %n downloads + - - Secure - Segurança + + %n minutes remaining + + %n minuto restante + %n minutos restantes + - - Expires - Expira + + %n seconds remaining + + %n segundo restante + %n segundos restantes + - Contents - Sumário + bytes + bytes - true - verdadeiro + kB + kB - false - falso + MB + MB - Session cookie - Cookie da sessão + GB + GB - CookiesDialog - - Cookies - Cookies - + HistoryDialog - &Remove - &Remover + Open + Abrir - Remove &All Cookies - Remover &todos os cookies + Copy + Copiar - Add &Rule - Adicionar &regra + Delete + Excluir - CookiesExceptionsDialog + HistoryMenu - Cookie Exceptions - Exceções do cookie + Show All History + Mostrar todos os históricos - New Exception - Nova exceção + Clear History... + Limpar histórico... - Domain: - Domínio: + Clear History + Limpar histórico - Block - Bloquear + Do you want to clear the history? + Você deseja limpar o histórico? + + + HistoryModel - Allow For Session - Permitir para sessão + Title + Título - Allow - Permitir - - - Exceptions - Exceções - - - &Remove - &Remover - - - Remove &All - Remover &todos - - - - DownloadDialog - - Downloads - Downloads - - - Clean up - Limpar - - - 0 Items - 0 itens - - - Downloading %1 - - - - - DownloadItem - - Form - De - - - Ico - Ico - - - Filename - Nome do arquivo - - - Try Again - Tentar novamente - - - Stop - Parar - - - Open - Abrir - - - Save File - Salvar arquivo - - - Download canceled: %1 - Download cancelado: %1 - - - Error opening output file: %1 - Erro ao abrir o arquivo de saída: %1 - - - Error saving: %1 - Erro ao salvar: %1 - - - Network Error: %1 - Erro na rede: %1 - - - %1 of %2 (%3/sec) - %4 - %1 de %2 (%3/seg) - %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 de %2 - Parado - - - Download directory (%1) couldn't be created. - O diretório de download (%1) não pôde ser criado. - - - %1 of %2 - Download Complete - - - - - DownloadManager - - There are %1 downloads in progress -Do you want to quit anyway? - Existem %1 downloads em progresso. -Você deseja sair de qualquer maneira? - - - %n Download(s) - - %n download - %n downloads - - - - %n minutes remaining - - %n minuto restante - %n minutos restantes - - - - %n seconds remaining - - %n segundo restante - %n segundos restantes - - - - bytes - bytes - - - kB - kB - - - MB - MB - - - GB - GB - - - - FileAccessReply - - No Error - Nenhum erro - - - Error opening: %1: No such file or directory - Erro ao abrir: %1: Nenhum arquivo ou diretório encontrado - - - Unable to read %1 - Não foi possível ler %1 - - - Contents of %1 - Conteúdo de %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - Open - Abrir - - - Copy - Copiar - - - Delete - Excluir - - - History - Histórico - - - &Remove - &Remover - - - Remove &All - Remover &todos - - - - HistoryMenu - - Show All History - Mostrar todos os históricos - - - Clear History... - Limpar histórico... - - - Clear History - Limpar histórico - - - Do you want to clear the history? - Você deseja limpar o histórico? - - - - HistoryModel - - Title - Título - - - Address - Endereço - - - - HistoryTreeModel - - Earlier Today - Hoje cedo - - - %n item(s) - - %n item - %n itens - - - - - JavaScriptAroraObject - - Welcome to Arora! - Bem-vindoa ao Arora! - - - Arora Start - Iniciar Arora - - - Search! - Pesquisar! - - - Search results provided by - Pesquisar resultados forneceidos por - - - About Arora - Sobre Arora - - - Search the web with - - - - - LanguageManager - - No translation files are installed. - Não estão instalados os arquivos de tradução. - - - Choose language - Escolha o idioma - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Você pode executar com um idioma diferente do que<br>o padrão do sistema operacional.</p><p>Por favor, escolha o idioma que deve ser utilizado</p> - - - No translation files are installed at %1. - Não há arquivos de tradução instalados em %1. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Digite o nome de usuário e senha para "%1" em %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Conectar no proxy "%1" usando:</qt> - - - - SSL Errors - - Erros SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Erros SSL:<br/><br/>para: <tt>%1</tt><ul><li>%2</li></ul> - -Você deseja ignorar esses erros?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Certificados:<br/>%1<br/>Você deseja aceitar todos esses certificados?</qt> - - - Issuer: %1 - Expedido por: %1 - - - Not valid before: %1 - Sem validade não antes de: %1 - - - Valid until: %1 - Válido até: %1 - - - Alternate Names: - Nomes alternativos: - - - - NetworkMonitor - - Name - Nome - - - Value - Valor - - - - NetworkMonitorDialog - - Network Monitor - Monitor de rede - - - Network Requests - Pedidos da rede - - - Request Headers - Pedido dos cabeçalhos - - - Response Headers - Resposta dos cabeçalhos - - - &Remove - &Remover - - - Remove &All Requests - Remover &todos os pedidos - - - - OpenSearchDialog - - Open File - Abrir arquivo - - - OpenSearch - OpenSearch - - - Error - Erro - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 não é uma válida descrição OpenSearch 1.1 ou já está em sua lista. - - - You must have at least one search engine in here. - Você deve ter pelo menos um mecanismo de pesquisa aqui. - - - OpenSearch Manager - Gerenciar OpenSearch - - - &Add - &Adicionar - - - &Delete - &Excluir - - - &Restore Defaults - &Restaurar padrão - - - &Close - &Fechar - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Descrição:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Exibir sugestões contextuais</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - Lista separada por vírgulas de palavras-chave que podem ser inscritas na barra de endereços seguido de termos de procura para pesquisar com este mecanismo - - - Name - Nome - - - Keywords - Palavras-chave - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Você deseja adicionar o seguinte mecanismo para sua lista de mecanismos de pesquisa?<br /><br />Nome: %1<br />Pesquisar sobre: %2 - - - - PasswordDialog - - Authentication Required - Requer autenticação - - - DUMMY ICON - IMITAÇÃO DE ÍCONE - - - INTRO TEXT DUMMY - IMITAÇÃO DE INTRODUÇÃO DO TEXTO - - - Username: - Usuário: - - - Password: - Senha: - - - - PlainTextEditSearch - - Not Found - Não encontrado - - - - ProxyDialog - - Proxy Authentication - Autenticação no proxy - - - Connect to proxy - Conectar-se no proxy - - - Username: - Usuário: - - - Password: - Senha: - - - - QObject - - The file is not an OpenSearch 1.1 file. - O arquivo não é um arquivo OpenSearch 1.1. - - - The file is not an XBEL version 1.0 file. - O arquivo não é um arquivo XBEL versão 1.0. - - - Unknown title - Título desconhecido - - - - RequestModel - - Redirect: %1 - Redirecionar: %1 - - - Method - Método - - - Address - Endereço - - - Response - Resposta - - - Length - Duração - - - Content Type - Tipo do conteúdo - - - Info - Informação - - - - SearchBanner - - Form - De - - - Done - Fechar - - - Highlight All - Testacar todos - - - - SearchLineEdit - - Search - Pesquisar - - - - Settings - - Preferences - Preferências - - - General - Geral - - - On startup: - Ao iniciar: - - - Show my home page - Mostrar minha página inicial - - - Show a blank page - Mostrar uma página em branco - - - Restore windows and tabs from last time - Restaurar janelas e abas de última hora - - - Home Page: - Página inicial: - - - Set to current page - Usar a página atual - - - Remove history items: - Remover itens do histórico: - - - After one day - Depois de um dia - - - After one week - Depois de uma semana - - - After two weeks - Depois de duas semanas - - - After one month - Depois de um mês - - - After one year - Depois de um ano - - - Manually - Manualmente - - - On application exit - Na saída da aplicação - - - Downloads - Downloads - - - Ask for a destination each time - Perguntar para um destino de cada vez - - - Use this destination: - Usar esse destino: - - - Appearance - Aparência - - - Standard font: - Fonte padrão: - - - Select... - Selecionar... - - - Fixed-width font: - Fonte com largura fixa: - - - Preferred languages for viewing webpages in: - Idiomas preferenciais para visualização das páginas web: - - - Privacy - Privacidade - - - Web Content - Conteúdo web - - - Block Popup Windows - Boquear janelas instantâneas - - - Enable Plugins - Habilitar plug-ins - - - Use ClickToFlash on flash plugins - Utilizar Clique para Instalar nos plug-ins flash - - - Enable Javascript - Habilitar javascript - - - View Images - Ver imagens - - - Cookies - Cookies - - - Accept Cookies: - Aceitar cookies: - - - Always - Sempre - - - Never - Nunca - - - Only from sites you navigate to - Somente de sites que você navega - - - Exceptions... - Exceções... - - - Keep Cookies Until: - Manter cookie até: - - - They expire - Ele expirar - - - I exit the application - Eu sair da aplicação - - - At most 90 days - No máximo 90 dias - - - Cookies... - Cookies... - - - Filter Tracking Cookies - Filtrar rastreamento de cookies - - - Tabs - Abas - - - Select tabs and windows as they are created - Selecionar abas e janelas que são criadas - - - Confirm when closing multiple tabs or windows - Confirmar quando fechar múltiplas abas e janelas - - - Show only one close button instead of one for each tab - Mostrar apenas um botão fechar, em vez de um para cada aba - - - Quit the application when last tab is closed - Sair da aplicação quando a última aba for fechada - - - Opening links - Abrindo links - - - Links that want to open in a new window: - Links que deseja abrir em uma nova janela: - - - In a new window - Em uma nova janela - - - In a new selected tab in the current window - Em uma nova aba selecionada na janela atual - - - In a new tab in the current window - Em uma nova aba na janela atual - - - In the current tab - Na aba atual - - - Open links from applications: - Abrir links de aplicações: + Address + Endereço + + + HistoryTreeModel - Proxy - Proxy + Earlier Today + Hoje cedo - - Use proxy server - Usar servidor proxy + + %n item(s) + + %n item + %n itens + + + + JavaScriptEndorphinObject - Type: - Tipo: + Welcome to Endorphin! + - Socks5 - Socks5 + Endorphin Start + - Http (Secure) - Http (seguro) + Search! + - Http (Transparent) - Http (transparente) + Search the web with + - Host name: - Servidor: + Search results provided by + - Port: - Porta: + About Endorphin + + + + LanguageManager - User Name: - Usuário: + Choose language + Escolha o idioma - Password: - Senha: + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Você pode executar com um idioma diferente do que<br>o padrão do sistema operacional.</p><p>Por favor, escolha o idioma que deve ser utilizado</p> - Advanced - Avançado + No translation files are installed at %1. + Não há arquivos de tradução instalados em %1. + + + OpenSearchDialog - Style Sheet: - Folha de estilos: + Open File + Abrir arquivo - Enable network cache - Habilitar cache de rede + OpenSearch + OpenSearch - Maximum Size: - Tamanho máximo: + Error + Erro - MB - MB + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 não é uma válida descrição OpenSearch 1.1 ou já está em sua lista. - Use the default search engine as fallback when the URL given by the user is invalid - Utilizar o mecanismo de pesquisa padrão como retorno, quando a URL fornecida pelo usuário é inválida + You must have at least one search engine in here. + Você deve ter pelo menos um mecanismo de pesquisa aqui. + + + OpenSearchEngineModel - Choose Directory... - Escolher diretório... + <strong>Description:</strong> %1 + <strong>Descrição:</strong> %1 - A cookie session ends: - Terminar uma sessão de cookie: + <strong>Provides contextual suggestions</strong> + <strong>Exibir sugestões contextuais</strong> - When I exit the application - Quando eu sair do programa + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + Lista separada por vírgulas de palavras-chave que podem ser inscritas na barra de endereços seguido de termos de procura para pesquisar com este mecanismo - 1 day - 1 dia + Name + Nome - 2 days - 2 dias + Keywords + Palavras-chave + + + OpenSearchManager - 3 days - 3 dias + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Você deseja adicionar o seguinte mecanismo para sua lista de mecanismos de pesquisa?<br /><br />Nome: %1<br />Pesquisar sobre: %2 + + + PermissionBar - 7 days - 7 dias + Allow + Permitir - 30 days - 30 dias + Deny + - AutoFill - Preenchimento automático + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - Preenchimento automático de formulários web: + Not Found + Não encontrado + + + QObject - User names and passwords - Usuários e senhas + The file is not an OpenSearch 1.1 file. + O arquivo não é um arquivo OpenSearch 1.1. - Edit... - Editar... + The file is not an XBEL version 1.0 file. + O arquivo não é um arquivo XBEL versão 1.0. - Browse... - Procurar... + Unknown title + Título desconhecido - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Requer reinício - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - A configuração do cache de rede foi modificada. Então, para que possa ser efetivado, o navegador deve ser reiniciado. + Search + Pesquisar + + + SettingsDialog Choose Directory Escolher diretório @@ -2001,18 +958,6 @@ Você deseja ignorar esses erros?</qt> &Find &Localizar - - &View - &Ver - - - &Wrap lines - &Separador - - - Source of Page - Fonte da página - Source of Page %1 Fonte da página %1 @@ -2059,26 +1004,10 @@ Você deseja ignorar esses erros?</qt> Saved Tabs Abas salvas - - Do you really want to close this page? - Você realmente deseja fechar essa página? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Você modificou esta página e quando fechá-la, você perderá a modificação. -Você realmente deseja fechar esta página? - - Loading... Carregando... - - Loading %1% (%2 %3)... - Carregando %1% (%2 %3)... - Finished loading Terminado carregamento @@ -2119,6 +1048,10 @@ Você realmente deseja fechar esta página? Bookmark All Tabs Favorito de todas as abas + + Loading ... + + ToolbarSearch @@ -2126,14 +1059,6 @@ Você realmente deseja fechar esta página? Suggestions Sugestões - - Add '%1' - Adicionar '%1' - - - Configure Search Engines... - Configurar mecanismos de pesquisa... - Clear Recent Searches Limpar pesquisas recentes @@ -2166,37 +1091,6 @@ Você realmente deseja fechar esta página? - - WebPage - - Error loading page: %1 - Erro ao carregar página: %1 - - - When connecting to: %1. - Ao conectar para: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Verifique o endereço se contém erros como <b>ww</b>.arora-browser.org em vez de <b>www</b>.arora-browser.org - - - If the address is correct, try checking the network connection. - Se o endereço está correto, tente verificar a conexão de rede. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Se o seu computador ou rede estão protegidos por um firewall ou proxy, certifique-se que o navegador tem permissão para acessar a rede. - - - Resending POST request - Reenviando pedido POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Para exibir o site, o pedido juntamente com todos os dados devem ser enviados mais uma vez, o que pode levar a alguns comportamentos inesperados do site por exemplo, a mesma ação pode ser realizada mais uma vez. Você deseja continuar mesmo assim? - - WebView @@ -2247,38 +1141,6 @@ Você realmente deseja fechar esta página? Loading... Carregando... - - Add to the toolbar search - Adicionar para a barra de ferramentas de pesquisa - - - Method not supported - Método não suportado - - - %1 method is not supported. - %1 método não é suportado. - - - Search engine - Mecanismo de pesquisa - - - Choose the desired search engine - Escolha o mecanismo de pesquisa - - - Engine name - Nome do mecanismo - - - Type in a name for the engine - Escreva um nome para o mecanismo - - - Block Image - Bloquear imagem - WebViewSearch diff --git a/src/locale/ru_RU.ts b/src/locale/ru_RU.ts index fde35b5c..dc87bfb4 100644 --- a/src/locale/ru_RU.ts +++ b/src/locale/ru_RU.ts @@ -3,10 +3,6 @@ AboutDialog - - About - О программе - Authors Авторы @@ -15,146 +11,10 @@ License Лицензия - - Lightweight WebKit-based web browser - Легкий браузер на WebKit - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Закрыть - About %1 О %1 - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Права принадлежат © 2007-2009 Бенжамину С. Мейеру &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - Версия WebKit: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Права принадлежат © 2007-2009 Бенжамину С. Мейеру &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Языки - - - Languages: in order of preference: - Языки: в порядке предпочтения: - - - Move &Up - &Вверх - - - Move &Down - &Вниз - - - &Remove - &Удалить - - - Add... - Добавить... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - Собственные правила - - - - AdBlockModel - - Rule - Правило - - - - AdBlockSchemeAccessHandler - - Subscribe? - Подписаться? - - - Subscribe to this AdBlock subscription? -%1 - Согласиться на подписку AdBlock? -%1 - AddBookmarkDialog @@ -162,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Добавить закладку - - Type a name for the bookmark, and choose where to keep it. - Введите имя для закладки и выберите, где сохранить её. - Url Адрес @@ -179,51 +35,6 @@ p, li { white-space: pre-wrap; } Добавить папку - - AutoFillDialog - - Form Passwords - - - - Remove - Удалить - - - Remove All - Удалить всё - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Сохранить пароль?</b><br> Чтобы увидеть сохранённые пароли и удалить их, откройте панель Автозаполнение в опциях. - - - Never for this site - Никогда для этого сайта - - - Not now - Не сейчас - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Веб-сайт - - - User Name - Имя пользователя - - BookmarksDialog @@ -238,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Новая папка - - Bookmarks - Закладки - - - &Remove - &Удалить - - - Add Folder - Добавить папку - Open in New Tab Открыть в новой вкладке @@ -283,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File Открыть файл - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Импортировано %1 @@ -315,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Вставить закладку - - Name Change - Изменение имени - - - Address Change - Изменение адреса - Bookmarks Bar Панель закладок @@ -331,19 +118,6 @@ p, li { white-space: pre-wrap; } Bookmarks Menu Меню закладок - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Ошибка при загрузке HTML закладки: %1 - - - XBEL - XBEL - Name Change Undo bookmark title change @@ -366,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Требуется функция htmlToXBel - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Функция htmlToXBel, которая включена в Arora и нужна для импорта закладок на HTML, не установлена или не доступна в путях поиска. - Loading Bookmark Загрузка закладки @@ -380,6 +150,10 @@ p, li { white-space: pre-wrap; } Ошибка при загрузке HTML закладок: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -401,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Закладка - Open Открыть @@ -425,10 +195,6 @@ p, li { white-space: pre-wrap; } Add Folder... Добавить папку... - - Bookmarks - Закладки - BrowserApplication @@ -443,20 +209,8 @@ Do you want to quit anyway? Восстановление не удалось - The saved session will not being restored because last time it was restored Arora crashed. - Сохраненная сессия не будет восстановлена потому что во время последнего восстановления Arora упал. - - - (Change: %1 %2) - (Change: %1 %2) - - - The saved session will not be restored because Arora crashed while trying to restore this session. - Сохранённая сессия не будет восстановлена, так как Arora упала при попытке восстановления этой сессии. - - - Arora crashed while trying to restore this session. Should I try again? - Произошла ошибка при восстановлении сеанса. Попытаться снова? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -489,14 +243,6 @@ Do you want to quit anyway? &Export Bookmarks... &Экспортировать закладки... - - P&rint Preview... - &Предпросмотр... - - - &Print... - Пе&чать... - Private &Browsing... Режим &конфиденциальности... @@ -541,10 +287,6 @@ Do you want to quit anyway? &View &Вид - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+| Ctrl+| @@ -593,10 +335,6 @@ Do you want to quit anyway? &Bookmarks &Закладки - - Manage Bookmarks... - Управление закладками... - Add Bookmark... Добавить закладку... @@ -619,10 +357,6 @@ Do you want to quit anyway? Поиск в Интернете Ctrl+K - - Enable Web &Inspector - Включить Web &Inspector - &Help &Справка @@ -631,10 +365,6 @@ Do you want to quit anyway? About &Qt О &Qt - - About &Arora - О программе &Arora - Navigation Навигация @@ -655,16 +385,6 @@ Do you want to quit anyway? Hide Toolbar Скрыть панель инструментов - - Arora - Arora - - - %1 - Arora - Page title and Browser name - Заголовок страницы и имя браузера - %1 - Arora - Open Web Resource Открыть веб-ресурс @@ -673,10 +393,6 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Веб-ресурсы (*.html *.htm *.svg *.png *.gif *.svgz);;Все файлы (*.*) - - Print Document - Печатать документ - Are you sure you want to turn on private browsing? Включить режим конфиденциальности? @@ -685,20 +401,6 @@ Do you want to quit anyway? Are you sure you want to close the window? There are %1 tabs open Закрыть окно? Открыто %1 вкладок - - Page Source of %1 - Исходный код страницы %1 - - - Web Inspector - Web Inspector - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Web Inspector будет правильно работать только для страниц, открытых после его включения. -Обновить все страницы? - Stop loading the current page Остановить загрузку текущей страницы @@ -711,11 +413,6 @@ Do you want to reload all pages? Downloads Загрузки - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - &Clear Private Data &Очистить личные данные @@ -725,34 +422,14 @@ Do you want to reload all pages? Clear Private Data Ctrl+Shift+Delete - - Find &Next - Найти &Следующее - Find P&revious Найти &Предыдущее - - Prefe&rences - &Настройки - &Reload Page Об&новить - - Make Text &Bigger - &Увеличенный Размер Текста - - - Make Text &Normal - &Нормальный Размер Текста - - - Make Text &Smaller - Маленький Размер Текста - Show Bookmarks Bar Показать Панель Закладок @@ -761,26 +438,14 @@ Do you want to reload all pages? Hide Bookmarks Bar Скрыть Панель Закладок - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Когда включен режим приватного браузинга, некоторые действия угрожающие безопасности будут недоступны:<ul><li> Вебстраницы не добавляются в журнал.</li><li> Записи автоматически удаляются из списка закачек.</li><li> Новые cookie не сораняются, старые cockie не доступны.</li><li> Иконки сайтов не сохраняются, сессии не сохраняются.</li><li> Поисковые запросы не добавляются во всплывающее окно при новом запросе.</li></ul>Пока вы не закроете окно вы не сможете воспользоваться кнопками Вперед и Назад для перехода на ранее открытые страницы. - Find Nex&t Продолжить поис&к - - Prefere&nces... - Настр&ойки... - Show Menu Bar Показать меню - - Show &Network Monitor - Показать &Сетевой монитор - Switch application language Изменить язык приложения @@ -818,10 +483,6 @@ Do you want to reload all pages? About Browser О &%1 - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Когда включен режим приватного браузинга, некоторые действия угрожающие безопасности будут недоступны:<ul><li> Вебстраницы не добавляются в журнал.</li><li> Записи автоматически удаляются из списка закачек.</li><li> Новые cookie не сораняются, старые cockie не доступны.</li><li> Иконки сайтов не сохраняются, сессии не сохраняются.</li><li> Поисковые запросы не добавляются во всплывающее окно при новом запросе.</li></ul>Пока вы не закроете окно вы не сможете воспользоваться кнопками Вперед и Назад для перехода на ранее открытые страницы. - Ctrl+Y Download Manager @@ -863,10 +524,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. Элементы списка загрузок будут автоматически удалены из него. - - New cookies are not stored, current cookies can't be accessed. - Новые cookies не будут храниться, текущие окажутся недоступными. - Site icons won't be stored. Значки сайтов храниться не будут. @@ -891,10 +548,6 @@ Do you want to reload all pages? Private Browsing Конфиденциальный просмотр - - &Ad Block... - &Ad Block... - User Agent @@ -911,6 +564,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -941,14 +599,6 @@ Do you want to reload all pages? &Search History Историю &поиска - - &Cookies - &Cookies - - - C&ache - &Кэш - Website &Icons З&начки веб-сайтов @@ -961,1217 +611,331 @@ Do you want to reload all pages? &Cancel &Отмена - - C&ached Web Pages - Веб-страницы, сохранённые в &кэше - - ClickToFlash - - Load - Загрузить - - - Load All - Загрузить все - - - Add %1 to Whitelist - Добавить %1 в список разрешённых сайтов - - - Remove from Whitelist - Удалить из списка разрешённых сайтов - + DownloadDialog - Settings - Параметры + Downloads + Загрузки - Load Flash - Загрузить Flash + Downloading %1 + - ClickToFlashSettings + DownloadItem - Whitelist sites - Список разрешённых сайтов + Save File + Сохранить файл - - - CookieExceptionsModel - Website - Веб-сайт + Download canceled: %1 + Загрузка отменена: %1 - Status - Статус + Error saving: %1 + Ошибка при сохранении: %1 - Allow - Разрешить + Network Error: %1 + Ошибка сети: %1 - Block - Блокировать + ? + ? - Allow For Session - Разрешить на время сеанса + Error opening output file: %1 + Ошибка при открытии сохранённого файла: %1 - Rule - Правило + %1 of %2 (%3/sec) - %4 + %1 из %2 (%3/сек) - %4 - - - CookieModel - Website - Веб-сайт + Download directory (%1) couldn't be created. + Директория загрузки (%1) не может быть создана. - Name - Имя + %1 of %2 - Download Complete + - - Path - Путь + + + DownloadManager + + %n Download(s) + + %n Закачка + %n Закачки + %n Закачек + - Secure - Безопасность + There are %1 downloads in progress +Do you want to quit anyway? + %1 закачек ещё не окончено. +Всё равно выйти? - - Expires - Истекает - - - Contents - Содержимое - - - true - истина - - - false - ложь - - - Session cookie - Cookie сеанса - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Удалить - - - Remove &All Cookies - Удалить &все cookies - - - Add &Rule - Добавить &правило - - - - CookiesExceptionsDialog - - Cookie Exceptions - Исключения cookies - - - New Exception - Новое исключение - - - Domain: - Домен: - - - Block - Блокировать - - - Allow For Session - Разрешить на время сеанса - - - Allow - Разрешить - - - Exceptions - Исключения - - - &Remove - &Удалить - - - Remove &All - Удалить &все - - - - DownloadDialog - - Downloads - Загрузки - - - Clean up - Очистить - - - 0 Items - 0 элементов - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Save File - Сохранить файл - - - Download canceled: %1 - Загрузка отменена: %1 - - - Error opening save file: %1 - Ошибка при открытии сохранённого файла: %1 - - - Error saving: %1 - Ошибка при сохранении: %1 - - - Network Error: %1 - Ошибка сети: %1 - - - seconds - секунд - - - %1 of %2 (%3/sec) %4 - %1 из %2 (%3/сек) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 of %2 - Остановлено - - - bytes - байт - - - kB - кБ - - - MB - МБ - - - Form - Форма - - - Ico - Ico - - - Filename - Имя файла - - - Try Again - Повторить попытку - - - Stop - Остановить - - - Open - Открыть - - - - %n minutes remaining - - - %n минут осталось - - - - - - - %n seconds remaining - - - %n секунд осталось - - - - - - Error opening output file: %1 - Ошибка при открытии сохранённого файла: %1 - - - %1 of %2 (%3/sec) - %4 - %1 из %2 (%3/сек) - %4 - - - Download directory (%1) couldn't be created. - Директория загрузки (%1) не может быть создана. - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n Закачка - %n Закачки - %n Закачек - - - - There are %1 downloads in progress -Do you want to quit anyway? - %1 закачек ещё не окончено. -Всё равно выйти? - - - %n minutes remaining - - %n минута осталась - %n минуты осталось - %n минут осталось - - - - %n seconds remaining - - %n секунда осталась - %n секунды осталось - %n секунд осталось - - - - bytes - байт - - - kB - кБ - - - MB - МБ - - - GB - ГБ - - - - FileAccessReply - - No Error - Без ошибок - - - Error opening: %1: No such file or directory - Ошибка при открытии %1: нет такого файла или папки - - - Unable to read %1 - Невозможно прочесть %1 - - - Contents of %1 - Содержимое %1 - - - %1 KB - %1 КБ - - - Show Hidden Files - - - - - HistoryDialog - - Open - Открыть - - - Copy - Копировать - - - Delete - Удалить - - - History - Журнал - - - &Remove - &Удалить - - - Remove &All - Удалить &все - - - - HistoryMenu - - Show All History - Показать весь журнал - - - Clear History - Очистить журнал - - - Clear History... - Очистить журнал... - - - Do you want to clear the history? - Хотите очистить журнал? - - - - HistoryModel - - Title - Название - - - Address - Адрес - - - - HistoryTreeModel - - Earlier Today - Ранее сегодня - - - %n item(s) - - %n запись - %n записи - %n записей - - - - - JavaScriptAroraObject - - Welcome to Arora! - Добро пожаловать в Arora! - - - Arora Start - Запуск Arora - - - Search! - Искать! - - - Search results provided by - Результаты поика предоставлены - - - About Arora - О Arora - - - Search the web with - - - - - LanguageManager - - Choose language - Выбрать язык - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Вы можеть использовать язык браузера, отличный<br>от языка операционной системы.</p><p>Выберить подходящий язык</p> - - - No translation files are installed. - Языковые файлы не установлены. - - - No translation files are installed at %1. - Языковые файлы не установлены. в %1. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Введите имя пользователя и пароль для "%1" на %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Подключиться к прокси "%1", используя:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Ошибки SSL: - -%1 - -%2 - -Желаете ли вы игнорировать эти ошибки? - - - Do you want to accept all these certificates? - Вы желаете принять все эти сертификаты? - - - - SSL Errors - - Ошибки SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Ошибки SSL:<br/><br/>для: <tt>%1</tt><ul><li>%2</li></ul> - -Игнорнировать эти ошибки?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Сертификаты:<br/>%1<br/>Принять эти сертификаты?</qt> - - - Issuer: %1 - Выдал: %1 - - - Not valid before: %1 - Не действует до: %1 - - - Valid until: %1 - Действует до: %1 - - - Alternate Names: - Другие имена: - - - - NetworkMonitor - - Name - Имя - - - Value - Значение - - - - NetworkMonitorDialog - - Network Monitor - Сетевой монитор - - - Network Requests - Сетевые запросы - - - Request Headers - Заголовки запроса - - - Response Headers - Заголовки ответа - - - &Remove - &Удалить - - - Remove &All Requests - Удалите &все запросы - - - - OpenSearchDialog - - Open File - Открыть файл - - - OpenSearch - OpenSearch - - - Error - Ошибка - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 не является допустимым описанием OpenSearch 1.1 или уже есть в списке. - - - You must have at least one search engine in here. - Здесь должна быть хотя бы одна поисковая система. - - - OpenSearch Manager - Управление OpenSearch - - - &Restore Defaults - &Восстановить настройки по умолчанию - - - &Delete - &Удалить - - - &Add - &Добавить - - - &Close - &Закрыть - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Описание:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Предоставляет контекстные предположения</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Имя - - - Keywords - Ключевые слова - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Добавить следующую поисковую систему в список?<br /><br />Название: %1<br />Ищет с помощью: %2 - - - - PasswordDialog - - Authentication Required - Требуется аутентификация - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Имя пользователя: - - - Password: - Пароль: - - - - PlainTextEditSearch - - Not Found - Не найдено - - - - ProxyDialog - - Proxy Authentication - Аутентификация прокси - - - ICON - ICON - - - Connect to proxy - Подключиться к прокси - - - Username: - Имя пользователя: - - - Password: - Пароль: - - - - QObject - - The file is not an XBEL version 1.0 file. - Файл не является файлом XBEL версии 1.0. - - - Unknown title - Неизвестный заголовок - - - The file is not an OpenSearch 1.1 file. - Файл не является файлом OpenSearch 1.1. - - - - RequestModel - - Redirect: %1 - Перенаправить: %1 - - - Method - Метод - - - Address - Адрес - - - Response - Ответ - - - Length - Длина - - - Content Type - Формат содержимого - - - Info - Информация - - - - SearchBanner - - Form - Form - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - Готово - - - Highlight All - Подсветить всё - - - - SearchLineEdit - - Search - Поиск - - - - Settings - - Settings - Параметры - - - General - Общие - - - Home: - Домашняя страница: - - - Set to current page - Использовать текущую страницу - - - Remove history items: - Удалять элементы журнала: - - - After one day - Через день - - - After one week - Через неделю - - - After two weeks - Через две недели - - - After one month - Через месяц - - - After one year - Через год - - - Manually - Вручную - - - Open links from applications: - Открывать ссылки из приложений: - - - In a tab in the current window - Во вкладке в текущем окне - - - In a new window - В новом окне - - - Appearance - Внешний вид - - - Standard font: - Стандартный шрифт: - - - Times 16 - Times 16 - - - Select... - Выбрать... - - - Fixed-width font: - Моноширинный шрифт: - - - Courier 13 - Courier 13 - - - Privacy - Конфиденциальность - - - Web Content - Веб-содержимое - - - Enable Plugins - Включить подключаемые модули - - - Enable Javascript - Включить JavaScript - - - Cookies - Cookies - - - Accept Cookies: - Принимать cookies: - - - Always - Всегда - - - Never - Никогда - - - Only from sites you navigate to - Только с посещённых сайтов - - - Exceptions... - Исключения... - - - Keep until: - Сохранять до: - - - They expire - Истечения срока - - - I exit the application - Выхода из приложения - - - At most 90 days - Максимум 90 дней - - - Cookies... - Cookies... - - - Proxy - Прокси - - - Enable proxy - Включить прокси - - - Type: - Тип: - - - Socks5 - Socks5 - - - Http - Http - - - Host: - Сервер: - - - Port: - Порт: - - - User Name: - Имя пользователя: - - - Password: - Пароль: - - - Advanced - Дополнительно - - - Style Sheet: - Таблица стилей: - - - Downloads - Загрузки - - - Ask for a destination each time - Каждый раз спрашивать папку назначения - - - Use this destination: - Использовать эту папку назначения: - - - On startup: - При запуске: - - - Show my home page - Показывать мою домашнюю страницу - - - Show a blank page - Показывать чистую страницу + + %n minutes remaining + + %n минута осталась + %n минуты осталось + %n минут осталось + - - Restore windows and tabs from last time - Восстанавливать окна и вкладки прошлой сессии + + %n seconds remaining + + %n секунда осталась + %n секунды осталось + %n секунд осталось + - On application exit - При выходе + bytes + байт - Enable Images - Включить картинки + kB + кБ - Tabs - Вкладки + MB + МБ - Select tabs and windows as they are created - Активировать вкладки и окна при их создании + GB + ГБ + + + HistoryDialog - Confirm when closing multiple tabs - Подтверждать закрытие нескольких вкладок + Open + Открыть - Preferences - Настройки + Copy + Копировать - Home Page: - Домашняя страница: + Delete + Удалить + + + HistoryMenu - View Images - Посмотреть изображения + Show All History + Показать весь журнал - Keep Cookies Until: - Хранить cookies до: + Clear History + Очистить журнал - Show only one close button instead of one for each tab - Не показывать кнопку закрытия на каждой вкладке + Clear History... + Очистить журнал... - Use proxy server - Использовать прокси-сервер + Do you want to clear the history? + Хотите очистить журнал? + + + HistoryModel - Host name: - Имя хоста: + Title + Название - Preferred languages for viewing webpages in: - Предпочитаемые языки для просмотра веб-страниц: + Address + Адрес + + + HistoryTreeModel - Block Popup Windows - Блокировать всплывающие окна + Earlier Today + Ранее сегодня - - Opening links - Открытие ссылки + + %n item(s) + + %n запись + %n записи + %n записей + + + + JavaScriptEndorphinObject - Links that want to open in a new window: - Ссылки, которые хотят открыть в новом окне: + Welcome to Endorphin! + - In a new selected tab in the current window - В новой выбранной вкладке текущего окна + Endorphin Start + - In a new tab in the current window - В новой вкладке текущего окна + Search! + - In the current tab - В текущей вкладке + Search the web with + - Http (Secure) - Http (Защищённый) + Search results provided by + - Http (Transparent) - Http (Прозрачный) + About Endorphin + + + + LanguageManager - Use ClickToFlash on flash plugins - Использовать ClickToFlash для flash плагинов + Choose language + Выбрать язык - Filter Tracking Cookies - Фильтровать отслеживающие Cookie + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Вы можеть использовать язык браузера, отличный<br>от языка операционной системы.</p><p>Выберить подходящий язык</p> - Confirm when closing multiple tabs or windows - Подтверждать закрытие нескольких вкладок или окон + No translation files are installed at %1. + Языковые файлы не установлены. в %1. + + + OpenSearchDialog - Quit the application when last tab is closed - Выйти из программы при закрытии последней вкладки + Open File + Открыть файл - Enable network cache - Включить сетевой кэш + OpenSearch + OpenSearch - Maximum Size: - Максимальный размер: + Error + Ошибка - MB - МБ + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 не является допустимым описанием OpenSearch 1.1 или уже есть в списке. - Use the default search engine as fallback when the URL given by the user is invalid - Отправлять запрос в поисковую систему по умолчанию, когда набранная пользователем ссылка неверна + You must have at least one search engine in here. + Здесь должна быть хотя бы одна поисковая система. + + + OpenSearchEngineModel - Choose Directory... - Выбрать директорию... + <strong>Description:</strong> %1 + <strong>Описание:</strong> %1 - A cookie session ends: - Сеанс cookie заканчивается: + <strong>Provides contextual suggestions</strong> + <strong>Предоставляет контекстные предположения</strong> - When I exit the application - При выходе из приложения + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + - 1 day - 1 день + Name + Имя - 2 days - 2 дня + Keywords + Ключевые слова + + + OpenSearchManager - 3 days - 3 дня + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Добавить следующую поисковую систему в список?<br /><br />Название: %1<br />Ищет с помощью: %2 + + + PermissionBar - 7 days - 7 дней + Allow + Разрешить - 30 days - 30 дней + Deny + - AutoFill - Автозаполнение + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - Автозаполнение веб-форм: + Not Found + Не найдено + + + QObject - User names and passwords - Имена пользователей и пароли + The file is not an XBEL version 1.0 file. + Файл не является файлом XBEL версии 1.0. - Edit... - Изменить... + Unknown title + Неизвестный заголовок - Browse... - Обзор... + The file is not an OpenSearch 1.1 file. + Файл не является файлом OpenSearch 1.1. - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Требуется перезапустить браузер - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Параметры сетевого кэша были изменены. Чтобы они вступили в силу, нужно перезапустить браузер. + Search + Поиск + + + SettingsDialog Choose Directory Выбрать директорию @@ -2199,18 +963,6 @@ Do you want to ignore these errors?</qt> &Find &Найти - - &View - &Вид - - - &Wrap lines - Перносить &строки - - - Source of Page - Исходный код страницы - Source of Page %1 Источник страницы %1 @@ -2218,10 +970,6 @@ Do you want to ignore these errors?</qt> TabBar - - New &Tab - Новая &вкладка - Duplicate Tab Копировать вкладку @@ -2273,22 +1021,6 @@ Do you want to ignore these errors?</qt> Recently Closed Tabs Недавно закрытые вкладки - - (Untitled) - (Безымянный) - - - Do you really want to close this page? - Действительно закрыть эту страницу? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Вы изменили эту страницу, и вы потеряете изменения при её закрытии. -Действительно закрыть эту страницу? - - Ctrl-] Ctrl-] @@ -2309,10 +1041,6 @@ Do you really want to close this page? Loading... Загрузка... - - Loading %1% (%2 %3)... - Загрузка %1% (%2 %3)... - Finished loading Загрузка окончена @@ -2325,13 +1053,13 @@ Do you really want to close this page? Bookmark All Tabs Закладки для всех вкладок + + Loading ... + + ToolbarSearch - - Google - Google - No Recent Searches Нет последних слов для поиска @@ -2348,14 +1076,6 @@ Do you really want to close this page? Suggestions Предположения - - Add '%1' - Добавить '%1' - - - Configure Search Engines... - Настроить поисковые системы... - UserAgentMenu @@ -2376,37 +1096,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - Ошибка при загрузке страницы: %1 - - - When connecting to: %1. - При подключении к: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Проверьте адрес на ошибки вроде <b>ww</b>.arora-browser.org вместо <b>www</b>.arora-browser.org - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Если компьютер или сеть защищены сетевым экраном или прокси-сервером, проверьте, разрешён ли браузеру доступ к сети. - - - If the address is correct, try checking the network connection. - Если адрес введён правильно, проверьте сетевое соединение. - - - Resending POST request - Повторная отправка запроса POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Для того, чтобы отобразить этот сайт, запрос вместе со всеми данными должен быть послан ещё раз, что может привести к неожиданному поведению сайта, например одно действое может быть выполненно дважды. Всё равно продолжить? - - WebView @@ -2457,38 +1146,6 @@ Do you really want to close this page? Search with... Искать в... - - Add to the toolbar search - Добавит в поисковую панель - - - Method not supported - Метод не поддерживается - - - %1 method is not supported. - %1 метод не поддерживается. - - - Search engine - Поисковая система - - - Choose the desired search engine - Выберите понравившуюся поисковую систему - - - Engine name - Имя поисковой системы - - - Type in a name for the engine - Введите имя поисковой системы - - - Block Image - Блоировать изображение - WebViewSearch diff --git a/src/locale/sk_SK.ts b/src/locale/sk_SK.ts index ec77171a..1ab6b324 100644 --- a/src/locale/sk_SK.ts +++ b/src/locale/sk_SK.ts @@ -3,10 +3,6 @@ AboutDialog - - About - O prehliadači - Authors Autori @@ -15,137 +11,10 @@ License Licencia - - Lightweight WebKit-based web browser - Jednoduchý webový prehliadač založený na WebKite - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Zavrieť - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - About %1 - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - - - - Languages: in order of preference: - - - - Move &Up - - - - Move &Down - - - - &Remove - &Vymazať - - - Add... - - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - Pravidlo - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -153,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Pridať záložku - - Type a name for the bookmark, and choose where to keep it. - Napíšte názov záložky a vyberte, kam ju chcete uložiť. - Url @@ -170,47 +35,6 @@ p, li { white-space: pre-wrap; } Pridať zložku - - AutoFillDialog - - Form Passwords - - - - Remove - - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -225,18 +49,6 @@ p, li { white-space: pre-wrap; } New Folder Nová zložka - - Bookmarks - Záložky - - - &Remove - &Vymazať - - - Add Folder - Pridať zložku - Open in New Tab Otvoriť v novom paneli @@ -269,10 +81,6 @@ p, li { white-space: pre-wrap; } Open File Otvoriť súbor - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 Importované %1 @@ -301,14 +109,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Vložiť záložku - - Name Change - Zmena názvu - - - Address Change - Zmena adresy - Bookmarks Bar @@ -339,10 +139,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -352,6 +148,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -373,10 +173,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Záložky - Open Otvoriť @@ -397,10 +193,6 @@ p, li { white-space: pre-wrap; } Add Folder... - - Bookmarks - Záložky - BrowserApplication @@ -415,15 +207,7 @@ Chcete ich všetky uzavrieť? Obnovenie zlyhalo - The saved session will not be restored because Arora crashed while trying to restore this session. - Uložená relácia nebude obnovená, pretože Arora spadla pri pokuse o jej obnovenie. - - - (Change: %1 %2) - (Zmena: %1 %2) - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -457,14 +241,6 @@ Chcete ich všetky uzavrieť? &Export Bookmarks... &Exportovať záložky ... - - P&rint Preview... - Ná&hľad tlače ... - - - &Print... - &Tlač ... - Private &Browsing... Súkro&mné prehliadanie ... @@ -509,10 +285,6 @@ Chcete ich všetky uzavrieť? &View &Zobraziť - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+| Ctrl+| @@ -561,10 +333,6 @@ Chcete ich všetky uzavrieť? &Bookmarks Zál&ožky - - Manage Bookmarks... - Spravovať záložky ... - Add Bookmark... Pridať záložku ... @@ -586,10 +354,6 @@ Chcete ich všetky uzavrieť? Web Search Ctrl+K - - Enable Web &Inspector - Povoliť Web &Inspector - &Help Nápo&veda @@ -598,10 +362,6 @@ Chcete ich všetky uzavrieť? About &Qt O &Qt - - About &Arora - O &Arore - Navigation Navigácia @@ -622,15 +382,6 @@ Chcete ich všetky uzavrieť? Hide Toolbar Skryť panel nástrojov - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Otvoriť webovú stránku @@ -639,10 +390,6 @@ Chcete ich všetky uzavrieť? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Webové dokumenty (*.html *.htm *.svg *.png *.gif *.svgz);;Všetky súbory (*.*) - - Print Document - Vytlačiť dokument - Are you sure you want to turn on private browsing? Naozaj chcete zapnúť súkromné prehliadanie? @@ -651,16 +398,6 @@ Chcete ich všetky uzavrieť? Are you sure you want to close the window? There are %1 tabs open Naozaj chcete zavrieť okno? Je v nom otvorených %1 panelov - - Web Inspector - Webový inšpektor - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Webový inšpektor bude fungovať iba pre stránky načítané po jeho povoleni. -Chcete znovu načítať všetky stránky? - Stop loading the current page Zastaví načítanie aktuálnej stránky @@ -673,11 +410,6 @@ Chcete znovu načítať všetky stránky? Downloads Preberanie - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - &Clear Private Data Zmazaž &súkromné dáta @@ -687,10 +419,6 @@ Chcete znovu načítať všetky stránky? Clear Private Data Ctrl+Shift+Delete - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Ak je zapnuté súkromné prehliadanie, niektoré akcie narušujúce tvoje súkromie budú zakázané:<ul><li> Stránky nie sú pridávané do histórie.</li><li> Položky sú automaticky vymazané z okna preberania.</li><li> Nové cookies nie sú uložené, aktuálne nebudú prístupné.</li><li> Ikony stránek nie sú ukládané, podobne ako relácie.</li><li> Hľadané výrazy nie sú pridávané do menu v políčku hľadania.</li></ul>Pokiaľ nie je okno zavrené, je možné klikať Späť a Vpred pre vrátenie na skôr otvorené stránky. - Show Bookmarks Bar Zobraziť panel záložiek @@ -707,26 +435,10 @@ Chcete znovu načítať všetky stránky? &Reload Page O&bnoviť stránku - - Make Text &Bigger - Z&väčšiť text - - - Make Text &Normal - &Normálna veľkosť textu - - - Make Text &Smaller - Z&menšiť text - Find Nex&t Náj&sť dalšie - - Prefere&nces... - Nasta&venia ... - Show Menu Bar Ukázať menu @@ -797,10 +509,6 @@ Chcete znovu načítať všetky stránky? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -813,10 +521,6 @@ Chcete znovu načítať všetky stránky? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -857,6 +561,11 @@ Chcete znovu načítať všetky stránky? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -887,10 +596,6 @@ Chcete znovu načítať všetky stránky? &Search History História hľa&dania - - &Cookies - &Cookies - Website &Icons Ikony stránok @@ -903,1134 +608,330 @@ Chcete znovu načítať všetky stránky? &Cancel &Zrušiť - - C&ached Web Pages - Stránky v &cache - - ClickToFlash - - Load - - + DownloadDialog - Load All - + Downloads + Preberanie - Add %1 to Whitelist + Downloading %1 + + + DownloadItem - Remove from Whitelist - + Save File + Uložiť súbor - Settings - + Download canceled: %1 + Preberanie zrušené: %1 - Load Flash - + Error saving: %1 + Chyba pri ukladaní: %1 - - - ClickToFlashSettings - Whitelist sites - + Network Error: %1 + Chyba siete: %1 - - - CookieExceptionsModel - Website - Adresa + ? + ? - Allow - Povoliť + Error opening output file: %1 + Chyba pri otváraní výstupného súboru: %1 - Block - Blokovať + %1 of %2 (%3/sec) - %4 + - Allow For Session - Povoliť pre reláciu + Download directory (%1) couldn't be created. + - Rule - Pravidlo + %1 of %2 - Download Complete + - CookieModel - - Website - Adresa + DownloadManager + + %n Download(s) + + %n preberanie + %n preberania + %n preberaní + - Name - Názov + There are %1 downloads in progress +Do you want to quit anyway? + - - Path - Cesta + + %n minutes remaining + + + + + - - Secure - Zabezpečené - - - Expires - Vyprší - - - Contents - Obsah - - - true - áno - - - false - nie - - - Session cookie - - - - - CookiesDialog - - Cookies - Cookies - - - &Remove - &Vymazať - - - Remove &All Cookies - Vymazať &všetky - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - Výnimky pre cookies - - - New Exception - Nová výnimka - - - Domain: - Doména: - - - Block - Blokovať - - - Allow For Session - Povoliť pre reláciu - - - Allow - Povoliť - - - Exceptions - Výnimky - - - &Remove - &Vymazať - - - Remove &All - Vymazať &všetky - - - - DownloadDialog - - Downloads - Preberanie - - - Clean up - Vyčistiť - - - 0 Items - 0 položiek - - - &OK - &OK - - - Downloading %1 - - - - - DownloadItem - - Form - Form - - - Ico - Ico - - - Filename - Názov súboru - - - Try Again - Skúsiť znova - - - Stop - Zastaviť - - - Open - Otvoriť - - - Save File - Uložiť súbor - - - Download canceled: %1 - Preberanie zrušené: %1 - - - Error saving: %1 - Chyba pri ukladaní: %1 - - - Network Error: %1 - Chyba siete: %1 - - - seconds - sekúnd - - - %1 of %2 (%3/sec) %4 - %1 z %2 (%3/s) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 z %2 - Zastavené - - - bytes - bajtov - - - kB - KiB - - - MB - MiB - - - - %n minutes remaining - - - %n minúta ostáva - - %n minúty ostávajú - - %n minút ostáva - - - - - %n seconds remaining - - - %n sekunda ostáva - - %n sekundy ostávajú - - %n sekúnd ostáva - - - - Error opening output file: %1 - Chyba pri otváraní výstupného súboru: %1 - - - %1 of %2 (%3/sec) - %4 - - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n preberanie - %n preberania - %n preberaní - - - - There are %1 downloads in progress -Do you want to quit anyway? - - - - %n minutes remaining - - - - - - - - %n seconds remaining - - - - - - - - bytes - bajtov - - - kB - KiB - - - MB - MiB - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - Otvoriť - - - Copy - Kopírovať - - - Delete - Vymazať - - - History - História - - - &Remove - &Vymazať - - - Remove &All - Vymazať &všetky - - - - HistoryMenu - - Show All History - Zobraziť celú históriu - - - Clear History - Vymazať históriu - - - Clear History... - Vymazať históriu ... - - - Do you want to clear the history? - Chcete vymazať históriu? - - - - HistoryModel - - Title - Názov - - - Address - Adresa - - - - HistoryTreeModel - - Earlier Today - Dnes - - - %n item(s) - - %n položka - %n položky - %n položiek - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - Default - Prednastavený - - - Choose language - Vybrať jazyk - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Aroru je možné používať v inom jazyku ako v tom,<br>ktorý je prednastavený v operačnom systéme.</p><p>Vybete si jazyk, ktorý má byť použitý</p> - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Zadajte užívateľské meno a heslo pre "%1" na %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Pripojiť sa k proxy "%1" použitím:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Chyby SSL: - -%1 - -%2 - -Chcete ignorovať tieto chyby? - - - Do you want to accept all these certificates? - Chcete prijať všetky tieto certifikáty? - - - - SSL Errors - - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - Názov - - - - NetworkMonitorDialog - - &Remove - &Vymazať - - - - OpenSearchDialog - - Open File - Otvoriť súbor - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - Názov - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - Vyžadované prihlásenie - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Užívateľské meno: - - - Password: - Heslo: - - - - PlainTextEditSearch - - Not Found - Neexistuje - - - - ProxyDialog - - Proxy Authentication - Prihlásenie k proxy - - - ICON - ICON - - - Connect to proxy - Pripojiť k proxy - - - Username: - Užívateľské meno: - - - Password: - Heslo: - - - - QObject - - The file is not an XBEL version 1.0 file. - Súbor nie je XBEL verzie 1.0. - - - Unknown title - Neznámý titulok - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Address - Adresa - - - - SearchBanner - - Form - Form - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - Hotovo - - - Highlight All - - - - - SearchLineEdit - - Search - Hľadať - - - - Settings - - General - Hlavné - - - Set to current page - Nastav na aktuálnu stránku - - - Remove history items: - Odstrániť položky histórie: - - - After one day - Po jednom dni - - - After one week - Po jednom týždni - - - After two weeks - Po dvoch týždňoch - - - After one month - Po mesiaci - - - After one year - Po roku - - - Manually - Ručne - - - Open links from applications: - Otvoriť odkazy z aplikácií: - - - In a tab in the current window - V paneli v aktuálnom okne - - - In a new window - V novom okne - - - Appearance - Vzhľad - - - Standard font: - Štandardné písmo: - - - Times 16 - Times 16 - - - Select... - Vybrať ... - - - Fixed-width font: - Písmo s pevnou šírkou: - - - Courier 13 - Courier 13 - - - Privacy - Súkromie - - - Web Content - Obsah webu - - - Enable Plugins - Povoliť plug-iny - - - Enable Javascript - Povoliť JavaScript - - - Cookies - Cookies - - - Accept Cookies: - Prijímať cookies: - - - Always - Vždy - - - Never - Nikdy - - - Only from sites you navigate to - Iba z navštívených stránok - - - Exceptions... - Výnimky ... - - - They expire - Vyprší - - - I exit the application - Ukončenie aplikácie - - - At most 90 days - Maximálne 90 dní - - - Cookies... - Cookies ... - - - Proxy - Proxy - - - Type: - Typ: - - - Socks5 - Socks5 - - - Http - Http - - - Port: - Port: - - - User Name: - Uživatelské meno: - - - Password: - Heslo: - - - Advanced - Rozšírené - - - Style Sheet: - CSS štýl: - - - Downloads - Preberanie - - - Ask for a destination each time - Vždy sa pýtať na umiestnenie preberania - - - Use this destination: - Použiť toto umiestnenie: - - - On application exit - Pri ukončení aplikácie - - - Tabs - Panely + + %n seconds remaining + + + + + - Select tabs and windows as they are created - Prepínať na okná a panely keď sú vytvorené + bytes + bajtov - Confirm when closing multiple tabs - Vyžadovať potvrdenie pri zatváraní viacerých panelov + kB + KiB - On startup: - Po spustení: + MB + MiB - Show my home page - Zobraziť moju domovskú stránku + GB + + + + HistoryDialog - Show a blank page - Zobraziť prázdnu stránku + Open + Otvoriť - Restore windows and tabs from last time - Obnoviť okná a panely z poslednej relácie + Copy + Kopírovať - Preferences - Nastavenia + Delete + Vymazať + + + HistoryMenu - Home Page: - Domovská stránka: + Show All History + Zobraziť celú históriu - View Images - Zobraziť obrázky + Clear History + Vymazať históriu - Keep Cookies Until: - Ponechat cookies pokiaľ: + Clear History... + Vymazať históriu ... - Use proxy server - Použiť proxy server + Do you want to clear the history? + Chcete vymazať históriu? + + + HistoryModel - Host name: - Meno hostiteľa: + Title + Názov - Show only one close button instead of one for each tab - + Address + Adresa + + + HistoryTreeModel - Preferred languages for viewing webpages in: - + Earlier Today + Dnes - - Block Popup Windows - + + %n item(s) + + %n položka + %n položky + %n položiek + + + + JavaScriptEndorphinObject - Opening links + Welcome to Endorphin! - Links that want to open in a new window: + Endorphin Start - In a new selected tab in the current window + Search! - In a new tab in the current window + Search the web with - In the current tab + Search results provided by - Http (Secure) + About Endorphin + + + LanguageManager - Http (Transparent) - + Choose language + Vybrať jazyk - Use ClickToFlash on flash plugins - + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Aroru je možné používať v inom jazyku ako v tom,<br>ktorý je prednastavený v operačnom systéme.</p><p>Vybete si jazyk, ktorý má byť použitý</p> - Filter Tracking Cookies + No translation files are installed at %1. + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - + Open File + Otvoriť súbor - Quit the application when last tab is closed + OpenSearch - Enable network cache + Error - Maximum Size: + %1 is not a valid OpenSearch 1.1 description or is already on your list. - MB + You must have at least one search engine in here. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid + <strong>Description:</strong> %1 - Choose Directory... + <strong>Provides contextual suggestions</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + Názov - 1 day + Keywords + + + OpenSearchManager - 2 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 3 days - + Allow + Povoliť - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + Neexistuje + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + Súbor nie je XBEL verzie 1.0. - User names and passwords - + Unknown title + Neznámý titulok - Edit... + The file is not an OpenSearch 1.1 file. - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + Hľadať SettingsDialog - - Restart required - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - - Choose Directory @@ -2058,14 +959,6 @@ Do you want to ignore these errors?</qt> &Find Ná&jsť - - Source of Page - Zdrojový súbor - - - &View - &Zobraziť - Source of Page %1 @@ -2073,10 +966,6 @@ Do you want to ignore these errors?</qt> TabBar - - New &Tab - &Nový panel - Duplicate Tab Duplikovať panel @@ -2128,18 +1017,6 @@ Do you want to ignore these errors?</qt> Recently Closed Tabs Zatvorené panely - - Do you really want to close this page? - Naozaj chcete zatvoriť tento panel? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Stránka bola zmenená a pri zatvorení budu všetky zmeny stratené. -Ste si istý, že chcete zavrieť túto stránku? - - Untitled Nepomenovaný @@ -2160,10 +1037,6 @@ Ste si istý, že chcete zavrieť túto stránku? Loading... Nahrávam ... - - Loading %1% (%2 %3)... - - Finished loading @@ -2176,6 +1049,10 @@ Ste si istý, že chcete zavrieť túto stránku? Bookmark All Tabs + + Loading ... + + ToolbarSearch @@ -2195,10 +1072,6 @@ Ste si istý, že chcete zavrieť túto stránku? Suggestions - - Add '%1' - - UserAgentMenu @@ -2219,37 +1092,6 @@ Ste si istý, že chcete zavrieť túto stránku? - - WebPage - - Error loading page: %1 - Chyba pri načítavaní stránky: %1 - - - When connecting to: %1. - - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - - - - If the address is correct, try checking the network connection. - - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2300,38 +1142,6 @@ Ste si istý, že chcete zavrieť túto stránku? Search with... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/sr_RS.ts b/src/locale/sr_RS.ts index 23785ec7..5de95d37 100644 --- a/src/locale/sr_RS.ts +++ b/src/locale/sr_RS.ts @@ -15,142 +15,6 @@ License Лиценца - - Lightweight WebKit-based web browser - Лагани веб прегледач базиран на Вебкиту - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org/</a> - - - Close - Затвори - - - WebKit version: %1 - Верзија Вебкита: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Језици - - - Languages: in order of preference: - Језици према редоследу пожељности: - - - Move &Up - &Горе - - - Move &Down - &Доле - - - &Remove - &Уклони - - - Add... - Додај... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Заустављено Адблоковим правилом: %1 - - - - AdBlockDialog - - Add Custom Rule - Додај прилагођено правило - - - Learn more about writing rules... - Научите више о писању правила... - - - Update Subscription - Ажурирај претплате - - - Browse Subscriptions... - Прегледај претплате... - - - Remove Subscription - Уклони претплату - - - AdBlock Configuration - Подешавање Адблока - - - Enable AdBlock - Омогући Адблок - - - Action - Радња - - - - AdBlockManager - - Custom Rules - Прилагођена правила - - - - AdBlockModel - - Rule - Правило - - - - AdBlockSchemeAccessHandler - - Subscribe? - Претплати се? - - - Subscribe to this AdBlock subscription? -%1 - Претпалтити се на ову Адблок претплату? -%1 - AddBookmarkDialog @@ -158,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Додај маркер - - Type a name for the bookmark, and choose where to keep it. - Унесите име маркера и изаберите где га сачувати. - Url УРЛ @@ -175,51 +35,6 @@ p, li { white-space: pre-wrap; } Додај фасциклу - - AutoFillDialog - - Form Passwords - Лозинке за обрасце - - - Remove - Уклони - - - Remove All - Уклони све - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Желите ли да сачувате ову лозинку?</b><br> Да би прегледали или уклонили сачуване лозинке користите панел самопопуњавања у подешавањима. - - - Never for this site - Никад за овај сајт - - - Not now - Не сад - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Веб сајт - - - User Name - Корисничко име - - BookmarksDialog @@ -246,18 +61,6 @@ p, li { white-space: pre-wrap; } New Folder Нова фасцикла - - Bookmarks - Маркери - - - &Remove - &Уклони - - - Add Folder - Додај фасциклу - BookmarksManager @@ -337,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Неопходна је Хтмл-У-ИксБЕЛ алатка - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Хтмл-У-ИксБЕЛ алатка, која се деставља са Арором и неопходна је за увоз ХТМЛ маркера, није инсталирана или се не налази у претраженим путањама. - Loading Bookmark Учитавам маркер @@ -351,6 +150,10 @@ p, li { white-space: pre-wrap; } Грешка при учитавању ХТМЛ маркера: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -406,8 +209,8 @@ Do you want to quit anyway? Повраћај није успео - Arora crashed while trying to restore this session. Should I try again? - Арора се срушила у покушају да поврати сесију. Покушати поново? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -440,14 +243,6 @@ Do you want to quit anyway? &Export Bookmarks... &Извези маркере... - - P&rint Preview... - П&реглед штампе... - - - &Print... - Ш&тампа... - Private &Browsing... &Приватно прегледање... @@ -614,10 +409,6 @@ Do you want to quit anyway? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Омогући &веб инспектор - &Help По&моћ @@ -663,11 +454,6 @@ Do you want to quit anyway? Hide Bookmarks Bar Сакриј траку маркера - - %1 - Arora - Page title and Browser name - %1 - Aрора - Open Web Resource Отвори веб ресурс @@ -676,10 +462,6 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Веб ресурси (*.html *.htm *.svg *.png *.gif *.svgz);;Сви фајлови (*.*) - - Print Document - Штампај документ - Are you sure you want to turn on private browsing? Да ли сте сигурни да желите да укључите приватно прегледање? @@ -688,16 +470,6 @@ Do you want to quit anyway? Are you sure you want to close the window? There are %1 tabs open Да ли сте сигурни да желите да затворите прозор? Отворен(о) је %1 језичак(а) - - Web Inspector - Веб инспектор - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Веб инспектор ће исправно радити само на страницама учитаним након његовог укључивања. -Да ли желите да поново учитате све странице? - Stop loading the current page Заустави учитавање тренутне странице @@ -739,10 +511,6 @@ Do you want to reload all pages? Configure Search Engines... Подеси моторе претраге... - - &Ad Block... - &Адблок... - When private browsing is turned on, some actions concerning your privacy will be disabled: Кад је укључено приватно прегледање онемогућене су неке радње које се тичу ваше приватности: @@ -755,10 +523,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. Ставке се аутоматски уклањају из прозора пријема. - - New cookies are not stored, current cookies can't be accessed. - Нови колачићи се не чувају, постојећим се не може приступити. - Site icons won't be stored. Иконе сајтова се не чувају. @@ -799,6 +563,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -829,14 +598,6 @@ Do you want to reload all pages? &Search History историјат пр&етраге - - &Cookies - &колачиће - - - C&ached Web Pages - кеширане &веб странице - Website &Icons &иконе веб сајтова @@ -850,174 +611,12 @@ Do you want to reload all pages? &Одустани - - ClickToFlash - - Load - Учитај - - - Load All - Учитај све - - - Add %1 to Whitelist - Додај %1 на белу листу - - - Remove from Whitelist - Уклони са беле листе - - - Settings - Подешавање - - - Load Flash - Учитај флеш - - - - ClickToFlashSettings - - Whitelist sites - Сајтови на белој листи - - - - CookieExceptionsModel - - Website - Веб сајт - - - Rule - Правило - - - Allow - Дозволи - - - Block - Блокирај - - - Allow For Session - Дозволи у току сесије - - - - CookieModel - - Website - Веб сајт - - - Name - Име - - - Path - Путања - - - Secure - Сигурно - - - Expires - Истиче - - - Contents - Садржај - - - true - тачно - - - false - нетачно - - - Session cookie - Колачић сесије - - - - CookiesDialog - - Cookies - Колачићи - - - &Remove - &Уклони - - - Remove &All Cookies - Уклони &све колачиће - - - Add &Rule - Додај &правило - - - - CookiesExceptionsDialog - - Cookie Exceptions - Изузеци за колачиће - - - New Exception - Нови изузетак - - - Domain: - Домен: - - - Block - Блокирај - - - Allow For Session - Дозволи у току сесије - - - Allow - Дозволи - - - Exceptions - Изузеци - - - &Remove - &Уклони - - - Remove &All - Уклони &све - - DownloadDialog Downloads Преузимања - - Clean up - Очисти - - - 0 Items - Нема ставки - Downloading %1 @@ -1025,26 +624,6 @@ Do you want to reload all pages? DownloadItem - - Ico - Икона - - - Filename - Име фајла - - - Try Again - Покушајте поново - - - Stop - Заустави - - - Open - Отвори - Save File Сачувај фајл @@ -1073,10 +652,6 @@ Do you want to reload all pages? ? ? - - %1 of %2 - Stopped - %1 од %2 - Заустављено - Download directory (%1) couldn't be created. Фасцикла за преузимања (%1) не може бити направљена. @@ -1135,33 +710,6 @@ Do you want to quit anyway? GB - - FileAccessReply - - No Error - Без грешке - - - Error opening: %1: No such file or directory - Грешка при отварању: %1: Не постоји такав фајл или фасцикла - - - Unable to read %1 - Немогуће читање %1 - - - Contents of %1 - Садржај %1 - - - %1 KB - %1 КБ - - - Show Hidden Files - - - HistoryDialog @@ -1176,24 +724,12 @@ Do you want to quit anyway? Delete Обриши + + + HistoryMenu - History - Историјат - - - &Remove - &Уклони - - - Remove &All - Уклони &све - - - - HistoryMenu - - Show All History - Прикажи цео историјат + Show All History + Прикажи цео историјат Clear History... @@ -1235,29 +771,29 @@ Do you want to quit anyway? - JavaScriptAroraObject + JavaScriptEndorphinObject - Welcome to Arora! - Добродошли у Арору ! + Welcome to Endorphin! + - Arora Start - Aрорина почетна + Endorphin Start + Search! - Претражи! + - Search results provided by - Резултате претраге омогућује + Search the web with + - About Arora - О Арори + Search results provided by + - Search the web with + About Endorphin @@ -1276,48 +812,6 @@ Do you want to quit anyway? Нема инсталираних фајлова превода у %1. - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Уреди корисничко име и лозинку за "%1" на %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Повежи се на прокси "%1" користећи: </qt> - - - - SSL Errors - - SSL грешке - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Сертификати:<br/>%1<br/>Да ли желите да прихватите све ове сертификате?</qt> - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL грешке:<br/><br/>за: <tt>%1</tt><ul><li>%2</li></ul> -Да ли желите да занемарите ове грешке?</qt> - - - Issuer: %1 - Издавач: %1 - - - Not valid before: %1 - Није валидо пре: %1 - - - Valid until: %1 - Валидно до: %1 - - - Alternate Names: - Алтернативни називи: - - OpenSearchDialog @@ -1340,26 +834,6 @@ Do you want to ignore these errors?</qt> You must have at least one search engine in here. Мора постојати барем један мотор претраге. - - OpenSearch Manager - Овори управник претраге - - - &Restore Defaults - &Подразумевано - - - &Delete - &Обриши - - - &Add - &Додај - - - &Close - &Затвори - OpenSearchEngineModel @@ -1392,26 +866,18 @@ Do you want to ignore these errors?</qt> - PasswordDialog - - Authentication Required - Неопходна аутентификација - - - DUMMY ICON - DUMMY ICON - + PermissionBar - INTRO TEXT DUMMY - INTRO TEXT DUMMY + Allow + Дозволи - Username: - Корисничко име: + Deny + - Password: - Лозинка: + %1 wants to %2. + @@ -1421,25 +887,6 @@ Do you want to ignore these errors?</qt> Не постоји - - ProxyDialog - - Proxy Authentication - Аутентификација проксија - - - Connect to proxy - Повежи се на прокси - - - Username: - Корисничко име: - - - Password: - Лозинка: - - QObject @@ -1454,398 +901,40 @@ Do you want to ignore these errors?</qt> The file is not an OpenSearch 1.1 file. Фајл није OpenSearch 1.1 типа. - - - SearchBanner - - Done - Завршено - - - Highlight All - Истакни све - - - - SearchLineEdit - - Search - Претражи - - - - Settings - - Preferences - Поставке - - - General - Опште - - - On startup: - При покретању: - - - Show my home page - прикажи домаћу страницу - - - Show a blank page - прикажи празну страницу - - - Restore windows and tabs from last time - поврати прозоре и језичке од прошлог пута - - - Home Page: - Домаћа страница: - - - Set to current page - Постави текућу страницу - - - Remove history items: - Уклони ставке историјата: - - - After one day - после једног дана - - - After one week - после једне седмице - - - After two weeks - после две седмице - - - After one month - после једног месеца - - - After one year - после једне године - - - Manually - ручно - - - On application exit - при напуштању програма - - - Downloads - Преузимања - - - Ask for a destination each time - Увек питај за одредиште - - - Use this destination: - Користи следеће одредиште: - - - Appearance - Изглед - - - Standard font: - Стандардни фонт: - - - Select... - Изаберите... - - - Fixed-width font: - Фиксни фонт: - - - Preferred languages for viewing webpages in: - Пожељни језици за прегледање веб страница: - - - Privacy - Приватност - - - Web Content - Веб садржај - - - Block Popup Windows - Блокирај искачуће прозоре - - - Enable Plugins - Омогући прикључке - - - Use ClickToFlash on flash plugins - Користи "Кликни за флеш" за флеш прикључке - - - Enable Javascript - Омогући Јаваскрипт - - - View Images - Прикажи слике - - - Cookies - Колачићи - - - Accept Cookies: - Прихвати колачиће: - - - Always - увек - - - Never - никад - - Only from sites you navigate to - само са веб сајтова које посећујем - - - Exceptions... - Изузеци... - - - Keep Cookies Until: - Задржи колачиће док не: - - - They expire - истекну - - - I exit the application - напустим програм - - - At most 90 days - истекне највише 90 дана - - - Cookies... - Колачићи... - - - Filter Tracking Cookies - Филтрирај колачиће пратиоце - - - Tabs - Језичци - - - Select tabs and windows as they are created - Одабери језичке и прозоре при њиховом настајању - - - Confirm when closing multiple tabs or windows - Потврда при затварању више прозора или језичака - - - Show only one close button instead of one for each tab - Прикажи само једно дугме за затварање уместо једног по сваком језичку - - - Quit the application when last tab is closed - Напусти програм кад је последњи језичак затворен - - - Opening links - Отварам везе - - - Links that want to open in a new window: - Везе које желе да се отворе у новом прозору: - - - In a new window - у новом прозору - - - In a new selected tab in the current window - у изабраном новом језичку тренутног прозора - - - In a new tab in the current window - у новом језичку тренутног прозора - - - In the current tab - у тренутном језичку - - - Open links from applications: - Отварај везе из програма: - - - Proxy - Прокси - - - Use proxy server - Користи прокси сервер - - - Type: - Тип: - - - Socks5 - СОКС5 - - - Http (Secure) - ХТТП (Безбедно) - - - Http (Transparent) - ХТТП (Транспарентно) - - - Host name: - Име домаћина: - - - Port: - Порт: - - - User Name: - Корисничко име: - - - Password: - Лозинка: - - - Advanced - Напредно - - - Style Sheet: - Опис стила: - - - Enable network cache - Омогући мрежни кеш - - - Maximum Size: - Максимална величина: - - - MB - MB - - - Use the default search engine as fallback when the URL given by the user is invalid - Користи подразумевани мотор претраге као испомоћ уколико је УРЛ задат од стране корисника неисправан - - - Choose Directory... - Изаберите фасциклу... - - - A cookie session ends: - Колачић сесије истиче: - - - When I exit the application - кад напустим програм - - - 1 day - за 1 дан - - - 2 days - за 2 дана - - - 3 days - за 3 дана - - - 7 days - за 7 дана - - - 30 days - за 30 дана - - - AutoFill - Смопопуњавање - - - AutoFill web forms: - Самопопуњавање веб образаца: - - - User names and passwords - Корисничка имена и лозинке - - - Edit... - Уреди... - - - Browse... - Прегледај... - - - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Захтева се поновно покретање - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Подешавање мрежног кеша је промењено. Да би било узето у обзир прегледач мора бити поново покренут. + Search + Претражи + + + SettingsDialog Choose Directory Изаберите фасциклу @@ -1919,26 +1008,10 @@ Do you want to ignore these errors?</qt> Saved Tabs Сачувај језичке - - Do you really want to close this page? - Да ли заиста желите да затворите ову страницу? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Изменили сте ову страницу и њеним затварањем ћете изгубити измене. -Да ли заиста желите да затворите ову страницу? - - Loading... Учитавање... - - Loading %1% (%2 %3)... - Учитавам %1% (%2 %3)... - Finished loading Учитавање завршено @@ -1979,6 +1052,10 @@ Do you really want to close this page? Bookmark All Tabs Маркирај све језичке + + Loading ... + + ToolbarSearch @@ -1994,10 +1071,6 @@ Do you really want to close this page? Recent Searches Скорашње претраге - - Add '%1' - Додај '%1' - Clear Recent Searches Уклони скорашње претраге @@ -2022,37 +1095,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - Грешка при учитавању странице: %1 - - - When connecting to: %1. - При повезивању на: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Проверите адресу за грешке попут <b>ww/</b>.arora-browser.org/ /уместо <b>www/</b>.arora-browser.org/ - - - If the address is correct, try checking the network connection. - Уколико је адреса исправна, покушајте провером мрежне повезаности. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Уколико су ваш рачунар или мрежа заштићени фајерволом или проксијем постарајте се да прегледач има дозволе за приступ мрежи. - - - Resending POST request - Поново шаљем ПОСТ захтев - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Да би сајт био приказан, захтев заједно са свим подацима мора бити поново послат, што може довести до непредвидљивог понашања самог сајта, нпр. иста радња може бити поново изведена. Да ли свеједно желите да наставите? - - WebView @@ -2103,38 +1145,6 @@ Do you really want to close this page? Search with... Претражи помоћу... - - Add to the toolbar search - Додај у траку претраге - - - Method not supported - Метод није подржан - - - %1 method is not supported. - %1 метод није подржан. - - - Search engine - Мотор претраге - - - Choose the desired search engine - Изаберите жељени мотор претраге - - - Engine name - Назив мотора - - - Type in a name for the engine - Унесите назив за мотор - - - Block Image - Блокирај слику - WebViewSearch diff --git a/src/locale/sr_RS@latin.ts b/src/locale/sr_RS@latin.ts index c859829c..52890631 100644 --- a/src/locale/sr_RS@latin.ts +++ b/src/locale/sr_RS@latin.ts @@ -15,141 +15,6 @@ License Licenca - - Lightweight WebKit-based web browser - Lagani web pregledač baziran na Webkit-u - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org/</a> - - - Close - Zatvori - - - WebKit version: %1 - Verzija Webkit-a: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Jezici - - - Languages: in order of preference: - Jezici prema redosledu poželjnosti: - - - Move &Up - &Gore - - - Move &Down - &Dole - - - &Remove - &Ukloni - - - Add... - Dodaj... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - Blokirano AdBlockovim pravilom: %1 - - - - AdBlockDialog - - Add Custom Rule - Dodaj prilagođeno pravilo - - - Learn more about writing rules... - Naučite više o pisanju pravila... - - - Update Subscription - Ažuriraj pretplatu - - - Browse Subscriptions... - Pregledaj pretplate... - - - Remove Subscription - Ukloni pretplatu - - - AdBlock Configuration - Podešavanje AdBlocka - - - Enable AdBlock - Omogući AdBlock - - - Action - Radnja - - - - AdBlockManager - - Custom Rules - Prilagođena pravila - - - - AdBlockModel - - Rule - Pravilo - - - - AdBlockSchemeAccessHandler - - Subscribe? - Pertplati se? - - - Subscribe to this AdBlock subscription? -%1 - Pretplati se na ovu AdBlockovu pretplatu? %1 - AddBookmarkDialog @@ -157,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Dodaj marker - - Type a name for the bookmark, and choose where to keep it. - Unesite ime markera i izaberite gde ga sačuvati. - Url URL @@ -174,51 +35,6 @@ p, li { white-space: pre-wrap; } Dodaj fasciklu - - AutoFillDialog - - Form Passwords - Lozinke obrazaca - - - Remove - Ukloni - - - Remove All - Ukloni sve - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Želite li da sačuvate ovu lozinku</b><br> Da bi ste pregledali ili uklonili sačuvane lozinke koristite panel samopopunjavanja u podešavanjima. - - - Never for this site - Nikad za ovaj sajt - - - Not now - Ne sad - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Web sajt - - - User Name - Korisničko ime - - BookmarksDialog @@ -245,18 +61,6 @@ p, li { white-space: pre-wrap; } New Folder Nova fascikla - - Bookmarks - Markeri - - - &Remove - &Ukloni - - - Add Folder - Dodaj fasciklu - BookmarksManager @@ -336,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Neophodna je Html-U-XBEL alatka - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Html-U-XBEL alatka, koja se destavlja sa Arorom i neophodna je za uvoz HTML markera, nije instalirana ili se ne nalazi u pretraženim putanjama. - Loading Bookmark Učitavam marker @@ -350,6 +150,10 @@ p, li { white-space: pre-wrap; } Greška pri učitavanju HTML markera: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -405,8 +209,8 @@ Svejedno napustiti? Povraćaj nije uspeo - Arora crashed while trying to restore this session. Should I try again? - Arora se srušila u pokušaju da povrati prethodnu sesiju. Pokušati ponovo? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -439,14 +243,6 @@ Svejedno napustiti? &Export Bookmarks... &Izvezi markere... - - P&rint Preview... - P&regled štampe... - - - &Print... - Š&tampa... - Private &Browsing... &Privatno pregledanje... @@ -613,10 +409,6 @@ Svejedno napustiti? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Omogući &Web inspektor - &Help Po&moć @@ -662,11 +454,6 @@ Svejedno napustiti? Hide Bookmarks Bar Sakrij traku markera - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Otvori web resurs @@ -675,10 +462,6 @@ Svejedno napustiti? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Web resursi (*.html *.htm *.svg *.png *.gif *.svgz);;Svi fajlovi (*.*) - - Print Document - Štampaj dokument - Are you sure you want to turn on private browsing? Da li ste sigurni da želite da uključite privatno pregledanje? @@ -687,16 +470,6 @@ Svejedno napustiti? Are you sure you want to close the window? There are %1 tabs open Da li ste sigurni da želite da zatvorite prozor? Otvoren(o) je %1 jezičak(a) - - Web Inspector - Web inspektor - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Web inspektor će ispravno raditi samo na stranicama učitanim nakon njegovog uključivanja. -Da li želite da ponovo učitate sve stranice? - Stop loading the current page Zaustavi učitavanje trenutne stranice @@ -738,10 +511,6 @@ Da li želite da ponovo učitate sve stranice? Configure Search Engines... Podesi motore pretrage... - - &Ad Block... - &AdBlock... - When private browsing is turned on, some actions concerning your privacy will be disabled: Kada je uključeno privatno pregledanje onemogućene su neke radnje koje se tiču vaše privatnosti: @@ -754,10 +523,6 @@ Da li želite da ponovo učitate sve stranice? Items are automatically removed from the Downloads window. Stavke se automatski uklanjaju iz prozora prijema. - - New cookies are not stored, current cookies can't be accessed. - Novi kolačići se ne čuvaju, postojećim se ne može pristupiti. - Site icons won't be stored. Ikone sajtova se ne čuvaju. @@ -798,6 +563,11 @@ Da li želite da ponovo učitate sve stranice? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -828,14 +598,6 @@ Da li želite da ponovo učitate sve stranice? &Search History istorijat pr&etrage - - &Cookies - &kolačiće - - - C&ached Web Pages - Keširane &web stranice - Website &Icons &ikone web sajtova @@ -849,174 +611,12 @@ Da li želite da ponovo učitate sve stranice? &Odustani - - ClickToFlash - - Load - Učitaj - - - Load All - Učitaj sve - - - Add %1 to Whitelist - Dodaj %1 na belu listu - - - Remove from Whitelist - Ukloni sa bele liste - - - Settings - Podešavanje - - - Load Flash - Učitaj fleš - - - - ClickToFlashSettings - - Whitelist sites - Sajtovi na beloj listi - - - - CookieExceptionsModel - - Website - Web sajt - - - Rule - Pravilo - - - Allow - Dozvoli - - - Block - Blokiraj - - - Allow For Session - Dozvoli u toku sesije - - - - CookieModel - - Website - Web sajt - - - Name - Ime - - - Path - Putanja - - - Secure - Sigurno - - - Expires - Ističe - - - Contents - Sadržaj - - - true - tačno - - - false - netačno - - - Session cookie - Kolačić sesije - - - - CookiesDialog - - Cookies - Kolačići - - - &Remove - &Ukloni - - - Remove &All Cookies - Ukloni &sve kolačiće - - - Add &Rule - Dodaj &pravilo - - - - CookiesExceptionsDialog - - Cookie Exceptions - Izuzeci za kolačiće - - - New Exception - Novi izuzetak - - - Domain: - Domen: - - - Block - Blokiraj - - - Allow For Session - Dozvoli u toku sesije - - - Allow - Dozvoli - - - Exceptions - Izuzeci - - - &Remove - &Ukloni - - - Remove &All - Ukloni &sve - - DownloadDialog Downloads Preuzimanja - - Clean up - Očisti - - - 0 Items - Nema stavki - Downloading %1 @@ -1024,26 +624,6 @@ Da li želite da ponovo učitate sve stranice? DownloadItem - - Ico - Ikona - - - Filename - Ime fajla - - - Try Again - Pokušajte ponovo - - - Stop - Zaustavi - - - Open - Otvori - Save File Sačuvaj fajl @@ -1072,10 +652,6 @@ Da li želite da ponovo učitate sve stranice? ? ? - - %1 of %2 - Stopped - %1 od %2 - Zaustavljeno - Download directory (%1) couldn't be created. Fascikla za preuzimanja (%1) ne može biti napravljena. @@ -1134,33 +710,6 @@ Svejedno napustiti? GB - - FileAccessReply - - No Error - Bez greške - - - Error opening: %1: No such file or directory - Greška pri otvaranju: %1: Ne postoji takav fajl ili fascikla - - - Unable to read %1 - Nemoguće čitanje %1 - - - Contents of %1 - Sadržaj %1 - - - %1 KB - %1 KB - - - Show Hidden Files - - - HistoryDialog @@ -1175,24 +724,12 @@ Svejedno napustiti? Delete Obriši + + + HistoryMenu - History - Istorijat - - - &Remove - &Ukloni - - - Remove &All - Ukloni &sve - - - - HistoryMenu - - Show All History - Prikaži ceo istorijat + Show All History + Prikaži ceo istorijat Clear History... @@ -1234,29 +771,29 @@ Svejedno napustiti? - JavaScriptAroraObject + JavaScriptEndorphinObject - Welcome to Arora! - Dobrodošli u Aroru ! + Welcome to Endorphin! + - Arora Start - Arorina početna + Endorphin Start + Search! - Pretraži! + - Search results provided by - Rezultate pretrage omogućuje + Search the web with + - About Arora - O Arori + Search results provided by + - Search the web with + About Endorphin @@ -1275,48 +812,6 @@ Svejedno napustiti? Nema instaliranih fajlova prevoda u %1. - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Uredi korisničko ime i lozinku za "%1" na %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Poveži se na proksi "%1" koristeći: </qt> - - - - SSL Errors - - SSL greške - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Sertifikati:<br/>%1<br/>Da li želite da prihvatite sve ove sertifikate?</qt> - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL greške:<br/><br/>za: <tt>%1</tt><ul><li>%2</li></ul> -Da li želite da zanemarite ove greške?</qt> - - - Issuer: %1 - Izdavač: %1 - - - Not valid before: %1 - Nije valido pre: %1 - - - Valid until: %1 - Validno do: %1 - - - Alternate Names: - Alternativni nazivi: - - OpenSearchDialog @@ -1339,26 +834,6 @@ Da li želite da zanemarite ove greške?</qt> You must have at least one search engine in here. Mora postojati barem jedan motor pretrage. - - OpenSearch Manager - Ovori upravnik pretrage - - - &Restore Defaults - &Podrazumevano - - - &Delete - &Obriši - - - &Add - &Dodaj - - - &Close - &Zatvori - OpenSearchEngineModel @@ -1391,26 +866,18 @@ Da li želite da zanemarite ove greške?</qt> - PasswordDialog - - Authentication Required - Neophodna autentifikacija - - - DUMMY ICON - DUMMY ICON - + PermissionBar - INTRO TEXT DUMMY - INTRO TEXT DUMMY + Allow + Dozvoli - Username: - Korisničko ime: + Deny + - Password: - Lozinka: + %1 wants to %2. + @@ -1420,25 +887,6 @@ Da li želite da zanemarite ove greške?</qt> Ne postoji - - ProxyDialog - - Proxy Authentication - Autentifikacija proksija - - - Connect to proxy - Poveži se na proksi - - - Username: - Korisničko ime: - - - Password: - Lozinka: - - QObject @@ -1453,398 +901,40 @@ Da li želite da zanemarite ove greške?</qt> The file is not an OpenSearch 1.1 file. Fajl nije OpenSearch 1.1 tipa. - - - SearchBanner - - Done - Završeno - - - Highlight All - Istakni sve - - - - SearchLineEdit - - Search - Pretraži - - - - Settings - - Preferences - Postavke - - - General - Opšte - - - On startup: - Pri pokretanju: - - - Show my home page - prikaži domaću stranicu - - - Show a blank page - prikaži praznu stranicu - - - Restore windows and tabs from last time - povrati prozore i jezičke od prošlog puta - - - Home Page: - Domaća stranica: - - - Set to current page - Postavi tekuću stranicu - - - Remove history items: - Ukloni stavke istorijata: - - - After one day - posle jednog dana - - - After one week - posle jedne sedmice - - - After two weeks - posle dve sedmice - - - After one month - posle jednog meseca - - - After one year - posle jedne godine - - - Manually - ručno - - - On application exit - pri napuštanju programa - - - Downloads - Preuzimanja - - - Ask for a destination each time - Uvek pitaj za odredište - - - Use this destination: - Koristi sledeće odredište: - - - Appearance - Izgled - - - Standard font: - Standardni font: - - - Select... - Izaberite... - - - Fixed-width font: - Fiksni font: - - - Preferred languages for viewing webpages in: - Poželjni jezici za pregledanje web stranica: - - - Privacy - Privatnost - - - Web Content - Web sadržaj - - - Block Popup Windows - Blokiraj iskačuće prozore - - - Enable Plugins - Omogući priključke - - - Use ClickToFlash on flash plugins - Koristi "Klikni za fleš" za fleš priključke - - - Enable Javascript - Omogući Javascript - - - View Images - Prikaži slike - - - Cookies - Kolačići - - - Accept Cookies: - Prihvati kolačiće: - - - Always - uvek - - - Never - nikad - - Only from sites you navigate to - samo sa veb sajtova koje posećujem - - - Exceptions... - Izuzeci... - - - Keep Cookies Until: - Zadrži kolačiće dok ne: - - - They expire - isteknu - - - I exit the application - napustim program - - - At most 90 days - istekne najviše 90 dana - - - Cookies... - Kolačići... - - - Filter Tracking Cookies - Filtriraj kolačiće pratioce - - - Tabs - Jezičci - - - Select tabs and windows as they are created - Odaberi jezičke i prozore pri njihovom nastajanju - - - Confirm when closing multiple tabs or windows - Potvrda pri zatvaranju više prozora ili jezičaka - - - Show only one close button instead of one for each tab - Prikaži samo jedno dugme za zatvaranje umesto jednog po svakom jezičku - - - Quit the application when last tab is closed - Napusti program kad je poslednji jezičak zatvoren - - - Opening links - Otvaram veze - - - Links that want to open in a new window: - Veze koje žele da se otvore u novom prozoru: - - - In a new window - u novom prozoru - - - In a new selected tab in the current window - u izabranom novom jezičku trenutnog prozora - - - In a new tab in the current window - u novom jezičku trenutnog prozora - - - In the current tab - u trenutnom jezičku - - - Open links from applications: - Otvaraj veze iz programa: - - - Proxy - Proksi - - - Use proxy server - Koristi proksi server - - - Type: - Tip: - - - Socks5 - Socks5 - - - Http (Secure) - Http (Bezbedno) - - - Http (Transparent) - Http (Transparentno) - - - Host name: - Ime domaćina: - - - Port: - Port: - - - User Name: - Korisničko ime: - - - Password: - Lozinka: - - - Advanced - Napredno - - - Style Sheet: - Opis stila: - - - Enable network cache - Omogući mrežni keš - - - Maximum Size: - Maksimalna veličina: - - - MB - MB - - - Use the default search engine as fallback when the URL given by the user is invalid - Koristi podrazumevani motor pretrage kao ispomoć ukoliko je URL zadat od strane korisnika neispravan - - - Choose Directory... - Izaberite fasciklu... - - - A cookie session ends: - Sesija kolačića ističe: - - - When I exit the application - kad napustim program - - - 1 day - za 1 dan - - - 2 days - za 2 dana - - - 3 days - za 3 dana - - - 7 days - za 7 dana - - - 30 days - za 30 dana - - - AutoFill - Samopopunjavanje - - - AutoFill web forms: - Samopopunjavanje web obrazaca: - - - User names and passwords - Korisnička imena i lozinke - - - Edit... - Uredi... - - - Browse... - Pregledaj... - - - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Zahteva se ponovno pokretanje - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Podešavanje mrežnog keša je promenjeno. Da bi bilo uzeto u obzir pregledač mora biti ponovo pokrenut. + Search + Pretraži + + + SettingsDialog Choose Directory Izaberite fasciklu @@ -1918,26 +1008,10 @@ Da li želite da zanemarite ove greške?</qt> Saved Tabs Sačuvaj jezičke - - Do you really want to close this page? - Da li zaista želite da zatvorite ovu stranicu? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Izmenili ste ovu stranicu i njenim zatvaranjem ćete izgubiti izmene. -Da li zaista želite da zatvorite ovu stranicu? - - Loading... Učitavanje... - - Loading %1% (%2 %3)... - Učitavam %1% (%2 %3)... - Finished loading Učitavanje završeno @@ -1978,6 +1052,10 @@ Da li zaista želite da zatvorite ovu stranicu? Bookmark All Tabs Markiraj sve jezičke + + Loading ... + + ToolbarSearch @@ -1993,10 +1071,6 @@ Da li zaista želite da zatvorite ovu stranicu? Recent Searches Skorašnje pretrage - - Add '%1' - Dodaj '%1' - Clear Recent Searches Ukloni skorašnje pretrage @@ -2021,37 +1095,6 @@ Da li zaista želite da zatvorite ovu stranicu? - - WebPage - - Error loading page: %1 - Greška pri učitavanju stranice: %1 - - - When connecting to: %1. - Pri povezivanju na: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Proverite adresu za greške poput <b>ww/</b>.arora-browser.org/ /umesto <b>www/</b>.arora-browser.org/ - - - If the address is correct, try checking the network connection. - Ukoliko je adresa ispravna, pokušajte proverom mrežne povezanosti. - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Ukoliko su vaš računar ili mreža zaštićeni fajervolom ili proksijem postarajte se da pregledač ima dozvole za pristup mreži. - - - Resending POST request - Ponovo šaljem POST zahtev - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Da bi sajt bio prikazan, zahtev zajedno sa svim podacima mora biti ponovo poslat, što može dovesti do nepredvidljivog ponašanja samog sajta, npr. ista radnja može biti ponovo izvedena. Da li svejedno želite da nastavite? - - WebView @@ -2102,38 +1145,6 @@ Da li zaista želite da zatvorite ovu stranicu? Search with... Pretraži pomoću... - - Add to the toolbar search - Dodaj u traku pretrage - - - Method not supported - Metod nije podržan - - - %1 method is not supported. - %1 metod nije podržan. - - - Search engine - Motor pretrage - - - Choose the desired search engine - Izaberite željeni motor pretrage - - - Engine name - Naziv motora - - - Type in a name for the engine - Unesite naziv za motor - - - Block Image - Blokiraj sliku - WebViewSearch diff --git a/src/locale/tr_TR.ts b/src/locale/tr_TR.ts index ad0f9e86..fb51a70b 100644 --- a/src/locale/tr_TR.ts +++ b/src/locale/tr_TR.ts @@ -3,22 +3,6 @@ AboutDialog - - Lightweight WebKit-based web browser - Webkit tabanlı hafif bir web tarayıcı - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - Authors Yazarlar @@ -27,150 +11,10 @@ p, li { white-space: pre-wrap; } License Lisans - - Close - Kapat - - - About - Hakkında - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - About %1 %1 Hakkında - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - WebKit sürümü: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Diller - - - Languages: in order of preference: - Diller: tercih sırasına göre: - - - Move &Up - &Yukarı Taşı - - - Move &Down - &Aşağı Taşı - - - &Remove - &Kaldır - - - Add... - Ekle... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - AdBlockRule: %1 tarafından engellendi - - - - AdBlockDialog - - Add Custom Rule - Özel Kural Ekle - - - Learn more about writing rules... - Kural oluşturmak hakkında daha fazla bilgi... - - - Update Subscription - Aboneliği Güncelle - - - Browse Subscriptions... - Aboneliklere Gözat... - - - Remove Subscription - Aboneliği Kaldır - - - AdBlock Configuration - AdBlock Tercihleri - - - Enable AdBlock - AdBlock Kullan - - - Action - Eylem - - - - AdBlockManager - - Custom Rules - Özel Kurallar - - - - AdBlockModel - - Rule - Kural - - - - AdBlockSchemeAccessHandler - - Subscribe? - Abone Ol? - - - Subscribe to this AdBlock subscription? -%1 - Bu AdBlock aboneliğini kullan ? -%1 - AddBookmarkDialog @@ -178,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Yer İmlerine Ekle - - Type a name for the bookmark, and choose where to keep it. - Yer imi için bir ad girin ve nerede saklanacağını belirtin. - Url Url @@ -195,65 +35,8 @@ p, li { white-space: pre-wrap; } Dizin Ekle - - AutoFillDialog - - Form Passwords - Form Parolaları - - - Remove - Kaldır - - - Remove All - Hepsini Kaldır - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Bu parolayı saklamak ister misiniz?</b><br> Kayıtlı parolalarınızı düzenlemek için Otomatik Doldur seçeneklerinne gidin. - - - Never for this site - Bu site için hiç bir zaman - - - Not now - Şimdi değil - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Site - - - User Name - Kullanıcı Adı - - BookmarksDialog - - Bookmarks - Yer İmleri - - - &Remove - &Sil - - - Add Folder - Dizin Ekle - Open @@ -299,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File Dosya Aç - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 %1 İçe Aktarıldı @@ -331,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Yer İmini Araya Ekle - - Name Change - İsim Değiştir - - - Address Change - Adres Değiştir - Bookmarks Bar Yerimleri Çubuğu @@ -347,20 +118,6 @@ p, li { white-space: pre-wrap; } Bookmarks Menu Yerimleri Menüsü - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Html yerimlerini yüklerken hata: %1 - - - - XBEL - XBEL - Name Change Undo bookmark title change @@ -383,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required htmlToXBel aracı gerekli - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - HTML yerimlerini içe aktarmak için Arora ile dağıtılan gerekli htmlToXBel aracı yüklü değil ya da bulunamadı. - Loading Bookmark Yerimleri Yükleniyor @@ -397,6 +150,10 @@ p, li { white-space: pre-wrap; } HTML yerimleri yüklenirken bir hata oluştu: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -418,10 +175,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Yer İmi - Open @@ -442,10 +195,6 @@ p, li { white-space: pre-wrap; } Add Folder... Dizin Ekle... - - Bookmarks - Yer İmleri - BrowserApplication @@ -460,16 +209,8 @@ Yinede çıkmak istiyor musunuz? Geri yükleme başarısız - The saved session will not be restored because Arora crashed while trying to restore this session. - Kaydolan oturum geri yüklenemeyecek çünkü Arora oturumu geri yüklerken çöktü. - - - (Change: %1 %2) - (Değişim: %1 %2) - - - Arora crashed while trying to restore this session. Should I try again? - Arora bu oturumu kurtarmaya çalışırken çöktü. Tekrar denensin mi? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -502,14 +243,6 @@ Yinede çıkmak istiyor musunuz? &Export Bookmarks... Yerimlerini Dı&şa Aktar... - - P&rint Preview... - Baskı &Önizleme... - - - &Print... - Ya&zdır... - Private &Browsing... Özel Gez&inme... @@ -546,18 +279,10 @@ Yinede çıkmak istiyor musunuz? &Find &Bul - - Find &Next - &Sonrakini Bul - Find P&revious &Öncekini Bul - - Prefe&rences - Te&rcihler - Ctrl+, Ctrl+, @@ -570,10 +295,6 @@ Yinede çıkmak istiyor musunuz? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -586,18 +307,6 @@ Yinede çıkmak istiyor musunuz? &Reload Page &Sayfayı Yeniden Yükle - - Make Text &Bigger - &Yazıyı Büyüt - - - Make Text &Normal - Yazıyı &Normal Yap - - - Make Text &Smaller - Yazıyı K&üçült - Page S&ource Sayfa Kayna&ğı @@ -634,10 +343,6 @@ Yinede çıkmak istiyor musunuz? &Bookmarks &Yer İmleri - - Manage Bookmarks... - Yer İmlerini Düzenle... - Add Bookmark... Yer İmi Ekle... @@ -668,10 +373,6 @@ Yinede çıkmak istiyor musunuz? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Ağ Denet&çisini Aktif Et - &Help Yard&ım @@ -680,10 +381,6 @@ Yinede çıkmak istiyor musunuz? About &Qt &Qt Hakkında - - About &Arora - &Arora Hakkında - Navigation Gezinme @@ -712,15 +409,6 @@ Yinede çıkmak istiyor musunuz? Hide Bookmarks Bar Yerimi Araç Çubuğunu Gizle - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource Ağ Kaynağını Aç @@ -729,36 +417,14 @@ Yinede çıkmak istiyor musunuz? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Sayfa Kaynakları (*.html *.htm *.svg *.png *.gif *.svgz);;Tüm Dosyalar (*.*) - - Print Document - Belgeyi Yazdır - Are you sure you want to turn on private browsing? Gizli gezinmeyi açmak istediğinizden emin misiniz? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Gizli gezinme aktifken, sizin gizliliğinizle bağlantılı olan bazı davranışlar iptal edilecektir:<ul><li> Web sayfaları geçmişe eklenmeyecekler.</li><li> İndirme penceresindeki öğeler otomatik olarak silinecekler.</li><li> Yeni çerezler saklanmayacak, mevcut çerezlere erişim sağlanmayacaktır.</li><li> Sayfa ikonları saklanmayacak, oturum kaydedilmeyecektir.</li><li> Aramalar, arama kutusundaki açılır menüye eklenmeyecektir.</li></ul>Siz pencereyi kapatana kadar, açtığınız web sayfasına geri dönmek için İleri ve Geri düğmelerine tıklayabileceksiniz. - Are you sure you want to close the window? There are %1 tabs open Pencereyi kapatmak istediğinizden emin misiniz? %1 sekme açık - - Page Source of %1 - %1'in Sayfa Kaynağı - - - Web Inspector - Ağ Denetçisi - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Ağ Denetçisi sadece aktif edildikten sonra yüklenen sayfalarda düzgün çalışacaktır. -Tüm sayfaları yenilemeyi istiyor musunuz? - Stop loading the current page Mevcut sayfayı yüklemeyi durdur @@ -771,19 +437,10 @@ Tüm sayfaları yenilemeyi istiyor musunuz? Downloads İndirilenler - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - Find Nex&t Sonra&kini Bul - - Prefere&nces... - Se&çenekler... - Show Menu Bar Menü Çubuğunu Göster @@ -792,10 +449,6 @@ Tüm sayfaları yenilemeyi istiyor musunuz? Switch application language Uygulama dilini değiştir - - Show &Network Monitor - A&ğ İzleyicisini Göster - Close Window Pencereyi Kapat @@ -829,10 +482,6 @@ Tüm sayfaları yenilemeyi istiyor musunuz? About Browser &%1 Hakkında - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Özel gezinme aktif olduğunda, gizliliğinizle ilgili bazı eylemler etkisizleştirilecek:<ul><li> Web sayfaları geçmişe eklenmeyecek.</li><li> İndirme penceresindeki öğeler otomatik olarak kaldırılacak.</li><li> Yeni çerezler saklanmayacak, mevcut çerezlere erişilemeyecek.</li><li> Sayfa simgeleri saklanmayacak, oturum kaydedilmeyecek.</li><li> Aramalarınız arama kutusundaki açılır menüye eklenmeyecek.</li></ul>Siz pencereyi kapatana kadar, açmış olduğunu web sayfalarına Geri ve İleri düğmelerine tıklayarak geri dönebileceksiniz. - Ctrl+Y Download Manager @@ -862,10 +511,6 @@ Tüm sayfaları yenilemeyi istiyor musunuz? Configure Search Engines... Arama Motorlarını Yapılandır... - - &Ad Block... - &Ad Block... - When private browsing is turned on, some actions concerning your privacy will be disabled: Özel gezinme açıkken gizliliğinizle ilgili bazı eylemler kaydedilmeyecektir: @@ -878,10 +523,6 @@ Tüm sayfaları yenilemeyi istiyor musunuz? Items are automatically removed from the Downloads window. İndirilen öğeler otomatik olarak kaldırılacak. - - New cookies are not stored, current cookies can't be accessed. - Yeni çerezler kaydedilmeyecek, mevcut çerezler kullanılmayacak. - Site icons won't be stored. Site ikonları kaydedilmeyecek. @@ -922,6 +563,11 @@ Tüm sayfaları yenilemeyi istiyor musunuz? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -952,14 +598,6 @@ Tüm sayfaları yenilemeyi istiyor musunuz? &Search History &Arama Geçmişi - - &Cookies - &Çerezler - - - C&ached Web Pages - &Önbelleğe alınmış Web Sayfaları - Website &Icons Web Sayfası S&imgeleri @@ -974,1175 +612,321 @@ Tüm sayfaları yenilemeyi istiyor musunuz? - ClickToFlash - - Load - Yükle - + DownloadDialog - Load All - Hepsini Yükle + Downloads + İndirilenler - Add %1 to Whitelist - %1 i aklisteye ekle + Downloading %1 + + + + DownloadItem - Remove from Whitelist - Aklisteden kaldır + Save File + Dosyayı Kaydet - Settings - Ayarlar + Download canceled: %1 + İndirme iptal edildi: %1 - Load Flash - Flash Yükle + Error opening output file: %1 + Çıktı dosyası açılırken hata oluştu: %1 - - - ClickToFlashSettings - Whitelist sites - Akliste siteleri + Error saving: %1 + Kaydederken hata oluştu: %1 - - - CookieExceptionsModel - Website - Web Sayfası + Network Error: %1 + Ağ Hatası: %1 - Rule - Kural + ? + ? - Allow - İzin Ver + %1 of %2 (%3/sec) - %4 + %1 / %2 (%3/sn) - %4 - Block - Kısıtla + Download directory (%1) couldn't be created. + İndirilenler klasörü (%1) oluşturulamadı. - Allow For Session - Bu Oturum İçin İzin Ver + %1 of %2 - Download Complete + - CookieModel - - Website - Web Sayfası + DownloadManager + + %n Download(s) + + %n İndirilen + - Name - İsim + There are %1 downloads in progress +Do you want to quit anyway? + %1 indirme işlemi var +Yine de çıkmak istiyor musunuz? - - Path - Yol + + %n minutes remaining + + %n dakika kaldı + - - Secure - Güvenli + + %n seconds remaining + + %n saniye kaldı + - Expires - Sonlanma + bytes + bytes - Contents - İçerik + kB + kB - true - doğru - - - false - yanlış - - - Session cookie - Oturum çerezi - - - - CookiesDialog - - Cookies - Çerezler - - - &Remove - &Kaldır - - - Remove &All Cookies - Tüm Çerezleri Kaldı&r - - - Add &Rule - &Kural Ekle - - - - CookiesExceptionsDialog - - Cookie Exceptions - Çerez İstisnaları - - - New Exception - Yeni İstisna - - - Domain: - Etki Alanı: - - - Block - Blok - - - Allow For Session - Bu Oturuma İzin Ver - - - Allow - İzin Ver - - - Exceptions - İstisnalar - - - &Remove - &Kaldır - - - Remove &All - Hepsini Kaldı&r - - - - DownloadDialog - - Downloads - İndirilenler - - - Clean up - Temizle - - - 0 Items - 0 Öğe - - - &OK - &Tamam - - - Downloading %1 - - - - - DownloadItem - - Form - Form - - - Ico - Ico - - - Filename - Dosyaadı - - - Try Again - Yeniden Dene - - - Stop - Dur - - - Open - - - - Save File - Dosyayı Kaydet - - - Download canceled: %1 - İndirme iptal edildi: %1 - - - Error opening output file: %1 - Çıktı dosyası açılırken hata oluştu: %1 - - - Error saving: %1 - Kaydederken hata oluştu: %1 - - - Network Error: %1 - Ağ Hatası: %1 - - - seconds - saniye - - - %1 of %2 (%3/sec) %4 - %2'nin %1'i (%3/sn) %4 - - - ? - ? - - - %1 of %2 - Stopped - %2'nin %1'i - Durdu - - - bytes - byte - - - kB - kB - - - MB - MB - - - - %n minutes remaining - - - %n dakika kaldı - - - - - %n seconds remaining - - - %n saniye kaldı - - - - %1 of %2 (%3/sec) - %4 - %1 / %2 (%3/sn) - %4 - - - Download directory (%1) couldn't be created. - İndirilenler klasörü (%1) oluşturulamadı. - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n İndirilen - - - - There are %1 downloads in progress -Do you want to quit anyway? - %1 indirme işlemi var -Yine de çıkmak istiyor musunuz? - - - %n minutes remaining - - %n dakika kaldı - - - - %n seconds remaining - - %n saniye kaldı - - - - bytes - bytes - - - kB - kB - - - MB - MB - - - GB - GB - - - - FileAccessReply - - No Error - Hata Yok - - - Error opening: %1: No such file or directory - Hata ! Böyle bir dosya ya da dizin bulunamadı: %1 - - - Unable to read %1 - %1 Okunamıyor - - - Contents of %1 - %1 İçeriği - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - History - Geçmiş - - - &Remove - &Kaldır - - - Remove &All - &Hepsini Kaldır - - - Open - - - - Copy - Kopyala - - - Delete - Sil - - - - HistoryMenu - - Show All History - Tüm Geçmişi Göster - - - Clear History - Geçmişi Temizle - - - Clear History... - Geçmişi Temizle... - - - Do you want to clear the history? - Geçmişi temizlemek istiyor musunuz? - - - - HistoryModel - - Title - Başlık - - - Address - Adres - - - - HistoryTreeModel - - Earlier Today - Bugünden Önce - - - %n item(s) - - %n öğe - - - - - JavaScriptAroraObject - - Welcome to Arora! - Arora'ya Hoş Geldiniz! - - - Arora Start - Arora Başlangıç - - - Search! - Ara! - - - Search results provided by - Arama sonuçlarını sağlayan - - - About Arora - Arora Hakkında - - - Search the web with - - - - - LanguageManager - - System locale (%1) %2 - Sistem yereli (%1) %2 - - - Choose language - Dil Seçiniz - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>İşletim sisteminin varsayılan dilinden<br>başka bir dil seçebilirsiniz.</p><p>Lütfen kullanılacak dili seçini</p> - - - No translation files are installed. - Hiç çeviri dosyası yüklenmemiş. - - - No translation files are installed at %1. - %1 konumunda herhangi bir dil dosyası bulunamadı. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>%2 deki %1 için kullanıcı adı ve parola girin</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>Vekil "%1" 'e bunu kullanarak bağlan:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - SSL Hataları: - -%1 - -%2 - -Bu hataları gözardı etmek istiyor musunuz? - - - Do you want to accept all these certificates? - Tüm bu sertifikaları kabul etmek istiyor musunuz? - - - - SSL Errors - - SSL Hataları - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL Hataları:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Bu hataları görmezden gelmek istiyor musunuz?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Sertifikalar:<br/>%1<br/>Tüm bu sertifikaları kabul etmek istiyor musunuz?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Sertifikalar:<br/>%1<br/>Tüm bu sertifikaları kabul etmek istiyor musunuz?</qt> - - - Issuer: %1 - Hata: %1 - - - Not valid before: %1 - Şundan önce geçersiz: %1 - - - Valid until: %1 - Şuna kadar geçerli: %1 - - - Alternate Names: - Alternatif İsimler: - - - - NetworkMonitor - - Name - İsim - - - Value - Değer - - - - NetworkMonitorDialog - - Network Monitor - Ağ İzleyici - - - Network Requests - Ağ İstekleri - - - Request Headers - İstek Başlıkları - - - Response Headers - Yanıt Başlıkları - - - &Remove - &Kaldır - - - Remove &All Requests - &Tüm İstekleri Kaldır - - - - OpenSearchDialog - - Open File - Dosya Aç - - - OpenSearch - OpenSearch - - - Error - Hata - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 geçerli bir OpenSearch 1.1 açıklaması değil ya da zaten listenizde bulunuyor. - - - You must have at least one search engine in here. - Burada en az bir arama motoru olmalı. - - - OpenSearch Manager - OpenSearch Yöneticisi - - - &Restore Defaults - &Öntanımlıları Geri Yükle - - - &Delete - &Sil - - - &Add - &Ekle - - - &Close - &Kapat - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Açıklama:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>İçeriksel öneriler sağlar</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - İsim - - - Keywords - Anahtar Kelimeler - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Aşağıdaki motoru arama motoru listenize eklemek istiyor musunuz?<br /><br />İsim: %1<br />Şurada arar: %2 - - - - PasswordDialog - - Authentication Required - Kimlik Denetimi Gerekli - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Kullanıcı Adı: - - - Password: - Parola: - - - - PlainTextEditSearch - - Not Found - Bulunamadı - - - - ProxyDialog - - Proxy Authentication - Vekil Kimlik Denetimi - - - ICON - ICON - - - Connect to proxy - Proxy'e bağlan - - - Username: - Kullanıcı adı: - - - Password: - Parola: - - - - QObject - - The file is not an XBEL version 1.0 file. - Dosya bir XBEL sürüm 1.0 dosyası değil. - - - Unknown title - Bilinmeyen başlık - - - The file is not an OpenSearch 1.1 file. - Bu dosya bir OpenSearch 1.1 dosyası değil. - - - - RequestModel - - Redirect: %1 - Yönlendir: %1 - - - Method - Metod - - - Address - Adres - - - Response - Yanıt - - - Length - Uzunluk - - - Content Type - İçerik Türü - - - Info - Bilgi - - - - SearchBanner - - Form - Form - - - TextLabel - TextLabel - - - < - < - - - > - > - - - Done - Bitti - - - Highlight All - Hepsini Vurgula - - - - SearchLineEdit - - Search - Ara - - - - Settings - - Preferences - Tercihler - - - General - Genel - - - On startup: - Açılışta: - - - Show my home page - Giriş sayfamı göster - - - Show a blank page - Boş bir sayfa göster - - - Restore windows and tabs from last time - En son açık olan pencere ve sekmeleri geri yükle - - - Home Page: - Giriş Sayfası: - - - Set to current page - Mevcut sayfayı ayarla - - - Remove history items: - Geçmiş öğeleri kaldır: - - - After one day - Bir gün sonra - - - After one week - Bir hafta sonra - - - After two weeks - İki hafta sonra - - - After one month - Bir ay sonra - - - After one year - Bir yıl sonra - - - Manually - Elle - - - On application exit - Uygulama kapanırken - - - Open links from applications: - Uygulamalardaki bağlantıları aç: - - - In a tab in the current window - Mevcut penceredeki bir sekmede - - - In a new window - Yeni pencerede - - - Downloads - İndirilenler - - - Ask for a destination each time - Her seferinde hedefi sor - - - Use this destination: - Bu hedefi kullan: - - - Appearance - Görünüm - - - Standard font: - Standart yazıtipi: - - - Times 16 - Times 16 - - - Select... - Seç... - - - Fixed-width font: - Sabit-genişlikli yazıtipi: - - - Courier 13 - Courier 13 - - - Privacy - Gizlilik - - - Web Content - Web İçeriği - - - Enable Plugins - Eklentileri Aktif Et - - - Enable Javascript - Javascript'i Aktif Et - - - View Images - Görüntüleri Göster - - - Cookies - Çerezler - - - Accept Cookies: - Çerezleri Kabul Et: - - - Always - Herzaman - - - Never - Asla - - - Only from sites you navigate to - Sadece şu sayfalarda gezinirken - - - Exceptions... - İstisnalar... - - - Keep Cookies Until: - Çerezleri Tut: - - - They expire - Süresi dolunca - - - I exit the application - Uygulamadan çıkarken - - - At most 90 days - En fazla 90 gün - - - Cookies... - Çerezler... - - - Tabs - Sekmeler - - - Select tabs and windows as they are created - Pencere ve sekmeleri oluşturulduklarında seç - - - Confirm when closing multiple tabs - Çoklu sekmeleri kapatırken onay iste - - - Proxy - Vekil Sunucu - - - Use proxy server - Vekil sunucu kullan - - - Type: - Tür: + MB + MB - Socks5 - Socks5 + GB + GB + + + HistoryDialog - Http - Http + Open + - Host name: - Sunucu adı: + Copy + Kopyala - Port: - Port: + Delete + Sil + + + HistoryMenu - User Name: - Kullanıcı Adı: + Show All History + Tüm Geçmişi Göster - Password: - Parola: + Clear History + Geçmişi Temizle - Advanced - Gelişmiş + Clear History... + Geçmişi Temizle... - Style Sheet: - Style Sheet: + Do you want to clear the history? + Geçmişi temizlemek istiyor musunuz? + + + HistoryModel - Show only one close button instead of one for each tab - Her sekmede göstermek yerine tek bir kapatma düğmesi göster + Title + Başlık - Preferred languages for viewing webpages in: - Web sayfalarını gezinirken tercih edilecek dil: + Address + Adres + + + HistoryTreeModel - Block Popup Windows - Açılır Pencereleri Engelle + Earlier Today + Bugünden Önce - - Opening links - Bağlantıların açılması + + %n item(s) + + %n öğe + + + + JavaScriptEndorphinObject - Links that want to open in a new window: - Yeni pencerede açılması istenilen bağlantılar: + Welcome to Endorphin! + - In a new selected tab in the current window - Mevcut pencerede seçilmiş yeni bir sekmede + Endorphin Start + - In a new tab in the current window - Mevcut pencerede yeni bir sekmede + Search! + - In the current tab - Mevcut sekmede + Search the web with + - Http (Secure) - Http (Güvenli) + Search results provided by + - Http (Transparent) - Http (Transparent) + About Endorphin + + + + LanguageManager - Use ClickToFlash on flash plugins - Flash eklentilerinde ClickToFlash kullan + Choose language + Dil Seçiniz - Filter Tracking Cookies - Çerezleri Filtrele + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>İşletim sisteminin varsayılan dilinden<br>başka bir dil seçebilirsiniz.</p><p>Lütfen kullanılacak dili seçini</p> - Confirm when closing multiple tabs or windows - Birden çok pencere ve sekme kapatılırken doğrula + No translation files are installed at %1. + %1 konumunda herhangi bir dil dosyası bulunamadı. + + + OpenSearchDialog - Quit the application when last tab is closed - Son sekme kapatıldığında uygulamayı kapat + Open File + Dosya Aç - Enable network cache - Ağ önbelleğini etkinleştir + OpenSearch + OpenSearch - Maximum Size: - Azami Boyut: + Error + Hata - MB - MB + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 geçerli bir OpenSearch 1.1 açıklaması değil ya da zaten listenizde bulunuyor. - Use the default search engine as fallback when the URL given by the user is invalid - Girilen adres geçersizse varsayılan arama motoru ile arama yap + You must have at least one search engine in here. + Burada en az bir arama motoru olmalı. + + + OpenSearchEngineModel - Choose Directory... - Dizin Seç... + <strong>Description:</strong> %1 + <strong>Açıklama:</strong> %1 - A cookie session ends: - Çerez Oturumlarını Sil: + <strong>Provides contextual suggestions</strong> + <strong>İçeriksel öneriler sağlar</strong> - When I exit the application - Uygulama kapanınca + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + - 1 day - 1 gün sonra + Name + İsim - 2 days - 2 gün sonra + Keywords + Anahtar Kelimeler + + + OpenSearchManager - 3 days - 3 gün sonra + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Aşağıdaki motoru arama motoru listenize eklemek istiyor musunuz?<br /><br />İsim: %1<br />Şurada arar: %2 + + + PermissionBar - 7 days - 7 gün sonra + Allow + İzin Ver - 30 days - 30 gün sonra + Deny + - AutoFill - Otomatik Doldur + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - Formları Otomatik Doldur: + Not Found + Bulunamadı + + + QObject - User names and passwords - Kullanıcı adları ve parolalar + The file is not an XBEL version 1.0 file. + Dosya bir XBEL sürüm 1.0 dosyası değil. - Edit... - Düzenle... + Unknown title + Bilinmeyen başlık - Browse... - Gözat... + The file is not an OpenSearch 1.1 file. + Bu dosya bir OpenSearch 1.1 dosyası değil. - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Yeniden başlatmak gerekiyor - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Ağ önbelleği yapılandırması değişti. İşleme alınması için tarayıcının yeniden başlatılması gerekiyor. + Search + Ara + + + SettingsDialog Choose Directory Dizin Seç @@ -2170,18 +954,6 @@ Bu hataları görmezden gelmek istiyor musunuz?</qt> &Find &Bul - - Source of Page - Sayfanın Kaynağı - - - &View - &Görünüm - - - &Wrap lines - Satırları &kaydır - Source of Page %1 %1 Sayfasının Kaynağı @@ -2197,10 +969,6 @@ Bu hataları görmezden gelmek istiyor musunuz?</qt> Hide Tab Bar Sekme Çubuğunu Gizle - - New &Tab - Yeni Se&kme - Duplicate Tab Sekmeyi Kopyala @@ -2244,22 +1012,6 @@ Bu hataları görmezden gelmek istiyor musunuz?</qt> Recently Closed Tabs Yeni Kapatılan Sekmeler - - (Untitled) - (Başlıksız) - - - Do you really want to close this page? - Bu sayfayı gerçekten kapatmayı istiyor musunuz? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Bu sayfada düzenleme yaptınız ve eğer kapatırsanız tüm düzenlemelerinizi kaybedeceksiniz. -Bu sayfayı gerçekten kapatmayı istiyor musunuz? - - Untitled Başlıksız @@ -2280,10 +1032,6 @@ Bu sayfayı gerçekten kapatmayı istiyor musunuz? Loading... Yükleniyor... - - Loading %1% (%2 %3)... - Yükleniyor %1% (%2 %3)... - Finished loading Yükleme bitti @@ -2296,6 +1044,10 @@ Bu sayfayı gerçekten kapatmayı istiyor musunuz? Bookmark All Tabs Tüm Sekmeleri Yerimlerine Ekle + + Loading ... + + ToolbarSearch @@ -2315,14 +1067,6 @@ Bu sayfayı gerçekten kapatmayı istiyor musunuz? Suggestions Öneriler - - Add '%1' - %1 Ekle - - - Configure Search Engines... - Arama Motorlarını Yapılandır... - UserAgentMenu @@ -2343,37 +1087,6 @@ Bu sayfayı gerçekten kapatmayı istiyor musunuz? - - WebPage - - Error loading page: %1 - Sayfayı yüklerken hata: %1 - - - When connecting to: %1. - Bağlanırken: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - <b>www</b>.arora-browser.org yerine <b>ww</b>.arora-browser.org şeklindeki adres hatalarını kontrol edin - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Ağınız ya da bilgisayarınız güvenlik duvarı veya vekil sunucu ile korunuyorsa, tarayıcınızın ağ erişimine izin verildiğinden emin olunuz. - - - If the address is correct, try checking the network connection. - Adres doğruysa, ağ bağlantınızı kontrol etmeyi deneyin. - - - Resending POST request - POST isteği yeniden gönderiliyor - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Bu sayfayı göstermek için daha önce gerçekleştirilen eylemler (ör. arama emri ) tekrarlanacak ve bilgiler yeniden gönderilecek. Devam etmek istiyor musunuz ? - - WebView @@ -2424,38 +1137,6 @@ Bu sayfayı gerçekten kapatmayı istiyor musunuz? Search with... Şununla ara... - - Add to the toolbar search - Araç çubuğu aramasına ekle - - - Method not supported - Metod desteklenmiyor - - - %1 method is not supported. - method desteklenmiyor: %1 . - - - Search engine - Arama motoru - - - Choose the desired search engine - Kullanmak istediğiniz arama motorunu seçin - - - Engine name - Arama motoru adı - - - Type in a name for the engine - Arama motoru için bir ad belirtin - - - Block Image - Resimleri Engelle - WebViewSearch diff --git a/src/locale/uk.ts b/src/locale/uk.ts index 47ce2159..7803ceaa 100644 --- a/src/locale/uk.ts +++ b/src/locale/uk.ts @@ -3,10 +3,6 @@ AboutDialog - - About - Про програму - Authors Автори @@ -15,150 +11,10 @@ License Ліцензія - - Lightweight WebKit-based web browser - Легкий переглядач тенет, оснований на WebKit - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2008 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - Закрити - About %1 Про %1 - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - WebKit version: %1 - Версія WebKit: %1 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style="font-size:9pt;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - Мови - - - Languages: in order of preference: - Мови: в порядку застосування: - - - Move &Up - Перемістити &вище - - - Move &Down - Перемістити &нижче - - - &Remove - &Вилучити - - - Add... - Додати... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - AdBlockRule заборонив: %1 - - - - AdBlockDialog - - Add Custom Rule - Додати спеціальне правило - - - Learn more about writing rules... - Дізнатись детальніше щодо написання правил... - - - Update Subscription - Оновити підписку - - - Browse Subscriptions... - Переглянути підписки... - - - Remove Subscription - Вилучити підписку - - - AdBlock Configuration - Налаштування AdBlock - - - Enable AdBlock - Увімкнути AdBlock - - - Action - Дія - - - - AdBlockManager - - Custom Rules - Спеціальні правила - - - - AdBlockModel - - Rule - Правило - - - - AdBlockSchemeAccessHandler - - Subscribe? - Підписатись? - - - Subscribe to this AdBlock subscription? -%1 - Підписатись до цієї підписки AdBlock? -%1 - AddBookmarkDialog @@ -166,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark Закласти - - Type a name for the bookmark, and choose where to keep it. - Введіть назву закладки та виберіть куди її додати. - Url Посилання @@ -183,51 +35,6 @@ p, li { white-space: pre-wrap; } Додати теку - - AutoFillDialog - - Form Passwords - Форма паролів - - - Remove - Вилучити - - - Remove All - Вилучити всі - - - - AutoFillManager - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill pane of preferences. - <b>Бажаєте зберегти цей пароль?</b><br> Щоб переглядати і вилучати збережені паролі, відкрийте налаштування автоматичного заповнення. - - - Never for this site - Ніколи для цього сайта - - - Not now - Не зараз - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - Сайт - - - User Name - Ім'я користувача - - BookmarksDialog @@ -246,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder Нова тека - - Bookmarks - Закладки - - - &Remove - &Вилучити - - - Add Folder - Додати теку - Edit Name Редагувати назву @@ -287,10 +82,6 @@ p, li { white-space: pre-wrap; } Open File Відкрити файл - - XBEL (*.xbel *.xml) - XBEL (*.xbel *.xml) - Imported %1 %1 імпортована @@ -319,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark Вставити закладку - - Name Change - Зміна назви - - - Address Change - Зміна адреси - Bookmarks Bar Панель закладок @@ -335,19 +118,6 @@ p, li { white-space: pre-wrap; } Bookmarks Menu Меню закладок - - XBEL (*.xbel *.xml *.html) - XBEL (*.xbel *.xml *.html) - - - Error when loading html bookmarks: %1 - - Помилка під час завантаження закладки html: %1 - - - XBEL - XBEL - Name Change Undo bookmark title change @@ -370,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required Інструмент запиту htmlToXBel - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - Інструмент htmlToXBel, який поставляється з Arora і потрібний для імпорту закладок у HTML, не встановлено або недоступний в шляхах пошуку. - Loading Bookmark Завантаження закладки @@ -383,6 +149,10 @@ p, li { white-space: pre-wrap; } Помилка при завантажені закладок HTML: %1 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -404,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - Закладка - Open Відкрити @@ -428,17 +194,9 @@ p, li { white-space: pre-wrap; } Add Folder... Додати теку... - - Bookmarks - Закладки - BrowserApplication - - (Change: %1 %2) - (Змінити: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -450,12 +208,8 @@ Do you want to quit anyway? Невдале відновлення - The saved session will not be restored because Arora crashed while trying to restore this session. - Збережений сеанс не буде відновлена, оскільки Arora аварійно завершується при спробі відновити її. - - - Arora crashed while trying to restore this session. Should I try again? - Arora зазнала краху протягом відновлення цього сеансу. Спробувати ще раз? + Endorphin crashed while trying to restore this session. Should I try again? + @@ -488,14 +242,6 @@ Do you want to quit anyway? &Export Bookmarks... &Експортувати закладки... - - P&rint Preview... - &Попередній перегляд друку... - - - &Print... - &Друк... - Private &Browsing... П&риватне переглядання... @@ -540,10 +286,6 @@ Do you want to quit anyway? Find P&revious &Знайти попереднє - - Prefere&nces... - &Налаштування... - Ctrl+, Ctrl+, @@ -560,10 +302,6 @@ Do you want to quit anyway? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -576,18 +314,6 @@ Do you want to quit anyway? &Reload Page &Перезавантажити сторінку - - Make Text &Bigger - З&більшити шрифт - - - Make Text &Normal - &Звичайний шрифт - - - Make Text &Smaller - З&меншити шрифт - Page S&ource &Код сторінки @@ -624,10 +350,6 @@ Do you want to quit anyway? &Bookmarks &Закладки - - Manage Bookmarks... - Впорядкувати закладинки... - Add Bookmark... Закласти... @@ -658,10 +380,6 @@ Do you want to quit anyway? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - Ввімкнути Web &Inspector - &Help &Довідка @@ -674,10 +392,6 @@ Do you want to quit anyway? About &Qt Про &Qt - - About &Arora - Про &Arora - Navigation Навігація @@ -706,15 +420,6 @@ Do you want to quit anyway? Hide Bookmarks Bar Сховати панель закладок - - Arora - Arora - - - %1 - Arora - Page title and Browser name - %1 — Arora - Open Web Resource Відкрити ресурс тенет @@ -723,32 +428,14 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Ресурс тенет (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) - - Print Document - Надрукувати документ - Are you sure you want to turn on private browsing? Ви впевнені, що бажаєте ввімкнути приватне переглядання? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Коли приватне переглядання ввімкнене, деякі дії, що стосуються вашої приватності, будуть вимкнені:<ul><li> Сторінки тенет не додаються до журналу.</li><li> Елементи автоматично видаляються з вікна звантажень.</li><li> Нові коржики не зберігаються, поточні недоступні.</li><li> Піктограми сайтів не зберігаються, сесії не можуть бути збережені.</li><li> Пошуки не додаються до виринаючого меню в панелі пошуку.</li></ul>Поки ви не закриєте вікно, можете все ще напискати кнопки "Вперід" та "Назад", щоб повернутися до відкритих сторінок. - Are you sure you want to close the window? There are %1 tabs open Ви впевнені, що бажаєте закрити вікно? Відкрито %1 вкладок - - Web Inspector - Інспектор тенет - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - Інспектор тенет буде працювати правильно лише для сторінок, які завантажені після його вмикання. -Ви бажаєте перезавантажити всі сторінки? - Stop loading the current page Зупинити завантаження поточної сторінки @@ -761,15 +448,6 @@ Do you want to reload all pages? Downloads Звантаження - - Alt+Ctrl+L - Download Manager - Alt+Ctrl+L - - - Show &Network Monitor - Показати &монітор мережі - Close Window Закрити вікно @@ -803,10 +481,6 @@ Do you want to reload all pages? About Browser Про &%1 - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Якщо приватний перегляд увімкнено, деякі дії, що стосуються вашої приватності, будуть вимкнені:<ul><li> Сторінки тенет не додаються до історії.</li><li> Елементи автоматично вилучаються з вікна звантажень</li><li> Нові куки не зберігаються, до поточних немає доступу.</li><li> Піктограми сайтів не зберігатимуться, сесії не будуть збережені.</li><li> Пошуки не додані до виринаючого меню в панелі пошуку.</li></ul>Поки не закриєте вікно, ви все ще можете натискати кнопки „Назад“ та „Вперед“, щоб повернутись до сторінок, які ви відкривали. - Ctrl+Y Download Manager @@ -820,10 +494,6 @@ Do you want to reload all pages? Text Encoding Кодування тексту - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> Network cache is disabled.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Коли увімкнуто приватне переглядання, деякі дії стосовно вашої приватності будуть вимкнуті:<ul><li> Сторінки не реєструються в журналі.</li><li> Звантаження автоматично вилучатимуться зі списку.</li><li> Нові куки не зберігатимуться, поточні куки будуть недоступні.</li><li> Піктограми сайтів не зберігатимуться, сеанси також.</li><li> Пошуки не додаватимуться до виринного меню в коробці пошуку.</li><li> Мережевий кеш буде вимкнено.</li></ul>Допоки не закриті вікна, ви можете продовжувати натискати кнопки Назад і Вперед, щоб повертатись до сторінок, які ви повідкивали. - Select &All Вибрати в&се @@ -832,10 +502,6 @@ Do you want to reload all pages? Alt+Ctrl+B Alt+Ctrl+B - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> No new network cache is written to disk.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>Коли увімкнуто приватне переглядання, деякі дії стосовно вашої приватності будуть вимкнуті:<ul><li> Сторінки не реєструються в журналі.</li><li> Звантаження автоматично вилучатимуться зі списку.</li><li> Нові куки не зберігатимуться, поточні куки будуть недоступні.</li><li> Піктограми сайтів не зберігатимуться, сеанси також.</li><li> Пошуки не додаватимуться до виринного меню в коробці пошуку.</li><li> Мережевий кеш буде вимкнено.</li></ul>Допоки не закриті вікна, ви можете продовжувати натискати кнопки Назад і Вперед, щоб повертатись до сторінок, які ви повідкривали. - Options... Варіанти... @@ -844,10 +510,6 @@ Do you want to reload all pages? Configure Search Engines... Налаштувати рушії пошуку... - - &Ad Block... - &Ad Block... - When private browsing is turned on, some actions concerning your privacy will be disabled: Коли приватне переглядання ввімкнуто, деякі дії, стосовно ваших приватних вподобань, буде вимкнуто: @@ -860,10 +522,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. Пункти звантажень автоматично вилучаються з вікна звантажень. - - New cookies are not stored, current cookies can't be accessed. - Нові куки не зберігаються, і їх неможливо дозволити. - Site icons won't be stored. Піктограми сайтів не будуть зберігатись. @@ -904,6 +562,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -934,14 +597,6 @@ Do you want to reload all pages? &Search History Журнал п&ошуку - - &Cookies - &Куки - - - C&ached Web Pages - За&кешовані сторінки - Website &Icons &Піктограми сайтів @@ -956,1258 +611,329 @@ Do you want to reload all pages? - ClickToFlash - - Load - Завантажити - + DownloadDialog - Load All - Завантажити все + Downloads + Звантаження - Add %1 to Whitelist - Долучити %1 до рекомендаційного списку + Downloading %1 + + + + DownloadItem - Remove from Whitelist - Вилучити з рекомендаційного списку + Save File + Зберегти файл - Settings - Налаштування + Download canceled: %1 + Звантаження скасовано: %1 - Load Flash - Завантажити Flash + Error opening output file: %1 + Помилка відкриття вихідного файла: %1 - - - ClickToFlashSettings - Whitelist sites - Сайти, які рекомендовано до списку + Error saving: %1 + Помилка збереження: %1 - - - CookieExceptionsModel - Website - Сайт + Network Error: %1 + Помилка мережі: %1 - Rule - Правило + ? + ? - Allow - Дозволити + %1 of %2 (%3/sec) - %4 + %1 з %2 (%3/с) — %4 - Block - Заборонити + Download directory (%1) couldn't be created. + Неможливо створити теку звантаження (%1). - Allow For Session - Дозволити для сеансу + %1 of %2 - Download Complete + - CookieModel - - Website - Сайт + DownloadManager + + %n Download(s) + + %n звантаження + %n звантаження + %n звантажень + - Name - Назва + There are %1 downloads in progress +Do you want to quit anyway? + Звантажень в поступі: %1 +Бажаєте вийти попри все? - - Path - Шлях + + %n minutes remaining + + Залишилась %n хвилина + Залишилось %n хвилини + Залишилась %n хвилин + - - Secure - Безпечно + + %n seconds remaining + + Залишилась %n секунда + Залишилось %n секунди + Залишилось %n секунд + - Expires - Спливає + bytes + байт - Contents - Вміст + kB + кБ - true - так - - - false - ні - - - Session cookie - Сеанс куки - - - - CookiesDialog - - Cookies - Куки - - - &Remove - &Вилучити - - - Remove &All Cookies - Вилучити &всі куки - - - Add &Rule - Додати &правило - - - - CookiesExceptionsDialog - - Cookie Exceptions - Винятки куки - - - New Exception - Новий виняток - - - Domain: - Домен: - - - Block - Заборонити - - - Allow For Session - Дозволити для сеансу - - - Allow - Дозволити - - - Exceptions - Винятки - - - &Remove - &Вилучити - - - Remove &All - Вилучити &все - - - - Dialog - - Dialog - Діалог - - - Left: - Ліворуч: - - - Foo Bar Baz Arora LineEdit Manual Test This is the end - Foo Bar Baz Arora LineEdit Manual Test This is the end - - - Right: - Праворуч: - - - Empty: - Порожньо: - - - Foo Bar Baz Arora LineEdit Manual Test - Foo Bar Baz Arora LineEdit Manual Test - - - Widget - Віджет - - - Site Icon - Піктограма сайту - - - RSS - RSS - - - Bookmark - Закладинки - - - Position - Розміщення - - - Left - Ліворуч - - - Right - Праворуч - - - Add - Додати - - - Remove - Вилучити - - - Swap Visibility - Перемкнути видимість - - - Add ToolButton - Додати кнопку інструмента - - - - DownloadDialog - - Downloads - Звантаження - - - Clean up - Очистити - - - 0 Items - 0 пунктів - - - &OK - &Гаразд - - - Downloading %1 - - - - - DownloadItem - - Form - Форма - - - Ico - Піктограма - - - Filename - Назва файла - - - Try Again - Спробувати знову - - - Stop - Зупинити - - - Open - Відкрити - - - Save File - Зберегти файл - - - Download canceled: %1 - Звантаження скасовано: %1 - - - Error opening output file: %1 - Помилка відкриття вихідного файла: %1 - - - Error saving: %1 - Помилка збереження: %1 - - - Network Error: %1 - Помилка мережі: %1 - - - seconds - с - - - - %n minutes remaining - - - залишилась %n хвилина - - залишилось %n хвилини - - залишилось %n хвилин - - - - - %n seconds remaining - - - залишилась %n секунда - - залишилось %n секунди - - залишилось %n секунд - - - - %1 of %2 (%3/sec) %4 - %1 з %2 (%3/с) %4 - - - ? - ? - - - %1 of %2 - Stopped - %1 з %2 — Зупинено - - - bytes - байт - - - kB - кбайт - - - MB - Мбайт - - - %1 of %2 (%3/sec) - %4 - %1 з %2 (%3/с) — %4 - - - Download directory (%1) couldn't be created. - Неможливо створити теку звантаження (%1). - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n звантаження - %n звантаження - %n звантажень - - - - There are %1 downloads in progress -Do you want to quit anyway? - Звантажень в поступі: %1 -Бажаєте вийти попри все? - - - %n minutes remaining - - Залишилась %n хвилина - Залишилось %n хвилини - Залишилась %n хвилин - - - - %n seconds remaining - - Залишилась %n секунда - Залишилось %n секунди - Залишилось %n секунд - - - - bytes - байт - - - kB - кБ - - - MB - МБ - - - GB - ГБ - - - - FileAccessReply - - No Error - Без помилок - - - Error opening: %1: No such file or directory - Помилка відкриття: %1: Немає такого файла або теки - - - Unable to read %1 - Неможливо прочитати %1 - - - Contents of %1 - Зміст %1 - - - %1 KB - %1 КБ - - - Show Hidden Files - - - - - HistoryDialog - - Open - Відкрити - - - Copy - Копіювати - - - Delete - Вилучити - - - History - Журнал - - - &Remove - &Вилучити - - - Remove &All - Вилучити &все - - - - HistoryMenu - - Show All History - Показати всю історію - - - Clear History... - Очистити історію... - - - Clear History - Очистити історію - - - Do you want to clear the history? - Ви бажаєте очистити історію? - - - - HistoryModel - - Title - Заголовок - - - Address - Адреса - - - - HistoryTreeModel - - Earlier Today - Раніше сьогодні - - - %n item(s) - - %n елемент - %n елемента - %n елементів - - - - - JavaScriptAroraObject - - Welcome to Arora! - Ласкаво просимо до Arora! - - - Arora Start - Запуск Arora - - - Search! - Пошук! - - - Search results provided by - Результати пошуку надаються - - - About Arora - Про Arora - - - Search the web with - - - - - LanguageManager - - System locale (%1) %2 - Системна локаль (%1) %2 - - - Choose language - Вибрати мову - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>Ви можете працювати з іншою мовою,<br>що типово не є системною.</p><p>Будь ласка, виберіть мову, яку слід використовувати</p> - - - No translation files are installed. - Не встановлено файли перекладів. - - - No translation files are installed at %1. - Немає файлів перекладів у %1. - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>Введіть ім'я користувача та пароль для "%1" на %2</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>З'єднатись зі проксі "%1", використовуючи:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - Помилки SSL: - -%1 - -%2 - -Ви хочете нехтувати ці помилки? - - - Do you want to accept all these certificates? - Ви хочете прийняти всі ці сертифікати? - - - - SSL Errors - — помилки SSL - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>Помилки SSL:<br/><br/>для: <tt>%1</tt><ul><li>%2</li></ul> - -Ви бажаєте нехтувати цими помилками?</qt> - - - <qt>Certifactes:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Сертифікати:<br/>%1<br/>Ви хочете прийняти всі ці сертифікати?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>Сертифікати:<br/>%1<br/>Ви бажаєте дозволити всі оці сертифікати?</qt> - - - Issuer: %1 - Видавець: %1 - - - Not valid before: %1 - Неправильно перед: %1 - - - Valid until: %1 - Правильно допоки: %1 - - - Alternate Names: - Альтернативні назви: - - - - NetworkMonitor - - Name - Назва - - - Value - Значення - - - - NetworkMonitorDialog - - Network Monitor - Монітор мережі - - - Network Requests - Запити мережі - - - Request Headers - Заголовки запитів - - - Response Headers - Заголовки відповідей - - - &Remove - &Вилучити - - - Remove &All Requests - Вилучити &всі запити - - - - OpenSearchDialog - - Open File - Відкрити файл - - - OpenSearch - OpenSearch - - - Error - Помилка - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - %1 — не OpenSearch 1.1 або він вже є у вашому списку. - - - You must have at least one search engine in here. - Ви змушені мати тут щонайменше один рушій пошуку. - - - OpenSearch Manager - Керування OpenSearch - - - &Restore Defaults - &Відновити до типових - - - &Delete - В&илучити - - - &Add - &Додати - - - &Close - &Закрити - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - <strong>Опис:</strong> %1 - - - <strong>Provides contextual suggestions</strong> - <strong>Забезпечує контекстові поради</strong> - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - Список відокремлених комами ключових слів, які можна ввести для пошуку термінів з цим рушієм - - - Name - Назва - - - Keywords - Ключові слова - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - Ви бажаєте додати такий рушій пошуку до вашого списку?<br /><br />Назва: %1<br />Шукає в: %2 - - - - PasswordDialog - - Authentication Required - Необхідне засвідчення - - - DUMMY ICON - DUMMY ICON - - - INTRO TEXT DUMMY - INTRO TEXT DUMMY - - - Username: - Ім'я користувача: - - - Password: - Пароль: - - - - PlainTextEditSearch - - Not Found - Не знайдено - - - - ProxyDialog - - Proxy Authentication - Засвідчення на проксі - - - ICON - ICON - - - Connect to proxy - З'єднання з проксі - - - Username: - Ім'я користувача: - - - Password: - Пароль: - - - - QObject - - The file is not an XBEL version 1.0 file. - Це не файл XBEL версії 1.0. - - - Unknown title - Невідомий заголовок - - - The file is not an OpenSearch 1.1 file. - Це не файл OpenSearch 1.1. - - - - RequestModel - - Redirect: %1 - Перенаправлення: %1 - - - Method - Спосіб - - - Address - Адреса - - - Response - Відповідь - - - Length - Довжина - - - Content Type - Тип вмісту - - - Info - Інформація - - - - SearchBanner - - Form - Форма - - - TextLabel - ТекстоваМітка - - - < - < - - - > - > - - - Done - Виконано - - - Highlight All - Виділити все - - - - SearchLineEdit - - Search - Пошук - - - - Settings - - Preferences - Налаштування - - - General - Загальні - - - On startup: - При запуску: - - - Show my home page - Показувати мою домашню сторінку - - - Show a blank page - Показувати порожню сторінку - - - Restore windows and tabs from last time - Відновлювати попередні вікна і вкладки - - - Home Page: - Домашня сторінка: - - - Set to current page - Встановити поточну сторінку - - - Remove history items: - Вилучати з журналу: - - - After one day - Після однієї доби - - - After one week - Після одного тижня - - - After two weeks - Після двох тижнів - - - After one month - Після одного місяця - - - After one year - Після одного року - - - Manually - Вручну - - - On application exit - При виході з програми - - - Open links from applications: - Відкривати посилання з програм: - - - In a tab in the current window - У вкладці в поточному вікні - - - In a new window - У новому вікні - - - Downloads - Звантаження - - - Ask for a destination each time - Запитувати кожного разу, куди зберігати - - - Use this destination: - Використовувати це місце: - - - Appearance - Зовнішній вигляд - - - Standard font: - Звичайний шрифт: - - - Times 16 - Times 16 - - - Select... - Вибрати... - - - Fixed-width font: - Шрифт фіксованої ширини: - - - Courier 13 - Courier 13 - - - Privacy - Приватність - - - Web Content - Зміст тенет - - - Enable Plugins - Ввімкнути модулі - - - Enable Javascript - Ввімкнути Javascript - - - View Images - Переглянути зображення - - - Cookies - Куки - - - Accept Cookies: - Дозволяти куки: - - - Always - Завжди - - - Never - Ніколи - - - Only from sites you navigate to - Тільки для сайтів, які ви переглядаєте - - - Exceptions... - Винятки... - - - Keep Cookies Until: - Зберігати куки допоки: - - - They expire - Вони не застаріють - - - I exit the application - Я не вийду з програми - - - At most 90 days - Не більше 90 діб - - - Cookies... - Куки... - - - Tabs - Вкладки - - - Select tabs and windows as they are created - Вибрати вкладки та вікна щойно вони створені - - - Confirm when closing multiple tabs - Запитувати перед закриттям багатьох вкладок - - - Proxy - Проксі - - - Use proxy server - Використовувати проксі-сервер - - - Type: - Тип: + MB + МБ - Socks5 - Socks5 + GB + ГБ + + + HistoryDialog - Http - Http + Open + Відкрити - Host name: - Назва хосту: + Copy + Копіювати - Port: - Порт: + Delete + Вилучити + + + HistoryMenu - User Name: - Ім'я користувача: + Show All History + Показати всю історію - Password: - Пароль: + Clear History... + Очистити історію... - Advanced - Додатково + Clear History + Очистити історію - Style Sheet: - Шаблон стилю: + Do you want to clear the history? + Ви бажаєте очистити історію? + + + HistoryModel - Show only one close button instead of one for each tab - Показувати тільки одну кнопку для закривання, замість по одній на кожній вкладці + Title + Заголовок - Preferred languages for viewing webpages in: - Бажана мова для перегляду сторінок тенет у: + Address + Адреса + + + HistoryTreeModel - Block Popup Windows - Заборонити виринні вікна + Earlier Today + Раніше сьогодні - - Opening links - Відкриття посилань + + %n item(s) + + %n елемент + %n елемента + %n елементів + + + + JavaScriptEndorphinObject - Links that want to open in a new window: - Посилання, які бажаєте відкрити у новому вікні: + Welcome to Endorphin! + - In a new selected tab in the current window - У новій вибраній вкладці поточного вікна + Endorphin Start + - In a new tab in the current window - У новій вкладці поточного вікна + Search! + - In the current tab - У поточній вкладці + Search the web with + - Http (Secure) - Http (безпечне) + Search results provided by + - Http (Transparent) - Http (прозоре) + About Endorphin + + + + LanguageManager - Use ClickToFlash on flash plugins - Використовувати ClickToFlash для модулів Flash + Choose language + Вибрати мову - Filter Tracking Cookies - Фільтр відстежування кук + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>Ви можете працювати з іншою мовою,<br>що типово не є системною.</p><p>Будь ласка, виберіть мову, яку слід використовувати</p> - Confirm when closing multiple tabs or windows - Запитувати перед закриттям багатьох вкладок і вікон + No translation files are installed at %1. + Немає файлів перекладів у %1. + + + OpenSearchDialog - Quit the application when last tab is closed - Вимкнути програму, коли остання вкладка закрита + Open File + Відкрити файл - Enable network cache - Увімкнути мережевий кеш + OpenSearch + OpenSearch - Maximum Size: - Максимальний розмір: + Error + Помилка - MB - МБ + %1 is not a valid OpenSearch 1.1 description or is already on your list. + %1 — не OpenSearch 1.1 або він вже є у вашому списку. - Use the default search engine as fallback when the URL given by the user is invalid - Використовувати типовий рушій пошуку для помилкових посилань, котрі вводить користувач + You must have at least one search engine in here. + Ви змушені мати тут щонайменше один рушій пошуку. + + + OpenSearchEngineModel - Choose Directory... - Вибрати теку... + <strong>Description:</strong> %1 + <strong>Опис:</strong> %1 - A cookie session ends: - Сеанс куки закінчився: + <strong>Provides contextual suggestions</strong> + <strong>Забезпечує контекстові поради</strong> - When I exit the application - Коли я виходжу з програми + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine + Список відокремлених комами ключових слів, які можна ввести для пошуку термінів з цим рушієм - 1 day - 1 день + Name + Назва - 2 days - 2 дні + Keywords + Ключові слова + + + OpenSearchManager - 3 days - 3 дні + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + Ви бажаєте додати такий рушій пошуку до вашого списку?<br /><br />Назва: %1<br />Шукає в: %2 + + + PermissionBar - 7 days - 7 днів + Allow + Дозволити - 30 days - 30 днів + Deny + - AutoFill - Автоматичне заповнення + %1 wants to %2. + + + + PlainTextEditSearch - AutoFill web forms: - Автоматичне заповнення форм у тенетах: + Not Found + Не знайдено + + + QObject - User names and passwords - Псевдоніми і паролі користувача + The file is not an XBEL version 1.0 file. + Це не файл XBEL версії 1.0. - Edit... - Правка... + Unknown title + Невідомий заголовок - Browse... - Огляд... + The file is not an OpenSearch 1.1 file. + Це не файл OpenSearch 1.1. - Enable access keys + use desktop notifications - Use this external download program: + use your position - Choose Program... + use your microphone - Minimum Font size: + use your camera - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + use your camera and microphone - Persistent Data Storage + lock your mouse - SettingsDialog - - Restart required - Потрібно перезапустити - + SearchLineEdit - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - Налаштування мережевого кеша змінено. Але переглядач потрібно перезапустити, щоб налаштування набрали чинності. + Search + Пошук + + + SettingsDialog Choose Directory Вибрати теку @@ -2235,18 +961,6 @@ Do you want to ignore these errors?</qt> &Find &Знайти - - Source of Page - Код сторінки - - - &View - &Переглянути - - - &Wrap lines - &Перенести рядки - Source of Page %1 Код сторінки %1 @@ -2262,10 +976,6 @@ Do you want to ignore these errors?</qt> Hide Tab Bar Сховати панель вкладок - - New &Tab - Нова &вкладка - Duplicate Tab Дублювати вкладку @@ -2313,18 +1023,6 @@ Do you want to ignore these errors?</qt> Untitled Без назви - - Do you really want to close this page? - Ви справді бажаєте закрити цю сторінку? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - Ви змінили цю сторінку і коли закриєте її, втратите зміни. -Ви справді бажаєте закрити цю сторінку? - - Ctrl-] Ctrl-] @@ -2341,10 +1039,6 @@ Do you really want to close this page? Loading... Завантажується... - - Loading %1% (%2 %3)... - Завантажується %1% (%2 %3)... - Finished loading Завантаження закінчилось @@ -2357,6 +1051,10 @@ Do you really want to close this page? Bookmark All Tabs Закласти всі вкладки + + Loading ... + + ToolbarSearch @@ -2376,14 +1074,6 @@ Do you really want to close this page? Suggestions Поради - - Add '%1' - Додати '%1' - - - Configure Search Engines... - Налаштувати рушії пошуку... - UserAgentMenu @@ -2404,37 +1094,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - Помилка під час завантаження сторінки: %1 - - - When connecting to: %1. - Коли з'єднуємся з: %1. - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - Перевірте адресу на помилки такі, як <b>ww</b>.arora-browser.org замість <b>www</b>.arora-browser.org - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - Якщо ваш комп'ютер або мережа захищена вогняною стінкою(firewall) або проксі, впевніться, що переглядачеві дозволений доступ до мережі. - - - If the address is correct, try checking the network connection. - Якщо адреса правильна, спробуйте перевірити з'єднання з мережею. - - - Resending POST request - Повторне передавання запиту POST - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - Для того, щоб показати сайт, запит всіх даних потрібно відправити ще раз, що може призвести до несподіваної поведінки сайта, наприклад, ті самі дії виконаються ще раз.Бажаєте продовжити попри все? - - WebView @@ -2485,38 +1144,6 @@ Do you really want to close this page? Search with... Шукати з... - - Add to the toolbar search - Додати до панелі інструментів пошуку - - - Method not supported - Спосіб не підтримується - - - %1 method is not supported. - Спосіб %1 не підтримується. - - - Search engine - Рушій пошуку - - - Choose the desired search engine - Вибрати потрібний рушій пошуку - - - Engine name - Назва рушія - - - Type in a name for the engine - Введіть назву для рушія - - - Block Image - Заборонити зображення - WebViewSearch @@ -2525,11 +1152,4 @@ Do you really want to close this page? Не знайдено - - tst_SearchLineEdit - - Search - Пошук - - diff --git a/src/locale/zh_CN.ts b/src/locale/zh_CN.ts index cf414a89..8754416e 100644 --- a/src/locale/zh_CN.ts +++ b/src/locale/zh_CN.ts @@ -3,10 +3,6 @@ AboutDialog - - About - 关于 - Authors 作者 @@ -15,129 +11,10 @@ License 许可证 - - Lightweight WebKit-based web browser - 轻快的浏览器-基于Webkit - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - - Close - 关闭 - About %1 - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - - - AcceptLanguage - - Languages - - - - Languages: in order of preference: - - - - Move &Up - - - - Move &Down - - - - &Remove - 移除(&R) - - - Add... - - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - 规则 - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -145,10 +22,6 @@ p, li { white-space: pre-wrap; } Add Bookmark 添加书签 - - Type a name for the bookmark, and choose where to keep it. - 请输入书签名,并选择保存位置 - Url @@ -162,47 +35,6 @@ p, li { white-space: pre-wrap; } 添加文件夹 - - AutoFillDialog - - Form Passwords - - - - Remove - - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - - BookmarksDialog @@ -221,18 +53,6 @@ p, li { white-space: pre-wrap; } New Folder 新建文件夹 - - Bookmarks - 书签 - - - &Remove - 移除(&R) - - - Add Folder - 添加文件夹 - Edit Name @@ -290,14 +110,6 @@ p, li { white-space: pre-wrap; } Insert Bookmark 插入书签 - - Name Change - 名字变更 - - - Address Change - 地址变更 - Bookmarks Bar @@ -328,10 +140,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - - Loading Bookmark @@ -341,6 +149,10 @@ p, li { white-space: pre-wrap; } + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -362,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmark - 书签 - Open 打开 @@ -386,17 +194,9 @@ p, li { white-space: pre-wrap; } Add Folder... - - Bookmarks - 书签 - BrowserApplication - - (Change: %1 %2) - (变更: %1 %2) - There are %1 windows and %2 tabs open Do you want to quit anyway? @@ -408,11 +208,7 @@ Do you want to quit anyway? 恢复失败 - The saved session will not be restored because Arora crashed while trying to restore this session. - 保存的会话不会恢复,因为Arora在尝试恢复该会话时已崩溃。 - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -446,14 +242,6 @@ Do you want to quit anyway? &Export Bookmarks... 导出书签(&E)... - - P&rint Preview... - 打印预览(&P)... - - - &Print... - 打印(&P)... - Private &Browsing... 隐私浏览(&B)... @@ -498,10 +286,6 @@ Do you want to quit anyway? Find P&revious 查找前一个(&r) - - Prefere&nces... - 选项(&r)... - Ctrl+, @@ -530,18 +314,6 @@ Do you want to quit anyway? &Reload Page 重新加载页面(&R) - - Make Text &Bigger - 字体放大(&B) - - - Make Text &Normal - 普通字体(&N) - - - Make Text &Smaller - 字体缩小(&S) - Page S&ource 页面源码(&o) @@ -578,10 +350,6 @@ Do you want to quit anyway? &Bookmarks 标签(&B) - - Manage Bookmarks... - 管理标签... - Add Bookmark... 添加标签... @@ -612,10 +380,6 @@ Do you want to quit anyway? Clear Private Data - - Enable Web &Inspector - 允许Web &Inspector - &Help 帮助(&H) @@ -628,10 +392,6 @@ Do you want to quit anyway? About &Qt 关于&Qt - - About &Arora - 关于&Arora - Navigation 导航 @@ -660,11 +420,6 @@ Do you want to quit anyway? Hide Bookmarks Bar 隐藏标签栏 - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource 打开Web资源 @@ -673,32 +428,14 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) Web资源 (*.html *.htm *.svg *.png *.gif *.svgz);;所有文件 (*.*) - - Print Document - 打印文档 - Are you sure you want to turn on private browsing? 是否确认打开隐私浏览? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not addded to the pop-up menu in the search box.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>当开启隐私浏览时,关于你的某些隐私动作不会被记录:<ul><li> 页面不会被添加到历史中。</li><li>下载项会自动从下载窗口移除。 </li><li> 新的cookies不会被存储,当前的cookies也不会被访问。</li><li>站点图标不会被存储,会话也不会被保存。 </li><li>搜索动作不会被添加到搜索框的弹出菜单中。</li></ul>在关闭窗口之前,你可以一直通过点击后退和前进按钮来浏览已打开过的页面。 - Are you sure you want to close the window? There are %1 tabs open 是否确认关闭窗口?还有%1个标签打开着 - - Web Inspector - - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - web inspector只在页面被允许且被加载后才能正常运行。 -希望重新加载所有页面吗? - Stop loading the current page 停止加载当前页面 @@ -773,10 +510,6 @@ Do you want to reload all pages? Configure Search Engines... - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -789,10 +522,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -833,6 +562,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -863,14 +597,6 @@ Do you want to reload all pages? &Search History 搜索历史(&S) - - &Cookies - - - - C&ached Web Pages - 缓存的页面(&a) - Website &Icons 网站图标(&I) @@ -885,1074 +611,320 @@ Do you want to reload all pages? - ClickToFlash - - Load - - + DownloadDialog - Load All - + Downloads + 下载 - Add %1 to Whitelist + Downloading %1 + + + DownloadItem - Remove from Whitelist - + Save File + 保存文件 - Settings - + Download canceled: %1 + 下载取消: %1 - Load Flash - + Error opening output file: %1 + 打开输出文件出错: %1 - - - ClickToFlashSettings - Whitelist sites - + Error saving: %1 + 保存出错: %1 - - - CookieExceptionsModel - Website - 网站 + Network Error: %1 + 网络出错: %1 - Rule - 规则 + ? + - Allow - 允许 + %1 of %2 (%3/sec) - %4 + - Block - 阻挡 + Download directory (%1) couldn't be created. + - Allow For Session - 会话中允许 + %1 of %2 - Download Complete + - CookieModel - - Website - 网站 + DownloadManager + + %n Download(s) + + %n 下载 + - Name - 名字 + There are %1 downloads in progress +Do you want to quit anyway? + - - Path - 路径 + + %n minutes remaining + + + - - Secure - 安全 + + %n seconds remaining + + + - Expires - 失效 + bytes + 字节 - Contents - 内容 + kB + - true - + MB + - false - - - - Session cookie - - - - - CookiesDialog - - Cookies - - - - &Remove - 移除(&R) - - - Remove &All Cookies - 移除所有Cookies(&A) - - - Add &Rule - - - - - CookiesExceptionsDialog - - Cookie Exceptions - Cookie例外 - - - New Exception - 新建例外 - - - Domain: - 域: - - - Block - 阻挡 - - - Allow For Session - 会话中允许 - - - Allow - 允许 - - - Exceptions - 例外 - - - &Remove - 移除(&R) - - - Remove &All - 移除所有(&A) - - - - DownloadDialog - - Downloads - 下载 - - - Clean up - 清除 - - - 0 Items - 0项 - - - Downloading %1 - - - - - DownloadItem - - Form - 表单 - - - Ico - - - - Filename - 文件名 - - - Try Again - 重新尝试 - - - Stop - 停止 - - - Open - 打开 - - - Save File - 保存文件 - - - Download canceled: %1 - 下载取消: %1 - - - Error opening output file: %1 - 打开输出文件出错: %1 - - - Error saving: %1 - 保存出错: %1 - - - Network Error: %1 - 网络出错: %1 - - - seconds - - - - - %n minutes remaining - - - 还有 %n 分钟 - - - - - %n seconds remaining - - - 还有 %n 秒 - - - - %1 of %2 (%3/sec) %4 - %1 of %2 (%3/秒) %4 - - - ? - - - - %1 of %2 - Stopped - %1 of %2 - 停止 - - - bytes - 字节 - - - %1 of %2 (%3/sec) - %4 - - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - %n Download(s) - - %n 下载 - - - - There are %1 downloads in progress -Do you want to quit anyway? - - - - %n minutes remaining - - - - - - %n seconds remaining - - - - - - bytes - 字节 - - - kB - - - - MB - - - - GB - - - - - FileAccessReply - - No Error - - - - Error opening: %1: No such file or directory - - - - Unable to read %1 - - - - Contents of %1 - - - - %1 KB - - - - Show Hidden Files - - - - - HistoryDialog - - Open - 打开 - - - Copy - 复制 - - - Delete - 删除 - - - History - 历史 - - - &Remove - 移除(&R) - - - Remove &All - 移除所有(&A) - - - - HistoryMenu - - Show All History - 显示所有历史 - - - Clear History... - 清除历史... - - - Clear History - 清除历史 - - - Do you want to clear the history? - 希望清除历史吗? - - - - HistoryModel - - Title - 标题 - - - Address - 地址 - - - - HistoryTreeModel - - Earlier Today - 早些时候 - - - %n item(s) - - %n 项 - - - - - JavaScriptAroraObject - - Welcome to Arora! - - - - Arora Start - - - - Search! - - - - Search results provided by - - - - About Arora - - - - Search the web with - - - - - LanguageManager - - Default - 缺省 - - - Choose language - 选择语言 - - - <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> - <p>你可以运行在其它语言环境下<br>而不采用操作系统所缺省的语言环境</p><p>请选择应该使用的语言环境</p> - - - No translation files are installed at %1. - - - - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>为 "%1" 在 %2 输入用户名和密码</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>连接到代理 "%1" 使用:</qt> - - - SSL Errors: - -%1 - -%2 - -Do you want to ignore these errors? - SSL 错误:%1%2希望忽略该错误吗? - - - Do you want to accept all these certificates? - 确认接受所有证书吗? - - - - SSL Errors - - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - - - - Issuer: %1 - - - - Not valid before: %1 - - - - Valid until: %1 - - - - Alternate Names: - - - - - NetworkMonitor - - Name - 名字 - - - - NetworkMonitorDialog - - &Remove - 移除(&R) - - - - OpenSearchDialog - - Open File - 打开文件 - - - OpenSearch - - - - Error - - - - %1 is not a valid OpenSearch 1.1 description or is already on your list. - - - - You must have at least one search engine in here. - - - - OpenSearch Manager - - - - &Restore Defaults - - - - &Delete - - - - &Add - - - - &Close - - - - - OpenSearchEngineModel - - <strong>Description:</strong> %1 - - - - <strong>Provides contextual suggestions</strong> - - - - Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - - - - Name - 名字 - - - Keywords - - - - - OpenSearchManager - - Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 - - - - - PasswordDialog - - Authentication Required - 需要验证 - - - DUMMY ICON - - - - INTRO TEXT DUMMY - - - - Username: - 用户名: - - - Password: - 密码: - - - - PlainTextEditSearch - - Not Found - 未找到 - - - - ProxyDialog - - Proxy Authentication - 代理验证 - - - Connect to proxy - 连接到代理 - - - Username: - 用户名: - - - Password: - 密码: - - - - QObject - - The file is not an XBEL version 1.0 file. - 该文件不是版本为1.0的XBEL文件 - - - Unknown title - 未知文件 - - - The file is not an OpenSearch 1.1 file. - - - - - RequestModel - - Address - 地址 - - - - SearchBanner - - Form - 表单 - - - TextLabel - 文本标签 - - - Done - 完成 - - - Highlight All - - - - - SearchLineEdit - - Search - 搜索 - - - - Settings - - Preferences - 选项 - - - General - 常规 - - - On startup: - 启动时: - - - Show my home page - 显示我的主页 - - - Show a blank page - 显示空白页 - - - Restore windows and tabs from last time - 恢复最后一次的窗口和标签 - - - Home Page: - 主页: - - - Set to current page - 设置为当前页面 - - - Remove history items: - 移除历史项: - - - After one day - 一天后 - - - After one week - 一周后 - - - After two weeks - 两周后 - - - After one month - 一个月后 - - - After one year - 一年后 - - - Manually - 手工 - - - On application exit - 应用退出 - - - Open links from applications: - 从应用程序打开链接: - - - In a tab in the current window - 在当前窗口的标签中 - - - In a new window - 在新窗口中 - - - Downloads - 下载 - - - Ask for a destination each time - 每次均询问目的地 - - - Use this destination: - 使用该目的地: - - - Appearance - 外观 - - - Standard font: - 标准字体: - - - Select... - 选择... - - - Fixed-width font: - 定宽字体: - - - Privacy - 隐私 - - - Web Content - Web内容 - - - Enable Plugins - 允许插件 - - - Enable Javascript - 允许Javascript - - - View Images - 查看图片 - - - Cookies - - - - Accept Cookies: - 接受Cookies: - - - Always - 总是 - - - Never - 从不 - - - Only from sites you navigate to - 只允许从浏览过的站点 - - - Exceptions... - 例外... - - - Keep Cookies Until: - 保持Cookies直到: - - - They expire - 它们失效 - - - I exit the application - 退出应用程序 - - - At most 90 days - 最多90天 - - - Cookies... - - - - Tabs - 标签 - - - Select tabs and windows as they are created - 在标签和窗口被创建后选择它们 - - - Confirm when closing multiple tabs - 关闭多个标签时进行确认 - - - Proxy - 代理 - - - Use proxy server - 使用代理服务器 + GB + + + + HistoryDialog - Type: - 类型: + Open + 打开 - Socks5 - + Copy + 复制 - Host name: - 主机名: + Delete + 删除 + + + HistoryMenu - Port: - 端口: + Show All History + 显示所有历史 - User Name: - 用户名: + Clear History... + 清除历史... - Password: - 密码: + Clear History + 清除历史 - Advanced - 高级 + Do you want to clear the history? + 希望清除历史吗? + + + HistoryModel - Style Sheet: - 样式表: + Title + 标题 - Show only one close button instead of one for each tab - 只显示一个关闭按钮,而不是在每个标签上都显示一个关闭按钮 + Address + 地址 + + + HistoryTreeModel - Preferred languages for viewing webpages in: - + Earlier Today + 早些时候 - - Block Popup Windows - + + %n item(s) + + %n 项 + + + + JavaScriptEndorphinObject - Opening links + Welcome to Endorphin! - Links that want to open in a new window: + Endorphin Start - In a new selected tab in the current window + Search! - In a new tab in the current window + Search the web with - In the current tab + Search results provided by - Http (Secure) + About Endorphin + + + LanguageManager - Http (Transparent) - + Choose language + 选择语言 - Use ClickToFlash on flash plugins - + <p>You can run with a different language than<br>the operating system default.</p><p>Please choose the language which should be used</p> + <p>你可以运行在其它语言环境下<br>而不采用操作系统所缺省的语言环境</p><p>请选择应该使用的语言环境</p> - Filter Tracking Cookies + No translation files are installed at %1. + + + OpenSearchDialog - Confirm when closing multiple tabs or windows - + Open File + 打开文件 - Quit the application when last tab is closed + OpenSearch - Enable network cache + Error - Maximum Size: + %1 is not a valid OpenSearch 1.1 description or is already on your list. - MB + You must have at least one search engine in here. + + + OpenSearchEngineModel - Use the default search engine as fallback when the URL given by the user is invalid + <strong>Description:</strong> %1 - Choose Directory... + <strong>Provides contextual suggestions</strong> - A cookie session ends: + Comma-separated list of keywords that may be entered in the location barfollowed by search terms to search with this engine - When I exit the application - + Name + 名字 - 1 day + Keywords + + + OpenSearchManager - 2 days + Do you want to add the following engine to your list of search engines?<br /><br />Name: %1<br />Searches on: %2 + + + PermissionBar - 3 days - + Allow + 允许 - 7 days + Deny - 30 days + %1 wants to %2. + + + PlainTextEditSearch - AutoFill - + Not Found + 未找到 + + + QObject - AutoFill web forms: - + The file is not an XBEL version 1.0 file. + 该文件不是版本为1.0的XBEL文件 - User names and passwords - + Unknown title + 未知文件 - Edit... + The file is not an OpenSearch 1.1 file. - Browse... + use desktop notifications - Enable access keys + use your position - Use this external download program: + use your microphone - Choose Program... + use your camera - Minimum Font size: + use your camera and microphone - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + 搜索 SettingsDialog - - Restart required - - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - - Choose Directory @@ -1980,18 +952,6 @@ Do you want to ignore these errors?</qt> &Find 查找(&F) - - Source of Page - 页面源码 - - - &View - 查看(&V) - - - &Wrap lines - 折叠行(&W) - Source of Page %1 @@ -2007,10 +967,6 @@ Do you want to ignore these errors?</qt> Hide Tab Bar 隐藏标签栏 - - New &Tab - 新标签页(&T) - Duplicate Tab 复制标签 @@ -2058,16 +1014,6 @@ Do you want to ignore these errors?</qt> Untitled 无标题 - - Do you really want to close this page? - 确认关闭该页面? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - 页面已被修改,如果关闭,将丢失所有修改。确认关闭该页面? - Ctrl-] @@ -2084,10 +1030,6 @@ Do you really want to close this page? Loading... 加载... - - Loading %1% (%2 %3)... - - Finished loading @@ -2100,6 +1042,10 @@ Do you really want to close this page? Bookmark All Tabs + + Loading ... + + ToolbarSearch @@ -2119,10 +1065,6 @@ Do you really want to close this page? Suggestions - - Add '%1' - - UserAgentMenu @@ -2143,45 +1085,6 @@ Do you really want to close this page? - - WebPage - - Error loading page: %1 - 加载页面出错: %1 - - - When connecting to: %1. - 当连接至:%1 - - - Check the address for errors such as <b>ww</b>.trolltech.com instead of <b>www</b>.trolltech.com. - 检查地址是否错误,比如输入的是 <b>ww</b>.trolltech.com 而不是 <b>www</b>.trolltech.com. - - - If the address is correct, try to check the network connection. - 如果地址正确,那么请检查网络是否连接。 - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - 如果计算机或网络被防火墙或代理所保护,请确认浏览器被允许访问网络。 - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - - - - If the address is correct, try checking the network connection. - - - - Resending POST request - - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - - - WebView @@ -2232,38 +1135,6 @@ Do you really want to close this page? Search with... - - Add to the toolbar search - - - - Method not supported - - - - %1 method is not supported. - - - - Search engine - - - - Choose the desired search engine - - - - Engine name - - - - Type in a name for the engine - - - - Block Image - - WebViewSearch diff --git a/src/locale/zh_TW.ts b/src/locale/zh_TW.ts index 54c79020..ec3df7de 100644 --- a/src/locale/zh_TW.ts +++ b/src/locale/zh_TW.ts @@ -15,141 +15,6 @@ License 授權書 - - Lightweight WebKit-based web browser - 基於 WebKit 的輕量級瀏覽器 - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">版權所有 © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - - - <a href="http://arora-browser.org">http://arora-browser.org</a> - <a href="http://arora-browser.org">http://arora-browser.org</a> - - - Close - 關閉 - - - WebKit version: %1 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright © 2007-2010 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-size:9pt;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">版權所有 © 2007-2009 Aaron Dewes &lt;<a href="mailto:aaron.dewes@web.de"><span style=" text-decoration: underline; color:#0057ae;">aaron.dewes@web.de</span></a>&gt;</p></body></html> {3C?} {4.0/?} {3.?} {40/?} {1"?} {9p?} {0p?} {0p?} {0p?} {0p?} {0;?} {0p?} {2007-2010 ?} {0057a?} - - - - AcceptLanguage - - Languages - 語言 - - - Languages: in order of preference: - 語言:偏好順序: - - - Move &Up - 移上(&U) - - - Move &Down - 移下(&D) - - - &Remove - 移除(&R) - - - Add... - 加入... - - - - AdBlockBlockedNetworkReply - - Blocked by AdBlockRule: %1 - - - - - AdBlockDialog - - Add Custom Rule - - - - Learn more about writing rules... - - - - Update Subscription - - - - Browse Subscriptions... - - - - Remove Subscription - - - - AdBlock Configuration - - - - Enable AdBlock - - - - Action - - - - - AdBlockManager - - Custom Rules - - - - - AdBlockModel - - Rule - 規則 - - - - AdBlockSchemeAccessHandler - - Subscribe? - - - - Subscribe to this AdBlock subscription? -%1 - - AddBookmarkDialog @@ -169,51 +34,6 @@ p, li { white-space: pre-wrap; } Add Bookmark 加入書籤 - - Type a name for the bookmark, and choose where to keep it. - 輸入書籤的名稱,或是選擇它要放在那裡。 - - - - AutoFillDialog - - Form Passwords - - - - Remove - 移除 - - - Remove All - - - - - AutoFillManager - - Never for this site - - - - Not now - - - - <b>Would you like to save this password?</b><br> To review passwords you have saved and remove them, open the AutoFill panel of preferences. - - - - - AutoFillModel - - WebSite - - - - User Name - - BookmarksDialog @@ -241,18 +61,6 @@ p, li { white-space: pre-wrap; } New Folder 新增資料夾 - - Bookmarks - 書籤 - - - &Remove - 移除(&R) - - - Add Folder - 加入資料夾 - BookmarksManager @@ -294,10 +102,6 @@ p, li { white-space: pre-wrap; } htmlToXBel tool required 需要 htmlToXBel 工具 - - htmlToXBel tool, which is shipped with Arora and is needed to import HTML bookmarks, is not installed or not available in the search paths. - htmlToXBel 工具,附於 Arora 中,用作匯入 HTML 書籤,但是卻沒有安裝或是在路徑中找不到。 - Loading Bookmark 正在載入書籤 @@ -345,6 +149,10 @@ p, li { white-space: pre-wrap; } Undo bookmark url change 網址變更 + + htmlToXBel tool, which is shipped with Endorphin and is needed to import HTML bookmarks, is not installed or not available in the search paths. + + BookmarksMenu @@ -366,10 +174,6 @@ p, li { white-space: pre-wrap; } BookmarksToolBar - - Bookmarks - 書籤 - Open 開啟 @@ -404,11 +208,7 @@ Do you want to quit anyway? 回復失敗 - The saved session will not be restored because Arora crashed while trying to restore this session. - 已儲存的階段不能回復;因為當 Arora 嘗試回復該階段時發生錯誤。 - - - Arora crashed while trying to restore this session. Should I try again? + Endorphin crashed while trying to restore this session. Should I try again? @@ -446,14 +246,6 @@ Do you want to quit anyway? &Export Bookmarks... 匯出書籤(&E)... - - P&rint Preview... - 預覽列印(&R)... - - - &Print... - 列印(&P)... - Private &Browsing... 私密瀏覽(&B)... @@ -502,10 +294,6 @@ Do you want to quit anyway? Find P&revious 找上一個(&R) - - Prefere&nces... - 偏好設定(&N)... - Ctrl+, Ctrl+, @@ -518,10 +306,6 @@ Do you want to quit anyway? Ctrl+| Ctrl+| - - Shift+Ctrl+B - Shift+Ctrl+B - Ctrl+/ Ctrl+/ @@ -632,10 +416,6 @@ Do you want to quit anyway? Clear Private Data Ctrl+Shift+Delete - - Enable Web &Inspector - 啟用網頁檢閱器(&I) - &Help 說明(&H) @@ -681,11 +461,6 @@ Do you want to quit anyway? Hide Bookmarks Bar 隱藏書籤列 - - %1 - Arora - Page title and Browser name - %1 - Arora - Open Web Resource 開啟網頁資源 @@ -694,32 +469,14 @@ Do you want to quit anyway? Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) 開啟網頁資源 (*.html *.htm *.svg *.png *.gif *.svgz);;所有檔案 (*.*) - - Print Document - 列印文件 - Are you sure you want to turn on private browsing? 您確定要啟用私密瀏覽? - - <b>%1</b><br><br>When private browsing is turned on, some actions concerning your privacy will be disabled:<ul><li> Webpages are not added to the history.</li><li> Items are automatically removed from the Downloads window.</li><li> New cookies are not stored, current cookies can't be accessed.</li><li> Site icons won't be stored, session won't be saved.</li><li> Searches are not added to the pop-up menu in the search box.</li><li> Network cache is disabled.</li></ul>Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. - <b>%1</b><br><br>當啟用私密瀏覽後,一些關於私隱的功能將會被停用:<ul><li> 網頁不會加入歷史記錄中。</li><li> 項目會自動從下載視窗中移除。</li><li> 不會儲存新的 cookie,亦不會存取目前的 cookie。</li><li> 網站的圖示不會儲存,階段不會儲存。</li><li>搜尋不會加入到搜尋方塊中的彈出式選單。</li><li> 網路快取已被停用。</li></ul>當你關閉視窗時,您仍可按上一頁及下一頁來回到您剛才開啟的網頁。 - Are you sure you want to close the window? There are %1 tabs open 您確定要關閉視窗?還有 %1 個分頁正在開啟 - - Web Inspector - 網頁檢閱器 - - - The web inspector will only work correctly for pages that were loaded after enabling. -Do you want to reload all pages? - 網頁檢閱器只會在啟用後載入的網頁才會生效。 -您要重新載入全部網頁嗎? - Stop loading the current page 停止載入目前的網頁 @@ -753,10 +510,6 @@ Do you want to reload all pages? Configure Search Engines... 設定搜索引擎 - - &Ad Block... - - When private browsing is turned on, some actions concerning your privacy will be disabled: @@ -769,10 +522,6 @@ Do you want to reload all pages? Items are automatically removed from the Downloads window. - - New cookies are not stored, current cookies can't be accessed. - - Site icons won't be stored. @@ -813,6 +562,11 @@ Do you want to reload all pages? Reload + + %1 - Endorphin + Page title and Browser name + + ClearButton @@ -843,14 +597,6 @@ Do you want to reload all pages? &Search History 搜尋記錄(&S) - - &Cookies - &Cookie - - - C&ached Web Pages - 網頁快取(&A) - Website &Icons 網站圖示(&I) @@ -865,370 +611,145 @@ Do you want to reload all pages? - ClickToFlash - - Load - 載入 - + DownloadDialog - Load All - 全部載入 + Downloads + 下載 - Add %1 to Whitelist - 加入 %1 至白名單 + Downloading %1 + + + + DownloadItem - Remove from Whitelist - 從白名單中移除 + Save File + 儲存檔案 - Settings - 設定 + Download canceled: %1 + 下載已取消:%1 - Load Flash - 載入 Flash + Error opening output file: %1 + 開啟輸出檔案時發生錯誤:%1 - - - ClickToFlashSettings - Whitelist sites - 白名單網站 + Error saving: %1 + 儲存時發生錯誤:%1 - - - CookieExceptionsModel - Website - 網站 + Network Error: %1 + 網路錯誤:%1 - Rule - 規則 + %1 of %2 (%3/sec) - %4 + 已下載%1,共有 %2(%3/秒) - %4 - Allow - 允許 + ? + ? - Block - 禁止 + Download directory (%1) couldn't be created. + - Allow For Session - 在此階段中允許 + %1 of %2 - Download Complete + - CookieModel - - Website - 網站 - + DownloadManager - Name - 名稱 + There are %1 downloads in progress +Do you want to quit anyway? + 還在 %1 個下載正在進行中 +您還是要離開嗎? - - Path - 路徑 + + %n Download(s) + + %n 個下載 + - - Secure - 安全 + + %n minutes remaining + + 還剩餘 %n 分鐘 + - - Expires - 有效期限 + + %n seconds remaining + + 還剩餘 %n 秒 + - Contents - 內容 + bytes + bytes - true - + kB + kB - false - + MB + MB - Session cookie - 階段 cookie + GB + GB - CookiesDialog - - Cookies - Cookie - + HistoryDialog - &Remove - 移除(&R) + Open + 開啟 - Remove &All Cookies - 移除所有 Cookie (&A) + Copy + 複製 - Add &Rule - 加入規則(&R) + Delete + 刪除 - CookiesExceptionsDialog + HistoryMenu - Cookie Exceptions - Cookie 例外 + Show All History + 顯示所有歷史記錄 - New Exception - 新增例外 + Clear History... + 清除歷史記錄... - Domain: - 網域: + Clear History + 清除歷史記錄 - Block - 禁止 + Do you want to clear the history? + 您要清除歷史記錄嗎? + + + HistoryModel - Allow For Session - 在此階段中允許 + Title + 標題 - Allow - 允許 + Address + 網址 - - Exceptions - 例外 - - - &Remove - 移除(&R) - - - Remove &All - 全部移除(&A) - - - - DownloadDialog - - Downloads - 下載 - - - Clean up - 清除 - - - 0 Items - 0 個項目 - - - Downloading %1 - - - - - DownloadItem - - Ico - Ico - - - Filename - 檔案名稱 - - - Try Again - 再試 - - - Stop - 停止 - - - Open - 開啟 - - - Save File - 儲存檔案 - - - Download canceled: %1 - 下載已取消:%1 - - - Error opening output file: %1 - 開啟輸出檔案時發生錯誤:%1 - - - Error saving: %1 - 儲存時發生錯誤:%1 - - - Network Error: %1 - 網路錯誤:%1 - - - %1 of %2 (%3/sec) - %4 - 已下載%1,共有 %2(%3/秒) - %4 - - - ? - ? - - - %1 of %2 - Stopped - 已下載%1,共有 %2 - 已停止 - - - Download directory (%1) couldn't be created. - - - - %1 of %2 - Download Complete - - - - - DownloadManager - - There are %1 downloads in progress -Do you want to quit anyway? - 還在 %1 個下載正在進行中 -您還是要離開嗎? - - - %n Download(s) - - %n 個下載 - - - - %n minutes remaining - - 還剩餘 %n 分鐘 - - - - %n seconds remaining - - 還剩餘 %n 秒 - - - - bytes - bytes - - - kB - kB - - - MB - MB - - - GB - GB - - - - FileAccessReply - - No Error - 沒有錯誤 - - - Error opening: %1: No such file or directory - 開啟錯誤:%1:沒有該檔案或目錄 - - - Unable to read %1 - 無法讀取 %1 - - - Contents of %1 - %1 的內容 - - - %1 KB - %1 KB - - - Show Hidden Files - - - - - HistoryDialog - - Open - 開啟 - - - Copy - 複製 - - - Delete - 刪除 - - - History - 歷史記錄 - - - &Remove - 移除(&R) - - - Remove &All - 全部移除(&A) - - - - HistoryMenu - - Show All History - 顯示所有歷史記錄 - - - Clear History... - 清除歷史記錄... - - - Clear History - 清除歷史記錄 - - - Do you want to clear the history? - 您要清除歷史記錄嗎? - - - - HistoryModel - - Title - 標題 - - - Address - 網址 - - - - HistoryTreeModel + + + HistoryTreeModel Earlier Today 今天早前 @@ -1241,13 +762,13 @@ Do you want to quit anyway? - JavaScriptAroraObject + JavaScriptEndorphinObject - Welcome to Arora! + Welcome to Endorphin! - Arora Start + Endorphin Start @@ -1255,24 +776,20 @@ Do you want to quit anyway? - Search results provided by + Search the web with - About Arora + Search results provided by - Search the web with + About Endorphin LanguageManager - - No translation files are installed. - 沒有安裝任何翻譯檔。 - Choose language 選擇語言 @@ -1286,49 +803,6 @@ Do you want to quit anyway? - - NetworkAccessManager - - <qt>Enter username and password for "%1" at %2</qt> - <qt>於%2 輸入“%1”的使用者名稱及密碼</qt> - - - <qt>Connect to proxy "%1" using:</qt> - <qt>連接代理伺服器“%1”使用:</qt> - - - Issuer: %1 - 簽發者:%1 - - - Not valid before: %1 - 在此日期前無效:%1 - - - Valid until: %1 - 有效期至:%1 - - - Alternate Names: - 其它名稱: - - - - SSL Errors - - SSL 錯誤 - - - <qt>SSL Errors:<br/><br/>for: <tt>%1</tt><ul><li>%2</li></ul> - -Do you want to ignore these errors?</qt> - <qt>SSL 錯誤:<br/><br/>因為:<tt>%1</tt><ul><li>%2</li></ul> - -您要忽略此錯誤嗎?</qt> - - - <qt>Certificates:<br/>%1<br/>Do you want to accept all these certificates?</qt> - <qt>憑證:<br/>%1<br/>您要接受全部憑證?</qt> - - OpenSearchDialog @@ -1351,26 +825,6 @@ Do you want to ignore these errors?</qt> You must have at least one search engine in here. 在這裡最少要有一個搜索引擎。 - - OpenSearch Manager - OpenSearch 管理員 - - - &Add - 加入(&A) - - - &Delete - 刪除(&D) - - - &Restore Defaults - 回復預設(&R) - - - &Close - 關閉(&C) - OpenSearchEngineModel @@ -1403,26 +857,18 @@ Do you want to ignore these errors?</qt> - PasswordDialog - - Authentication Required - 需要認證 - - - DUMMY ICON - DUMMY ICON - + PermissionBar - INTRO TEXT DUMMY - INTRO TEXT DUMM + Allow + 允許 - Username: - 使用者名稱: + Deny + - Password: - 密碼: + %1 wants to %2. + @@ -1432,25 +878,6 @@ Do you want to ignore these errors?</qt> 找不到 - - ProxyDialog - - Proxy Authentication - 代理伺服器認證 - - - Connect to proxy - 連接代理伺服器 - - - Username: - 使用者名稱: - - - Password: - 密碼: - - QObject @@ -1465,398 +892,40 @@ Do you want to ignore these errors?</qt> The file is not an OpenSearch 1.1 file. 檔案不是 OpenSearch 1.1 檔案。 - - - SearchBanner - - Highlight All - 全部標示 - - - Done - 完成 - - - - SearchLineEdit - - Search - 搜尋 - - - - Settings - - Preferences - 偏好設定 - - - General - 一般 - - - On startup: - 於啟動時: - - - Show my home page - 顯示我的首頁 - - - Show a blank page - 顯示空白頁 - - - Restore windows and tabs from last time - 回復上次的視窗及分頁 - - - Home Page: - 首頁: - - - Set to current page - 設定為目前的網頁 - - - Remove history items: - 移除歷史記錄項目: - - - After one day - 一天後 - - - After one week - 一星期後 - - - After two weeks - 兩星期後 - - - After one month - 一個月後 - - After one year - 一年後 - - - Manually - 手動 - - - On application exit - 程式離開時 - - - Use the default search engine as fallback when the URL given by the user is invalid - 當使用者輸入的網址無效時,以預設的搜索引擎作為後備 - - - Downloads - 下載 - - - Ask for a destination each time - 每次都詢問目的地 - - - Use this destination: - 使用此目的地 - - - Appearance - 顯示 - - - Standard font: - 標準字型: - - - Select... - 選擇... - - - Fixed-width font: - 固定寬度字型: - - - Preferred languages for viewing webpages in: - 在網頁中偏好使用的語言: - - - Privacy - 私隱 - - - Web Content - 網頁內容 - - - Block Popup Windows - 禁止彈出式視窗 - - - Enable Plugins - 啟用外掛程式 - - - Use ClickToFlash on flash plugins - 在 Flash 加上「載入 flash」按鈕 - - - Enable Javascript - 啟用 Javascript - - - View Images - 顯示圖片 - - - Cookies - Cookie - - - Accept Cookies: - 接受 Cookie - - - Always - 總是 - - - Never - 永不 - - - Only from sites you navigate to - 只有您瀏覽過的網站 - - - Exceptions... - 例外... - - - Keep Cookies Until: - 保留 Cookie 直至: - - - They expire - 它們過期 - - - I exit the application - 我離開程式 - - - At most 90 days - 最多 90 日 - - - Cookies... - Cookie... - - - Filter Tracking Cookies - 過濾追蹤 Cookie - - - Tabs - 分頁 - - - Select tabs and windows as they are created - 當分頁及視窗建立後才選擇它們 - - - Confirm when closing multiple tabs or windows - 關閉多個分頁或視窗時需要確認 - - - Show only one close button instead of one for each tab - 只顯示一個關閉按鈕,而非每個分頁都顯示 - - - Quit the application when last tab is closed - 關閉最後一個分頁時離開程式 - - - Opening links - 開啟連結 - - - Links that want to open in a new window: - 要在新的視窗中開啟的連結: - - - In a new window - 在新的視窗 - - - In a new selected tab in the current window - 在目前視窗中已選的分頁 - - - In a new tab in the current window - 在目前視窗中新的分頁 - - - In the current tab - 在目前的分頁 - - - Open links from applications: - 以其它程式開啟連結: - - - Proxy - 代理伺服器 - - - Use proxy server - 使用代理伺服器 - - - Type: - 類型: - - - Socks5 - Socks5 - - - Http (Secure) - Http(安全) - - - Http (Transparent) - Http(透明) - - - Host name: - 主機名稱: - - - Port: - 連接埠: - - - User Name: - 使用者名稱: - - - Password: - 密碼: - - - Advanced - 進階 - - - Style Sheet: - 樣式表: - - - Enable network cache - 啟用網路快取 - - - Maximum Size: - 大小上限: - - - MB - MB - - - Choose Directory... - - - - A cookie session ends: - - - - When I exit the application + use desktop notifications - 1 day + use your position - 2 days + use your microphone - 3 days + use your camera - 7 days + use your camera and microphone - 30 days - - - - AutoFill - - - - AutoFill web forms: - - - - User names and passwords - - - - Edit... - - - - Browse... - - - - Enable access keys - - - - Use this external download program: - - - - Choose Program... - - - - Minimum Font size: - - - - If you enable this option, no flash objects will be loaded by default. Instead, each will be replaced by a button, allowing you to control which objects to load, and which not. + lock your mouse + + + SearchLineEdit - Persistent Data Storage - + Search + 搜尋 SettingsDialog - - Restart required - 須要重新啟動 - - - The network cache configuration has changed. So that it can be taken into account, the browser has to be restarted. - 網路快取設定已經修改。瀏覽器需要重新啟動才能使其生效。 - Choose Directory @@ -1884,14 +953,6 @@ Do you want to ignore these errors?</qt> &Find 尋找(&F) - - &View - 檢視(&V) - - - &Wrap lines - 自動斷行 - Source of Page %1 %1 的原始碼 @@ -1938,25 +999,10 @@ Do you want to ignore these errors?</qt> Saved Tabs 儲存分頁 - - Do you really want to close this page? - 您真的要關閉此網頁嗎? - - - You have modified this page and when closing it you would lose the modification. -Do you really want to close this page? - - 您已經修改此網頁及如果關閉它將會失去所有已作的修改。 -您真的要關閉此網頁? - Loading... 正在載入... - - Loading %1% (%2 %3)... - 正在載入 %1% (%2 %3)... - Finished loading 載入完成 @@ -1997,6 +1043,10 @@ Do you really want to close this page? Bookmark All Tabs 將所有分頁加入書籤 + + Loading ... + + ToolbarSearch @@ -2004,14 +1054,6 @@ Do you really want to close this page? Suggestions 建議 - - Add '%1' - 加入‘%1’ - - - Configure Search Engines... - 設定搜索引擎 - Clear Recent Searches 清除最近搜尋 @@ -2044,37 +1086,6 @@ Do you really want to close this page? - - WebPage - - Resending POST request - 再送出 POST 要求 - - - In order to display the site, the request along with all the data must be sent once again, which may lead to some unexpected behaviour of the site e.g. the same action might be performed once again. Do you want to continue anyway? - 要顯示此網站,所有的請求都要重新送出,這可能會導致一些無法預料的行為,例如某些會再做一次。您要繼續嗎? - - - Error loading page: %1 - 載入網頁發生錯誤:%1 - - - When connecting to: %1. - 當連線到:%1。 - - - Check the address for errors such as <b>ww</b>.arora-browser.org instead of <b>www</b>.arora-browser.org - 檢查網址錯誤,例如是<b>ww</b>.arora-browser.org,而不是<b>www</b>.arora-browser.org - - - If the address is correct, try checking the network connection. - 如果網址正確,請檢查網路連線。 - - - If your computer or network is protected by a firewall or proxy, make sure that the browser is permitted to access the network. - 如果您的電腦受防火牆或代理伺服器保護,請確定您的瀏覽器允許存取網路。 - - WebView @@ -2121,42 +1132,10 @@ Do you really want to close this page? Search with... 搜尋於... - - Add to the toolbar search - 加入至工具列搜尋 - - - Method not supported - 方法不支援 - - - %1 method is not supported. - % 的方法不支援。 - - - Search engine - 搜索引擎 - - - Choose the desired search engine - 選擇搜索引擎 - - - Engine name - 引擎名稱 - - - Type in a name for the engine - 輸入搜索引擎的名稱 - Loading... 正在載入... - - Block Image - - WebViewSearch diff --git a/ts_lst_file b/ts_lst_file new file mode 100644 index 00000000..64bf1709 --- /dev/null +++ b/ts_lst_file @@ -0,0 +1,76 @@ +-Isrc/utils +-Isrc/useragent +-Isrc/opensearch +-Isrc/locationbar +-Isrc/htmls +-Isrc/history +-Isrc/data +-Isrc/bookmarks/xbel +-Isrc/bookmarks +-Itools/cacheinfo +-Itools/placesimport +-Itools/htmlToXBel +tools/cacheinfo/main.cpp +tools/placesimport/main_placesimport.cpp +tools/htmlToXBel/mainapp.cpp +tools/htmlToXBel/main.cpp +src/modeltoolbar.cpp +src/main.cpp +src/browsermainwindow.cpp +src/modelmenu.cpp +src/searchlineedit.cpp +src/opensearch/opensearchenginemodel.cpp +src/opensearch/opensearchengine.cpp +src/opensearch/opensearchmanager.cpp +src/opensearch/opensearchengineaction.cpp +src/opensearch/opensearchreader.cpp +src/opensearch/opensearchwriter.cpp +src/opensearch/opensearchenginedelegate.cpp +src/opensearch/opensearchdialog.cpp +src/webactionmapper.cpp +src/webviewsearch.cpp +src/plaintexteditsearch.cpp +src/clearprivatedata.cpp +src/acceptlanguagedialog.cpp +src/settings.cpp +src/browserapplication.cpp +src/sourcehighlighter.cpp +src/webview.cpp +src/webpage.cpp +src/locationcompleter.cpp +src/useragent/useragentmenu.cpp +src/searchbutton.cpp +src/tabwidget.cpp +src/bookmarks/bookmarkstoolbar.cpp +src/bookmarks/bookmarksmanager.cpp +src/bookmarks/bookmarknode.cpp +src/bookmarks/bookmarksdialog.cpp +src/bookmarks/addbookmarkdialog.cpp +src/bookmarks/xbel/xbelreader.cpp +src/bookmarks/xbel/xbelwriter.cpp +src/bookmarks/bookmarksmodel.cpp +src/bookmarks/bookmarksmenu.cpp +src/tabbar.cpp +src/sourceviewer.cpp +src/permissionbar.cpp +src/devtoolswindow.cpp +src/aboutdialog.cpp +src/history/historymanager.cpp +src/history/history.cpp +src/searchbar.cpp +src/toolbarsearch.cpp +src/autosaver.cpp +src/downloadmanager.cpp +src/locationbar/locationbarsiteicon.cpp +src/locationbar/privacyindicator.cpp +src/locationbar/locationbar.cpp +src/utils/languagemanager.cpp +src/utils/editlistview.cpp +src/utils/explorerstyle.cpp +src/utils/edittreeview.cpp +src/utils/lineedit.cpp +src/utils/squeezelabel.cpp +src/utils/singleapplication.cpp +src/utils/edittableview.cpp +src/utils/treesortfilterproxymodel.cpp +src/clearbutton.cpp From a457d9fced702613ba80ed1f313846a75dae6779 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 16 Jan 2021 21:47:01 +0100 Subject: [PATCH 44/64] Update build system, modernize defaults --- CMakeLists.txt | 1 + autotests/tabbar/CMakeLists.txt | 103 +-------------------- autotests/tabwidget/CMakeLists.txt | 108 ++--------------------- autotests/webactionmapper/CMakeLists.txt | 108 ++--------------------- autotests/webpage/CMakeLists.txt | 106 ++-------------------- definitions.cmake | 105 ++++++++++++++++++++++ src/CMakeLists.txt | 101 ++------------------- src/browserapplication.cpp | 2 +- src/data/defaultbookmarks.xbel | 2 +- src/history/historymanager.cpp | 2 +- src/settings.cpp | 2 +- tools/cacheinfo/main.cpp | 2 +- tools/placesimport/main_placesimport.cpp | 2 +- 13 files changed, 140 insertions(+), 504 deletions(-) create mode 100644 definitions.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index e964ab6b..fb543047 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ project(Endorphin) cmake_minimum_required(VERSION 3.16) include(CTest) +include(definitions.cmake) if(BUILD_TESTING) add_subdirectory(autotests) endif() diff --git a/autotests/tabbar/CMakeLists.txt b/autotests/tabbar/CMakeLists.txt index bfb15941..38711d39 100644 --- a/autotests/tabbar/CMakeLists.txt +++ b/autotests/tabbar/CMakeLists.txt @@ -20,111 +20,16 @@ set(CMAKE_AUTOUIC_SEARCH_PATHS ../../src/utils ) INCLUDE_DIRECTORIES( - .. - ../../src - ../../src/utils - ../../src/bookmarks - ../../src/bookmarks/xbel - ../../src/data - ../../src/history - ../../src/htmls - ../../src/locationbar - ../../src/opensearch - ../../src/useragent - ../../src/utils + ${ENDORPHIN_INCLUDE_DIRS} ${RUNTIME_OUTPUT_DIRECTORY} ) set(SRCS tst_tabbar.cpp ) -# From main browser - -set(Endorphin_SRCS - ../../src/aboutdialog.cpp - ../../src/acceptlanguagedialog.cpp - ../../src/autosaver.cpp - ../../src/browserapplication.cpp - ../../src/browsermainwindow.cpp - ../../src/clearprivatedata.cpp - ../../src/clearbutton.cpp - ../../src/devtoolswindow.cpp - ../../src/downloadmanager.cpp - ../../src/modelmenu.cpp - ../../src/modeltoolbar.cpp - ../../src/permissionbar.cpp - ../../src/plaintexteditsearch.cpp - ../../src/searchbar.cpp - ../../src/searchbutton.cpp - ../../src/searchlineedit.cpp - ../../src/settings.cpp - ../../src/sourcehighlighter.cpp - ../../src/sourceviewer.cpp - ../../src/tabbar.cpp - ../../src/tabwidget.cpp - ../../src/toolbarsearch.cpp - ../../src/webactionmapper.cpp - ../../src/webpage.cpp - ../../src/webview.cpp - ../../src/webviewsearch.cpp - ../../src/bookmarks/addbookmarkdialog.cpp - ../../src/bookmarks/bookmarksdialog.cpp - ../../src/bookmarks/bookmarksmanager.cpp - ../../src/bookmarks/bookmarksmenu.cpp - ../../src/bookmarks/bookmarksmodel.cpp - ../../src/bookmarks/bookmarkstoolbar.cpp - ../../src/bookmarks/bookmarknode.cpp - ../../src/bookmarks/xbel/xbelreader.cpp - ../../src/bookmarks/xbel/xbelwriter.cpp - ../../src/history/history.cpp - ../../src/locationcompleter.cpp - ../../src/history/historymanager.cpp - ../../src/locationbar/locationbar.cpp - ../../src/locationbar/locationbarsiteicon.cpp - ../../src/locationbar/privacyindicator.cpp - ../../src/opensearch/opensearchdialog.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp - ../../src/opensearch/opensearchengineaction.cpp - ../../src/opensearch/opensearchenginemodel.cpp - ../../src/opensearch/opensearchmanager.cpp - ../../src/opensearch/opensearchreader.cpp - ../../src/opensearch/opensearchwriter.cpp - ../../src/useragent/useragentmenu.cpp - ../../src/utils/explorerstyle.cpp - ../../src/utils/editlistview.cpp - ../../src/utils/edittableview.cpp - ../../src/utils/edittreeview.cpp - ../../src/utils/languagemanager.cpp - ../../src/utils/lineedit.cpp - ../../src/utils/singleapplication.cpp - ../../src/utils/squeezelabel.cpp - ../../src/utils/treesortfilterproxymodel.cpp -) - -set(Endorphin_UIS - ../../src/aboutdialog.ui - ../../src/acceptlanguagedialog.ui - ../../src/downloaditem.ui - ../../src/downloads.ui - ../../src/searchbanner.ui - ../../src/settings.ui - ../../src/bookmarks/addbookmarkdialog.ui - ../../src/bookmarks/bookmarksdialog.ui - ../../src/history/history.ui - ../../src/opensearch/opensearchdialog.ui -) -QT5_WRAP_UI(UIS ${Endorphin_UIS}) - -set(Endorphin_RSCS - ../../src/data/data.qrc - ../../src/data/graphics/graphics.qrc - ../../src/data/searchengines/searchengines.qrc - ../../src/htmls/htmls.qrc - ../../src/useragent/useragents.qrc -) -QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) +QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) +QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) -add_executable(test-tabbar ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +add_executable(test-tabbar ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) target_link_libraries(test-tabbar Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::PrintSupport Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) diff --git a/autotests/tabwidget/CMakeLists.txt b/autotests/tabwidget/CMakeLists.txt index 66102cac..a266b308 100644 --- a/autotests/tabwidget/CMakeLists.txt +++ b/autotests/tabwidget/CMakeLists.txt @@ -20,111 +20,15 @@ set(CMAKE_AUTOUIC_SEARCH_PATHS ../../src/utils ) INCLUDE_DIRECTORIES( - .. - ../../src - ../../src/utils - ../../src/bookmarks - ../../src/bookmarks/xbel - ../../src/data - ../../src/history - ../../src/htmls - ../../src/locationbar - ../../src/opensearch - ../../src/useragent - ../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} + ${ENDORPHIN_INCLUDE_DIRS} + ../ ) +QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) +QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) + set(SRCS tst_tabwidget.cpp ) -# From main browser -set(Endorphin_SRCS - ../../src/aboutdialog.cpp - ../../src/acceptlanguagedialog.cpp - ../../src/autosaver.cpp - ../../src/browserapplication.cpp - ../../src/browsermainwindow.cpp - ../../src/clearprivatedata.cpp - ../../src/clearbutton.cpp - ../../src/devtoolswindow.cpp - ../../src/downloadmanager.cpp - ../../src/modelmenu.cpp - ../../src/modeltoolbar.cpp - ../../src/permissionbar.cpp - ../../src/plaintexteditsearch.cpp - ../../src/searchbar.cpp - ../../src/searchbutton.cpp - ../../src/locationcompleter.cpp - ../../src/searchlineedit.cpp - ../../src/settings.cpp - ../../src/sourcehighlighter.cpp - ../../src/sourceviewer.cpp - ../../src/tabbar.cpp - ../../src/tabwidget.cpp - ../../src/toolbarsearch.cpp - ../../src/webactionmapper.cpp - ../../src/webpage.cpp - ../../src/webview.cpp - ../../src/webviewsearch.cpp - ../../src/bookmarks/addbookmarkdialog.cpp - ../../src/bookmarks/bookmarksdialog.cpp - ../../src/bookmarks/bookmarksmanager.cpp - ../../src/bookmarks/bookmarksmenu.cpp - ../../src/bookmarks/bookmarksmodel.cpp - ../../src/bookmarks/bookmarkstoolbar.cpp - ../../src/bookmarks/bookmarknode.cpp - ../../src/bookmarks/xbel/xbelreader.cpp - ../../src/bookmarks/xbel/xbelwriter.cpp - ../../src/history/history.cpp - ../../src/locationcompleter.cpp - ../../src/history/historymanager.cpp - ../../src/locationbar/locationbar.cpp - ../../src/locationbar/locationbarsiteicon.cpp - ../../src/locationbar/privacyindicator.cpp - ../../src/opensearch/opensearchdialog.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp - ../../src/opensearch/opensearchengineaction.cpp - ../../src/opensearch/opensearchenginemodel.cpp - ../../src/opensearch/opensearchmanager.cpp - ../../src/opensearch/opensearchreader.cpp - ../../src/opensearch/opensearchwriter.cpp - ../../src/useragent/useragentmenu.cpp - ../../src/utils/explorerstyle.cpp - ../../src/utils/editlistview.cpp - ../../src/utils/edittableview.cpp - ../../src/utils/edittreeview.cpp - ../../src/utils/languagemanager.cpp - ../../src/utils/lineedit.cpp - ../../src/utils/singleapplication.cpp - ../../src/utils/squeezelabel.cpp - ../../src/utils/treesortfilterproxymodel.cpp -) - -set(Endorphin_UIS - ../../src/aboutdialog.ui - ../../src/acceptlanguagedialog.ui - ../../src/downloaditem.ui - ../../src/downloads.ui - ../../src/searchbanner.ui - ../../src/settings.ui - ../../src/bookmarks/addbookmarkdialog.ui - ../../src/bookmarks/bookmarksdialog.ui - ../../src/history/history.ui - ../../src/opensearch/opensearchdialog.ui -) -QT5_WRAP_UI(UIS ${Endorphin_UIS}) - -set(Endorphin_RSCS - ../../src/data/data.qrc - ../../src/data/graphics/graphics.qrc - ../../src/data/searchengines/searchengines.qrc - ../../src/htmls/htmls.qrc - ../../src/useragent/useragents.qrc -) -QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) - - -add_executable(test-tabwidget ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +add_executable(test-tabwidget ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) target_link_libraries(test-tabwidget Qt5::Core Qt5::Test Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) \ No newline at end of file diff --git a/autotests/webactionmapper/CMakeLists.txt b/autotests/webactionmapper/CMakeLists.txt index 0757ee69..4b6c3c9a 100644 --- a/autotests/webactionmapper/CMakeLists.txt +++ b/autotests/webactionmapper/CMakeLists.txt @@ -20,112 +20,18 @@ set(CMAKE_AUTOUIC_SEARCH_PATHS ../../src ../../src/utils ) + INCLUDE_DIRECTORIES( - .. - ../../src - ../../src/utils - ../../src/bookmarks - ../../src/bookmarks/xbel - ../../src/data - ../../src/history - ../../src/htmls - ../../src/locationbar - ../../src/opensearch - ../../src/useragent - ../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} + ${ENDORPHIN_INCLUDE_DIRS} + ../ ) +QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) +QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) + set(SRCS tst_webactionmapper.cpp ) -# From main browser - -set(Endorphin_SRCS - ../../src/aboutdialog.cpp - ../../src/acceptlanguagedialog.cpp - ../../src/autosaver.cpp - ../../src/browserapplication.cpp - ../../src/browsermainwindow.cpp - ../../src/clearprivatedata.cpp - ../../src/clearbutton.cpp - ../../src/devtoolswindow.cpp - ../../src/downloadmanager.cpp - ../../src/modelmenu.cpp - ../../src/modeltoolbar.cpp - ../../src/permissionbar.cpp - ../../src/plaintexteditsearch.cpp - ../../src/searchbar.cpp - ../../src/searchbutton.cpp - ../../src/searchlineedit.cpp - ../../src/settings.cpp - ../../src/sourcehighlighter.cpp - ../../src/sourceviewer.cpp - ../../src/tabbar.cpp - ../../src/tabwidget.cpp - ../../src/toolbarsearch.cpp - ../../src/webactionmapper.cpp - ../../src/webpage.cpp - ../../src/webview.cpp - ../../src/webviewsearch.cpp - ../../src/bookmarks/addbookmarkdialog.cpp - ../../src/bookmarks/bookmarksdialog.cpp - ../../src/bookmarks/bookmarksmanager.cpp - ../../src/bookmarks/bookmarksmenu.cpp - ../../src/bookmarks/bookmarksmodel.cpp - ../../src/bookmarks/bookmarkstoolbar.cpp - ../../src/bookmarks/bookmarknode.cpp - ../../src/bookmarks/xbel/xbelreader.cpp - ../../src/bookmarks/xbel/xbelwriter.cpp - ../../src/history/history.cpp - ../../src/locationcompleter.cpp - ../../src/history/historymanager.cpp - ../../src/locationbar/locationbar.cpp - ../../src/locationbar/locationbarsiteicon.cpp - ../../src/locationbar/privacyindicator.cpp - ../../src/opensearch/opensearchdialog.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp - ../../src/opensearch/opensearchengineaction.cpp - ../../src/opensearch/opensearchenginemodel.cpp - ../../src/opensearch/opensearchmanager.cpp - ../../src/opensearch/opensearchreader.cpp - ../../src/opensearch/opensearchwriter.cpp - ../../src/useragent/useragentmenu.cpp - ../../src/utils/explorerstyle.cpp - ../../src/utils/editlistview.cpp - ../../src/utils/edittableview.cpp - ../../src/utils/edittreeview.cpp - ../../src/utils/languagemanager.cpp - ../../src/utils/lineedit.cpp - ../../src/utils/singleapplication.cpp - ../../src/utils/squeezelabel.cpp - ../../src/utils/treesortfilterproxymodel.cpp -) - -set(Endorphin_UIS - ../../src/aboutdialog.ui - ../../src/acceptlanguagedialog.ui - ../../src/downloaditem.ui - ../../src/downloads.ui - ../../src/searchbanner.ui - ../../src/settings.ui - ../../src/bookmarks/addbookmarkdialog.ui - ../../src/bookmarks/bookmarksdialog.ui - ../../src/history/history.ui - ../../src/opensearch/opensearchdialog.ui -) -QT5_WRAP_UI(UIS ${Endorphin_UIS}) - -set(Endorphin_RSCS - ../../src/data/data.qrc - ../../src/data/graphics/graphics.qrc - ../../src/data/searchengines/searchengines.qrc - ../../src/htmls/htmls.qrc - ../../src/useragent/useragents.qrc -) -QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) - -add_executable(test-webactionmapper ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +add_executable(test-webactionmapper ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) target_link_libraries(test-webactionmapper Qt5::Core Qt5::Test Qt5::Qml Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::PrintSupport Qt5::UiTools) diff --git a/autotests/webpage/CMakeLists.txt b/autotests/webpage/CMakeLists.txt index 1a8dfe0a..e21fbf8a 100644 --- a/autotests/webpage/CMakeLists.txt +++ b/autotests/webpage/CMakeLists.txt @@ -20,112 +20,18 @@ set(CMAKE_AUTOUIC_SEARCH_PATHS ../../src ../../src/utils ) + INCLUDE_DIRECTORIES( - .. - ../../src - ../../src/utils - ../../src/bookmarks - ../../src/bookmarks/xbel - ../../src/data - ../../src/history - ../../src/htmls - ../../src/locationbar - ../../src/opensearch - ../../src/useragent - ../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} + ${ENDORPHIN_INCLUDE_DIRS} ) + set(SRCS tst_webpage.cpp ) -# From main browser - -set(Endorphin_SRCS - ../../src/aboutdialog.cpp - ../../src/acceptlanguagedialog.cpp - ../../src/autosaver.cpp - ../../src/browserapplication.cpp - ../../src/browsermainwindow.cpp - ../../src/clearprivatedata.cpp - ../../src/clearbutton.cpp - ../../src/devtoolswindow.cpp - ../../src/downloadmanager.cpp - ../../src/modelmenu.cpp - ../../src/modeltoolbar.cpp - ../../src/permissionbar.cpp - ../../src/plaintexteditsearch.cpp - ../../src/searchbar.cpp - ../../src/searchbutton.cpp - ../../src/searchlineedit.cpp - ../../src/settings.cpp - ../../src/sourcehighlighter.cpp - ../../src/sourceviewer.cpp - ../../src/tabbar.cpp - ../../src/tabwidget.cpp - ../../src/toolbarsearch.cpp - ../../src/webactionmapper.cpp - ../../src/webpage.cpp - ../../src/webview.cpp - ../../src/webviewsearch.cpp - ../../src/bookmarks/addbookmarkdialog.cpp - ../../src/bookmarks/bookmarksdialog.cpp - ../../src/bookmarks/bookmarksmanager.cpp - ../../src/bookmarks/bookmarksmenu.cpp - ../../src/bookmarks/bookmarksmodel.cpp - ../../src/bookmarks/bookmarkstoolbar.cpp - ../../src/bookmarks/bookmarknode.cpp - ../../src/bookmarks/xbel/xbelreader.cpp - ../../src/bookmarks/xbel/xbelwriter.cpp - ../../src/history/history.cpp - ../../src/locationcompleter.cpp - ../../src/history/historymanager.cpp - ../../src/locationbar/locationbar.cpp - ../../src/locationbar/locationbarsiteicon.cpp - ../../src/locationbar/privacyindicator.cpp - ../../src/opensearch/opensearchdialog.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp - ../../src/opensearch/opensearchengineaction.cpp - ../../src/opensearch/opensearchenginemodel.cpp - ../../src/opensearch/opensearchmanager.cpp - ../../src/opensearch/opensearchreader.cpp - ../../src/opensearch/opensearchwriter.cpp - ../../src/useragent/useragentmenu.cpp - ../../src/utils/explorerstyle.cpp - ../../src/utils/editlistview.cpp - ../../src/utils/edittableview.cpp - ../../src/utils/edittreeview.cpp - ../../src/utils/languagemanager.cpp - ../../src/utils/lineedit.cpp - ../../src/utils/singleapplication.cpp - ../../src/utils/squeezelabel.cpp - ../../src/utils/treesortfilterproxymodel.cpp -) - -set(Endorphin_UIS - ../../src/aboutdialog.ui - ../../src/acceptlanguagedialog.ui - ../../src/downloaditem.ui - ../../src/downloads.ui - ../../src/searchbanner.ui - ../../src/settings.ui - ../../src/bookmarks/addbookmarkdialog.ui - ../../src/bookmarks/bookmarksdialog.ui - ../../src/history/history.ui - ../../src/opensearch/opensearchdialog.ui -) -QT5_WRAP_UI(UIS ${Endorphin_UIS}) - -set(Endorphin_RSCS - ../../src/data/data.qrc - ../../src/data/graphics/graphics.qrc - ../../src/data/searchengines/searchengines.qrc - ../../src/htmls/htmls.qrc - ../../src/useragent/useragents.qrc -) -QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) +QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) +QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) -add_executable(test-webpage ${SRCS} ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +add_executable(test-webpage ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) target_link_libraries(test-webpage Qt5::Core Qt5::Test Qt5::Qml Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::PrintSupport Qt5::UiTools) diff --git a/definitions.cmake b/definitions.cmake new file mode 100644 index 00000000..53319d0a --- /dev/null +++ b/definitions.cmake @@ -0,0 +1,105 @@ + +set(ENDORPHIN_SRC_DIR ${CMAKE_SOURCE_DIR}/src) + + +set(ENDORPHIN_AUTOUIC_SEARCH_PATHS + ${ENDORPHIN_SRC_DIR}/ + ${ENDORPHIN_SRC_DIR}/src + ${ENDORPHIN_SRC_DIR}/src/utils +) +set(ENDORPHIN_INCLUDE_DIRS + ${ENDORPHIN_SRC_DIR} + ${ENDORPHIN_SRC_DIR}/utils + ${ENDORPHIN_SRC_DIR}/bookmarks + ${ENDORPHIN_SRC_DIR}/bookmarks/xbel + ${ENDORPHIN_SRC_DIR}/data + ${ENDORPHIN_SRC_DIR}/history + ${ENDORPHIN_SRC_DIR}/htmls + ${ENDORPHIN_SRC_DIR}/locationbar + ${ENDORPHIN_SRC_DIR}/opensearch + ${ENDORPHIN_SRC_DIR}/useragent + ${ENDORPHIN_SRC_DIR}/utils +) + +set(ENDORPHIN_SRCS + ${ENDORPHIN_SRC_DIR}/aboutdialog.cpp + ${ENDORPHIN_SRC_DIR}/acceptlanguagedialog.cpp + ${ENDORPHIN_SRC_DIR}/autosaver.cpp + ${ENDORPHIN_SRC_DIR}/browserapplication.cpp + ${ENDORPHIN_SRC_DIR}/browsermainwindow.cpp + ${ENDORPHIN_SRC_DIR}/clearprivatedata.cpp + ${ENDORPHIN_SRC_DIR}/clearbutton.cpp + ${ENDORPHIN_SRC_DIR}/devtoolswindow.cpp + ${ENDORPHIN_SRC_DIR}/downloadmanager.cpp + ${ENDORPHIN_SRC_DIR}/modelmenu.cpp + ${ENDORPHIN_SRC_DIR}/modeltoolbar.cpp + ${ENDORPHIN_SRC_DIR}/permissionbar.cpp + ${ENDORPHIN_SRC_DIR}/plaintexteditsearch.cpp + ${ENDORPHIN_SRC_DIR}/searchbar.cpp + ${ENDORPHIN_SRC_DIR}/searchbutton.cpp + ${ENDORPHIN_SRC_DIR}/searchlineedit.cpp + ${ENDORPHIN_SRC_DIR}/settings.cpp + ${ENDORPHIN_SRC_DIR}/sourcehighlighter.cpp + ${ENDORPHIN_SRC_DIR}/sourceviewer.cpp + ${ENDORPHIN_SRC_DIR}/tabbar.cpp + ${ENDORPHIN_SRC_DIR}/tabwidget.cpp + ${ENDORPHIN_SRC_DIR}/toolbarsearch.cpp + ${ENDORPHIN_SRC_DIR}/webactionmapper.cpp + ${ENDORPHIN_SRC_DIR}/webpage.cpp + ${ENDORPHIN_SRC_DIR}/webview.cpp + ${ENDORPHIN_SRC_DIR}/webviewsearch.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/addbookmarkdialog.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/bookmarksdialog.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/bookmarksmanager.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/bookmarksmenu.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/bookmarksmodel.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/bookmarkstoolbar.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/bookmarknode.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/xbel/xbelreader.cpp + ${ENDORPHIN_SRC_DIR}/bookmarks/xbel/xbelwriter.cpp + ${ENDORPHIN_SRC_DIR}/history/history.cpp + ${ENDORPHIN_SRC_DIR}/locationcompleter.cpp + ${ENDORPHIN_SRC_DIR}/history/historymanager.cpp + ${ENDORPHIN_SRC_DIR}/locationbar/locationbar.cpp + ${ENDORPHIN_SRC_DIR}/locationbar/locationbarsiteicon.cpp + ${ENDORPHIN_SRC_DIR}/locationbar/privacyindicator.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchdialog.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchengine.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchenginedelegate.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchengineaction.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchenginemodel.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchmanager.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchreader.cpp + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchwriter.cpp + ${ENDORPHIN_SRC_DIR}/useragent/useragentmenu.cpp + ${ENDORPHIN_SRC_DIR}/utils/explorerstyle.cpp + ${ENDORPHIN_SRC_DIR}/utils/editlistview.cpp + ${ENDORPHIN_SRC_DIR}/utils/edittableview.cpp + ${ENDORPHIN_SRC_DIR}/utils/edittreeview.cpp + ${ENDORPHIN_SRC_DIR}/utils/languagemanager.cpp + ${ENDORPHIN_SRC_DIR}/utils/lineedit.cpp + ${ENDORPHIN_SRC_DIR}/utils/singleapplication.cpp + ${ENDORPHIN_SRC_DIR}/utils/squeezelabel.cpp + ${ENDORPHIN_SRC_DIR}/utils/treesortfilterproxymodel.cpp +) + +set(ENDORPHIN_UIS + ${ENDORPHIN_SRC_DIR}/aboutdialog.ui + ${ENDORPHIN_SRC_DIR}/acceptlanguagedialog.ui + ${ENDORPHIN_SRC_DIR}/downloaditem.ui + ${ENDORPHIN_SRC_DIR}/downloads.ui + ${ENDORPHIN_SRC_DIR}/searchbanner.ui + ${ENDORPHIN_SRC_DIR}/settings.ui + ${ENDORPHIN_SRC_DIR}/bookmarks/addbookmarkdialog.ui + ${ENDORPHIN_SRC_DIR}/bookmarks/bookmarksdialog.ui + ${ENDORPHIN_SRC_DIR}/history/history.ui + ${ENDORPHIN_SRC_DIR}/opensearch/opensearchdialog.ui +) + +set(ENDORPHIN_RSCS + ${ENDORPHIN_SRC_DIR}/data/data.qrc + ${ENDORPHIN_SRC_DIR}/data/graphics/graphics.qrc + ${ENDORPHIN_SRC_DIR}/data/searchengines/searchengines.qrc + ${ENDORPHIN_SRC_DIR}/htmls/htmls.qrc + ${ENDORPHIN_SRC_DIR}/useragent/useragents.qrc +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index daaa6bcf..92d0bed1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,15 +9,7 @@ set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) INCLUDE_DIRECTORIES( -${CMAKE_CURRENT_SOURCE_DIR}/bookmarks -${CMAKE_CURRENT_SOURCE_DIR}/bookmarks/xbel -${CMAKE_CURRENT_SOURCE_DIR}/data -${CMAKE_CURRENT_SOURCE_DIR}/history -${CMAKE_CURRENT_SOURCE_DIR}/htmls -${CMAKE_CURRENT_SOURCE_DIR}/locationbar -${CMAKE_CURRENT_SOURCE_DIR}/opensearch -${CMAKE_CURRENT_SOURCE_DIR}/useragent -${CMAKE_CURRENT_SOURCE_DIR}/utils + ${ENDORPHIN_INCLUDE_DIRS} ) find_package(Qt5Widgets REQUIRED) @@ -52,96 +44,13 @@ endif() add_definitions(-DGITVERSION=\"\\\"${GIT_REV}\\\"\") add_definitions(-DGITCHANGENUMBER=${GIT_CHANGENUMBER}) -# Add all files -set(Endorphin_SRCS - aboutdialog.cpp - acceptlanguagedialog.cpp - autosaver.cpp - browserapplication.cpp - browsermainwindow.cpp - clearprivatedata.cpp - clearbutton.cpp - devtoolswindow.cpp - downloadmanager.cpp - modelmenu.cpp - modeltoolbar.cpp - permissionbar.cpp - plaintexteditsearch.cpp - searchbar.cpp - searchbutton.cpp - searchlineedit.cpp - settings.cpp - sourcehighlighter.cpp - sourceviewer.cpp - tabbar.cpp - tabwidget.cpp - toolbarsearch.cpp - webactionmapper.cpp - webpage.cpp - webview.cpp - webviewsearch.cpp - main.cpp - bookmarks/addbookmarkdialog.cpp - bookmarks/bookmarksdialog.cpp - bookmarks/bookmarksmanager.cpp - bookmarks/bookmarksmenu.cpp - bookmarks/bookmarksmodel.cpp - bookmarks/bookmarkstoolbar.cpp - bookmarks/bookmarknode.cpp - bookmarks/xbel/xbelreader.cpp - bookmarks/xbel/xbelwriter.cpp - history/history.cpp - locationcompleter.cpp - history/historymanager.cpp - locationbar/locationbar.cpp - locationbar/locationbarsiteicon.cpp - locationbar/privacyindicator.cpp - opensearch/opensearchdialog.cpp - opensearch/opensearchengine.cpp - opensearch/opensearchenginedelegate.cpp - opensearch/opensearchengineaction.cpp - opensearch/opensearchenginemodel.cpp - opensearch/opensearchmanager.cpp - opensearch/opensearchreader.cpp - opensearch/opensearchwriter.cpp - useragent/useragentmenu.cpp - utils/explorerstyle.cpp - utils/editlistview.cpp - utils/edittableview.cpp - utils/edittreeview.cpp - utils/languagemanager.cpp - utils/lineedit.cpp - utils/singleapplication.cpp - utils/squeezelabel.cpp - utils/treesortfilterproxymodel.cpp -) -set(Endorphin_UIS - aboutdialog.ui - acceptlanguagedialog.ui - downloaditem.ui - downloads.ui - searchbanner.ui - settings.ui - bookmarks/addbookmarkdialog.ui - bookmarks/bookmarksdialog.ui - history/history.ui - opensearch/opensearchdialog.ui -) -QT5_WRAP_UI(UIS ${Endorphin_UIS}) - -set(Endorphin_RSCS - data/data.qrc - data/graphics/graphics.qrc - data/searchengines/searchengines.qrc - htmls/htmls.qrc - useragent/useragents.qrc -) -QT5_ADD_RESOURCES(RSCS ${Endorphin_RSCS}) +QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) +QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) # Translations qt5_create_translation(QM_FILES -${Endorphin_SRCS} +${ENDORPHIN_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/locale/ast.ts ${CMAKE_CURRENT_SOURCE_DIR}/locale/ca.ts ${CMAKE_CURRENT_SOURCE_DIR}/locale/ast.ts @@ -179,7 +88,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_TW.ts ) # Generate executable -add_executable(endorphin ${Endorphin_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) +add_executable(endorphin main.cpp ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) target_link_libraries(endorphin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Qml Qt5::PrintSupport Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) diff --git a/src/browserapplication.cpp b/src/browserapplication.cpp index 89ce9525..2344397a 100644 --- a/src/browserapplication.cpp +++ b/src/browserapplication.cpp @@ -186,7 +186,7 @@ BrowserApplication::BrowserApplication(int &argc, char **argv) , m_privateProfile(0) , m_privateBrowsing(false) { - QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.github.io/")); + QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.gitlab.io/")); QCoreApplication::setApplicationName(QLatin1String("Endorphin")); QCoreApplication::setApplicationVersion(QLatin1String("0.12.1" #ifdef GITVERSION diff --git a/src/data/defaultbookmarks.xbel b/src/data/defaultbookmarks.xbel index 03abdb97..0c8179f5 100644 --- a/src/data/defaultbookmarks.xbel +++ b/src/data/defaultbookmarks.xbel @@ -3,7 +3,7 @@ Bookmarks Bar - + Endorphin diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index 3fb39407..83f32913 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -154,7 +154,7 @@ void HistoryManager::addHistoryEntry(const QString &url) QUrl cleanUrl(url); cleanUrl.setPassword(QString()); cleanUrl.setHost(cleanUrl.host().toLower()); - if(!cleanUrl.toString().toLower().contains("endorphinbrowser.github.io/newTab/")) { + if(!cleanUrl.toString().toLower().contains("endorphinbrowser.gitlab.io/newTab/")) { HistoryEntry item(atomicString(cleanUrl.toString()), QDateTime::currentDateTime()); prependHistoryEntry(item); } diff --git a/src/settings.cpp b/src/settings.cpp index 2bb98a17..86a4b839 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -164,7 +164,7 @@ void SettingsDialog::loadFromSettings() settings.endGroup(); settings.beginGroup(QLatin1String("urlloading")); - bool search = settings.value(QLatin1String("searchEngineFallback"), false).toBool(); + bool search = settings.value(QLatin1String("searchEngineFallback"), true).toBool(); searchEngineFallback->setChecked(search); settings.endGroup(); diff --git a/tools/cacheinfo/main.cpp b/tools/cacheinfo/main.cpp index cf7672b7..d88a52d1 100644 --- a/tools/cacheinfo/main.cpp +++ b/tools/cacheinfo/main.cpp @@ -33,7 +33,7 @@ class NetworkDiskCache : public QNetworkDiskCache int main(int argc, char **argv) { QCoreApplication application(argc, argv); - QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.github.io/")); + QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.gitlab.io/")); QCoreApplication::setApplicationName(QLatin1String("Endorphin")); QStringList args = application.arguments(); diff --git a/tools/placesimport/main_placesimport.cpp b/tools/placesimport/main_placesimport.cpp index ba069854..c6451861 100644 --- a/tools/placesimport/main_placesimport.cpp +++ b/tools/placesimport/main_placesimport.cpp @@ -42,7 +42,7 @@ static HistoryEntry formatEntry(QByteArray url, QByteArray title, qlonglong prda int main(int argc, char **argv) { SingleApplication application(argc, argv); - QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.github.io/")); + QCoreApplication::setOrganizationDomain(QLatin1String("EndorphinBrowser.gitlab.io/")); QCoreApplication::setApplicationName(QLatin1String("Endorphin")); if (application.sendMessage(QByteArray())) { From e99ab003d0ff6804585447e2bcfc638b2b7acb8f Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 17 Jan 2021 18:26:34 +0100 Subject: [PATCH 45/64] Implement Printing for WebEngine --- src/browsermainwindow.cpp | 64 ++++++++----- src/browsermainwindow.h | 12 ++- src/locale/cs_CZ.ts | 8 ++ src/locale/da_DK.ts | 8 ++ src/locale/de_DE.ts | 8 ++ src/locale/el_GR.ts | 8 ++ src/locale/es_CR.ts | 8 ++ src/locale/et_EE.ts | 8 ++ src/locale/fi_FI.ts | 8 ++ src/locale/fr_CA.ts | 8 ++ src/locale/fr_FR.ts | 8 ++ src/locale/he_IL.ts | 8 ++ src/locale/hu_HU.ts | 8 ++ src/locale/it_IT.ts | 8 ++ src/locale/ja_JP.ts | 8 ++ src/locale/ko_KR.ts | 186 ++++++++++++++++++++------------------ src/locale/ms.ts | 8 ++ src/locale/nb_NO.ts | 8 ++ src/locale/nl.ts | 8 ++ src/locale/pl_PL.ts | 8 ++ src/locale/pt_BR.ts | 8 ++ src/locale/ru_RU.ts | 8 ++ src/locale/sk_SK.ts | 8 ++ src/locale/sr_RS.ts | 8 ++ src/locale/sr_RS@latin.ts | 8 ++ src/locale/tr_TR.ts | 8 ++ src/locale/uk.ts | 8 ++ src/locale/zh_CN.ts | 8 ++ src/locale/zh_TW.ts | 8 ++ src/tabwidget.cpp | 2 +- src/tabwidget.h | 2 +- 31 files changed, 357 insertions(+), 117 deletions(-) diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index b894984f..d3dce578 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -91,11 +91,9 @@ #include #include #include -/* #include #include #include -*/ #include #include #include @@ -192,8 +190,8 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) m_autoSaver, SLOT(changeOccurred())); connect(m_tabWidget, SIGNAL(geometryChangeRequested(const QRect &)), this, SLOT(geometryChangeRequested(const QRect &))); - /*connect(m_tabWidget, SIGNAL(printRequested(QWebEnginePage *)), - this, SLOT(printRequested(QWebEnginePage *))); */ + connect(m_tabWidget, SIGNAL(printRequested()), + this, SLOT(printRequested())); connect(m_tabWidget, SIGNAL(lastTabClosed()), this, SLOT(lastTabClosed())); connect(m_tabWidget, &TabWidget::devToolsRequested, this, &BrowserMainWindow::handleDevToolsRequested); @@ -499,8 +497,6 @@ void BrowserMainWindow::setupMenu() m_fileMenu->addAction(m_fileExportBookmarksAction); m_fileMenu->addSeparator(); -//TODO: Fix and enable again -/* m_filePrintPreviewAction= new QAction(m_fileMenu); connect(m_filePrintPreviewAction, SIGNAL(triggered()), this, SLOT(filePrintPreview())); @@ -512,7 +508,7 @@ void BrowserMainWindow::setupMenu() this, SLOT(filePrint())); m_fileMenu->addAction(m_filePrintAction); m_fileMenu->addSeparator(); -*/ + m_filePrivateBrowsingAction = new QAction(m_fileMenu); connect(m_filePrivateBrowsingAction, SIGNAL(triggered()), this, SLOT(privateBrowsing())); @@ -537,8 +533,8 @@ void BrowserMainWindow::setupMenu() #if defined(Q_WS_X11) m_fileNewWindowAction->setIcon(QIcon::fromTheme(QLatin1String("window-new"))); m_fileOpenFileAction->setIcon(QIcon::fromTheme(QLatin1String("document-open"))); - /*m_filePrintPreviewAction->setIcon(QIcon::fromTheme(QLatin1String("document-print-preview"))); - m_filePrintAction->setIcon(QIcon::fromTheme(QLatin1String("document-print")));*/ + m_filePrintPreviewAction->setIcon(QIcon::fromTheme(QLatin1String("document-print-preview"))); + m_filePrintAction->setIcon(QIcon::fromTheme(QLatin1String("document-print"))); m_fileSaveAsAction->setIcon(QIcon::fromTheme(QLatin1String("document-save-as"))); m_fileCloseWindow->setIcon(QIcon::fromTheme(QLatin1String("window-close"))); m_fileQuit->setIcon(QIcon::fromTheme(QLatin1String("application-exit"))); @@ -916,8 +912,8 @@ void BrowserMainWindow::retranslate() m_fileSaveAsAction->setText(tr("&Save As...")); m_fileImportBookmarksAction->setText(tr("&Import Bookmarks...")); m_fileExportBookmarksAction->setText(tr("&Export Bookmarks...")); - /*m_filePrintPreviewAction->setText(tr("P&rint Preview...")); - m_filePrintAction->setText(tr("&Print..."));*/ + m_filePrintPreviewAction->setText(tr("P&rint Preview...")); + m_filePrintAction->setText(tr("&Print...")); m_filePrivateBrowsingAction->setText(tr("Private &Browsing...")); m_fileCloseWindow->setText(tr("Close Window")); m_fileQuit->setText(tr("&Quit")); @@ -1186,14 +1182,15 @@ void BrowserMainWindow::fileOpen() tabWidget()->loadUrl(QUrl::fromLocalFile(file)); } -/* void BrowserMainWindow::filePrintPreview() { if (!currentTab()) return; - QPrintPreviewDialog dialog(this); - connect(&dialog, SIGNAL(paintRequested(QPrinter *)), - currentTab(), SLOT(print(QPrinter *))); + + QPrinter printer; + QPrintPreviewDialog dialog(&printer, currentTab()->page()->view()); + connect(&dialog, &QPrintPreviewDialog::paintRequested, + this, &BrowserMainWindow::printDocument); dialog.exec(); } @@ -1201,19 +1198,42 @@ void BrowserMainWindow::filePrint() { if (!currentTab()) return; - printRequested(currentTab()->page()); + printRequested(); } -void BrowserMainWindow::printRequested(QWebEnginePage *page) +void BrowserMainWindow::printRequested() { - QPrinter printer; - QPrintDialog dialog(&printer, this); - dialog.setWindowTitle(tr("Print Document")); + if (!currentTab()) + return; + QPrinter printer(QPrinter::HighResolution); + QPrintDialog dialog(&printer, currentTab()->page()->view()); if (dialog.exec() != QDialog::Accepted) return; - page->print(&printer, [](bool a) {}); + printDocument(&printer); +} + +void BrowserMainWindow::printDocument(QPrinter *printer) +{ + if (!currentTab()) + return; + QEventLoop loop; + bool result; + auto printPreview = [&](bool success) { result = success; loop.quit(); }; + currentTab()->page()->print(printer, std::move(printPreview)); + loop.exec(); + if (!result) { + QPainter painter; + if (painter.begin(printer)) { + QFont font = painter.font(); + font.setPixelSize(20); + painter.setFont(font); + painter.drawText(QPointF(10,25), + QStringLiteral("Could not generate print preview.")); + + painter.end(); + } + } } -*/ void BrowserMainWindow::privateBrowsing() { diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index a1f1a65b..fb684937 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -77,6 +77,7 @@ class HistoryMenu; class BookmarksMenuBarMenu; class UserAgentMenu; class DevToolsWindow; +class QPrinter; /*! The MainWindow of the Browser Application. @@ -111,6 +112,7 @@ public slots: void privacyChanged(bool isPrivate); void zoomTextOnlyChanged(bool textOnly); void runScriptOnOpenViews(QString source); + void printDocument(QPrinter *printer); protected: void closeEvent(QCloseEvent *event); @@ -131,8 +133,8 @@ private slots: void fileNew(); void fileOpen(); - //void filePrintPreview(); - //void filePrint(); + void filePrintPreview(); + void filePrint(); void privateBrowsing(); void fileSaveAs(); void editFind(); @@ -168,7 +170,7 @@ private slots: void showWindow(); void swapFocus(); - //void printRequested(QWebEnginePage *page); + void printRequested(); void geometryChangeRequested(const QRect &geometry); void gotHTML(QString &value); @@ -189,8 +191,8 @@ private slots: QAction *m_fileSaveAsAction; QAction *m_fileImportBookmarksAction; QAction *m_fileExportBookmarksAction; - //QAction *m_filePrintPreviewAction; - //QAction *m_filePrintAction; + QAction *m_filePrintPreviewAction; + QAction *m_filePrintAction; QAction *m_filePrivateBrowsingAction; QAction *m_fileCloseWindow; QAction *m_fileQuit; diff --git a/src/locale/cs_CZ.ts b/src/locale/cs_CZ.ts index 52170236..2dba1f8b 100644 --- a/src/locale/cs_CZ.ts +++ b/src/locale/cs_CZ.ts @@ -567,6 +567,14 @@ Přesto ukončit? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/da_DK.ts b/src/locale/da_DK.ts index 52a31806..1a55e5e7 100644 --- a/src/locale/da_DK.ts +++ b/src/locale/da_DK.ts @@ -567,6 +567,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/de_DE.ts b/src/locale/de_DE.ts index 8cf7d5f5..eaad74d7 100644 --- a/src/locale/de_DE.ts +++ b/src/locale/de_DE.ts @@ -569,6 +569,14 @@ Arora wirklich beenden? Page title and Browser name %1 - Endorphin + + P&rint Preview... + &Mit Vorschau drucken... + + + &Print... + &Drucken... + ClearButton diff --git a/src/locale/el_GR.ts b/src/locale/el_GR.ts index 12f04ebc..aae986df 100644 --- a/src/locale/el_GR.ts +++ b/src/locale/el_GR.ts @@ -567,6 +567,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/es_CR.ts b/src/locale/es_CR.ts index d00bf261..41842c00 100644 --- a/src/locale/es_CR.ts +++ b/src/locale/es_CR.ts @@ -568,6 +568,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/et_EE.ts b/src/locale/et_EE.ts index cabb3d4f..693ba475 100644 --- a/src/locale/et_EE.ts +++ b/src/locale/et_EE.ts @@ -565,6 +565,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/fi_FI.ts b/src/locale/fi_FI.ts index 7e1c52f3..4f4203f2 100644 --- a/src/locale/fi_FI.ts +++ b/src/locale/fi_FI.ts @@ -567,6 +567,14 @@ Haluatko lopettaa siitä huolimatta? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/fr_CA.ts b/src/locale/fr_CA.ts index 31530e52..846503ea 100644 --- a/src/locale/fr_CA.ts +++ b/src/locale/fr_CA.ts @@ -567,6 +567,14 @@ Voulez-vous tout de même quitter? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/fr_FR.ts b/src/locale/fr_FR.ts index 4e746119..a5cc5bec 100644 --- a/src/locale/fr_FR.ts +++ b/src/locale/fr_FR.ts @@ -568,6 +568,14 @@ Voulez-vous tout de même quitter? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/he_IL.ts b/src/locale/he_IL.ts index 18df6467..2f0c0f56 100644 --- a/src/locale/he_IL.ts +++ b/src/locale/he_IL.ts @@ -567,6 +567,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/hu_HU.ts b/src/locale/hu_HU.ts index 27ecad6b..63f51248 100644 --- a/src/locale/hu_HU.ts +++ b/src/locale/hu_HU.ts @@ -568,6 +568,14 @@ Biztosan ki akar lépni? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/it_IT.ts b/src/locale/it_IT.ts index 308ec663..4c173ccf 100644 --- a/src/locale/it_IT.ts +++ b/src/locale/it_IT.ts @@ -568,6 +568,14 @@ Sei sicuro di voler uscire? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/ja_JP.ts b/src/locale/ja_JP.ts index 8642c5ca..f9a70a00 100644 --- a/src/locale/ja_JP.ts +++ b/src/locale/ja_JP.ts @@ -568,6 +568,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/ko_KR.ts b/src/locale/ko_KR.ts index 3cde08b2..8b4250b7 100644 --- a/src/locale/ko_KR.ts +++ b/src/locale/ko_KR.ts @@ -263,442 +263,452 @@ Do you want to quit anyway? BrowserMainWindow - + Hide Toolbar 도구 바 숨기기 - + Show Toolbar 도구 바 보이기 - + Hide Bookmarks Bar 북마크 바 숨기기 - + Show Bookmarks Bar 북마크 바 보이기 - + Hide Status Bar 상태 바 숨기기 - + Show Status Bar 상태 바 보이기 - + Default 기본값 - + &File 파일 (&F) - + &New Window 새 창 열기 (&N) - + &Open File... 파일 열기 (&O)... - + Open &Location... 경로 열기 (&L)... - + &Save As... 새 이름으로 저장 (&S)... - + &Import Bookmarks... 북마크 목록 가져오기 (&I)... - + &Export Bookmarks... 북마크 목록 내보내기 (&E)... - + + P&rint Preview... + + + + + &Print... + + + + Private &Browsing... 개인정보 보호 브라우징 (&B)... - + Close Window 창 닫기 - + &Quit 종료 (&Q) - + &Edit 편집 (&E) - + &Undo 되돌리기 (&U) - + &Redo 다시하기 (&R) - + Cu&t 잘라내기 (&T) - + &Copy 복사 (&C) - + &Paste 붙여넣기 (&P) - + Select &All 모두 선택 (&A) - + &Find 찾기 (&F) - + Find Nex&t 다음 항목 찾기 (&T) - + Find P&revious 이전 항목 찾기 (&R) - + &View 보기 (&V) - + Ctrl+| Ctrl+| - + Alt+Ctrl+B Alt+Ctrl+B - + Ctrl+/ Ctrl+/ - + Show Menu Bar 메뉴 바 보이기 - + &Reload Page 페이지 새로 고침 (&R) - + &Stop 중지 (&S) - + Zoom &In 확대 (&I) - + Zoom &Normal 기본 배율로 (&N) - + Zoom &Out 축소 (&O) - + Zoom &Text Only 글자만 확대 (&T) - + Page S&ource 페이지 소스 (&O) - + Ctrl+Alt+U Ctrl+Alt+U - + &Full Screen 전체 화면 (&F) - + Text Encoding 문자 인코딩 - + Hi&story 기록 (&S) - + Back 뒤로 - + Forward 앞으로 - + Home - + Restore Last Session 마지막 세션 복원 - - + + &Bookmarks 북마크 목록 (&B) - + Show All Bookmarks... 모든 북마크 목록 보기... - + Add Bookmark... 북마크 추가... - + Add Folder... 폴더 추가... - + &Window 창 (&W) - + &Tools 도구 (&T) - + Web &Search 웹 검색 (&S) - + Ctrl+K Web Search Ctrl+K - + &Clear Private Data 개인정보 데이터 지우기 (&C) - + Ctrl+Shift+Delete Clear Private Data Ctrl+Shift+Delete - + %1 - Endorphin Page title and Browser name - + Options... 옵션... - + Ctrl+, Ctrl+, - + Configure Search Engines... 검색 엔진 설정... - + User Agent 사용자 에이전트 - + &Help 도움말 (&H) - + Switch application language 응용 프로그램 언어 변경 - + About &Qt Qt 에 대하여 (&Q) - + About &%1 About Browser &%1에 대하여 - + Navigation 탐색 - + Reload / Stop 새로 고침 / 중지 - + Open Web Resource 웹 리소스 열기 - + Web Resources (*.html *.htm *.svg *.png *.gif *.svgz);;All files (*.*) 웹 리소스 (*.html *.htm *.svg *.png *.gif *.svgz);;모든 파일 (*.*) - + Are you sure you want to turn on private browsing? 개인정보 보호 브라우징으로 전환할까요? - + When private browsing is turned on, some actions concerning your privacy will be disabled: 개인정보 보호 브라우징으로 전환하게 되면 개인정보를 침해할 수 있는 일부 기능은 비활성화됩니다. - + Webpages are not added to the history. 웹 페이지가 기록에 추가되지 않습니다. - + Items are automatically removed from the Downloads window. 다운로드 목록 창의 항목은 자동으로 제거됩니다. - + Site icons won't be stored. 사이트 아이콘이 저장되지 않습니다. - + Session won't be saved. 세션이 저장되지 않습니다. - + Searches are not added to the pop-up menu in the search box. 검색 상자 안에서 이루어진 검색은 팝업 메뉴에 추가되지 않습니다. - + No new network cache is written to disk. 디스크에 새로운 네트워크 캐시를 저장하지 않습니다. - + Until you close the window, you can still click the Back and Forward buttons to return to the webpages you have opened. 창을 닫을 때까지 열었던 페이지는 "뒤로" "앞으로" 버튼을 클릭하면 언제든지 접근할 수 있습니다. - + Private Browsing 개인정보 보호 브라우징 - + Are you sure you want to close the window? There are %1 tabs open 모든 탭을 닫고 종료하시겠습니까? 지금 %1 개의 탭이 열려 있습니다. - + Stop loading the current page 이 페이지를 불러오는 것을 중단합니다 - + Stop 중지 - + Reload the current page 이 페이지를 새로 고칩니다 - + Reload 새로 고침 - + Downloads 다운로드 목록 - + Ctrl+Y Download Manager Ctrl+Y diff --git a/src/locale/ms.ts b/src/locale/ms.ts index 2fd2b36c..b298f951 100644 --- a/src/locale/ms.ts +++ b/src/locale/ms.ts @@ -569,6 +569,14 @@ Teruskan untuk keluar? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/nb_NO.ts b/src/locale/nb_NO.ts index 169f05cf..cfdfbefa 100644 --- a/src/locale/nb_NO.ts +++ b/src/locale/nb_NO.ts @@ -567,6 +567,14 @@ Er du sikker på at du vil avslutte Arora? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/nl.ts b/src/locale/nl.ts index 0371184e..1e3f9bd1 100644 --- a/src/locale/nl.ts +++ b/src/locale/nl.ts @@ -568,6 +568,14 @@ Wilt u toch afsluiten? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/pl_PL.ts b/src/locale/pl_PL.ts index 86c761a7..9c7f6ac3 100644 --- a/src/locale/pl_PL.ts +++ b/src/locale/pl_PL.ts @@ -568,6 +568,14 @@ Czy mimo to chcesz zakończyć? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/pt_BR.ts b/src/locale/pt_BR.ts index e6fa9c0c..8f1a5f18 100644 --- a/src/locale/pt_BR.ts +++ b/src/locale/pt_BR.ts @@ -568,6 +568,14 @@ Você quer sair de qualquer maneira? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/ru_RU.ts b/src/locale/ru_RU.ts index dc87bfb4..d79cf2da 100644 --- a/src/locale/ru_RU.ts +++ b/src/locale/ru_RU.ts @@ -569,6 +569,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/sk_SK.ts b/src/locale/sk_SK.ts index 1ab6b324..2c727650 100644 --- a/src/locale/sk_SK.ts +++ b/src/locale/sk_SK.ts @@ -566,6 +566,14 @@ Chcete ich všetky uzavrieť? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/sr_RS.ts b/src/locale/sr_RS.ts index 5de95d37..8baa19d0 100644 --- a/src/locale/sr_RS.ts +++ b/src/locale/sr_RS.ts @@ -568,6 +568,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/sr_RS@latin.ts b/src/locale/sr_RS@latin.ts index 52890631..2e04db82 100644 --- a/src/locale/sr_RS@latin.ts +++ b/src/locale/sr_RS@latin.ts @@ -568,6 +568,14 @@ Svejedno napustiti? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/tr_TR.ts b/src/locale/tr_TR.ts index fb51a70b..f6af6c99 100644 --- a/src/locale/tr_TR.ts +++ b/src/locale/tr_TR.ts @@ -568,6 +568,14 @@ Yinede çıkmak istiyor musunuz? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/uk.ts b/src/locale/uk.ts index 7803ceaa..e90d090f 100644 --- a/src/locale/uk.ts +++ b/src/locale/uk.ts @@ -567,6 +567,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/zh_CN.ts b/src/locale/zh_CN.ts index 8754416e..8eebf294 100644 --- a/src/locale/zh_CN.ts +++ b/src/locale/zh_CN.ts @@ -567,6 +567,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/locale/zh_TW.ts b/src/locale/zh_TW.ts index ec3df7de..43392d2b 100644 --- a/src/locale/zh_TW.ts +++ b/src/locale/zh_TW.ts @@ -567,6 +567,14 @@ Do you want to quit anyway? Page title and Browser name + + P&rint Preview... + + + + &Print... + + ClearButton diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index b060f11c..33a31b58 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -435,7 +435,7 @@ WebView *TabWidget::makeNewTab(bool makeCurrent) connect(webView->page(), SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested())); connect(webView->page(), SIGNAL(printRequested()), - this, SIGNAL(printRequested(webView->page()))); + this, SIGNAL(printRequested())); connect(webView->page(), SIGNAL(geometryChangeRequested(const QRect &)), this, SLOT(geometryChangeRequestedCheck(const QRect &))); connect(webView, &WebView::devToolsRequested, this, &TabWidget::devToolsRequested); diff --git a/src/tabwidget.h b/src/tabwidget.h index f87e9f17..514a5f6a 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -104,7 +104,7 @@ class TabWidget : public QTabWidget void linkHovered(const QString &link); void loadProgress(int progress); void geometryChangeRequested(const QRect &geometry); - void printRequested(QWebEnginePage *page); + void printRequested(); void devToolsRequested(QWebEnginePage *source); public: From ef63cac4a01ad294ee3a9b741b23bcdd6dab94ba Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Tue, 19 Jan 2021 23:53:59 +0100 Subject: [PATCH 46/64] Implement DownloadManager --- autotests/CMakeLists.txt | 2 +- definitions.cmake | 2 + src/browsermainwindow.cpp | 2 +- src/downloadmanager.cpp | 479 ++++++++++++++------------------------ src/downloadmanager.h | 44 ++-- src/downloads.ui | 22 +- src/locale/cs_CZ.ts | 47 +++- src/locale/da_DK.ts | 71 ++++-- src/locale/de_DE.ts | 51 +++- src/locale/el_GR.ts | 43 +++- src/locale/es_CR.ts | 49 +++- src/locale/et_EE.ts | 59 +++-- src/locale/fi_FI.ts | 43 +++- src/locale/fr_CA.ts | 69 ++++-- src/locale/fr_FR.ts | 47 +++- src/locale/he_IL.ts | 47 +++- src/locale/hu_HU.ts | 43 +++- src/locale/it_IT.ts | 47 +++- src/locale/ja_JP.ts | 47 +++- src/locale/ko_KR.ts | 143 +++++++----- src/locale/ms.ts | 43 +++- src/locale/nb_NO.ts | 47 +++- src/locale/nl.ts | 47 +++- src/locale/pl_PL.ts | 47 +++- src/locale/pt_BR.ts | 47 +++- src/locale/ru_RU.ts | 47 +++- src/locale/sk_SK.ts | 63 +++-- src/locale/sr_RS.ts | 47 +++- src/locale/sr_RS@latin.ts | 47 +++- src/locale/tr_TR.ts | 47 +++- src/locale/uk.ts | 47 +++- src/locale/zh_CN.ts | 39 +++- src/locale/zh_TW.ts | 43 +++- src/savepagedialog.cpp | 139 +++++++++++ src/savepagedialog.h | 90 +++++++ src/savepagedialog.ui | 139 +++++++++++ src/tabwidget.cpp | 19 ++ src/tabwidget.h | 5 +- src/webview.cpp | 9 +- src/webview.h | 4 +- src/webviewsearch.cpp | 2 - 41 files changed, 1744 insertions(+), 631 deletions(-) create mode 100644 src/savepagedialog.cpp create mode 100644 src/savepagedialog.h create mode 100644 src/savepagedialog.ui diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 8b48d0cf..c981becf 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -2,7 +2,7 @@ project(autotests) add_subdirectory(addbookmarkdialog) add_subdirectory(autosaver) add_subdirectory(bookmarknode) -add_subdirectory(downloadmanager) +#add_subdirectory(downloadmanager) add_subdirectory(historyfiltermodel) add_subdirectory(historymanager) add_subdirectory(modeltoolbar) diff --git a/definitions.cmake b/definitions.cmake index 53319d0a..2da4f679 100644 --- a/definitions.cmake +++ b/definitions.cmake @@ -35,6 +35,7 @@ set(ENDORPHIN_SRCS ${ENDORPHIN_SRC_DIR}/modeltoolbar.cpp ${ENDORPHIN_SRC_DIR}/permissionbar.cpp ${ENDORPHIN_SRC_DIR}/plaintexteditsearch.cpp + ${ENDORPHIN_SRC_DIR}/savepagedialog.cpp ${ENDORPHIN_SRC_DIR}/searchbar.cpp ${ENDORPHIN_SRC_DIR}/searchbutton.cpp ${ENDORPHIN_SRC_DIR}/searchlineedit.cpp @@ -88,6 +89,7 @@ set(ENDORPHIN_UIS ${ENDORPHIN_SRC_DIR}/acceptlanguagedialog.ui ${ENDORPHIN_SRC_DIR}/downloaditem.ui ${ENDORPHIN_SRC_DIR}/downloads.ui + ${ENDORPHIN_SRC_DIR}/savepagedialog.ui ${ENDORPHIN_SRC_DIR}/searchbanner.ui ${ENDORPHIN_SRC_DIR}/settings.ui ${ENDORPHIN_SRC_DIR}/bookmarks/addbookmarkdialog.ui diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index d3dce578..a2c2ded4 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -1125,7 +1125,7 @@ void BrowserMainWindow::selectLineEdit() void BrowserMainWindow::fileSaveAs() { - BrowserApplication::downloadManager()->download(currentTab()->url(), true); + currentTab()->page()->download(currentTab()->url(), ""); } void BrowserMainWindow::preferences() diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 72bd6825..706e401d 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -17,7 +17,55 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA */ - +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2008-2008 Trolltech ASA. All rights reserved. @@ -79,7 +127,8 @@ #include #include #include -#include +#include +#include #include #include @@ -93,30 +142,23 @@ It moves the data from the QNetworkReply into the QFile as well as update the information/progressbar and report errors. */ -DownloadItem::DownloadItem(QNetworkReply *reply, bool requestFileName, QWidget *parent) +DownloadItem::DownloadItem(QWebEngineDownloadItem *download, QWidget *parent) : QWidget(parent) - , m_reply(reply) - , m_requestFileName(requestFileName) - , m_bytesReceived(0) - , m_startedSaving(false) - , m_finishedDownloading(false) - , m_gettingFileName(false) - , m_canceledFileSelect(false) + , m_download(download) { setupUi(this); QPalette p = downloadInfoLabel->palette(); p.setColor(QPalette::Text, Qt::darkGray); downloadInfoLabel->setPalette(p); progressBar->setMaximum(0); - tryAgainButton->hide(); - connect(stopButton, SIGNAL(clicked()), this, SLOT(stop())); + tryAgainButton->hide(); connect(openButton, SIGNAL(clicked()), this, SLOT(open())); connect(tryAgainButton, SIGNAL(clicked()), this, SLOT(tryAgain())); - if (!requestFileName) { - QSettings settings; - settings.beginGroup(QLatin1String("downloadmanager")); - m_requestFileName = settings.value(QLatin1String("alwaysPromptForFileName"), false).toBool(); + if (download) { + QString file = QDir::cleanPath(download->downloadDirectory() + QDir::separator() + download->downloadFileName()); + m_file.setFile(file); + m_url = download->url(); } init(); @@ -124,26 +166,12 @@ DownloadItem::DownloadItem(QNetworkReply *reply, bool requestFileName, QWidget * void DownloadItem::init() { - if (!m_reply) - return; - - m_startedSaving = false; - m_finishedDownloading = false; - - openButton->setEnabled(false); - - // attach to the m_reply - m_url = m_reply->url(); - m_reply->setParent(this); - connect(m_reply, SIGNAL(readyRead()), this, SLOT(downloadReadyRead())); - connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)), - this, SLOT(error(QNetworkReply::NetworkError))); - connect(m_reply, SIGNAL(downloadProgress(qint64, qint64)), - this, SLOT(downloadProgress(qint64, qint64))); - connect(m_reply, SIGNAL(metaDataChanged()), - this, SLOT(metaDataChanged())); - connect(m_reply, SIGNAL(finished()), - this, SLOT(finished())); + if (m_download) { + connect(m_download.data(), SIGNAL(downloadProgress(qint64,qint64)), + this, SLOT(downloadProgress())); + connect(m_download.data(), SIGNAL(finished()), + this, SLOT(finished())); + } // reset info downloadInfoLabel->clear(); @@ -152,102 +180,43 @@ void DownloadItem::init() // start timer for the download estimation m_downloadTime.start(); - - if (m_reply->error() != QNetworkReply::NoError) { - error(m_reply->error()); - finished(); - } } -void DownloadItem::getFileName() +bool DownloadItem::getFileName(bool promptForFileName) { - if (m_gettingFileName) - return; - + QSettings settings; + settings.beginGroup(QLatin1String("downloadmanager")); #ifndef NO_BROWSERAPPLICATION - QString downloadDirectory = BrowserApplication::downloadManager()->downloadDirectory(); + QString defaultLocation = BrowserApplication::downloadManager()->downloadDirectory(); #else - QString downloadDirectory = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + '/'; + QString defaultLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + '/'; #endif + if (m_file.absoluteDir().exists()) + defaultLocation = m_file.absolutePath(); + QString downloadDirectory = settings.value(QLatin1String("downloadDirectory"), defaultLocation).toString(); + if (!downloadDirectory.isEmpty()) + downloadDirectory += QLatin1Char('/'); - QString defaultFileName = saveFileName(downloadDirectory); + QString defaultFileName = QFileInfo(downloadDirectory, m_file.fileName()).absoluteFilePath(); QString fileName = defaultFileName; - if (m_requestFileName) { - m_gettingFileName = true; + if (promptForFileName) { fileName = QFileDialog::getSaveFileName(this, tr("Save File"), defaultFileName); - m_gettingFileName = false; if (fileName.isEmpty()) { - progressBar->setVisible(false); - stop(); + if (m_download) + m_download->cancel(); fileNameLabel->setText(tr("Download canceled: %1").arg(QFileInfo(defaultFileName).fileName())); - m_canceledFileSelect = true; - return; - } - QFileInfo fileInfo = QFileInfo(fileName); -#ifndef NO_BROWSERAPPLICATION - BrowserApplication::downloadManager()->setDownloadDirectory(fileInfo.absoluteDir().absolutePath()); -#endif - fileNameLabel->setText(fileInfo.fileName()); - } - m_output.setFileName(fileName); - - // Check file path for saving. - QDir saveDirPath = QFileInfo(m_output.fileName()).dir(); - if (!saveDirPath.exists()) { - if (!saveDirPath.mkpath(saveDirPath.absolutePath())) { - progressBar->setVisible(false); - stop(); - downloadInfoLabel->setText(tr("Download directory (%1) couldn't be created.").arg(saveDirPath.absolutePath())); - return; + return false; } } + m_file.setFile(fileName); - fileNameLabel->setText(QFileInfo(m_output.fileName()).fileName()); - if (m_requestFileName) - downloadReadyRead(); -} - -QString DownloadItem::saveFileName(const QString &directory) const -{ - // Move this function into QNetworkReply to also get file name sent from the server - QString path; - if (m_reply->hasRawHeader("Content-Disposition")) { - QString value = QLatin1String(m_reply->rawHeader("Content-Disposition")); - int pos = value.indexOf(QLatin1String("filename=")); - if (pos != -1) { - QString name = value.mid(pos + 9); - if (name.startsWith(QLatin1Char('"')) && name.endsWith(QLatin1Char('"'))) - name = name.mid(1, name.size() - 2); - path = name; - } + if (m_download && m_download->state() == QWebEngineDownloadItem::DownloadRequested) { + m_download->setDownloadFileName(m_file.fileName()); + m_download->setDownloadDirectory(m_file.absolutePath()); } - if (path.isEmpty()) - path = m_url.path(); - - QFileInfo info(path); - QString baseName = info.completeBaseName(); - QString endName = info.suffix(); - if (baseName.isEmpty()) { - baseName = QLatin1String("unnamed_download"); - -#ifdef DOWNLOADMANAGER_DEBUG - qDebug() << "DownloadItem::" << __FUNCTION__ << "downloading unknown file:" << m_url; -#endif - } - - if (!endName.isEmpty()) - endName = QLatin1Char('.') + endName; - - QString name = directory + baseName + endName; - if (!m_requestFileName && QFile::exists(name)) { - // already exists, don't overwrite - int i = 1; - do { - name = directory + baseName + QLatin1Char('-') + QString::number(i++) + endName; - } while (QFile::exists(name)); - } - return name; + fileNameLabel->setText(m_file.fileName()); + return true; } void DownloadItem::stop() @@ -255,17 +224,17 @@ void DownloadItem::stop() setUpdatesEnabled(false); stopButton->setEnabled(false); stopButton->hide(); - tryAgainButton->setEnabled(true); - tryAgainButton->show(); setUpdatesEnabled(true); - m_reply->abort(); + if (m_download) + m_download->cancel(); + + emit statusChanged(); emit downloadFinished(); } void DownloadItem::open() { - QFileInfo info(m_output); - QUrl url = QUrl::fromLocalFile(info.absoluteFilePath()); + QUrl url = QUrl::fromLocalFile(m_file.absoluteFilePath()); QDesktopServices::openUrl(url); } @@ -280,75 +249,12 @@ void DownloadItem::tryAgain() stopButton->setVisible(true); progressBar->setVisible(true); - QNetworkAccessManager *manager = new QNetworkAccessManager(); - QNetworkReply *r = manager->get(QNetworkRequest(m_url)); - if (m_reply) - m_reply->deleteLater(); - if (m_output.exists()) - m_output.remove(); - m_reply = r; + m_download.data()->resume(); init(); emit statusChanged(); } -void DownloadItem::downloadReadyRead() -{ - if (m_requestFileName && m_output.fileName().isEmpty()) - return; - if (!m_output.isOpen()) { - // in case someone else has already put a file there - if (!m_requestFileName) - getFileName(); - if (!m_output.open(QIODevice::WriteOnly)) { - downloadInfoLabel->setText(tr("Error opening output file: %1") - .arg(m_output.errorString())); - stop(); - emit statusChanged(); - return; - } - emit statusChanged(); - } - if (-1 == m_output.write(m_reply->readAll())) { - downloadInfoLabel->setText(tr("Error saving: %1") - .arg(m_output.errorString())); - stopButton->click(); - } else { - m_startedSaving = true; - if (m_finishedDownloading) - finished(); - } -} - -void DownloadItem::error(QNetworkReply::NetworkError) -{ -#ifdef DOWNLOADMANAGER_DEBUG - qDebug() << "DownloadItem::" << __FUNCTION__ << m_reply->errorString() << m_url; -#endif - - downloadInfoLabel->setText(tr("Network Error: %1").arg(m_reply->errorString())); - tryAgainButton->setEnabled(true); - tryAgainButton->setVisible(true); - emit downloadFinished(); -} - -void DownloadItem::metaDataChanged() -{ - QVariant locationHeader = m_reply->header(QNetworkRequest::LocationHeader); - if (locationHeader.isValid()) { - m_url = locationHeader.toUrl(); - m_reply->deleteLater(); - QNetworkAccessManager *manager = new QNetworkAccessManager(); - m_reply = manager->get(QNetworkRequest(m_url)); - init(); - return; - } - -#ifdef DOWNLOADMANAGER_DEBUG - qDebug() << "DownloadItem::" << __FUNCTION__ << "not handled."; -#endif -} - -void DownloadItem::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) +void DownloadItem::downloadProgress() { QTime now = QTime::currentTime(); if (m_lastProgressTime.msecsTo(now) < 200) @@ -356,84 +262,56 @@ void DownloadItem::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) m_lastProgressTime = now; - m_bytesReceived = bytesReceived; - qint64 currentValue = 0; - qint64 totalValue = 0; - if (bytesTotal > 0) { - currentValue = bytesReceived * 100 / bytesTotal; - totalValue = 100; + if (m_download.data()->totalBytes() == -1) { + progressBar->setValue(0); + progressBar->setMaximum(0); + } else { + progressBar->setValue(m_download.data()->receivedBytes()); + progressBar->setMaximum(m_download.data()->totalBytes()); } - progressBar->setValue(currentValue); - progressBar->setMaximum(totalValue); - - emit progress(currentValue, totalValue); updateInfoLabel(); } -qint64 DownloadItem::bytesTotal() const -{ - return m_reply->header(QNetworkRequest::ContentLengthHeader).toULongLong(); +QString DownloadItem::dataString(qint64 size) { + return DownloadManager::dataString(size); } -qint64 DownloadItem::bytesReceived() const -{ - return m_bytesReceived; -} - -double DownloadItem::remainingTime() const +void DownloadItem::updateInfoLabel() { - if (!downloading()) - return -1.0; - double timeRemaining = ((double)(bytesTotal() - bytesReceived())) / currentSpeed(); + // update info label + double speed = m_download.data()->receivedBytes() * 1000.0 / m_downloadTime.elapsed(); + double timeRemaining = ((double)(m_download.data()->totalBytes() - m_download.data()->receivedBytes())) / speed; + QString timeRemainingString = tr("seconds"); + if (timeRemaining > 60) { + timeRemaining = timeRemaining / 60; + timeRemainingString = tr("minutes"); + } + timeRemaining = floor(timeRemaining); // When downloading the eta should never be 0 if (timeRemaining == 0) timeRemaining = 1; - return timeRemaining; -} - -double DownloadItem::currentSpeed() const -{ - if (!downloading()) - return -1.0; - - return m_bytesReceived * 1000.0 / m_downloadTime.elapsed(); -} - -void DownloadItem::updateInfoLabel() -{ - if (m_reply->error() != QNetworkReply::NoError) - return; - - qint64 bytesTotal = m_reply->header(QNetworkRequest::ContentLengthHeader).toULongLong(); - bool running = !downloadedSuccessfully(); - - // update info label - double speed = currentSpeed(); - double timeRemaining = remainingTime(); - QString info; - if (running) { + if (!downloadedSuccessfully()) { QString remaining; - - if (bytesTotal != 0) { - remaining = DownloadManager::timeString(timeRemaining); - } - - info = QString(tr("%1 of %2 (%3/sec) - %4")) - .arg(DownloadManager::dataString(m_bytesReceived)) - .arg(bytesTotal == 0 ? tr("?") : DownloadManager::dataString(bytesTotal)) - .arg(DownloadManager::dataString((int)speed)) - .arg(remaining); + if (m_download.data()->totalBytes() != 0) + remaining = tr("- %4 %5 remaining") + .arg(timeRemaining) + .arg(timeRemainingString); + info = tr("%1 of %2 (%3/sec) %4") + .arg(dataString(m_download.data()->receivedBytes())) + .arg(m_download.data()->totalBytes() == 0 ? tr("?") : dataString(m_download.data()->totalBytes())) + .arg(dataString((int)speed)) + .arg(remaining); } else { - if (m_bytesReceived == bytesTotal) - info = DownloadManager::dataString(m_output.size()); - else - info = tr("%1 of %2 - Download Complete") - .arg(DownloadManager::dataString(m_bytesReceived)) - .arg(DownloadManager::dataString(bytesTotal)); + if (m_download.data()->receivedBytes() != m_download.data()->totalBytes()) { + info = tr("%1 of %2 - Stopped") + .arg(dataString(m_download.data()->receivedBytes())) + .arg(dataString(m_download.data()->totalBytes())); + } else + info = dataString(m_download.data()->receivedBytes()); } downloadInfoLabel->setText(info); } @@ -445,20 +323,45 @@ bool DownloadItem::downloading() const bool DownloadItem::downloadedSuccessfully() const { - return (stopButton->isHidden() && tryAgainButton->isHidden()); + bool completed = m_download + && m_download->isFinished() + && m_download->state() == QWebEngineDownloadItem::DownloadCompleted; + return completed || !stopButton->isVisible(); } void DownloadItem::finished() { - m_finishedDownloading = true; - if (!m_startedSaving) { - return; + if (m_download) { + QWebEngineDownloadItem::DownloadState state = m_download->state(); + QString message; + bool interrupted = false; + + switch (state) { + case QWebEngineDownloadItem::DownloadRequested: // Fall-through. + case QWebEngineDownloadItem::DownloadInProgress: + Q_UNREACHABLE(); + break; + case QWebEngineDownloadItem::DownloadCompleted: + break; + case QWebEngineDownloadItem::DownloadCancelled: + message = QStringLiteral("Download cancelled"); + interrupted = true; + break; + case QWebEngineDownloadItem::DownloadInterrupted: + message = QStringLiteral("Download interrupted"); + interrupted = true; + break; + } + + if (interrupted) { + downloadInfoLabel->setText(message); + return; + } } + progressBar->hide(); stopButton->setEnabled(false); stopButton->hide(); - openButton->setEnabled(true); - m_output.close(); updateInfoLabel(); emit statusChanged(); emit downloadFinished(); @@ -474,7 +377,6 @@ DownloadManager::DownloadManager(QWidget *parent) : QDialog(parent) , m_autoSaver(new AutoSaver(this)) , m_model(new DownloadModel(this)) - , m_manager(new QNetworkAccessManager()) , m_iconProvider(nullptr) , m_removePolicy(Never) { @@ -492,7 +394,6 @@ DownloadManager::DownloadManager(QWidget *parent) downloadsView->horizontalHeader()->setStretchLastSection(true); downloadsView->setModel(m_model); connect(cleanupButton, SIGNAL(clicked()), this, SLOT(cleanup())); - connect(buttonBox, SIGNAL(rejected()), this, SLOT(close())); load(); } @@ -552,38 +453,13 @@ bool DownloadManager::externalDownload(const QUrl &url) return QProcess::startDetached(args.takeFirst(), args << QString::fromUtf8(url.toEncoded())); } -void DownloadManager::download(const QNetworkRequest &request, bool requestFileName) +void DownloadManager::download(QWebEngineDownloadItem *download) { - if (request.url().isEmpty()) + if (externalDownload(download->url())) return; - if (externalDownload(request.url())) - return; - handleUnsupportedContent(m_manager->get(request), requestFileName); -} - -void DownloadManager::handleUnsupportedContent(QNetworkReply *reply, bool requestFileName) -{ - if (!reply || reply->url().isEmpty()) - return; - if (externalDownload(reply->url())) - return; - - QVariant header = reply->header(QNetworkRequest::ContentLengthHeader); - bool ok; - int size = header.toInt(&ok); - if (ok && size == 0) - return; - -#ifdef DOWNLOADMANAGER_DEBUG - qDebug() << "DownloadManager::" << __FUNCTION__ << reply->url() << "requestFileName" << requestFileName; -#endif - - DownloadItem *item = new DownloadItem(reply, requestFileName, this); + DownloadItem *item = new DownloadItem(download, this); addItem(item); - if (item->m_canceledFileSelect) - return; - if (!isVisible()) show(); @@ -600,6 +476,8 @@ void DownloadManager::addItem(DownloadItem *item) m_downloads.append(item); m_model->endInsertRows(); updateItemCount(); + if (row == 0) + show(); downloadsView->setIndexWidget(m_model->index(row, 0), item); QIcon icon = style()->standardIcon(QStyle::SP_FileIcon); item->fileIcon->setPixmap(icon.pixmap(48, 48)); @@ -640,24 +518,17 @@ void DownloadManager::updateRow(DownloadItem *item) return; if (!m_iconProvider) m_iconProvider = new QFileIconProvider(); - QIcon icon = m_iconProvider->icon(item->m_output.fileName()); + QIcon icon = m_iconProvider->icon(item->m_file); if (icon.isNull()) icon = style()->standardIcon(QStyle::SP_FileIcon); item->fileIcon->setPixmap(icon.pixmap(48, 48)); - - int oldHeight = downloadsView->rowHeight(row); - downloadsView->setRowHeight(row, qMax(oldHeight, item->minimumSizeHint().height())); + downloadsView->setRowHeight(row, item->minimumSizeHint().height()); bool remove = false; - /* - TODO: Fix for Private Browsing - - QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); if (!item->downloading() - && globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) - */ - if (!item->downloading()) - remove = true; + && BrowserApplication::instance()->isPrivate()) + remove = true; + if (item->downloadedSuccessfully() && removePolicy() == DownloadManager::SuccessFullDownload) { @@ -695,7 +566,7 @@ void DownloadManager::save() const for (int i = 0; i < m_downloads.count(); ++i) { QString key = QString(QLatin1String("download_%1_")).arg(i); settings.setValue(key + QLatin1String("url"), m_downloads[i]->m_url); - settings.setValue(key + QLatin1String("location"), QFileInfo(m_downloads[i]->m_output).filePath()); + settings.setValue(key + QLatin1String("location"), m_downloads[i]->m_file.filePath()); settings.setValue(key + QLatin1String("done"), m_downloads[i]->downloadedSuccessfully()); } int i = m_downloads.count(); @@ -727,16 +598,14 @@ void DownloadManager::load() QUrl url = settings.value(key + QLatin1String("url")).toUrl(); QString fileName = settings.value(key + QLatin1String("location")).toString(); bool done = settings.value(key + QLatin1String("done"), true).toBool(); - if (!url.isEmpty() && !fileName.isEmpty()) { - DownloadItem *item = new DownloadItem(nullptr, this); - item->m_output.setFileName(fileName); - item->fileNameLabel->setText(QFileInfo(item->m_output.fileName()).fileName()); + if (done && !url.isEmpty() && !fileName.isEmpty()) { + DownloadItem *item = new DownloadItem(0, this); + item->m_file.setFile(fileName); + item->fileNameLabel->setText(item->m_file.fileName()); item->m_url = url; item->stopButton->setVisible(false); item->stopButton->setEnabled(false); - item->tryAgainButton->setVisible(!done); - item->tryAgainButton->setEnabled(!done); - item->progressBar->setVisible(false); + item->progressBar->hide(); addItem(item); } key = QString(QLatin1String("download_%1_")).arg(++i); @@ -878,7 +747,7 @@ QMimeData *DownloadModel::mimeData(const QModelIndexList &indexes) const if (!index.isValid()) continue; DownloadItem *item = m_downloadManager->m_downloads.at(index.row()); - urls.append(QUrl::fromLocalFile(QFileInfo(item->m_output).absoluteFilePath())); + urls.append(QUrl::fromLocalFile(item->m_file.absoluteFilePath())); } mimeData->setUrls(urls); return mimeData; diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 2875519e..bf15e443 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -70,8 +70,10 @@ #include #include +#include #include #include +#include class DownloadItem : public QWidget, public Ui_DownloadItem { @@ -79,52 +81,40 @@ class DownloadItem : public QWidget, public Ui_DownloadItem signals: void statusChanged(); - void progress(qint64 bytesReceived = 0, qint64 bytesTotal = 0); void downloadFinished(); public: - DownloadItem(QNetworkReply *reply = nullptr, bool requestFileName = false, QWidget *parent = nullptr); + DownloadItem(QWebEngineDownloadItem *download, QWidget *parent = 0); bool downloading() const; bool downloadedSuccessfully() const; - qint64 bytesTotal() const; - qint64 bytesReceived() const; - double remainingTime() const; - double currentSpeed() const; - - QUrl m_url; + void init(); + bool getFileName(bool promptForFileName = false); - QFile m_output; - QNetworkReply *m_reply; + QFileInfo m_file; private slots: void stop(); void tryAgain(); void open(); - void downloadReadyRead(); - void error(QNetworkReply::NetworkError code); - void downloadProgress(qint64 bytesReceived, qint64 bytesTotal); - void metaDataChanged(); + void downloadProgress(); void finished(); private: - void getFileName(); - void init(); + friend class DownloadManager; void updateInfoLabel(); - QString saveFileName(const QString &directory) const; - - bool m_requestFileName; + QUrl m_url; qint64 m_bytesReceived; QElapsedTimer m_downloadTime; - bool m_startedSaving; - bool m_finishedDownloading; - bool m_gettingFileName; - bool m_canceledFileSelect; + bool m_stopped; QTime m_lastProgressTime; + QScopedPointer m_download; friend class DownloadManager; + + static QString dataString(qint64 size); }; class AutoSaver; @@ -162,12 +152,7 @@ class DownloadManager : public QDialog, public Ui_DownloadDialog QString downloadDirectory(); public slots: - void download(const QNetworkRequest &request, bool requestFileName = false); - inline void download(const QUrl &url, bool requestFileName = false) - { - download(QNetworkRequest(url), requestFileName); - } - void handleUnsupportedContent(QNetworkReply *reply, bool requestFileName = false); + void download(QWebEngineDownloadItem *download); void cleanup(); private slots: @@ -185,7 +170,6 @@ private slots: AutoSaver *m_autoSaver; DownloadModel *m_model; - QNetworkAccessManager *m_manager; QFileIconProvider *m_iconProvider; QList m_downloads; RemovePolicy m_removePolicy; diff --git a/src/downloads.ui b/src/downloads.ui index 134148b2..8cd9c2b4 100644 --- a/src/downloads.ui +++ b/src/downloads.ui @@ -6,15 +6,24 @@ 0 0 - 340 - 233 + 552 + 366 Downloads - + + 0 + + + 0 + + + 0 + + 0 @@ -82,13 +91,6 @@ - - - - QDialogButtonBox::Close - - - diff --git a/src/locale/cs_CZ.ts b/src/locale/cs_CZ.ts index 2dba1f8b..755504b9 100644 --- a/src/locale/cs_CZ.ts +++ b/src/locale/cs_CZ.ts @@ -641,15 +641,15 @@ Přesto ukončit? %1 of %2 (%3/sec) - %4 - %1 z %2 (%3/sek) - %4 + %1 z %2 (%3/sek) - %4 Error saving: %1 - Chyba při ukládání: %1 + Chyba při ukládání: %1 Network Error: %1 - Chyba sítě: %1 + Chyba sítě: %1 ? @@ -657,16 +657,44 @@ Přesto ukončit? Error opening output file: %1 - Chyba při otevírání výstupního souboru: %1 + Chyba při otevírání výstupního souboru: %1 Download directory (%1) couldn't be created. - Složka pro stahování (%1) nemůže být vytvořena. + Složka pro stahování (%1) nemůže být vytvořena. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bajtů + + + kB + kB + + + MB + MB + DownloadManager @@ -933,6 +961,13 @@ Přesto ukončit? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/da_DK.ts b/src/locale/da_DK.ts index 1a55e5e7..b29f6f87 100644 --- a/src/locale/da_DK.ts +++ b/src/locale/da_DK.ts @@ -639,70 +639,86 @@ Do you want to quit anyway? Download canceled: %1 Download annulleret: %1 - - %1 of %2 (%3/sec) - %4 - - Error saving: %1 - Fejl ved skrivning: %1 + Fejl ved skrivning: %1 Network Error: %1 - Netværksfejl: %1 + Netværksfejl: %1 ? ? - Error opening output file: %1 + seconds + + + + minutes + + + + - %4 %5 remaining - Download directory (%1) couldn't be created. + %1 of %2 (%3/sec) %4 - %1 of %2 - Download Complete + %1 of %2 - Stopped + + bytes + Bytes + + + kB + kB + + + MB + MB + DownloadManager + + bytes + Bytes + + + kB + kB + + + MB + MB + There are %1 downloads in progress Do you want to quit anyway? - %n minutes remaining + %n Download(s) - %n seconds remaining + %n minutes remaining - - bytes - Bytes - - - kB - kB - - - MB - MB - - %n Download(s) + %n seconds remaining @@ -928,6 +944,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/de_DE.ts b/src/locale/de_DE.ts index eaad74d7..f2d09335 100644 --- a/src/locale/de_DE.ts +++ b/src/locale/de_DE.ts @@ -643,15 +643,15 @@ Arora wirklich beenden? %1 of %2 (%3/sec) - %4 - %1 von %2 (%3/Sek) - %4 + %1 von %2 (%3/Sek) - %4 Error saving: %1 - Fehler beim Speichern: %1 + Fehler beim Speichern: %1 Network Error: %1 - Netzwerk-Fehler: %1 + Netzwerk-Fehler: %1 ? @@ -659,15 +659,47 @@ Arora wirklich beenden? Error opening output file: %1 - Fehler beim Öffnen der Ausgabedatei: %1 + Fehler beim Öffnen der Ausgabedatei: %1 Download directory (%1) couldn't be created. - Download Verzeichnis (%1) konnte nicht erstellt werden. + Download Verzeichnis (%1) konnte nicht erstellt werden. %1 of %2 - Download Complete - %1 von %2 - Downloads abgeschlossen + %1 von %2 - Downloads abgeschlossen + + + seconds + + + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB @@ -931,6 +963,13 @@ Trotzdem beenden? Deine Maus sperren + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/el_GR.ts b/src/locale/el_GR.ts index aae986df..7390beb0 100644 --- a/src/locale/el_GR.ts +++ b/src/locale/el_GR.ts @@ -641,15 +641,15 @@ Do you want to quit anyway? Error opening output file: %1 - Σφάλμα κατά το άνοιγμα του αρχείου εξόδου: %1 + Σφάλμα κατά το άνοιγμα του αρχείου εξόδου: %1 Error saving: %1 - Σφάλμα αποθήκευσης: %1 + Σφάλμα αποθήκευσης: %1 Network Error: %1 - Σφάλμα Δικτύου: %1 + Σφάλμα Δικτύου: %1 ? @@ -657,16 +657,40 @@ Do you want to quit anyway? %1 of %2 (%3/sec) - %4 - %1 από %2 (%3/δευτ) - %4 + %1 από %2 (%3/δευτ) - %4 - Download directory (%1) couldn't be created. + seconds - %1 of %2 - Download Complete + minutes + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB + DownloadManager @@ -929,6 +953,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/es_CR.ts b/src/locale/es_CR.ts index 41842c00..25ab0977 100644 --- a/src/locale/es_CR.ts +++ b/src/locale/es_CR.ts @@ -642,15 +642,15 @@ Do you want to quit anyway? Error opening output file: %1 - Error abriendo el archivo de salida: %1 + Error abriendo el archivo de salida: %1 Error saving: %1 - Error guardando: %1 + Error guardando: %1 Network Error: %1 - Error de red: %1 + Error de red: %1 ? @@ -658,16 +658,44 @@ Do you want to quit anyway? %1 of %2 (%3/sec) - %4 - %1 de %2 (%3/seg) - %4 + %1 de %2 (%3/seg) - %4 Download directory (%1) couldn't be created. - Descargando directorio (%1) no puede ser creado. + Descargando directorio (%1) no puede ser creado. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bites + + + kB + kB + + + MB + MB + DownloadManager @@ -712,7 +740,7 @@ Do you want to quit anyway? GB - + @@ -930,6 +958,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/et_EE.ts b/src/locale/et_EE.ts index 693ba475..402621e7 100644 --- a/src/locale/et_EE.ts +++ b/src/locale/et_EE.ts @@ -639,32 +639,48 @@ Do you want to quit anyway? Error saving: %1 - Viga salvestamisel: %1 + Viga salvestamisel: %1 Network Error: %1 - Võrgu viga: %1 + Võrgu viga: %1 ? ? - Error opening output file: %1 + seconds - %1 of %2 (%3/sec) - %4 + minutes - Download directory (%1) couldn't be created. + - %4 %5 remaining - %1 of %2 - Download Complete + %1 of %2 (%3/sec) %4 + + %1 of %2 - Stopped + + + + bytes + baiti + + + kB + kiB + + + MB + MiB + DownloadManager @@ -675,6 +691,18 @@ Do you want to quit anyway? %n Downloads + + bytes + baiti + + + kB + kiB + + + MB + MiB + There are %1 downloads in progress Do you want to quit anyway? @@ -694,18 +722,6 @@ Do you want to quit anyway? - - bytes - baiti - - - kB - kiB - - - MB - MiB - GB @@ -926,6 +942,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/fi_FI.ts b/src/locale/fi_FI.ts index 4f4203f2..dd8caae7 100644 --- a/src/locale/fi_FI.ts +++ b/src/locale/fi_FI.ts @@ -641,15 +641,15 @@ Haluatko lopettaa siitä huolimatta? Error opening output file: %1 - Virhe avattaessa tiedostoa: %1 + Virhe avattaessa tiedostoa: %1 Error saving: %1 - Virhe tallennettaessa: %1 + Virhe tallennettaessa: %1 Network Error: %1 - Verkon virhe: %1 + Verkon virhe: %1 ? @@ -657,16 +657,40 @@ Haluatko lopettaa siitä huolimatta? %1 of %2 (%3/sec) - %4 - %1/%2 (%3/sek) %4 + %1/%2 (%3/sek) %4 - Download directory (%1) couldn't be created. + seconds - %1 of %2 - Download Complete + minutes + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + tavua + + + kB + kt + + + MB + Mt + DownloadManager @@ -929,6 +953,13 @@ Haluatko lopettaa siitä huolimatta? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/fr_CA.ts b/src/locale/fr_CA.ts index 846503ea..c474432f 100644 --- a/src/locale/fr_CA.ts +++ b/src/locale/fr_CA.ts @@ -641,35 +641,68 @@ Voulez-vous tout de même quitter? Error saving: %1 - Erreur à l'enregistrement: %1 + Erreur à l'enregistrement: %1 Network Error: %1 - Erreur réseau: %1 + Erreur réseau: %1 ? - Error opening output file: %1 + seconds - %1 of %2 (%3/sec) - %4 + minutes - Download directory (%1) couldn't be created. + - %4 %5 remaining - %1 of %2 - Download Complete + %1 of %2 (%3/sec) %4 + + %1 of %2 - Stopped + + + + bytes + octets + + + kB + kO + + + MB + MO + DownloadManager + + bytes + octets + + + kB + kO + + + MB + MO + + + There are %1 downloads in progress +Do you want to quit anyway? + + %n Download(s) @@ -677,11 +710,6 @@ Voulez-vous tout de même quitter? - - There are %1 downloads in progress -Do you want to quit anyway? - - %n minutes remaining @@ -696,18 +724,6 @@ Do you want to quit anyway? - - bytes - octets - - - kB - kO - - - MB - MO - GB @@ -928,6 +944,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/fr_FR.ts b/src/locale/fr_FR.ts index a5cc5bec..02797a23 100644 --- a/src/locale/fr_FR.ts +++ b/src/locale/fr_FR.ts @@ -642,11 +642,11 @@ Voulez-vous tout de même quitter? Error saving: %1 - Erreur à l'enregistrement: %1 + Erreur à l'enregistrement: %1 Network Error: %1 - Erreur réseau: %1 + Erreur réseau: %1 ? @@ -654,20 +654,48 @@ Voulez-vous tout de même quitter? Error opening output file: %1 - Erreur à l'ouverture du fichier:   %1 + Erreur à l'ouverture du fichier:   %1 %1 of %2 (%3/sec) - %4 - %1 de %2 (%3/sec) - %4 + %1 de %2 (%3/sec) - %4 Download directory (%1) couldn't be created. - Le dossier de téléchargement (%1) n'a pas pu être créé. + Le dossier de téléchargement (%1) n'a pas pu être créé. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + octets + + + kB + ko + + + MB + Mo + DownloadManager @@ -930,6 +958,13 @@ Voulez-vous tout de même quitter? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/he_IL.ts b/src/locale/he_IL.ts index 2f0c0f56..af706121 100644 --- a/src/locale/he_IL.ts +++ b/src/locale/he_IL.ts @@ -641,15 +641,15 @@ Do you want to quit anyway? Error opening output file: %1 - ארעה שגיאה בעת פתיחת קובץ הפלט: %1 + ארעה שגיאה בעת פתיחת קובץ הפלט: %1 Error saving: %1 - ארעה שגיאה בעת השמירה: %1 + ארעה שגיאה בעת השמירה: %1 Network Error: %1 - ארעה שגיאות רשת: %1 + ארעה שגיאות רשת: %1 ? @@ -657,16 +657,44 @@ Do you want to quit anyway? %1 of %2 (%3/sec) - %4 - %1 מתוך %2 (%3/שנייה) - %4 + %1 מתוך %2 (%3/שנייה) - %4 Download directory (%1) couldn't be created. - אין אפשרות ליצור את תיקיית ההורדה (%1). + אין אפשרות ליצור את תיקיית ההורדה (%1). - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + בתים + + + kB + ק"ב + + + MB + מ"ב + DownloadManager @@ -929,6 +957,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/hu_HU.ts b/src/locale/hu_HU.ts index 63f51248..feee59e0 100644 --- a/src/locale/hu_HU.ts +++ b/src/locale/hu_HU.ts @@ -642,32 +642,56 @@ Biztosan ki akar lépni? Error opening output file: %1 - Hiba a kimeneti fájl megnyitásánál: %1 + Hiba a kimeneti fájl megnyitásánál: %1 Error saving: %1 - Hiba a mentésnél: %1 + Hiba a mentésnél: %1 Network Error: %1 - Hálózati hiba: %1 + Hálózati hiba: %1 %1 of %2 (%3/sec) - %4 - %1 / %2 (%3/mp) - %4 + %1 / %2 (%3/mp) - %4 ? ? - Download directory (%1) couldn't be created. + seconds - %1 of %2 - Download Complete + minutes + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bájt + + + kB + kB + + + MB + MB + DownloadManager @@ -926,6 +950,13 @@ Biztosan ki akar lépni? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/it_IT.ts b/src/locale/it_IT.ts index 4c173ccf..c6d5ec79 100644 --- a/src/locale/it_IT.ts +++ b/src/locale/it_IT.ts @@ -642,11 +642,11 @@ Sei sicuro di voler uscire? Error saving: %1 - Errore durante il salvataggio: %1 + Errore durante il salvataggio: %1 Network Error: %1 - Errore di rete: %1 + Errore di rete: %1 ? @@ -654,20 +654,48 @@ Sei sicuro di voler uscire? Error opening output file: %1 - Errore nel file di output: %1 + Errore nel file di output: %1 %1 of %2 (%3/sec) - %4 - %1 di %2 (%3/sec) - %4 + %1 di %2 (%3/sec) - %4 Download directory (%1) couldn't be created. - La cartella degli scaricamenti (%1) non può essere creata. + La cartella degli scaricamenti (%1) non può essere creata. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + byte + + + kB + kB + + + MB + MB + DownloadManager @@ -930,6 +958,13 @@ Vuoi uscire comunque? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/ja_JP.ts b/src/locale/ja_JP.ts index f9a70a00..4a0dc524 100644 --- a/src/locale/ja_JP.ts +++ b/src/locale/ja_JP.ts @@ -642,15 +642,15 @@ Do you want to quit anyway? Error opening output file: %1 - 保存ファイルの作成中にエラー:%1 + 保存ファイルの作成中にエラー:%1 Error saving: %1 - 保存中にエラー:%1 + 保存中にエラー:%1 Network Error: %1 - ネットワーク エラー:%1 + ネットワーク エラー:%1 ? @@ -658,16 +658,44 @@ Do you want to quit anyway? %1 of %2 (%3/sec) - %4 - %1 / %2 (%3/秒) - %4 + %1 / %2 (%3/秒) - %4 Download directory (%1) couldn't be created. - ダウンロード先ディレクトリ (%1) を作成できませんでした。 + ダウンロード先ディレクトリ (%1) を作成できませんでした。 - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB + DownloadManager @@ -926,6 +954,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/ko_KR.ts b/src/locale/ko_KR.ts index 8b4250b7..4edf5999 100644 --- a/src/locale/ko_KR.ts +++ b/src/locale/ko_KR.ts @@ -768,12 +768,12 @@ Do you want to quit anyway? DownloadDialog - + Downloads 다운로드 목록 - + Downloading %1 %1 다운로드 중 @@ -781,98 +781,129 @@ Do you want to quit anyway? DownloadItem - + Save File 파일 저장 - + Download canceled: %1 다운로드 취소됨: %1 - - Download directory (%1) couldn't be created. - 다운로드할 디렉토리 (%1) 을(를) 만들 수 없었습니다. + + seconds + + + + + minutes + + + + + - %4 %5 remaining + + %1 of %2 (%3/sec) %4 + + + + + %1 of %2 - Stopped + + + + bytes + 바이트 + + + kB + KB + + + MB + MB + + + Download directory (%1) couldn't be created. + 다운로드할 디렉토리 (%1) 을(를) 만들 수 없었습니다. + + Error opening output file: %1 - 출력 파일 열기 오류: %1 + 출력 파일 열기 오류: %1 - Error saving: %1 - 저장 오류: %1 + 저장 오류: %1 - Network Error: %1 - 네트워크 오류: %1 + 네트워크 오류: %1 - %1 of %2 (%3/sec) - %4 - %2 중 %1 (%3/초) - %4 + %2 중 %1 (%3/초) - %4 - + ? ? - %1 of %2 - Download Complete - %2 중 %1 (%3/초) - 다운로드를 완료하였습니다. + %2 중 %1 (%3/초) - 다운로드를 완료하였습니다. DownloadManager - + There are %1 downloads in progress Do you want to quit anyway? 지금 %1 개의 다운로드 항목이 완료되지 않았습니다. 다운로드를 중지하고 종료하시겠습니까? - + %n Download(s) %n 개의 다운로드 항목 - + %n minutes remaining %n 분 남음 - + %n seconds remaining %n 초 남음 - + bytes 바이트 - + kB KB - + MB MB - + GB GB @@ -1136,6 +1167,14 @@ Do you want to quit anyway? + + SavePageDialog + + + Save Page As + + + SearchLineEdit @@ -1226,72 +1265,72 @@ Do you want to quit anyway? TabWidget - + Untitled 제목 없음 - + Saved Tabs 저장된 탭 목록 - + Loading... 불러오는 중... - + Loading ... - + Finished loading 불러오기 성공 - + Failed to load 불러오기 실패 - + Show Next Tab 다음 탭 보기 - + Ctrl-] Ctrl-] - + Show Previous Tab 기존 탭 보기 - + Ctrl-[ Ctrl-[ - + Recently Closed Tabs 이전에 닫은 탭 보기 - + New &Tab 새 탭 (&T) - + &Close Tab 탭 닫기 (&C) - + Bookmark All Tabs 모든 탭 북마크 @@ -1345,62 +1384,62 @@ Do you want to quit anyway? WebView - + Open in New &Window 새 창에서 열기 (&N) - + Open in New &Tab 새 탭에서 열기 (&T) - + Save Lin&k 링크 저장 (&K) - + &Bookmark This Link 이 링크를 북마크 (&B) - + &Copy Link Location 링크 주소 복사 (&C) - + Open Image in New &Window 새 창에 이미지 열기 (&W) - + Open Image in New &Tab 새 탭에 이미지 열기 (&T) - + &Save Image 이미지 저장 (&S) - + &Copy Image 이미지 복사 (&C) - + C&opy Image Location 이미지 주소 복사 (&O) - + Search with... 이 부분을 검색... - + Loading... 불러오는 중... @@ -1408,7 +1447,7 @@ Do you want to quit anyway? WebViewSearch - + Not Found 찾을 수 없음 diff --git a/src/locale/ms.ts b/src/locale/ms.ts index b298f951..81e51c8a 100644 --- a/src/locale/ms.ts +++ b/src/locale/ms.ts @@ -643,15 +643,15 @@ Teruskan untuk keluar? Error opening output file: %1 - Ralat membuka fail keluaran: %1 + Ralat membuka fail keluaran: %1 Error saving: %1 - Ralat menyimpan: %1 + Ralat menyimpan: %1 Network Error: %1 - Ralat Rangkaian: %1 + Ralat Rangkaian: %1 ? @@ -659,16 +659,40 @@ Teruskan untuk keluar? %1 of %2 (%3/sec) - %4 - %1 dari %2 (%3/saat) - %4 + %1 dari %2 (%3/saat) - %4 - Download directory (%1) couldn't be created. + seconds - %1 of %2 - Download Complete + minutes + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + byte + + + kB + kB + + + MB + MB + DownloadManager @@ -931,6 +955,13 @@ Anda masih ingin keluar? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/nb_NO.ts b/src/locale/nb_NO.ts index cfdfbefa..316e0faa 100644 --- a/src/locale/nb_NO.ts +++ b/src/locale/nb_NO.ts @@ -641,11 +641,11 @@ Er du sikker på at du vil avslutte Arora? Error saving: %1 - Feil ved lagring: %1 + Feil ved lagring: %1 Network Error: %1 - Nettverksfeil: %1 + Nettverksfeil: %1 ? @@ -653,20 +653,48 @@ Er du sikker på at du vil avslutte Arora? Error opening output file: %1 - Feil ved skriving til fil: %1 + Feil ved skriving til fil: %1 %1 of %2 (%3/sec) - %4 - %1 av %2 (%3/sek) - %4 + %1 av %2 (%3/sek) - %4 Download directory (%1) couldn't be created. - Nedlastningsbanen (%1) kunne ikke opprettes. + Nedlastningsbanen (%1) kunne ikke opprettes. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB + DownloadManager @@ -929,6 +957,13 @@ Er du sikker på at du vil avslutte? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/nl.ts b/src/locale/nl.ts index 1e3f9bd1..922b4981 100644 --- a/src/locale/nl.ts +++ b/src/locale/nl.ts @@ -642,11 +642,11 @@ Wilt u toch afsluiten? Error saving: %1 - Fout bij opslaan: %1 + Fout bij opslaan: %1 Network Error: %1 - Netwerkfout: %1 + Netwerkfout: %1 ? @@ -654,20 +654,48 @@ Wilt u toch afsluiten? Error opening output file: %1 - Fout bij het openen van het outputbestand: %1 + Fout bij het openen van het outputbestand: %1 %1 of %2 (%3/sec) - %4 - %1 van %2 (%3/sec) - %4 + %1 van %2 (%3/sec) - %4 Download directory (%1) couldn't be created. - Downloadmap (%1) kon niet worden gemaakt. + Downloadmap (%1) kon niet worden gemaakt. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB + DownloadManager @@ -930,6 +958,13 @@ Wilt u toch afsluiten? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/pl_PL.ts b/src/locale/pl_PL.ts index 9c7f6ac3..9825b94a 100644 --- a/src/locale/pl_PL.ts +++ b/src/locale/pl_PL.ts @@ -642,11 +642,11 @@ Czy mimo to chcesz zakończyć? Error saving: %1 - Błąd przy zapisie: %1 + Błąd przy zapisie: %1 Network Error: %1 - Błąd sieci: %1 + Błąd sieci: %1 ? @@ -654,20 +654,48 @@ Czy mimo to chcesz zakończyć? Error opening output file: %1 - Błąd w trakcie otwierania pliku docelowego: %1 + Błąd w trakcie otwierania pliku docelowego: %1 %1 of %2 (%3/sec) - %4 - %1 z %2 (%3/sek) - %4 + %1 z %2 (%3/sek) - %4 Download directory (%1) couldn't be created. - Katalog docelowy (%1) nie mógł zostać stworzony. + Katalog docelowy (%1) nie mógł zostać stworzony. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bajtów + + + kB + kB + + + MB + MB + DownloadManager @@ -934,6 +962,13 @@ Czy mimo to chcesz zakończyć? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/pt_BR.ts b/src/locale/pt_BR.ts index 8f1a5f18..528634e4 100644 --- a/src/locale/pt_BR.ts +++ b/src/locale/pt_BR.ts @@ -642,19 +642,19 @@ Você quer sair de qualquer maneira? Error opening output file: %1 - Erro ao abrir o arquivo de saída: %1 + Erro ao abrir o arquivo de saída: %1 Error saving: %1 - Erro ao salvar: %1 + Erro ao salvar: %1 Network Error: %1 - Erro na rede: %1 + Erro na rede: %1 %1 of %2 (%3/sec) - %4 - %1 de %2 (%3/seg) - %4 + %1 de %2 (%3/seg) - %4 ? @@ -662,12 +662,40 @@ Você quer sair de qualquer maneira? Download directory (%1) couldn't be created. - O diretório de download (%1) não pôde ser criado. + O diretório de download (%1) não pôde ser criado. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB + DownloadManager @@ -930,6 +958,13 @@ Você deseja sair de qualquer maneira? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/ru_RU.ts b/src/locale/ru_RU.ts index d79cf2da..7c502980 100644 --- a/src/locale/ru_RU.ts +++ b/src/locale/ru_RU.ts @@ -643,11 +643,11 @@ Do you want to quit anyway? Error saving: %1 - Ошибка при сохранении: %1 + Ошибка при сохранении: %1 Network Error: %1 - Ошибка сети: %1 + Ошибка сети: %1 ? @@ -655,20 +655,48 @@ Do you want to quit anyway? Error opening output file: %1 - Ошибка при открытии сохранённого файла: %1 + Ошибка при открытии сохранённого файла: %1 %1 of %2 (%3/sec) - %4 - %1 из %2 (%3/сек) - %4 + %1 из %2 (%3/сек) - %4 Download directory (%1) couldn't be created. - Директория загрузки (%1) не может быть создана. + Директория загрузки (%1) не может быть создана. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + байт + + + kB + кБ + + + MB + МБ + DownloadManager @@ -935,6 +963,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/sk_SK.ts b/src/locale/sk_SK.ts index 2c727650..f169528e 100644 --- a/src/locale/sk_SK.ts +++ b/src/locale/sk_SK.ts @@ -640,11 +640,11 @@ Chcete ich všetky uzavrieť? Error saving: %1 - Chyba pri ukladaní: %1 + Chyba pri ukladaní: %1 Network Error: %1 - Chyba siete: %1 + Chyba siete: %1 ? @@ -652,20 +652,40 @@ Chcete ich všetky uzavrieť? Error opening output file: %1 - Chyba pri otváraní výstupného súboru: %1 + Chyba pri otváraní výstupného súboru: %1 - %1 of %2 (%3/sec) - %4 + seconds - Download directory (%1) couldn't be created. + minutes - %1 of %2 - Download Complete + - %4 %5 remaining + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bajtov + + + kB + KiB + + + MB + MiB + DownloadManager @@ -677,6 +697,18 @@ Chcete ich všetky uzavrieť? %n preberaní + + bytes + bajtov + + + kB + KiB + + + MB + MiB + There are %1 downloads in progress Do you want to quit anyway? @@ -698,18 +730,6 @@ Do you want to quit anyway? - - bytes - bajtov - - - kB - KiB - - - MB - MiB - GB @@ -931,6 +951,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/sr_RS.ts b/src/locale/sr_RS.ts index 8baa19d0..4f023598 100644 --- a/src/locale/sr_RS.ts +++ b/src/locale/sr_RS.ts @@ -642,19 +642,19 @@ Do you want to quit anyway? Error opening output file: %1 - Грешка при отварању излазног фајла: %1 + Грешка при отварању излазног фајла: %1 Error saving: %1 - Грешка при чувању: %1 + Грешка при чувању: %1 Network Error: %1 - Грешка на мрежи: %1 + Грешка на мрежи: %1 %1 of %2 (%3/sec) - %4 - %1 од %2 (%3/сек) - %4 + %1 од %2 (%3/сек) - %4 ? @@ -662,12 +662,40 @@ Do you want to quit anyway? Download directory (%1) couldn't be created. - Фасцикла за преузимања (%1) не може бити направљена. + Фасцикла за преузимања (%1) не може бити направљена. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + бајтова + + + kB + kB + + + MB + MB + DownloadManager @@ -934,6 +962,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/sr_RS@latin.ts b/src/locale/sr_RS@latin.ts index 2e04db82..bdab1ba1 100644 --- a/src/locale/sr_RS@latin.ts +++ b/src/locale/sr_RS@latin.ts @@ -642,19 +642,19 @@ Svejedno napustiti? Error opening output file: %1 - Greška pri otvaranju izlaznog fajla: %1 + Greška pri otvaranju izlaznog fajla: %1 Error saving: %1 - Greška pri čuvanju: %1 + Greška pri čuvanju: %1 Network Error: %1 - Greška na mreži: %1 + Greška na mreži: %1 %1 of %2 (%3/sec) - %4 - %1 od %2 (%3/sek) - %4 + %1 od %2 (%3/sek) - %4 ? @@ -662,12 +662,40 @@ Svejedno napustiti? Download directory (%1) couldn't be created. - Fascikla za preuzimanja (%1) ne može biti napravljena. + Fascikla za preuzimanja (%1) ne može biti napravljena. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bajtova + + + kB + kB + + + MB + MB + DownloadManager @@ -934,6 +962,13 @@ Svejedno napustiti? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/tr_TR.ts b/src/locale/tr_TR.ts index f6af6c99..82eb44fc 100644 --- a/src/locale/tr_TR.ts +++ b/src/locale/tr_TR.ts @@ -642,15 +642,15 @@ Yinede çıkmak istiyor musunuz? Error opening output file: %1 - Çıktı dosyası açılırken hata oluştu: %1 + Çıktı dosyası açılırken hata oluştu: %1 Error saving: %1 - Kaydederken hata oluştu: %1 + Kaydederken hata oluştu: %1 Network Error: %1 - Ağ Hatası: %1 + Ağ Hatası: %1 ? @@ -658,16 +658,44 @@ Yinede çıkmak istiyor musunuz? %1 of %2 (%3/sec) - %4 - %1 / %2 (%3/sn) - %4 + %1 / %2 (%3/sn) - %4 Download directory (%1) couldn't be created. - İndirilenler klasörü (%1) oluşturulamadı. + İndirilenler klasörü (%1) oluşturulamadı. - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB + DownloadManager @@ -926,6 +954,13 @@ Yine de çıkmak istiyor musunuz? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/uk.ts b/src/locale/uk.ts index e90d090f..73598b23 100644 --- a/src/locale/uk.ts +++ b/src/locale/uk.ts @@ -641,15 +641,15 @@ Do you want to quit anyway? Error opening output file: %1 - Помилка відкриття вихідного файла: %1 + Помилка відкриття вихідного файла: %1 Error saving: %1 - Помилка збереження: %1 + Помилка збереження: %1 Network Error: %1 - Помилка мережі: %1 + Помилка мережі: %1 ? @@ -657,16 +657,44 @@ Do you want to quit anyway? %1 of %2 (%3/sec) - %4 - %1 з %2 (%3/с) — %4 + %1 з %2 (%3/с) — %4 Download directory (%1) couldn't be created. - Неможливо створити теку звантаження (%1). + Неможливо створити теку звантаження (%1). - %1 of %2 - Download Complete + seconds + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + байт + + + kB + кБ + + + MB + МБ + DownloadManager @@ -933,6 +961,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/zh_CN.ts b/src/locale/zh_CN.ts index 8eebf294..14274492 100644 --- a/src/locale/zh_CN.ts +++ b/src/locale/zh_CN.ts @@ -641,32 +641,44 @@ Do you want to quit anyway? Error opening output file: %1 - 打开输出文件出错: %1 + 打开输出文件出错: %1 Error saving: %1 - 保存出错: %1 + 保存出错: %1 Network Error: %1 - 网络出错: %1 + 网络出错: %1 ? - %1 of %2 (%3/sec) - %4 + seconds - Download directory (%1) couldn't be created. + minutes - %1 of %2 - Download Complete + - %4 %5 remaining + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + 字节 + DownloadManager @@ -676,6 +688,10 @@ Do you want to quit anyway? %n 下载 + + bytes + 字节 + There are %1 downloads in progress Do you want to quit anyway? @@ -693,10 +709,6 @@ Do you want to quit anyway? - - bytes - 字节 - kB @@ -924,6 +936,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/locale/zh_TW.ts b/src/locale/zh_TW.ts index 43392d2b..52f8b936 100644 --- a/src/locale/zh_TW.ts +++ b/src/locale/zh_TW.ts @@ -641,32 +641,56 @@ Do you want to quit anyway? Error opening output file: %1 - 開啟輸出檔案時發生錯誤:%1 + 開啟輸出檔案時發生錯誤:%1 Error saving: %1 - 儲存時發生錯誤:%1 + 儲存時發生錯誤:%1 Network Error: %1 - 網路錯誤:%1 + 網路錯誤:%1 %1 of %2 (%3/sec) - %4 - 已下載%1,共有 %2(%3/秒) - %4 + 已下載%1,共有 %2(%3/秒) - %4 ? ? - Download directory (%1) couldn't be created. + seconds - %1 of %2 - Download Complete + minutes + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + %1 of %2 - Stopped + + + + bytes + bytes + + + kB + kB + + + MB + MB + DownloadManager @@ -925,6 +949,13 @@ Do you want to quit anyway? + + SavePageDialog + + Save Page As + + + SearchLineEdit diff --git a/src/savepagedialog.cpp b/src/savepagedialog.cpp new file mode 100644 index 00000000..94648109 --- /dev/null +++ b/src/savepagedialog.cpp @@ -0,0 +1,139 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "savepagedialog.h" +#include "ui_savepagedialog.h" + +#include +#include + +const QWebEngineDownloadItem::SavePageFormat SavePageDialog::m_indexToFormatTable[] = { + QWebEngineDownloadItem::SingleHtmlSaveFormat, + QWebEngineDownloadItem::CompleteHtmlSaveFormat, + QWebEngineDownloadItem::MimeHtmlSaveFormat +}; + +SavePageDialog::SavePageDialog(QWidget *parent, QWebEngineDownloadItem::SavePageFormat format, + const QString &filePath) + : QDialog(parent) + , ui(new Ui::SavePageDialog) +{ + ui->setupUi(this); + ui->formatComboBox->setCurrentIndex(formatToIndex(format)); + setFilePath(filePath); +} + +SavePageDialog::~SavePageDialog() +{ + delete ui; +} + +QWebEngineDownloadItem::SavePageFormat SavePageDialog::pageFormat() const +{ + return indexToFormat(ui->formatComboBox->currentIndex()); +} + +QString SavePageDialog::filePath() const +{ + return QDir::fromNativeSeparators(ui->filePathLineEdit->text()); +} + +void SavePageDialog::on_chooseFilePathButton_clicked() +{ + QFileInfo fi(filePath()); + QFileDialog dlg(this, tr("Save Page As"), fi.absolutePath()); + dlg.setAcceptMode(QFileDialog::AcceptSave); + dlg.setDefaultSuffix(suffixOfFormat(pageFormat())); + dlg.selectFile(fi.absoluteFilePath()); + if (dlg.exec() != QDialog::Accepted) + return; + setFilePath(dlg.selectedFiles().first()); + ensureFileSuffix(pageFormat()); +} + +void SavePageDialog::on_formatComboBox_currentIndexChanged(int idx) +{ + ensureFileSuffix(indexToFormat(idx)); +} + +int SavePageDialog::formatToIndex(QWebEngineDownloadItem::SavePageFormat format) +{ + for (auto i : m_indexToFormatTable) { + if (m_indexToFormatTable[i] == format) + return i; + } + Q_UNREACHABLE(); +} + +QWebEngineDownloadItem::SavePageFormat SavePageDialog::indexToFormat(int idx) +{ + Q_ASSERT(idx >= 0 && size_t(idx) < (sizeof(m_indexToFormatTable) + / sizeof(QWebEngineDownloadItem::SavePageFormat))); + return m_indexToFormatTable[idx]; +} + +QString SavePageDialog::suffixOfFormat(QWebEngineDownloadItem::SavePageFormat format) +{ + if (format == QWebEngineDownloadItem::MimeHtmlSaveFormat) + return QStringLiteral(".mhtml"); + return QStringLiteral(".html"); +} + +void SavePageDialog::setFilePath(const QString &filePath) +{ + ui->filePathLineEdit->setText(QDir::toNativeSeparators(filePath)); +} + +void SavePageDialog::ensureFileSuffix(QWebEngineDownloadItem::SavePageFormat format) +{ + QFileInfo fi(filePath()); + setFilePath(fi.absolutePath() + QLatin1Char('/') + fi.completeBaseName() + + suffixOfFormat(format)); +} diff --git a/src/savepagedialog.h b/src/savepagedialog.h new file mode 100644 index 00000000..d58b1768 --- /dev/null +++ b/src/savepagedialog.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef SAVEPAGEDIALOG_H +#define SAVEPAGEDIALOG_H + +#include +#include + +QT_BEGIN_NAMESPACE +namespace Ui { +class SavePageDialog; +} +QT_END_NAMESPACE + +class SavePageDialog : public QDialog +{ + Q_OBJECT + +public: + explicit SavePageDialog(QWidget *parent, QWebEngineDownloadItem::SavePageFormat format, + const QString &filePath); + ~SavePageDialog(); + + QWebEngineDownloadItem::SavePageFormat pageFormat() const; + QString filePath() const; + +private slots: + void on_chooseFilePathButton_clicked(); + void on_formatComboBox_currentIndexChanged(int idx); + +private: + static int formatToIndex(QWebEngineDownloadItem::SavePageFormat format); + static QWebEngineDownloadItem::SavePageFormat indexToFormat(int idx); + static QString suffixOfFormat(QWebEngineDownloadItem::SavePageFormat format); + void setFilePath(const QString &filePath); + void ensureFileSuffix(QWebEngineDownloadItem::SavePageFormat format); + + static const QWebEngineDownloadItem::SavePageFormat m_indexToFormatTable[]; + Ui::SavePageDialog *ui; +}; + +#endif // SAVEPAGEDIALOG_H diff --git a/src/savepagedialog.ui b/src/savepagedialog.ui new file mode 100644 index 00000000..9aa7cbe5 --- /dev/null +++ b/src/savepagedialog.ui @@ -0,0 +1,139 @@ + + + SavePageDialog + + + + 0 + 0 + 400 + 121 + + + + Dialog + + + + + + + + &Format: + + + formatComboBox + + + + + + + + Single HTML + + + + + Complete HTML + + + + + MIME HTML + + + + + + + + &Save to: + + + filePathLineEdit + + + + + + + + + + + + ... + + + + + + + + + + + Qt::Vertical + + + + 20 + 12 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + formatComboBox + filePathLineEdit + chooseFilePathButton + + + + + buttonBox + accepted() + SavePageDialog + accept() + + + 227 + 104 + + + 157 + 120 + + + + + buttonBox + rejected() + SavePageDialog + reject() + + + 295 + 110 + + + 286 + 120 + + + + + diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 33a31b58..5ecd2136 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -68,6 +68,7 @@ #include "bookmarksmodel.h" #include "browserapplication.h" #include "browsermainwindow.h" +#include "downloadmanager.h" #include "history.h" #include "locationcompleter.h" #include "historymanager.h" @@ -80,6 +81,7 @@ #include "webpage.h" #include "webview.h" #include "webviewsearch.h" +#include "savepagedialog.h" #include #include @@ -94,6 +96,7 @@ #include #include #include +#include #include @@ -1116,3 +1119,19 @@ void TabWidget::createTab(const QByteArray &historyState, TabWidget::OpenUrlIn t } } +void TabWidget::downloadRequested(QWebEngineDownloadItem *download) +{ + if (download->savePageFormat() != QWebEngineDownloadItem::UnknownSaveFormat) { + QString file = QDir::cleanPath(download->downloadDirectory() + QDir::separator() + download->downloadFileName()); + SavePageDialog dlg(this, download->savePageFormat(), file); + if (dlg.exec() != SavePageDialog::Accepted) + return; + download->setSavePageFormat(dlg.pageFormat()); + QFileInfo *info = new QFileInfo(dlg.filePath()); + download->setDownloadFileName(info->fileName()); + download->setDownloadDirectory(info->absolutePath()); + } + + BrowserApplication::downloadManager()->download(download); + download->accept(); +} diff --git a/src/tabwidget.h b/src/tabwidget.h index 514a5f6a..450da1bd 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -82,7 +82,7 @@ class WebView; class WebActionMapper; class WebViewSearch; class QToolButton; - +class QWebEngineDownloadItem; /*! TabWidget that contains WebViews and a stack widget of associated line edits. @@ -187,6 +187,7 @@ private slots: void moveTab(int fromIndex, int toIndex); void geometryChangeRequestedCheck(const QRect &geometry); void historyCleared(); + void downloadRequested(QWebEngineDownloadItem *download); private: void setupPage(QWebEnginePage* page); @@ -208,12 +209,12 @@ private slots: QList m_recentlyClosedTabsHistory; QList m_actions; + QWebEngineProfile *m_profile; QCompleter *m_lineEditCompleter; QStackedWidget *m_locationBars; TabBar *m_tabBar; QToolButton *addTabButton; QToolButton *closeTabButton; - QWebEngineProfile *m_profile; }; #endif // TABWIDGET_H diff --git a/src/webview.cpp b/src/webview.cpp index c23bfba1..18124149 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -182,9 +182,6 @@ void WebView::setPage(WebPage *_page) { m_page = _page; QWebEngineView::setPage(_page); - disconnect(page(), &QWebEnginePage::iconChanged, this, &WebView::iconChanged); - connect(page(), SIGNAL(iconChanged(QIcon)), - this, SLOT(onIconChanged(QIcon))); connect(page(), &WebPage::featurePermissionRequested, this, &WebView::onFeaturePermissionRequested); } @@ -554,7 +551,7 @@ void WebView::resetZoom() applyZoom(); } -void WebView::loadFinished() +void WebView::loadFinished(bool success) { if (100 != m_progress) { qWarning() << "Received finished signal while progress is still:" << progress() @@ -692,9 +689,9 @@ void WebView::setStatusBarText(const QString &string) m_statusBarText = string; } -void WebView::downloadRequested(const QNetworkRequest &request) +void WebView::downloadRequested(QWebEngineDownloadItem *download) { - BrowserApplication::downloadManager()->download(request); + BrowserApplication::downloadManager()->download(download); } void WebView::keyPressEvent(QKeyEvent *event) diff --git a/src/webview.h b/src/webview.h index 7aabc289..e9a71a4f 100644 --- a/src/webview.h +++ b/src/webview.h @@ -127,9 +127,9 @@ public slots: private slots: void setProgress(int progress); - void loadFinished(); + void loadFinished(bool success); void setStatusBarText(const QString &string); - void downloadRequested(const QNetworkRequest &request); + void downloadRequested(QWebEngineDownloadItem *download); void openActionUrlInNewTab(); void openActionUrlInNewWindow(); void downloadLinkToDisk(); diff --git a/src/webviewsearch.cpp b/src/webviewsearch.cpp index 43b461f7..c3bf0c58 100644 --- a/src/webviewsearch.cpp +++ b/src/webviewsearch.cpp @@ -31,8 +31,6 @@ WebViewSearch::WebViewSearch(QWebEngineView *webView, QWidget *parent) : SearchBar(parent) { setSearchObject(webView); - connect(ui.searchLineEdit, SIGNAL(textEdited(const QString &)), - this, SLOT(highlightAll())); } void WebViewSearch::findNext() From 2053edccf88b0a3791b214f570cadbde6a0142e8 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 20 Jan 2021 18:02:25 +0100 Subject: [PATCH 47/64] Implement searching --- CHANGELOG.md | 12 ++++-------- src/data/qwebchannel.js | 7 +++++++ src/webpage.cpp | 4 ++-- src/webpage.h | 4 ++-- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b69a9a8a..69eda065 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,18 +7,14 @@ The first official Endorphin release. Contains many new features, a new engine, ### Fixed issues - endorphin-placesimport sometimes resulted in an "Invalid cross-device link" error. -- Trying to access any web page resulted in an "invalid certificate" error (WebKit version only) ### Behind the scene -- Add alternative CMake build system: - This is not final yet, and currently only works on Linux. - When it is finished, it will replace qmake. - CMake currently reduces the size of endorphin-placesimport from about 2 MB to about 250 KB. +- Port to CMake +- Update the Engine from WebKit to WebEngine ### Other -- Remove ClickToFlash: - Flash will reach its end-of-life soon, and shouldn't be used at all, so this feature was removed. -- Remove usage of some deprecated QT features +- Remove ClickToFlash: Flash is no longer supported +- Prepare for Qt6 ## 0.12.1 diff --git a/src/data/qwebchannel.js b/src/data/qwebchannel.js index f0adc64d..1fb83624 100644 --- a/src/data/qwebchannel.js +++ b/src/data/qwebchannel.js @@ -465,4 +465,11 @@ if (typeof module === 'object') { new QWebChannel(qt.webChannelTransport, function (channel) { window.endorphin = channel.objects.endorphin; + const links = document.getElementsByTagName("link"); + for(link of links) { + if(link.rel == "search") { + window.endorphin.addSearchProvider(link.href); + } + } }); + diff --git a/src/webpage.cpp b/src/webpage.cpp index 997d4292..faff1f87 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2020 Aaron Dewes + * Copyright 2020-2021 Aaron Dewes * Copyright 2009 Jakub Wieczorek * * This program is free software; you can redistribute it and/or modify @@ -63,7 +63,7 @@ JavaScriptEndorphinObject::JavaScriptEndorphinObject(QObject *parent) qRegisterMetaType("OpenSearchEngine*"); } -void JavaScriptEndorphinObject::AddSearchProvider(const QString &url) +void JavaScriptEndorphinObject::addSearchProvider(const QString &url) { ToolbarSearch::openSearchManager()->addEngine(QUrl(url)); } diff --git a/src/webpage.h b/src/webpage.h index ea70a39a..bba15842 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -1,5 +1,5 @@ /* - * Copyright 2020 Aaron Dewes + * Copyright 2020-2021 Aaron Dewes * * 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 @@ -39,7 +39,7 @@ public slots: QString translate(const QString &string); QObject *currentEngine() const; QString searchUrl(const QString &string) const; - void AddSearchProvider(const QString &url); + void addSearchProvider(const QString &url); }; class WebPageLinkedResource From 679daf19cb05e2cbd809207686b60f346f9d588f Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 24 Jan 2021 09:07:03 +0100 Subject: [PATCH 48/64] Minor text improvements --- src/bookmarks/addbookmarkdialog.cpp | 2 +- src/bookmarks/xbel/xbelreader.h | 3 ++- src/bookmarks/xbel/xbelwriter.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bookmarks/addbookmarkdialog.cpp b/src/bookmarks/addbookmarkdialog.cpp index f485e626..d03a17a8 100644 --- a/src/bookmarks/addbookmarkdialog.cpp +++ b/src/bookmarks/addbookmarkdialog.cpp @@ -110,7 +110,7 @@ AddBookmarkDialog::AddBookmarkDialog(QWidget *parent, BookmarksManager *bookmark #ifdef FOR_AUTOTEST m_bookmarksManager = tst_AddBookmarkDialog::bookmarksManager(); #else -#error "Nothing provides a bookmarksmanager" +#error "No bookmarksmanager provided! Build this either with BrowserApplication included or for autotests" #endif #endif diff --git a/src/bookmarks/xbel/xbelreader.h b/src/bookmarks/xbel/xbelreader.h index 6bb53117..c54b53ca 100644 --- a/src/bookmarks/xbel/xbelreader.h +++ b/src/bookmarks/xbel/xbelreader.h @@ -63,7 +63,8 @@ #ifndef XBELREADER_H #define XBELREADER_H -#include +#include +#include #include class BookmarkNode; diff --git a/src/bookmarks/xbel/xbelwriter.h b/src/bookmarks/xbel/xbelwriter.h index 7bca1b41..c43af16c 100644 --- a/src/bookmarks/xbel/xbelwriter.h +++ b/src/bookmarks/xbel/xbelwriter.h @@ -63,7 +63,7 @@ #ifndef XBELWRITER_H #define XBELWRITER_H -#include +#include #include class BookmarkNode; From eae374e97e91f53dc075af4f74ce1382c36f88e1 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sun, 24 Jan 2021 09:10:42 +0100 Subject: [PATCH 49/64] Remove unused UiTools --- src/CMakeLists.txt | 5 +---- src/webpage.cpp | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 92d0bed1..530a9be0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -23,9 +23,6 @@ find_package(Qt5UiTools REQUIRED) find_package(Qt5LinguistTools REQUIRED) find_package(Qt5Qml REQUIRED) -if(NOT Qt5UiTools_FOUND) - add_definitions(-DQT_NO_UITOOLS) -endif() set(EXECUTABLE_OUTPUT_PATH ../) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -89,7 +86,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_TW.ts # Generate executable add_executable(endorphin main.cpp ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -target_link_libraries(endorphin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Qml Qt5::PrintSupport Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) +target_link_libraries(endorphin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Qml Qt5::PrintSupport Qt5::WebEngine Qt5::WebEngineWidgets) if(NOT QT_TRANSLATIONS_DIR) diff --git a/src/webpage.cpp b/src/webpage.cpp index faff1f87..47f655ec 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -35,7 +35,6 @@ #include #include #include -#include #include #include From 88361b971eccc40f4fc22960535d71e6cec4e74f Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Sat, 30 Jan 2021 15:57:05 +0100 Subject: [PATCH 50/64] Prepare for adding in new settings --- src/history/history.cpp | 4 +- src/history/historymanager.cpp | 4 +- src/htmls/htmls.qrc | 1 + src/htmls/settings.html | 18 ++ src/settings.cpp | 7 + src/settings.h | 1 + src/settings.ui | 483 ++++++++++++++++++-------------- src/tabwidget.cpp | 2 +- src/utils/singleapplication.cpp | 4 +- src/webpage.cpp | 47 +++- src/webpage.h | 10 +- 11 files changed, 367 insertions(+), 214 deletions(-) create mode 100644 src/htmls/settings.html diff --git a/src/history/history.cpp b/src/history/history.cpp index c7ccaccc..922f0215 100644 --- a/src/history/history.cpp +++ b/src/history/history.cpp @@ -69,7 +69,7 @@ #include "historymanager.h" #include "treesortfilterproxymodel.h" -#include +#include #include #include #include @@ -78,7 +78,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index 83f32913..2fdcf9e6 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -68,12 +68,12 @@ #include "browserapplication.h" #endif -#include +#include #include #include #include #include -#include +#include #include #include diff --git a/src/htmls/htmls.qrc b/src/htmls/htmls.qrc index 5243a9a8..00e262a1 100644 --- a/src/htmls/htmls.qrc +++ b/src/htmls/htmls.qrc @@ -2,5 +2,6 @@ dirlist.html notfound.html + settings.html diff --git a/src/htmls/settings.html b/src/htmls/settings.html new file mode 100644 index 00000000..0236f6b7 --- /dev/null +++ b/src/htmls/settings.html @@ -0,0 +1,18 @@ + + + Settings + + + + +

    +
    + + + + \ No newline at end of file diff --git a/src/settings.cpp b/src/settings.cpp index 86a4b839..3e24767c 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -90,6 +90,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) connect(downloadDirectoryButton, SIGNAL(clicked()), this, SLOT(chooseDownloadDirectory())); connect(externalDownloadBrowse, SIGNAL(clicked()), this, SLOT(chooseDownloadProgram())); connect(styleSheetBrowseButton, SIGNAL(clicked()), this, SLOT(chooseStyleSheet())); + connect(newSettings, SIGNAL(clicked()), this, SLOT(openModernSettings())); loadDefaults(); loadFromSettings(); @@ -402,3 +403,9 @@ void SettingsDialog::chooseStyleSheet() QString fileName = QFileDialog::getOpenFileName(this, tr("Choose CSS File"), url.toLocalFile()); userStyleSheet->setText(QString::fromUtf8(QUrl::fromLocalFile(fileName).toEncoded())); } + +void SettingsDialog::openModernSettings() { + BrowserMainWindow *mw = static_cast(parent()); + mw->tabWidget()->loadUrl(QUrl("qrc:/settings.html"), TabWidget::NewSelectedTab, "Settings"); + close(); +} diff --git a/src/settings.h b/src/settings.h index 62dad01c..2475456e 100644 --- a/src/settings.h +++ b/src/settings.h @@ -88,6 +88,7 @@ private slots: void chooseAcceptLanguage(); void chooseStyleSheet(); + void openModernSettings(); private: QFont m_standardFont; diff --git a/src/settings.ui b/src/settings.ui index 1a849521..7366950e 100644 --- a/src/settings.ui +++ b/src/settings.ui @@ -7,7 +7,7 @@ 0 0 677 - 421 + 445 @@ -27,80 +27,114 @@ - 2 + 0 + + + true + + + Information + + + + + 10 + 10 + 641 + 341 + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + The settings here will be moved soon. We're modernizing and redesigning this browser currently, and we're moving the settings into a web page. In the future, the settings will only be accessible at endorphin://settings. You can already try using the experimental version by pressing the button below, but not all settings are available there yet. + + + Qt::AlignCenter + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Open the new settings + + + + + + + + Open Sans Light + 25 + 50 + false + PreferDefault + true + + + + The settings are moving! + + + Qt::AlignCenter + + + + + + + + General - - - - On startup: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - Show my home page - - - - - Show a blank page - - - - - Restore windows and tabs from last time - - - - - - + + - Home Page: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - Qt::LeftToRight + Use the default search engine as fallback when the URL given by the user is invalid - - - - - - Set to current page + + false - - - - Qt::Horizontal - - - - 280 - 18 - - - - - + Remove history items: @@ -110,63 +144,7 @@ - - - - - After one day - - - - - After one week - - - - - After two weeks - - - - - After one month - - - - - After one year - - - - - Manually - - - - - On application exit - - - - - - - - Use the default search engine as fallback when the URL given by the user is invalid - - - false - - - - - - Enable access keys - - - - Downloads @@ -244,69 +222,129 @@ - - - - - Appearance - - - + - Standard font: + On startup: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - 0 - 0 - - - - QFrame::StyledPanel - + + - Times 16 - - - Qt::AlignCenter + Set to current page - - - - Select... + + + + Qt::LeftToRight - + - Fixed-width font: + Home Page: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - QFrame::StyledPanel - + + + + + Show my home page + + + + + Show a blank page + + + + + Restore windows and tabs from last time + + + + + + - Courier 13 + Enable access keys - - Qt::AlignCenter + + + + + + + After one day + + + + + After one week + + + + + After two weeks + + + + + After one month + + + + + After one year + + + + + Manually + + + + + On application exit + + + + + + + + + Appearance + + + + + + false + + + 1 + + + 9 + + + + + + + Select... @@ -317,10 +355,10 @@ - - + + - Preferred languages for viewing webpages in: + Minimum Font size: @@ -331,10 +369,23 @@ - - + + - Minimum Font size: + Standard font: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Fixed-width font: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -351,16 +402,42 @@ - - - - false + + + + + 0 + 0 + - - 1 + + QFrame::StyledPanel - - 9 + + Times 16 + + + Qt::AlignCenter + + + + + + + QFrame::StyledPanel + + + Courier 13 + + + Qt::AlignCenter + + + + + + + Preferred languages for viewing webpages in: @@ -622,6 +699,16 @@ + + + + 65535 + + + 1080 + + + @@ -629,26 +716,16 @@ - - + + - Port: + User Name: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - 65535 - - - 1080 - - - @@ -662,13 +739,13 @@ - - - - User Name: + + + + Qt::LeftToRight - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + QLineEdit::Password @@ -689,16 +766,6 @@ - - - - Qt::LeftToRight - - - QLineEdit::Password - - - @@ -712,6 +779,16 @@ + + + + Port: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + @@ -791,7 +868,7 @@ - + Qt::Vertical @@ -813,7 +890,6 @@ startupBehavior homeLineEdit - setHomeToCurrentPageButton expireHistory searchEngineFallback downloadAsk @@ -834,7 +910,6 @@ proxySupport proxyType proxyHostName - proxyPort proxyUserName proxyPassword userStyleSheet diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 5ecd2136..82c9c568 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -209,7 +209,7 @@ void TabWidget::initScripts() { QWebEngineScript script; script.setName("WebChannel loader"); - script.setInjectionPoint(QWebEngineScript::Deferred); + script.setInjectionPoint(QWebEngineScript::DocumentCreation); script.setRunsOnSubFrames(true); script.setWorldId(QWebEngineScript::MainWorld); script.setSourceCode(out.readAll()); diff --git a/src/utils/singleapplication.cpp b/src/utils/singleapplication.cpp index 47862edb..101c89d8 100644 --- a/src/utils/singleapplication.cpp +++ b/src/utils/singleapplication.cpp @@ -29,8 +29,8 @@ #include "singleapplication.h" #include -#include -#include +#include +#include #include #include diff --git a/src/webpage.cpp b/src/webpage.cpp index 47f655ec..c95c0967 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -46,8 +46,9 @@ QString WebPage::s_userAgent; Q_DECLARE_METATYPE(OpenSearchEngine*) -JavaScriptEndorphinObject::JavaScriptEndorphinObject(QObject *parent) +JavaScriptEndorphinObject::JavaScriptEndorphinObject(QObject *parent, WebPage *page) : QObject(parent) + , m_page(page) { static const char *translations[] = { QT_TR_NOOP("Welcome to Endorphin!"), @@ -67,6 +68,48 @@ void JavaScriptEndorphinObject::addSearchProvider(const QString &url) ToolbarSearch::openSearchManager()->addEngine(QUrl(url)); } +QString JavaScriptEndorphinObject::getSetting(const QString &name, const QString &group) +{ + if (m_page->url().toString() != "qrc:/settings.html") + return nullptr; + QSettings settings; + settings.beginGroup(group); + return settings.value(name).toString(); + settings.endGroup(); +} + +int JavaScriptEndorphinObject::setSetting(const QString &name, const QString &group, const QString &value) +{ + if (m_page->url().toString() != "qrc:/settings.html") + return 1; + QSettings settings; + settings.beginGroup(group); + settings.setValue(name, value); + settings.endGroup(); + return 0; +} + +int JavaScriptEndorphinObject::setSetting(const QString &name, const QString &group, const int &value) +{ + if (m_page->url().toString() != "qrc:/settings.html") + return 1; + QSettings settings; + settings.beginGroup(group); + settings.setValue(name, value); + settings.endGroup(); + return 0; +} + +int JavaScriptEndorphinObject::setSetting(const QString &name, const QString &group, const bool value) +{ + if (m_page->url().toString() != "qrc:/settings.html") + return 1; + QSettings settings; + settings.beginGroup(group); + settings.setValue(name, value); + settings.endGroup(); + return 0; +} QString JavaScriptEndorphinObject::translate(const QString &string) { @@ -96,7 +139,7 @@ WebPage::WebPage(QWebEngineProfile *profile, QObject *parent) , m_openTargetBlankLinksIn(TabWidget::NewWindow) { QWebChannel *channel = new QWebChannel(this); - channel->registerObject("endorphin", new JavaScriptEndorphinObject(this)); + channel->registerObject("endorphin", new JavaScriptEndorphinObject(this, this)); setWebChannel(channel); loadSettings(); } diff --git a/src/webpage.h b/src/webpage.h index bba15842..eb5d5fbd 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -26,6 +26,7 @@ #include #include +class WebPage; class JavaScriptEndorphinObject : public QObject { Q_OBJECT @@ -33,13 +34,20 @@ class JavaScriptEndorphinObject : public QObject Q_PROPERTY(QObject *currentEngine READ currentEngine) public: - JavaScriptEndorphinObject(QObject *parent = 0); + JavaScriptEndorphinObject(QObject *parent = nullptr, WebPage *page = nullptr); public slots: QString translate(const QString &string); QObject *currentEngine() const; QString searchUrl(const QString &string) const; void addSearchProvider(const QString &url); + QString getSetting(const QString &name, const QString &group); + int setSetting(const QString &name, const QString &group, const int &value); + int setSetting(const QString &name, const QString &group, const QString &value); + int setSetting(const QString &name, const QString &group, const bool value); + +private: + WebPage *m_page; }; class WebPageLinkedResource From fe1121f5e41bd6c3256775c06c04633c010993cf Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Mon, 1 Feb 2021 16:01:07 +0100 Subject: [PATCH 51/64] Make new tab page part of the browser again --- src/htmls/htmls.qrc | 2 ++ src/htmls/startpage.css | 73 ++++++++++++++++++++++++++++++++++++++++ src/htmls/startpage.html | 48 ++++++++++++++++++++++++++ src/locale/ko_KR.ts | 6 ++-- src/tabwidget.cpp | 2 +- 5 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 src/htmls/startpage.css create mode 100644 src/htmls/startpage.html diff --git a/src/htmls/htmls.qrc b/src/htmls/htmls.qrc index 00e262a1..0b986866 100644 --- a/src/htmls/htmls.qrc +++ b/src/htmls/htmls.qrc @@ -3,5 +3,7 @@ dirlist.html notfound.html settings.html + startpage.html + startpage.css diff --git a/src/htmls/startpage.css b/src/htmls/startpage.css new file mode 100644 index 00000000..f47eda2d --- /dev/null +++ b/src/htmls/startpage.css @@ -0,0 +1,73 @@ +* { + margin: 0; + padding: 0; + font-family: "DejaVu Sans"; +} + +body { + background: linear-gradient(90deg, #ccc, #fff 50%); + margin-top: 100px; +} + +#header, #search, #footer { + width: 500px; + margin: 10px auto; +} + +#header, #search { + border-radius: 0.8em; + padding: 25px; +} + +#header { + background: linear-gradient(0deg, #228, #66a 90%,#668); + height: 20px; +} + +#header h1 { + display: inline; + font-size: 1.7em; + color: #fff; + font-weight: bold; +} + +#header img { + display: inline; + float: right; + height: 150px; + margin-top: -80px; +} + +#search { + background: linear-gradient(90deg, #cdf, #eff 50%, #cdf); + height: 50px; + color: #000; + text-align: center; + padding-top: 40px !important; +} + +#search fieldset { + border: 0; +} + +#search input[type=text] { + width: 65%; +} + +#search input[type=submit] { + width: 25%; +} + +#footer { + text-align: center; + color: #999; +} + +#footer a { + color: #555; + text-decoration: none; +} + +#footer a:hover { + text-decoration: underline; +} diff --git a/src/htmls/startpage.html b/src/htmls/startpage.html new file mode 100644 index 00000000..15d73835 --- /dev/null +++ b/src/htmls/startpage.html @@ -0,0 +1,48 @@ + + + + New Tab + + + + + + + + + + diff --git a/src/locale/ko_KR.ts b/src/locale/ko_KR.ts index 4edf5999..6c13edba 100644 --- a/src/locale/ko_KR.ts +++ b/src/locale/ko_KR.ts @@ -1186,17 +1186,17 @@ Do you want to quit anyway? SettingsDialog - + Choose Directory 디렉토리 선택 - + Choose Program 프로그램 선택 - + Choose CSS File CSS 파일 선택 diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 82c9c568..8adb1efb 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -853,7 +853,7 @@ QUrl TabWidget::guessUrlFromString(const QString &string) if (url.scheme() == QLatin1String("about") && url.path() == QLatin1String("home")) - url = QUrl(QLatin1String("https://endorphinbrowser.github.io/newTab/0.13.0-preview1/")); + url = QUrl(QLatin1String("endoprhin://startpage")); // QUrl::isValid() is too much tolerant. // We actually want to check if the url conforms to the RFC, which QUrl::isValid() doesn't state. From 446296b25fac1f83dcfcbb908de8497a20477c11 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Mon, 1 Feb 2021 18:26:36 +0100 Subject: [PATCH 52/64] Refactor the build system (again) --- CMakeLists.txt | 1 + autotests/addbookmarkdialog/CMakeLists.txt | 55 +------- .../tst_addbookmarkdialog.cpp | 40 ++++-- .../addbookmarkdialog/tst_addbookmarkdialog.h | 54 -------- autotests/autosaver/CMakeLists.txt | 20 +-- autotests/autosaver/tst_autosaver.cpp | 57 ++++++++- autotests/autosaver/tst_autosaver.h | 81 ------------ autotests/bookmarknode/CMakeLists.txt | 23 +--- autotests/bookmarknode/tst_bookmarknode.cpp | 29 ++++- autotests/bookmarknode/tst_bookmarknode.h | 62 --------- autotests/downloadmanager/CMakeLists.txt | 33 +---- .../downloadmanager/tst_downloadmanager.cpp | 42 +++++- .../downloadmanager/tst_downloadmanager.h | 57 --------- autotests/historyfiltermodel/CMakeLists.txt | 54 +------- .../tst_historyfiltermodel.cpp | 66 ++++++++-- .../tst_historyfiltermodel.h | 67 ---------- autotests/historymanager/CMakeLists.txt | 40 +----- .../historymanager/tst_historymanager.cpp | 121 ++++++++++++++---- autotests/historymanager/tst_historymanager.h | 84 ------------ autotests/modeltoolbar/CMakeLists.txt | 30 +---- autotests/modeltoolbar/tst_modeltoolbar.cpp | 9 +- autotests/opensearchengine/CMakeLists.txt | 34 +---- .../opensearchengine/tst_opensearchengine.cpp | 106 +++++++-------- autotests/opensearchmanager/CMakeLists.txt | 39 +----- .../tst_opensearchmanager.cpp | 4 +- autotests/opensearchreader/CMakeLists.txt | 40 +----- .../opensearchreader/tst_opensearchreader.cpp | 34 ++--- autotests/opensearchwriter/CMakeLists.txt | 40 +----- .../opensearchwriter/tst_opensearchwriter.cpp | 18 +-- autotests/tabbar/CMakeLists.txt | 33 +---- autotests/tabwidget/CMakeLists.txt | 33 +---- .../languagemanager/tst_languagemanager.cpp | 10 +- autotests/webactionmapper/CMakeLists.txt | 35 +---- autotests/webpage/CMakeLists.txt | 36 +----- autotests/xbel/CMakeLists.txt | 28 +--- endorphinbase.cmake | 25 ++++ src/CMakeLists.txt | 29 +---- src/devtoolswindow.cpp | 3 +- src/tabwidget.cpp | 2 +- tools/placesimport/CMakeLists.txt | 2 +- 40 files changed, 476 insertions(+), 1100 deletions(-) delete mode 100644 autotests/addbookmarkdialog/tst_addbookmarkdialog.h delete mode 100644 autotests/autosaver/tst_autosaver.h delete mode 100644 autotests/bookmarknode/tst_bookmarknode.h delete mode 100644 autotests/downloadmanager/tst_downloadmanager.h delete mode 100644 autotests/historyfiltermodel/tst_historyfiltermodel.h delete mode 100644 autotests/historymanager/tst_historymanager.h create mode 100644 endorphinbase.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index fb543047..f26d1b0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ project(Endorphin) cmake_minimum_required(VERSION 3.16) include(CTest) include(definitions.cmake) +include(endorphinbase.cmake) if(BUILD_TESTING) add_subdirectory(autotests) endif() diff --git a/autotests/addbookmarkdialog/CMakeLists.txt b/autotests/addbookmarkdialog/CMakeLists.txt index 1c69467e..3e0db452 100644 --- a/autotests/addbookmarkdialog/CMakeLists.txt +++ b/autotests/addbookmarkdialog/CMakeLists.txt @@ -1,56 +1,7 @@ project(test-addbookmarkdialog) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks/xbel - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -add_definitions(-DNO_HISTORYDIALOG) -set(SRCS - tst_addbookmarkdialog.cpp - ../../src/bookmarks/addbookmarkdialog.cpp - ../../src/bookmarks/bookmarksmanager.cpp - ../../src/bookmarks/bookmarksmenu.cpp - ../../src/bookmarks/bookmarksmodel.cpp - ../../src/bookmarks/bookmarknode.cpp - ../../src/bookmarks/bookmarkstoolbar.cpp - ../../src/bookmarks/xbel/xbelreader.cpp - ../../src/bookmarks/xbel/xbelwriter.cpp - ../../src/history/history.cpp - ../../src/history/historymanager.cpp - ../../src/utils/lineedit.cpp - ../../src/autosaver.cpp - ../../src/modelmenu.cpp - ../../src/modeltoolbar.cpp -) + QT5_WRAP_UI(UIS ../../src/bookmarks/addbookmarkdialog.ui) -QT5_WRAP_CPP(MOCS - tst_addbookmarkdialog.h - ../../src/autosaver.h - ../../src/modelmenu.h - ../../src/modeltoolbar.h - ../../src/bookmarks/addbookmarkdialog.h - ../../src/bookmarks/bookmarksmanager.h - ../../src/bookmarks/bookmarksmenu.h - ../../src/bookmarks/bookmarksmodel.h - ../../src/bookmarks/bookmarknode.h - ../../src/bookmarks/bookmarkstoolbar.h - ../../src/history/history.h - ../../src/history/historymanager.h - ../../src/utils/lineedit.h - ../../src/utils/lineedit_p.h -) -add_executable(test-addbookmarkdialog ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-addbookmarkdialog Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) \ No newline at end of file +add_executable(test-addbookmarkdialog tst_addbookmarkdialog.cpp ${UIS}) +target_link_libraries(test-addbookmarkdialog endorphin-base Qt5::Test) diff --git a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp index 96133f3f..6f1268c8 100644 --- a/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp +++ b/autotests/addbookmarkdialog/tst_addbookmarkdialog.cpp @@ -22,21 +22,35 @@ #include "addbookmarkdialog.h" #include "bookmarksmanager.h" #include "bookmarknode.h" -#include "tst_addbookmarkdialog.h" +#include "browserapplication.h" #include #include -BookmarksManager *tst_AddBookmarkDialog::s_bookmarksManager = nullptr; +class tst_AddBookmarkDialog : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); -// Normally, Browserapplication is used, but this makes it possible -// to speperate tests from browserapplication and only include everything the test needs. -BookmarksManager *tst_AddBookmarkDialog::bookmarksManager() +private slots: + void addbookmarkdialog_data(); + void addbookmarkdialog(); +}; + +// Subclass that exposes the protected functions. +class SubAddBookmarkDialog : public AddBookmarkDialog { - if (!s_bookmarksManager) - s_bookmarksManager = new BookmarksManager; - return s_bookmarksManager; -} + +public: + SubAddBookmarkDialog(QWidget *parent, BookmarksManager *manager) + : AddBookmarkDialog(parent, manager) {} + +}; // This will be called before the first test function is executed. // It is only called once. @@ -54,7 +68,7 @@ void tst_AddBookmarkDialog::cleanupTestCase() // This will be called before each test function is executed. void tst_AddBookmarkDialog::init() { - BookmarksManager *manager = bookmarksManager(); + BookmarksManager *manager = BrowserApplication::bookmarksManager(); BookmarkNode *root = manager->bookmarks(); QList nodes = root->children(); BookmarkNode *menu = nodes[0]; @@ -96,7 +110,7 @@ void tst_AddBookmarkDialog::addbookmarkdialog() QFETCH(int, toolbarCount); QFETCH(int, select); - BookmarksManager *manager = bookmarksManager(); + BookmarksManager *manager = BrowserApplication::bookmarksManager(); qRegisterMetaType("BookmarkNode *"); QSignalSpy spy(manager, SIGNAL(entryAdded(BookmarkNode *))); BookmarkNode *menu = manager->menu(); @@ -133,4 +147,6 @@ void tst_AddBookmarkDialog::addbookmarkdialog() } } -QTEST_MAIN(tst_AddBookmarkDialog) \ No newline at end of file +QTEST_MAIN(tst_AddBookmarkDialog) +#include "tst_addbookmarkdialog.moc" + diff --git a/autotests/addbookmarkdialog/tst_addbookmarkdialog.h b/autotests/addbookmarkdialog/tst_addbookmarkdialog.h deleted file mode 100644 index 468d16f5..00000000 --- a/autotests/addbookmarkdialog/tst_addbookmarkdialog.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include "addbookmarkdialog.h" - -#ifndef TST_ADDBOOKMARKDIALOG_H -#define TST_ADDBOOKMARKDIALOG_H - -class tst_AddBookmarkDialog : public QObject -{ - Q_OBJECT - -public: - static BookmarksManager *bookmarksManager(); - static BookmarksManager *s_bookmarksManager; - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void addbookmarkdialog_data(); - void addbookmarkdialog(); -}; - -// Subclass that exposes the protected functions. -class SubAddBookmarkDialog : public AddBookmarkDialog -{ -public: - SubAddBookmarkDialog(QWidget *parent, BookmarksManager *manager) - : AddBookmarkDialog(parent, manager) {} - -}; - -#endif // TST_ADDBOOKMARKDIALOG_H \ No newline at end of file diff --git a/autotests/autosaver/CMakeLists.txt b/autotests/autosaver/CMakeLists.txt index e3ec7cec..fa885fbc 100644 --- a/autotests/autosaver/CMakeLists.txt +++ b/autotests/autosaver/CMakeLists.txt @@ -1,21 +1,5 @@ project(test-autosaver) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src -) -add_definitions(-DNO_BROWSERAPPLICATION) -set(SRCS - tst_autosaver.cpp - ../../src/autosaver.cpp -) -QT5_WRAP_CPP(MOCS - tst_autosaver.h - ../../src/autosaver.h -) -add_executable(test-autosaver ${SRCS} ${MOCS}) -target_link_libraries(test-autosaver Qt5::Core Qt5::Test) +add_executable(test-autosaver tst_autosaver.cpp) +target_link_libraries(test-autosaver endorphin-base Qt5::Test) diff --git a/autotests/autosaver/tst_autosaver.cpp b/autotests/autosaver/tst_autosaver.cpp index 172971ec..9c77da51 100644 --- a/autotests/autosaver/tst_autosaver.cpp +++ b/autotests/autosaver/tst_autosaver.cpp @@ -19,7 +19,60 @@ #include #include -#include "tst_autosaver.h" + +class tst_AutoSaver : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + + void save(); + +private slots: + void AutoSaver_data(); + void AutoSaver(); + void changeOccurred_data(); + void changeOccurred(); + void deleted(); +}; + +// Subclass that exposes the protected functions. +class SubAutoSaver : public AutoSaver +{ +public: + SubAutoSaver(QObject *parent = 0) : AutoSaver(parent) {} + void call_timerEvent(QTimerEvent *event) + { return SubAutoSaver::timerEvent(event); } +}; + +class TestClass : public QObject +{ +Q_OBJECT + +signals: + void saveCalled(); + +public: + TestClass(QObject *parent = 0) : QObject(parent), AutoSaver(new SubAutoSaver(this)) + { + } + + ~TestClass() + { + AutoSaver->saveIfNeccessary(); + } + + SubAutoSaver *AutoSaver; + +public slots: + void save() { + emit saveCalled(); + } +}; // This will be called before the first test function is executed. // It is only called once. @@ -97,3 +150,5 @@ void tst_AutoSaver::deleted() } QTEST_MAIN(tst_AutoSaver) +#include "tst_autosaver.moc" + diff --git a/autotests/autosaver/tst_autosaver.h b/autotests/autosaver/tst_autosaver.h deleted file mode 100644 index 511e97c0..00000000 --- a/autotests/autosaver/tst_autosaver.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include - -#ifndef TST_AUTOSAVER_H -#define TST_AUTOSAVER_H - -class tst_AutoSaver : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - - void save(); - -private slots: - void AutoSaver_data(); - void AutoSaver(); - void changeOccurred_data(); - void changeOccurred(); - void deleted(); -}; - -// Subclass that exposes the protected functions. -class SubAutoSaver : public AutoSaver -{ -public: - SubAutoSaver(QObject *parent = 0) : AutoSaver(parent) {} - void call_timerEvent(QTimerEvent *event) - { - return SubAutoSaver::timerEvent(event); - } -}; - -class TestClass : public QObject -{ - Q_OBJECT - -signals: - void saveCalled(); - -public: - TestClass(QObject *parent = 0) : QObject(parent), AutoSaver(new SubAutoSaver(this)) - { - } - - ~TestClass() - { - AutoSaver->saveIfNeccessary(); - } - - SubAutoSaver *AutoSaver; - -public slots: - void save() { - emit saveCalled(); - } -}; - -#endif //TST_AUTOSAVER_H diff --git a/autotests/bookmarknode/CMakeLists.txt b/autotests/bookmarknode/CMakeLists.txt index ca1d0e3a..88295a9b 100644 --- a/autotests/bookmarknode/CMakeLists.txt +++ b/autotests/bookmarknode/CMakeLists.txt @@ -1,23 +1,6 @@ project(test-bookmarknode) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks/xbel -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_bookmarknode.cpp - ../../src/bookmarks/bookmarknode.cpp -) -QT5_WRAP_CPP(MOCS - tst_bookmarknode.h -) -add_executable(test-bookmarknode ${SRCS} ${MOCS}) -target_link_libraries(test-bookmarknode Qt5::Core Qt5::Test) +add_executable(test-bookmarknode tst_bookmarknode.cpp) +target_link_libraries(test-bookmarknode endorphin-base Qt5::Test) + diff --git a/autotests/bookmarknode/tst_bookmarknode.cpp b/autotests/bookmarknode/tst_bookmarknode.cpp index 651048cc..23239a3b 100644 --- a/autotests/bookmarknode/tst_bookmarknode.cpp +++ b/autotests/bookmarknode/tst_bookmarknode.cpp @@ -28,7 +28,33 @@ #include #include -#include + +class tst_BookmarkNode : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void bookmarknode_data(); + void bookmarknode(); + + void add_duplicate(); + void add_to_bookmark(); + void add_move(); + void add_data(); + void add(); + void equal(); + void remove(); + void deleteNode(); + void deleteChildren(); + void type_data(); + void type(); +}; // This will be called before the first test function is executed. // It is only called once. @@ -243,3 +269,4 @@ void tst_BookmarkNode::type() } QTEST_MAIN(tst_BookmarkNode) +#include "tst_bookmarknode.moc" diff --git a/autotests/bookmarknode/tst_bookmarknode.h b/autotests/bookmarknode/tst_bookmarknode.h deleted file mode 100644 index 1920fe58..00000000 --- a/autotests/bookmarknode/tst_bookmarknode.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2020 Aaron Dewes - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef TST_BOOKMARKNODE_H -#define TST_BOOKMARKNODE_H - -#include -#include - -class tst_BookmarkNode : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void bookmarknode_data(); - void bookmarknode(); - - void add_duplicate(); - void add_to_bookmark(); - void add_move(); - void add_data(); - void add(); - void equal(); - void remove(); - void deleteNode(); - void deleteChildren(); - void type_data(); - void type(); -}; - -#endif // TST_BOOKMARKNODE_H \ No newline at end of file diff --git a/autotests/downloadmanager/CMakeLists.txt b/autotests/downloadmanager/CMakeLists.txt index 924a62ce..f1bfdcae 100644 --- a/autotests/downloadmanager/CMakeLists.txt +++ b/autotests/downloadmanager/CMakeLists.txt @@ -1,34 +1,5 @@ project(test-downloadmanager) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_downloadmanager.cpp - ../../src/autosaver.cpp - ../../src/downloadmanager.cpp - ../../src/utils/edittableview.cpp - ../../src/utils/squeezelabel.cpp -) -QT5_WRAP_UI(UIS ../../src/downloaditem.ui ../../src/downloads.ui) -QT5_WRAP_CPP(MOCS - tst_downloadmanager.h - ../../src/autosaver.h - ../../src/downloadmanager.h - ../../src/utils/edittableview.h - ../../src/utils/squeezelabel.h -) -add_executable(test-downloadmanager ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-downloadmanager Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) +add_executable(test-downloadmanager tst_downloadmanager.cpp) +target_link_libraries(test-downloadmanager endorphin-base Qt5::Test) \ No newline at end of file diff --git a/autotests/downloadmanager/tst_downloadmanager.cpp b/autotests/downloadmanager/tst_downloadmanager.cpp index a233fb35..ff241c63 100644 --- a/autotests/downloadmanager/tst_downloadmanager.cpp +++ b/autotests/downloadmanager/tst_downloadmanager.cpp @@ -21,11 +21,41 @@ #include #include #include "downloadmanager.h" -#include "tst_downloadmanager.h" -#define BIGFILE "https://cdimage.debian.org/debian-cd/10.5.0/amd64/iso-cd/debian-10.5.0-amd64-netinst.iso" -#define BIGFILENAME "debian-10.5.0-amd64-netinst.iso" -#define BIGFILENAME2 "debian-10.5.0-amd64-netinst-1.iso" +#define BIGFILE "http://ftp.uni-kl.de/pub/linux/knoppix/KNOPPIX_V7.2.0CD-2013-06-16-DE.iso" +#define BIGFILENAME "KNOPPIX_V7.2.0CD-2013-06-16-DE.iso" +#define BIGFILENAME2 "KNOPPIX_V7.2.0CD-2013-06-16-DE.iso" + +class tst_DownloadManager : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void downloadmanager_data(); + void downloadmanager(); + void cleanupButton_data(); + void cleanupButton(); + void download_data(); + void download(); + void removePolicy_data(); + void removePolicy(); +}; + +// Subclass that exposes the protected functions. +class SubDownloadManager : public DownloadManager +{ +public: + SubDownloadManager(QWidget *parent = 0) + : DownloadManager(parent) + {} + +}; // This will be called before the first test function is executed. // It is only called once. @@ -216,4 +246,6 @@ void tst_DownloadManager::removePolicy() QCOMPARE(view->model()->rowCount(), removePolicy == DownloadManager::Never ? 1 : 0); } -QTEST_MAIN(tst_DownloadManager) \ No newline at end of file +QTEST_MAIN(tst_DownloadManager) +#include "tst_downloadmanager.moc" + diff --git a/autotests/downloadmanager/tst_downloadmanager.h b/autotests/downloadmanager/tst_downloadmanager.h deleted file mode 100644 index 329ed546..00000000 --- a/autotests/downloadmanager/tst_downloadmanager.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef TST_DOWNLOADMANAGER_H -#define TST_DOWNLOADMANAGER_H - -#include -#include "downloadmanager.h" - -class tst_DownloadManager : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void downloadmanager_data(); - void downloadmanager(); - void cleanupButton_data(); - void cleanupButton(); - void download_data(); - void download(); - void removePolicy_data(); - void removePolicy(); -}; - -// Subclass that exposes the protected functions. -class SubDownloadManager : public DownloadManager -{ -public: - SubDownloadManager(QWidget *parent = 0) - : DownloadManager(parent) - {} - -}; - -#endif \ No newline at end of file diff --git a/autotests/historyfiltermodel/CMakeLists.txt b/autotests/historyfiltermodel/CMakeLists.txt index 976b8822..224d5055 100644 --- a/autotests/historyfiltermodel/CMakeLists.txt +++ b/autotests/historyfiltermodel/CMakeLists.txt @@ -1,54 +1,6 @@ project(test-historyfiltermodel) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_historyfiltermodel.cpp - ../../src/autosaver.cpp - ../../src/clearbutton.cpp - ../../src/searchbutton.cpp - ../../src/searchlineedit.cpp - ../../src/history/history.cpp - ../../src/history/historymanager.cpp - ../../src/utils/edittreeview.cpp - ../../src/utils/lineedit.cpp - ../../src/utils/treesortfilterproxymodel.cpp -) - -QT5_WRAP_CPP(MOCS - tst_historyfiltermodel.h - ../../src/autosaver.h - ../../src/clearbutton.h - ../../src/searchbutton.h - ../../src/searchlineedit.h - ../../src/history/history.h - ../../src/history/historymanager.h - ../../src/utils/edittreeview.h - ../../src/utils/lineedit.h - ../../src/utils/lineedit_p.h - ../../src/utils/treesortfilterproxymodel.h -) +QT5_WRAP_UI(UIS ../../src/history/history.ui) -add_executable(test-historyfiltermodel ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-historyfiltermodel Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) \ No newline at end of file +add_executable(test-historyfiltermodel tst_historyfiltermodel.cpp ${UIS}) +target_link_libraries(test-historyfiltermodel endorphin-base Qt5::Test) \ No newline at end of file diff --git a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp index df4d0211..24c21311 100644 --- a/autotests/historyfiltermodel/tst_historyfiltermodel.cpp +++ b/autotests/historyfiltermodel/tst_historyfiltermodel.cpp @@ -21,8 +21,52 @@ #include #include #include -#include -#include "tst_historyfiltermodel.h" + +class tst_HistoryFilterModel : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void historyfiltermodel_data(); + void historyfiltermodel(); + + void historyContains_data(); + void historyContains(); + + void setSourceModel(); + + void historyLocation_data(); + void historyLocation(); + + void addRow_data(); + void addRow(); + + void removeRows_data(); + void removeRows(); +}; + +// Subclass that exposes the protected functions. +class SubHistoryFilterModel : public HistoryFilterModel +{ +public: + SubHistoryFilterModel(QObject *parent = 0) + : HistoryFilterModel(0, parent) + { + history = new HistoryManager(this); + historyModel = new HistoryModel(history, this); + setSourceModel(historyModel); + history->setDaysToExpire(-1); + } + + HistoryModel *historyModel; + HistoryManager *history; +}; // This will be called before the first test function is executed. // It is only called once. @@ -70,7 +114,7 @@ HistoryList makeHistoryList(int count) HistoryEntry item; QString url = QString("http://%1host-%2.com/") .arg(QRandomGenerator::global()->generate() % 2 ? "www." : "") - .arg(QString::number(i)); + .arg(QString::number(i)); item.url = url; item.title = QString("title %1").arg(i); item.dateTime = dateTime; @@ -187,8 +231,8 @@ void tst_HistoryFilterModel::addRow_data() list4.insert(1, list4.at(1)); list4[1].dateTime = list4[1].dateTime.addSecs(1); QTest::newRow("many-0") << list4 - << list4[0].url - << (EnabledList() << 0 << 0 << 2 << 2 << 4 << 5 << 6); + << list4[0].url + << (EnabledList() << 0 << 0 << 2 << 2 << 4 << 5 << 6); HistoryList list5 = makeHistoryList(3); // 0, 1, 2 @@ -201,8 +245,8 @@ void tst_HistoryFilterModel::addRow_data() // ?, 1, 2, 2, 4, 2 QTest::newRow("many-1") << list5 - << list5[1].url - << (EnabledList() << 0 << 1 << 0 << 0 << 4 << 0); + << list5[1].url + << (EnabledList() << 0 << 1 << 0 << 0 << 4 << 0); } void tst_HistoryFilterModel::addRow() @@ -224,9 +268,9 @@ void tst_HistoryFilterModel::addRow() QCOMPARE(model.historyLocation(model.history->history().value(i).url), enabledList[i]); if (i > 0 - && enabledList[i] != 0 - && (enabledList[i-1] < enabledList[i] - || enabledList[i-1] == 0)) + && enabledList[i] != 0 + && (enabledList[i-1] < enabledList[i] + || enabledList[i-1] == 0)) ++currentRow; if (currentRow >= model.rowCount() || enabledList[i] == 0) continue; @@ -288,3 +332,5 @@ void tst_HistoryFilterModel::removeRows() } QTEST_MAIN(tst_HistoryFilterModel) +#include "tst_historyfiltermodel.moc" + diff --git a/autotests/historyfiltermodel/tst_historyfiltermodel.h b/autotests/historyfiltermodel/tst_historyfiltermodel.h deleted file mode 100644 index 00915eb0..00000000 --- a/autotests/historyfiltermodel/tst_historyfiltermodel.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include -#include - -class tst_HistoryFilterModel : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void historyfiltermodel_data(); - void historyfiltermodel(); - - void historyContains_data(); - void historyContains(); - - void setSourceModel(); - - void historyLocation_data(); - void historyLocation(); - - void addRow_data(); - void addRow(); - - void removeRows_data(); - void removeRows(); -}; - -// Subclass that exposes the protected functions. -class SubHistoryFilterModel : public HistoryFilterModel -{ -public: - SubHistoryFilterModel(QObject *parent = 0) - : HistoryFilterModel(0, parent) - { - history = new HistoryManager(this); - historyModel = new HistoryModel(history, this); - setSourceModel(historyModel); - history->setDaysToExpire(-1); - } - - HistoryModel *historyModel; - HistoryManager *history; -}; diff --git a/autotests/historymanager/CMakeLists.txt b/autotests/historymanager/CMakeLists.txt index 339a5b70..073264b9 100644 --- a/autotests/historymanager/CMakeLists.txt +++ b/autotests/historymanager/CMakeLists.txt @@ -1,44 +1,10 @@ project(test-historymanager) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/../modeltest - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/history - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_historymanager.cpp - ../modeltest/modeltest.cpp - ../../src/autosaver.cpp - ../../src/clearbutton.cpp - ../../src/searchbutton.cpp - ../../src/searchlineedit.cpp - ../../src/history/history.cpp - ../../src/locationcompleter.cpp - ../../src/history/historymanager.cpp - ../../src/utils/edittreeview.cpp - ../../src/utils/lineedit.cpp - ../../src/utils/treesortfilterproxymodel.cpp ) +QT5_WRAP_UI(UIS ../../src/history/history.ui) -add_executable(test-historymanager ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-historymanager Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) +add_executable(test-historymanager tst_historymanager.cpp ../modeltest/modeltest.cpp ${UIS}) +target_link_libraries(test-historymanager endorphin-base Qt5::Test) \ No newline at end of file diff --git a/autotests/historymanager/tst_historymanager.cpp b/autotests/historymanager/tst_historymanager.cpp index 5e8e5c6e..761c4cb0 100644 --- a/autotests/historymanager/tst_historymanager.cpp +++ b/autotests/historymanager/tst_historymanager.cpp @@ -18,15 +18,71 @@ */ #include +#include "qtest_endorphin.h" -#include +#include "historymanager.h" #include "history.h" -#include +#include "locationcompleter.h" #include #include -#include "tst_historymanager.h" +class tst_HistoryManager : public QObject +{ + Q_OBJECT + +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void history_data(); + void history(); + void addHistoryEntry_data(); + void addHistoryEntry(); + //void addHistoryEntry_private(); + void addHistoryEntry_url(); + void updateHistoryEntry_data(); + void updateHistoryEntry(); + void daysToExpire_data(); + void daysToExpire(); + void clear_data(); + void clear(); + void setHistory_data(); + void setHistory(); + void saveload_data(); + void saveload(); + + // TODO move to their own tests + void big(); + + void historyDialog_data(); + void historyDialog(); + +private: + QList bigHistory; +}; + +// Subclass that exposes the protected functions. +class SubHistory : public HistoryManager +{ +public: + SubHistory() : HistoryManager() + { + QWidget w; + setParent(&w); + setParent(0); + } + + ~SubHistory() { + setDaysToExpire(30); + } + + void prependHistoryEntry(const HistoryEntry &item) + { HistoryManager::prependHistoryEntry(item); } +}; // This will be called before the first test function is executed. // It is only called once. @@ -118,22 +174,22 @@ void tst_HistoryManager::addHistoryEntry_data() HistoryList swap; swap << item2 << item1; QTest::newRow("2-2,1") << one << (HistoryList() << item2) << swap; - /* - // move to test for the historyFilterModel - HistoryEntry item3("http://baz.com", QDateTime::currentDateTime().addDays(-1)); - HistoryEntry item3n("http://baz.com", QDateTime::currentDateTime()); - QTest::newRow("move-1") << (HistoryList() << item3 << item2 << item1) - << (HistoryList() << item3) - << (HistoryList() << item3 << item2 << item1); - - QTest::newRow("move-2") << (HistoryList() << item3 << item2 << item1) - << (HistoryList() << item2n) - << (HistoryList() << item2n << item3 << item1); - - QTest::newRow("move-3") << (HistoryList()) - << (HistoryList() << item1 << item2 << item3 << item2n << item3n) - << (HistoryList() << item3n << item2n << item1); - */ +/* + // move to test for the historyFilterModel + HistoryEntry item3("http://baz.com", QDateTime::currentDateTime().addDays(-1)); + HistoryEntry item3n("http://baz.com", QDateTime::currentDateTime()); + QTest::newRow("move-1") << (HistoryList() << item3 << item2 << item1) + << (HistoryList() << item3) + << (HistoryList() << item3 << item2 << item1); + + QTest::newRow("move-2") << (HistoryList() << item3 << item2 << item1) + << (HistoryList() << item2n) + << (HistoryList() << item2n << item3 << item1); + + QTest::newRow("move-3") << (HistoryList()) + << (HistoryList() << item1 << item2 << item3 << item2n << item3n) + << (HistoryList() << item3n << item2n << item1); + */ } // public void addHistoryEntry(HistoryEntry *item) @@ -150,7 +206,18 @@ void tst_HistoryManager::addHistoryEntry() QCOMPARE(history.history().count(), expected.count()); QCOMPARE(history.history(), expected); } - +/* +void tst_HistoryManager::addHistoryEntry_private() +{ + SubHistory history; + history.setHistory(HistoryList()); + QWebSettings *globalSettings = QWebSettings::globalSettings(); + globalSettings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); + history.prependHistoryEntry(HistoryEntry()); + globalSettings->setAttribute(QWebSettings::PrivateBrowsingEnabled, false); + QVERIFY(history.history().isEmpty()); +} +*/ void tst_HistoryManager::addHistoryEntry_url() { SubHistory history; @@ -359,6 +426,8 @@ void tst_HistoryManager::big() QCOMPARE(history.history().count(), bigHistory.count()); + HistoryMenu menu; + HistoryModel model(&history); ModelTest test(&model); QCOMPARE(model.rowCount(), bigHistory.count()); @@ -437,11 +506,11 @@ void tst_HistoryManager::historyDialog() QAbstractItemModel *model = dialog.tree->model(); ModelTest test(model); - /* - for (int i = 0; i < model->rowCount(); ++i) - if (model->rowCount(model->index(i, 0)) == 1) - qDebug() << i; - */ +/* + for (int i = 0; i < model->rowCount(); ++i) + if (model->rowCount(model->index(i, 0)) == 1) + qDebug() << i; +*/ if (parentRow == -2) parentRow = model->rowCount() - 1; QModelIndex parent = model->index(parentRow, parentColumn); @@ -476,3 +545,5 @@ void tst_HistoryManager::historyDialog() } QTEST_MAIN(tst_HistoryManager) +#include "tst_historymanager.moc" + diff --git a/autotests/historymanager/tst_historymanager.h b/autotests/historymanager/tst_historymanager.h deleted file mode 100644 index 96844867..00000000 --- a/autotests/historymanager/tst_historymanager.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020 Aaron Dewes - * - * 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) any later version. - * - * 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, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#include - -#include -#include -#include - -#include - -class tst_HistoryManager : public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); - -private slots: - void history_data(); - void history(); - void addHistoryEntry_data(); - void addHistoryEntry(); - void addHistoryEntry_url(); - void updateHistoryEntry_data(); - void updateHistoryEntry(); - void daysToExpire_data(); - void daysToExpire(); - void clear_data(); - void clear(); - void setHistory_data(); - void setHistory(); - void saveload_data(); - void saveload(); - - // TODO move to their own tests - void big(); - - void historyDialog_data(); - void historyDialog(); - -private: - QList bigHistory; -}; - -// Subclass that exposes the protected functions. -class SubHistory : public HistoryManager -{ -public: - SubHistory() : HistoryManager() - { - QWidget w; - setParent(&w); - setParent(0); - } - - ~SubHistory() { - setDaysToExpire(30); - } - - void prependHistoryEntry(const HistoryEntry &item) - { - HistoryManager::prependHistoryEntry(item); - } -}; diff --git a/autotests/modeltoolbar/CMakeLists.txt b/autotests/modeltoolbar/CMakeLists.txt index b0c08a83..2a39ac30 100644 --- a/autotests/modeltoolbar/CMakeLists.txt +++ b/autotests/modeltoolbar/CMakeLists.txt @@ -1,32 +1,10 @@ project(test-modeltoolbar) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_modeltoolbar.cpp - ../../src/modelmenu.cpp - ../../src/modeltoolbar.cpp - ../../src/utils/singleapplication.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../modeltest ) -add_executable(test-modeltoolbar ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-modeltoolbar Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) + +add_executable(test-modeltoolbar tst_modeltoolbar.cpp) +target_link_libraries(test-modeltoolbar endorphin-base Qt5::Test) diff --git a/autotests/modeltoolbar/tst_modeltoolbar.cpp b/autotests/modeltoolbar/tst_modeltoolbar.cpp index b69a166a..d0cb5797 100644 --- a/autotests/modeltoolbar/tst_modeltoolbar.cpp +++ b/autotests/modeltoolbar/tst_modeltoolbar.cpp @@ -21,12 +21,13 @@ #include #include "qtry.h" +#include "browserapplication.h" #include "modelmenu.h" #include -#include +#include #include -#include +#include class tst_ModelToolBar : public QObject { @@ -108,10 +109,10 @@ class ColorModel : public QAbstractItemModel switch (role) { case Qt::DisplayRole: return m_colours.at(index.row()); - break; + break; default: return QVariant(); - break; + break; } } diff --git a/autotests/opensearchengine/CMakeLists.txt b/autotests/opensearchengine/CMakeLists.txt index 1ad003a7..0b5f3812 100644 --- a/autotests/opensearchengine/CMakeLists.txt +++ b/autotests/opensearchengine/CMakeLists.txt @@ -1,35 +1,9 @@ project(test-opensearchengine) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Qml REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_opensearchengine.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../modeltest ) -add_executable(test-opensearchengine ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-opensearchengine Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) +add_executable(test-opensearchengine tst_opensearchengine.cpp) +target_link_libraries(test-opensearchengine endorphin-base Qt5::Test) \ No newline at end of file diff --git a/autotests/opensearchengine/tst_opensearchengine.cpp b/autotests/opensearchengine/tst_opensearchengine.cpp index 706f34e1..21c40105 100644 --- a/autotests/opensearchengine/tst_opensearchengine.cpp +++ b/autotests/opensearchengine/tst_opensearchengine.cpp @@ -198,31 +198,31 @@ class SuggestionsTestNetworkAccessManager : public QNetworkAccessManager class Delegate : public OpenSearchEngineDelegate { -public: - Delegate() - : OpenSearchEngineDelegate() - , callsCount(0) - { - } - - ~Delegate() - { - } - - void performSearchRequest(const QNetworkRequest &request, - QNetworkAccessManager::Operation operation, - const QByteArray &data) - { - ++callsCount; - lastRequest = request; - lastOperation = operation; - lastData = data; - } - - QNetworkRequest lastRequest; - QNetworkAccessManager::Operation lastOperation; - QByteArray lastData; - int callsCount; + public: + Delegate() + : OpenSearchEngineDelegate() + , callsCount(0) + { + } + + ~Delegate() + { + } + + void performSearchRequest(const QNetworkRequest &request, + QNetworkAccessManager::Operation operation, + const QByteArray &data) + { + ++callsCount; + lastRequest = request; + lastOperation = operation; + lastData = data; + } + + QNetworkRequest lastRequest; + QNetworkAccessManager::Operation lastOperation; + QByteArray lastData; + int callsCount; }; // This will be called before the first test function is executed. @@ -464,14 +464,14 @@ void tst_OpenSearchEngine::operatorequal_data() << Parameters() << Parameters() << false; QTest::newRow("description") << QString() << QString("x") << QString() << QString() << QString() - << Parameters() << Parameters() - << false; + << Parameters() << Parameters() + << false; QTest::newRow("imageUrl") << QString() << QString() << QString("x") << QString() << QString() - << Parameters() << Parameters() - << false; + << Parameters() << Parameters() + << false; QTest::newRow("parameters") << QString() << QString() << QString() << QString() << QString() - << (Parameters() << Parameter("a", "b")) << Parameters() - << false; + << (Parameters() << Parameter("a", "b")) << Parameters() + << false; } // public bool operator==(OpenSearchEngine const &other) const @@ -628,12 +628,12 @@ void tst_OpenSearchEngine::searchUrl_data() QTest::addColumn("searchUrl"); QTest::newRow("null") << QString() << QString() << Parameters() << QUrl(); QTest::newRow("foo") << QString("foo") << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); QTest::newRow("empty") << QString() << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=")); QTest::newRow("parameters") << QString("baz") << QString("http://foobar.baz/?q={searchTerms}") - << (Parameters() << Parameter("abc", "{searchTerms}") << Parameter("x", "yz")) - << QUrl(QString("http://foobar.baz/?q=baz&abc=baz&x=yz")); + << (Parameters() << Parameter("abc", "{searchTerms}") << Parameter("x", "yz")) + << QUrl(QString("http://foobar.baz/?q=baz&abc=baz&x=yz")); } // public QUrl searchUrl(QString const &searchTerm) const @@ -711,12 +711,12 @@ void tst_OpenSearchEngine::suggestionsUrl_data() QTest::addColumn("suggestionsUrl"); QTest::newRow("null") << QString() << QString() << Parameters() << QUrl(); QTest::newRow("foo") << QString("foo") << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=foo")); QTest::newRow("empty") << QString() << QString("http://foobar.baz/?q={searchTerms}") - << Parameters() << QUrl(QString("http://foobar.baz/?q=")); + << Parameters() << QUrl(QString("http://foobar.baz/?q=")); QTest::newRow("parameters") << QString("baz") << QString("http://foobar.baz/?q={searchTerms}") - << (Parameters() << Parameter("a", "bc")) - << QUrl(QString("http://foobar.baz/?q=baz&a=bc")); + << (Parameters() << Parameter("a", "bc")) + << QUrl(QString("http://foobar.baz/?q=baz&a=bc")); } // public QUrl suggestionsUrl(QString const &searchTerm) const @@ -768,25 +768,25 @@ void tst_OpenSearchEngine::parseTemplate_data() QTest::addColumn("valid"); QTest::newRow("null") << QString() << QString() << QString() << false; QTest::newRow("foo") << QString("foo") << QString("http://foobar.baz/?q={searchTerms}") - << QString("http://foobar.baz/?q=foo") << true; + << QString("http://foobar.baz/?q=foo") << true; QTest::newRow("allParameters") << QString("bar") - << QString("http://foobar.baz/?st={searchTerms}&c={count}" - "&si={startIndex}&sp={startPage}&l={language}" - "&ie={inputEncoding}&oe={outputEncoding}") - << QString("http://foobar.baz/?st=bar&c=20&si=0&" - "sp=0&l=%1&ie=UTF-8&oe=UTF-8").arg(lang) - << true; + << QString("http://foobar.baz/?st={searchTerms}&c={count}" + "&si={startIndex}&sp={startPage}&l={language}" + "&ie={inputEncoding}&oe={outputEncoding}") + << QString("http://foobar.baz/?st=bar&c=20&si=0&" + "sp=0&l=%1&ie=UTF-8&oe=UTF-8").arg(lang) + << true; QTest::newRow("tricky") << QString("{count}") << QString("http://foobar.baz/q={searchTerms}&count={count}") - << QString("http://foobar.baz/q=%7Bcount%7D&count=20") << true; + << QString("http://foobar.baz/q=%7Bcount%7D&count=20") << true; QTest::newRow("multiple") << QString("abc") << QString("http://foobar.baz/?q={searchTerms}&x={searchTerms}") - << QString("http://foobar.baz/?q=abc&x=abc") << true; + << QString("http://foobar.baz/?q=abc&x=abc") << true; QTest::newRow("referrer") << QString("foo") - << QString("http://foobar.baz/?q={searchTerms}&a={source}&b={ref:source}&c={referrer:source?}") - << QString("http://foobar.baz/?q=foo&a=tst_opensearchengine" - "&b=tst_opensearchengine&c=tst_opensearchengine") - << true; + << QString("http://foobar.baz/?q={searchTerms}&a={source}&b={ref:source}&c={referrer:source?}") + << QString("http://foobar.baz/?q=foo&a=tst_opensearchengine" + "&b=tst_opensearchengine&c=tst_opensearchengine") + << true; QTest::newRow("inputEncoding") << QString("c++") << QString("http://foobar.baz/?q={searchTerms}") - << QString("http://foobar.baz/?q=c%2B%2B") << true; + << QString("http://foobar.baz/?q=c%2B%2B") << true; } // protected QString parseTemplate(QString const &searchTerm, QString const &searchTemplate) const diff --git a/autotests/opensearchmanager/CMakeLists.txt b/autotests/opensearchmanager/CMakeLists.txt index d04250cf..5d48e071 100644 --- a/autotests/opensearchmanager/CMakeLists.txt +++ b/autotests/opensearchmanager/CMakeLists.txt @@ -1,39 +1,10 @@ project(test-opensearchmanager) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Qml REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_opensearchmanager.cpp - ../../src/autosaver.cpp - ../../src/opensearch/opensearchmanager.cpp - ../../src/opensearch/opensearchreader.cpp - ../../src/opensearch/opensearchwriter.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../modeltest ) -add_executable(test-opensearchmanager ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-opensearchmanager Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) + +add_executable(test-opensearchmanager tst_opensearchmanager.cpp) +target_link_libraries(test-opensearchmanager endorphin-base Qt5::Test) \ No newline at end of file diff --git a/autotests/opensearchmanager/tst_opensearchmanager.cpp b/autotests/opensearchmanager/tst_opensearchmanager.cpp index 98a65912..6f060533 100644 --- a/autotests/opensearchmanager/tst_opensearchmanager.cpp +++ b/autotests/opensearchmanager/tst_opensearchmanager.cpp @@ -19,6 +19,8 @@ #include +#include "qtest_endorphin.h" + #include "opensearchengine.h" #include "opensearchmanager.h" @@ -210,7 +212,7 @@ void tst_OpenSearchManager::restoreDefaults() QCOMPARE(manager.enginesCount(), 1); manager.restoreDefaults(); - QCOMPARE(manager.enginesCount(), 1); + QCOMPARE(manager.enginesCount(), manager.defaultCount()); foreach (const QString &name, manager.allEnginesNames()) manager.removeEngine(name); diff --git a/autotests/opensearchreader/CMakeLists.txt b/autotests/opensearchreader/CMakeLists.txt index e4738af5..e8360569 100644 --- a/autotests/opensearchreader/CMakeLists.txt +++ b/autotests/opensearchreader/CMakeLists.txt @@ -1,39 +1,7 @@ project(test-opensearchreader) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Qml REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_opensearchreader.cpp - ../../src/autosaver.cpp - ../../src/opensearch/opensearchmanager.cpp - ../../src/opensearch/opensearchreader.cpp - ../../src/opensearch/opensearchwriter.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp -) -add_executable(test-opensearchreader ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-opensearchreader Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) +QT5_ADD_RESOURCES(RSCS opensearchreader.qrc) + +add_executable(test-opensearchreader tst_opensearchreader.cpp ${RSCS}) +target_link_libraries(test-opensearchreader endorphin-base Qt5::Test) \ No newline at end of file diff --git a/autotests/opensearchreader/tst_opensearchreader.cpp b/autotests/opensearchreader/tst_opensearchreader.cpp index b9c58b5c..21692a48 100644 --- a/autotests/opensearchreader/tst_opensearchreader.cpp +++ b/autotests/opensearchreader/tst_opensearchreader.cpp @@ -75,37 +75,37 @@ void tst_OpenSearchReader::read_data() QTest::addColumn("suggestionsMethod"); QTest::newRow("null") << QString(":/doesNotExist") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile1") << QString(":/testfile1.xml") << true << QString("Wikipedia (en)") - << QString("Full text search in the English Wikipedia") << QString("http://en.wikipedia.org/bar") - << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") - << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("post") << QString("get"); + << QString("Full text search in the English Wikipedia") << QString("http://en.wikipedia.org/bar") + << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") + << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("post") << QString("get"); QTest::newRow("testfile2") << QString(":/testfile2.xml") << false << QString("Wikipedia (en)") - << QString() << QString() << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") - << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << QString() << QString("http://en.wikipedia.org/foo") << QString("http://en.wikipedia.org/favicon.ico") + << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile3") << QString(":/testfile3.xml") << true << QString("GitHub") << QString("Search GitHub") - << QString("http://github.com/search") << QString("http://github.com/suggestions") << QString() - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("q"), QString("{searchTerms}")) - << OpenSearchEngine::Parameter(QString("b"), QString("foo"))) - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("bar"), QString("baz"))) - << QString("get") << QString("post"); + << QString("http://github.com/search") << QString("http://github.com/suggestions") << QString() + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("q"), QString("{searchTerms}")) + << OpenSearchEngine::Parameter(QString("b"), QString("foo"))) + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter(QString("bar"), QString("baz"))) + << QString("get") << QString("post"); QTest::newRow("testfile4") << QString(":/testfile4.xml") << true << QString("Google") << QString("Google Web Search") - << QString("http://www.google.com/search?bar") << QString("http://suggestqueries.google.com/complete/foo") - << QString("http://www.google.com/favicon.ico") << OpenSearchEngine::Parameters() - << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString("http://www.google.com/search?bar") << QString("http://suggestqueries.google.com/complete/foo") + << QString("http://www.google.com/favicon.ico") << OpenSearchEngine::Parameters() + << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile5") << QString(":/testfile5.xml") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile6") << QString(":/testfile6.xml") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); QTest::newRow("testfile7") << QString(":/testfile7.xml") << false << QString() << QString() << QString() << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() << QString("get") << QString("get"); } void tst_OpenSearchReader::read() diff --git a/autotests/opensearchwriter/CMakeLists.txt b/autotests/opensearchwriter/CMakeLists.txt index c12c1f5e..0adb0a99 100644 --- a/autotests/opensearchwriter/CMakeLists.txt +++ b/autotests/opensearchwriter/CMakeLists.txt @@ -1,39 +1,7 @@ project(test-opensearchwriter) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5Qml REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/opensearch - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils - ${RUNTIME_OUTPUT_DIRECTORY} -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -set(SRCS - tst_opensearchwriter.cpp - ../../src/autosaver.cpp - ../../src/opensearch/opensearchmanager.cpp - ../../src/opensearch/opensearchreader.cpp - ../../src/opensearch/opensearchwriter.cpp - ../../src/opensearch/opensearchengine.cpp - ../../src/opensearch/opensearchenginedelegate.cpp -) -add_executable(test-opensearchwriter ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-opensearchwriter Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) +QT5_ADD_RESOURCES(RSCS opensearchwriter.qrc) + +add_executable(test-opensearchwriter tst_opensearchwriter.cpp ${RSCS}) +target_link_libraries(test-opensearchwriter endorphin-base Qt5::Test) diff --git a/autotests/opensearchwriter/tst_opensearchwriter.cpp b/autotests/opensearchwriter/tst_opensearchwriter.cpp index 7240261d..4aba40fb 100644 --- a/autotests/opensearchwriter/tst_opensearchwriter.cpp +++ b/autotests/opensearchwriter/tst_opensearchwriter.cpp @@ -74,19 +74,19 @@ void tst_OpenSearchWriter::write_data() QTest::addColumn("fileName"); QTest::newRow("testfile1") << QString("Foo Bar") << QString("Bar Foo") << QString("http://foobar.barfoo/search") << QString() - << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() - << QString() << QString("get") << QString(":/testfile1.xml"); + << QString() << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() + << QString() << QString("get") << QString(":/testfile1.xml"); QTest::newRow("testfile2") << QString("Endorphin!") << QString("a cross platform web browser built using Qt and WebKit") - << QString("http://foobar.barfoo/search") << QString("http://foobar.barfoo/suggest") << QString() - << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() - << QString("get") << QString("post") << QString(":/testfile2.xml"); + << QString("http://foobar.barfoo/search") << QString("http://foobar.barfoo/suggest") << QString() + << OpenSearchEngine::Parameters() << OpenSearchEngine::Parameters() + << QString("get") << QString("post") << QString(":/testfile2.xml"); QTest::newRow("testile3") << QString("Foo Bar") << QString("Bar Foo") << QString("http://foobar.barfoo/search") - << QString("http://foobar.barfoo/suggest") << QString() - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}") << OpenSearchEngine::Parameter("a", "foo")) - << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}")) - << QString("post") << QString("foo") << QString(":/testfile3.xml"); + << QString("http://foobar.barfoo/suggest") << QString() + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}") << OpenSearchEngine::Parameter("a", "foo")) + << (OpenSearchEngine::Parameters() << OpenSearchEngine::Parameter("q", "{searchTerms}")) + << QString("post") << QString("foo") << QString(":/testfile3.xml"); } void tst_OpenSearchWriter::write() diff --git a/autotests/tabbar/CMakeLists.txt b/autotests/tabbar/CMakeLists.txt index 38711d39..67aa5db7 100644 --- a/autotests/tabbar/CMakeLists.txt +++ b/autotests/tabbar/CMakeLists.txt @@ -1,35 +1,6 @@ project(test-tabbar) - -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools) -find_package(Qt5LinguistTools REQUIRED) -find_package(Qt5Qml REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ../ - ../../src - ../../src/utils -) -INCLUDE_DIRECTORIES( - ${ENDORPHIN_INCLUDE_DIRS} - ${RUNTIME_OUTPUT_DIRECTORY} -) -set(SRCS - tst_tabbar.cpp -) - -QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) -QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) +add_executable(test-tabbar tst_tabbar.cpp) +target_link_libraries(test-tabbar endorphin-base Qt5::Test) -add_executable(test-tabbar ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -target_link_libraries(test-tabbar Qt5::Core Qt5::Test Qt5::Gui Qt5::Qml Qt5::PrintSupport Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) diff --git a/autotests/tabwidget/CMakeLists.txt b/autotests/tabwidget/CMakeLists.txt index a266b308..ff8ec540 100644 --- a/autotests/tabwidget/CMakeLists.txt +++ b/autotests/tabwidget/CMakeLists.txt @@ -1,34 +1,9 @@ project(test-tabwidget) - -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools REQUIRED) -find_package(Qt5LinguistTools REQUIRED) -find_package(Qt5Qml REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ../ - ../../src - ../../src/utils -) INCLUDE_DIRECTORIES( - ${ENDORPHIN_INCLUDE_DIRS} - ../ -) -QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) -QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) - -set(SRCS - tst_tabwidget.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../modeltest ) -add_executable(test-tabwidget ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -target_link_libraries(test-tabwidget Qt5::Core Qt5::Test Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::UiTools) \ No newline at end of file +add_executable(test-tabwidget tst_tabwidget.cpp) +target_link_libraries(test-tabwidget endorphin-base Qt5::Test) diff --git a/autotests/utils/languagemanager/tst_languagemanager.cpp b/autotests/utils/languagemanager/tst_languagemanager.cpp index 3cdb84f5..09d3a8f6 100644 --- a/autotests/utils/languagemanager/tst_languagemanager.cpp +++ b/autotests/utils/languagemanager/tst_languagemanager.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2020, Aaron Dewes + * Copyright (c) 2008, Aaron Dewes * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -9,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Endorphin nor the names of its contributors + * 3. Neither the name of the Aaron Dewes nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -26,11 +26,11 @@ * SUCH DAMAGE. */ -#include -#include +#include +#include #include -#include +#include class tst_LanguageManager : public QObject { diff --git a/autotests/webactionmapper/CMakeLists.txt b/autotests/webactionmapper/CMakeLists.txt index 4b6c3c9a..61261637 100644 --- a/autotests/webactionmapper/CMakeLists.txt +++ b/autotests/webactionmapper/CMakeLists.txt @@ -1,37 +1,10 @@ project(test-webactionmapper) - -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools REQUIRED) -find_package(Qt5LinguistTools REQUIRED) -find_package(Qt5Qml REQUIRED) find_package(Qt5Test REQUIRED) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ../ - ../../src - ../../src/utils -) - INCLUDE_DIRECTORIES( - ${ENDORPHIN_INCLUDE_DIRS} - ../ -) -QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) -QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) - -set(SRCS - tst_webactionmapper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/../modeltest ) -add_executable(test-webactionmapper ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -target_link_libraries(test-webactionmapper Qt5::Core Qt5::Test Qt5::Qml Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::PrintSupport Qt5::UiTools) +add_executable(test-webactionmapper tst_webactionmapper.cpp) +target_link_libraries(test-webactionmapper endorphin-base Qt5::Test) diff --git a/autotests/webpage/CMakeLists.txt b/autotests/webpage/CMakeLists.txt index e21fbf8a..34741181 100644 --- a/autotests/webpage/CMakeLists.txt +++ b/autotests/webpage/CMakeLists.txt @@ -1,37 +1,5 @@ project(test-webpage) - -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools REQUIRED) -find_package(Qt5LinguistTools REQUIRED) -find_package(Qt5Qml REQUIRED) find_package(Qt5Test REQUIRED) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC_SEARCH_PATHS - ../ - ../../src - ../../src/utils -) - -INCLUDE_DIRECTORIES( - ${ENDORPHIN_INCLUDE_DIRS} -) - -set(SRCS - tst_webpage.cpp -) - -QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) -QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) - - -add_executable(test-webpage ${SRCS} ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -target_link_libraries(test-webpage Qt5::Core Qt5::Test Qt5::Qml Qt5::Gui Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets Qt5::PrintSupport Qt5::UiTools) +add_executable(test-webpage tst_webpage.cpp) +target_link_libraries(test-webpage endorphin-base Qt5::Test) diff --git a/autotests/xbel/CMakeLists.txt b/autotests/xbel/CMakeLists.txt index 1de4650c..788e0dc6 100644 --- a/autotests/xbel/CMakeLists.txt +++ b/autotests/xbel/CMakeLists.txt @@ -1,29 +1,5 @@ project(test-xbel) - -find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -find_package(Qt5Sql REQUIRED) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_INCLUDE_CURRENT_DIR ON) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/bookmarks/xbel - ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils -) -add_definitions(-DNO_BROWSERAPPLICATION) -add_definitions(-DFOR_AUTOTEST) -add_definitions(-DNO_HISTORYDIALOG) -set(SRCS - tst_xbel.cpp - ../../src/bookmarks/bookmarknode.cpp - ../../src/bookmarks/xbel/xbelreader.cpp - ../../src/bookmarks/xbel/xbelwriter.cpp -) -add_executable(test-xbel ${SRCS} ${UIS} ${MOCS}) -target_link_libraries(test-xbel Qt5::Core Qt5::Test Qt5::Widgets Qt5::WebEngine Qt5::WebEngineWidgets) +add_executable(test-xbel tst_xbel.cpp) +target_link_libraries(test-xbel endorphin-base Qt5::Test) diff --git a/endorphinbase.cmake b/endorphinbase.cmake new file mode 100644 index 00000000..e6bad2e1 --- /dev/null +++ b/endorphinbase.cmake @@ -0,0 +1,25 @@ +# Create a base "library" that all tests can link against. Basically the whole browser without entrypoint and translations. +# Used to avoid compiling files twice. + +find_package(Qt5Widgets REQUIRED) +find_package(Qt5Core REQUIRED) +find_package(Qt5Gui REQUIRED) +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5Network REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) +find_package(Qt5PrintSupport REQUIRED) +find_package(Qt5LinguistTools REQUIRED) +find_package(Qt5Qml REQUIRED) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) + +QT5_WRAP_UI(BASE_UIS ${ENDORPHIN_UIS}) +QT5_ADD_RESOURCES(BASE_RSCS ${ENDORPHIN_RSCS}) + +INCLUDE_DIRECTORIES( + ${ENDORPHIN_INCLUDE_DIRS} +) + +add_library(endorphin-base STATIC ${ENDORPHIN_SRCS} ${BASE_UIS} ${BASE_RSCS} ${BASE_MOCS}) +target_link_libraries(endorphin-base Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Qml Qt5::PrintSupport Qt5::WebEngine Qt5::WebEngineWidgets) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 530a9be0..2692c848 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,30 +4,10 @@ project(Endorphin) include(GNUInstallDirs) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -INCLUDE_DIRECTORIES( - ${ENDORPHIN_INCLUDE_DIRS} -) - -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Core REQUIRED) -find_package(Qt5Gui REQUIRED) -find_package(Qt5WebEngine REQUIRED) -find_package(Qt5Network REQUIRED) -find_package(Qt5WebEngineWidgets REQUIRED) -find_package(Qt5PrintSupport REQUIRED) -find_package(Qt5UiTools REQUIRED) -find_package(Qt5LinguistTools REQUIRED) -find_package(Qt5Qml REQUIRED) - set(EXECUTABLE_OUTPUT_PATH ../) -set(CMAKE_INCLUDE_CURRENT_DIR ON) +find_package(Qt5Widgets REQUIRED) # Get git information - execute_process(COMMAND git log -n1 --pretty=format:%h OUTPUT_VARIABLE GIT_REV ERROR_QUIET) @@ -42,9 +22,6 @@ endif() add_definitions(-DGITVERSION=\"\\\"${GIT_REV}\\\"\") add_definitions(-DGITCHANGENUMBER=${GIT_CHANGENUMBER}) -QT5_WRAP_UI(UIS ${ENDORPHIN_UIS}) -QT5_ADD_RESOURCES(RSCS ${ENDORPHIN_RSCS}) - # Translations qt5_create_translation(QM_FILES ${ENDORPHIN_SRCS} @@ -85,8 +62,8 @@ ${CMAKE_CURRENT_SOURCE_DIR}/locale/zh_TW.ts ) # Generate executable -add_executable(endorphin main.cpp ${ENDORPHIN_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS} ${QM_FILES}) -target_link_libraries(endorphin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Qml Qt5::PrintSupport Qt5::WebEngine Qt5::WebEngineWidgets) +add_executable(endorphin main.cpp ${TRS}) +target_link_libraries(endorphin Qt5::Widgets endorphin-base) if(NOT QT_TRANSLATIONS_DIR) diff --git a/src/devtoolswindow.cpp b/src/devtoolswindow.cpp index 7cd02b39..441907b1 100644 --- a/src/devtoolswindow.cpp +++ b/src/devtoolswindow.cpp @@ -19,12 +19,11 @@ #include "devtoolswindow.h" #include -#include -#include #include #include #include #include +#include DevToolsWindow::DevToolsWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 8adb1efb..45fe2d41 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -853,7 +853,7 @@ QUrl TabWidget::guessUrlFromString(const QString &string) if (url.scheme() == QLatin1String("about") && url.path() == QLatin1String("home")) - url = QUrl(QLatin1String("endoprhin://startpage")); + url = QUrl(QLatin1String("endorphin://startpage")); // QUrl::isValid() is too much tolerant. // We actually want to check if the url conforms to the RFC, which QUrl::isValid() doesn't state. diff --git a/tools/placesimport/CMakeLists.txt b/tools/placesimport/CMakeLists.txt index bf85b039..980e4936 100644 --- a/tools/placesimport/CMakeLists.txt +++ b/tools/placesimport/CMakeLists.txt @@ -22,7 +22,7 @@ set(placesimport_SRCS ../../src/utils/treesortfilterproxymodel.cpp ) -add_executable(endorphin-placesimport ${placesimport_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS}) +add_executable(endorphin-placesimport ${placesimport_SRCS}) target_link_libraries(endorphin-placesimport Qt5::Core Qt5::Widgets Qt5::Sql Qt5::WebEngine Qt5::WebEngineWidgets) install(TARGETS endorphin-placesimport From ea9ae318755ed33c0024ae401a5458b4babbc651 Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Tue, 2 Feb 2021 16:53:16 +0100 Subject: [PATCH 53/64] About dialog v3 --- src/aboutdialog.cpp | 3 +- src/aboutdialog.ui | 353 +++++++++++++++++++++------------------ src/data/data.qrc | 3 +- src/htmls/startpage.html | 2 +- 4 files changed, 193 insertions(+), 168 deletions(-) diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index 596d0d2b..70c00fcd 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -32,7 +32,6 @@ AboutDialog::AboutDialog(QWidget *parent) { setupUi(this); setWindowTitle(tr("About %1").arg(qApp->applicationName())); - logo->setPixmap(qApp->windowIcon().pixmap(128, 128)); name->setText(qApp->applicationName()); version->setText(qApp->applicationVersion()); connect(authorsButton, SIGNAL(clicked()), @@ -70,7 +69,7 @@ void AboutDialog::displayFile(const QString &fileName, const QString &title) dialog.setLayout(&layout); dialog.setWindowTitle(title); dialog.setWindowFlags(Qt::Sheet); - dialog.resize(600, 350); + dialog.resize(650, 400); dialog.exec(); } diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui index 0847fd5d..1cf5d5e2 100644 --- a/src/aboutdialog.ui +++ b/src/aboutdialog.ui @@ -6,175 +6,200 @@ 0 0 - 450 - 253 + 760 + 515 true - - - - - - 0 - 0 - - - - - - - false - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - 16 - 75 - true - - - - - - - Qt::AlignCenter - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - 0 - 0 - - - - - 12 - 50 - false - - - - - - - Qt::AlignCenter - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Lightweight WebKit-based web browser - - - Qt::AlignCenter - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - 0 - 0 - - - - <html><head/><body><p><span style=" font-size:9pt;">Copyright © 2020 Aaron Dewes &lt; </span><a href="mailto:aaron.dewes@web.de"><span style=" font-size:9pt; text-decoration: underline; color:#0000ff;">aaron.dewes@web.de</span></a><span style=" font-size:9pt;">&gt; </span></p></body></html> - - - Qt::AlignCenter - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Authors - - - - - - - License - - - - - - - Close - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - + + + + 450 + 0 + 520 + 530 + + + + + 0 + 0 + + + + img { +height: 1000px +} + + + + + + :/512x512/endorphin.png + + + false + + + Qt::AlignCenter + + + + + + 10 + 10 + 441 + 501 + + + + + + + + 0 + 0 + + + + + 40 + 75 + true + + + + Name + + + Qt::AlignCenter + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + true + + + + Qt::NoFocus + + + Close + + + false + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::NoFocus + + + License + + + + + + + + 0 + 0 + + + + + 12 + 50 + false + + + + Version + + + Qt::AlignCenter + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Lightweight WebKit-based web browser + + + Qt::AlignCenter + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Qt::NoFocus + + + Authors + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + diff --git a/src/data/data.qrc b/src/data/data.qrc index 09f01bcb..6f7da0dc 100644 --- a/src/data/data.qrc +++ b/src/data/data.qrc @@ -2,12 +2,13 @@ 128x128/endorphin.png 128x128/run.png + 512x512/endorphin.png endorphin.svg defaultbookmarks.xbel qwebchannel.js fetchLinks.js parseForms.js ../../AUTHORS - ../../LICENSE.GPL2 + ../../LICENSE diff --git a/src/htmls/startpage.html b/src/htmls/startpage.html index 15d73835..9e4047e1 100644 --- a/src/htmls/startpage.html +++ b/src/htmls/startpage.html @@ -2,7 +2,7 @@ New Tab - +