summaryrefslogtreecommitdiff
path: root/src/useragent/useragentwidget.cpp
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2011-02-01 17:32:57 +0100
committerAndrea Diamantini <adjam7@gmail.com>2011-02-01 17:32:57 +0100
commit7a1aaf4d1e86d45691e981e92d99a817849240fd (patch)
tree1cadcb489da6f17a81c63989a25e2076e7899e49 /src/useragent/useragentwidget.cpp
parentIf a cached suggestion is older than one week, it is downloaded again, allowi... (diff)
downloadrekonq-7a1aaf4d1e86d45691e981e92d99a817849240fd.tar.xz
User Agent Switcher.
This patch should implement the UA switcher ability for rekonq. This is a first implementation, but it seems working quite well. It is based on KDE UA management and should be fully compatible with konqueror's one i.e. it should be possible using alternatively rekonq and konqueror sharing the same setting. Anyway, this is a different implementation from the konqueror's one. Simpler and based on the idea of a future moving to a plugin.
Diffstat (limited to 'src/useragent/useragentwidget.cpp')
-rw-r--r--src/useragent/useragentwidget.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/src/useragent/useragentwidget.cpp b/src/useragent/useragentwidget.cpp
new file mode 100644
index 00000000..8fb278b8
--- /dev/null
+++ b/src/useragent/useragentwidget.cpp
@@ -0,0 +1,101 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010 by Andrea Diamantini <adjam7 at gmail dot com>
+*
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as
+* published by the Free Software Foundation; either version 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*
+* ============================================================ */
+
+
+// Self Includes
+#include "useragentwidget.h"
+#include "useragentwidget.moc"
+
+// KDE Includes
+#include <KProtocolManager>
+
+
+UserAgentWidget::UserAgentWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ setupUi(this);
+
+ connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteUserAgent()));
+ connect(deleteAllButton, SIGNAL(clicked()), this, SLOT(deleteAll()));
+
+ KConfig config("kio_httprc", KConfig::NoGlobals);
+
+ QStringList hosts = config.groupList();
+ kDebug() << "HOSTS" << hosts;
+ Q_FOREACH(const QString &host, hosts)
+ {
+ QStringList tmp;
+ tmp << host;
+
+ KConfigGroup hostGroup(&config, host);
+ tmp << hostGroup.readEntry( QL1S("UserAgent"), QString());
+
+ kDebug() << "TMP: " << tmp;
+ QTreeWidgetItem *item = new QTreeWidgetItem(sitePolicyTreeWidget, tmp);
+ sitePolicyTreeWidget->addTopLevelItem(item);
+ }
+}
+
+
+void UserAgentWidget::deleteUserAgent()
+{
+ QTreeWidgetItem *item = sitePolicyTreeWidget->currentItem();
+ if(!item)
+ return;
+
+ sitePolicyTreeWidget->takeTopLevelItem( sitePolicyTreeWidget->indexOfTopLevelItem(item) );
+
+ QString host = item->text(0);
+ kDebug() << "HOST: " << host;
+
+ KConfig config("kio_httprc", KConfig::NoGlobals);
+ KConfigGroup group(&config, host);
+ if(group.exists())
+ {
+ group.deleteGroup();
+ KProtocolManager::reparseConfiguration();
+ }
+}
+
+
+void UserAgentWidget::deleteAll()
+{
+ sitePolicyTreeWidget->clear();
+
+ KConfig config("kio_httprc", KConfig::NoGlobals);
+
+ QStringList list = config.groupList();
+ Q_FOREACH(const QString &groupName, list)
+ {
+ kDebug() << "HOST: " << groupName;
+
+ KConfigGroup group(&config, groupName);
+ group.deleteGroup();
+ }
+ KConfigGroup group(&config, QString());
+ group.deleteGroup();
+
+ KProtocolManager::reparseConfiguration();
+}