summaryrefslogtreecommitdiff
path: root/src/useragent/useragentmanager.cpp
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2012-07-27 08:55:21 +0200
committerAndrea Diamantini <adjam7@gmail.com>2012-07-27 08:55:21 +0200
commit37b95a4e10ca0af39a03b17e974baf72f1b4c7c7 (patch)
tree8845a61f47317115945a103eefd574dd6f3ba29d /src/useragent/useragentmanager.cpp
parentThis should fix local files launch by console when rekonq is just loaded (diff)
downloadrekonq-37b95a4e10ca0af39a03b17e974baf72f1b4c7c7.tar.xz
Fix sneaky crash of user agent menu
BUG: 303862
Diffstat (limited to 'src/useragent/useragentmanager.cpp')
-rw-r--r--src/useragent/useragentmanager.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/useragent/useragentmanager.cpp b/src/useragent/useragentmanager.cpp
index 37bc496a..9a2db3c9 100644
--- a/src/useragent/useragentmanager.cpp
+++ b/src/useragent/useragentmanager.cpp
@@ -43,7 +43,6 @@
UserAgentManager::UserAgentManager(QObject *parent)
: QObject(parent)
, m_uaSettingsAction(0)
- , m_uaTab(0)
{
m_uaSettingsAction = new KAction(KIcon("preferences-web-browser-identification"), i18n("Browser Identification"), this);
connect(m_uaSettingsAction, SIGNAL(triggered(bool)), this, SLOT(showSettings()));
@@ -52,7 +51,7 @@ UserAgentManager::UserAgentManager(QObject *parent)
void UserAgentManager::showSettings()
{
- QPointer<KDialog> dialog = new KDialog(m_uaTab);
+ QPointer<KDialog> dialog = new KDialog(m_uaTab.data());
dialog->setCaption(i18nc("@title:window", "User Agent Settings"));
dialog->setButtons(KDialog::Ok);
@@ -66,11 +65,14 @@ void UserAgentManager::showSettings()
void UserAgentManager::populateUAMenuForTabUrl(KMenu *uaMenu, WebTab *uaTab)
{
- if (m_uaTab)
- disconnect(this, SIGNAL(reloadTab()), m_uaTab->view(), SLOT(reload()));
+ if (!m_uaTab.isNull())
+ {
+ disconnect(this, SIGNAL(reloadTab()), m_uaTab.data()->view(), SLOT(reload()));
+ m_uaTab.clear();
+ }
m_uaTab = uaTab;
- connect(this, SIGNAL(reloadTab()), m_uaTab->view(), SLOT(reload()));
+ connect(this, SIGNAL(reloadTab()), m_uaTab.data()->view(), SLOT(reload()));
bool defaultUA = true;
@@ -109,7 +111,7 @@ void UserAgentManager::populateUAMenuForTabUrl(KMenu *uaMenu, WebTab *uaTab)
UserAgentInfo uaInfo;
QStringList UAlist = uaInfo.availableUserAgents();
const KService::List providers = uaInfo.availableProviders();
- int uaIndex = uaInfo.uaIndexForHost(m_uaTab->url().host());
+ int uaIndex = uaInfo.uaIndexForHost(m_uaTab.data()->url().host());
for (int i = 0; i < UAlist.count(); ++i)
{
@@ -166,6 +168,6 @@ void UserAgentManager::setUserAgent()
int uaIndex = sender->data().toInt();
UserAgentInfo uaInfo;
- uaInfo.setUserAgentForHost(uaIndex, m_uaTab->url().host());
+ uaInfo.setUserAgentForHost(uaIndex, m_uaTab.data()->url().host());
emit reloadTab();
}