diff options
| -rw-r--r-- | src/mainwindow.cpp | 11 | ||||
| -rw-r--r-- | src/mainwindow.h | 2 | ||||
| -rw-r--r-- | src/useragent/useragentmanager.cpp | 53 | ||||
| -rw-r--r-- | src/useragent/useragentmanager.h | 12 | 
4 files changed, 41 insertions, 37 deletions
| diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f242439f..ff500b4a 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -502,7 +502,9 @@ void MainWindow::setupActions()      // User Agent      a = new KAction(KIcon("preferences-web-browser-identification"), i18n("Browser Identification"), this);      actionCollection()->addAction(QL1S("useragent"), a); -    a->setMenu(rApp->userAgentManager()->userAgentMenu()); +    KMenu *uaMenu = new KMenu(this); +    a->setMenu(uaMenu); +    connect(uaMenu, SIGNAL(aboutToShow()), this, SLOT(populateUserAgentMenu()));      // Editable Page      a = new KAction(KIcon("document-edit"), i18n("Set Editable"), this); @@ -1497,3 +1499,10 @@ void MainWindow::closeEvent(QCloseEvent *event)      kDebug() << "CLOSING WINDOW...";      KXmlGuiWindow::closeEvent(event);  } + + +void MainWindow::populateUserAgentMenu() +{ +    KMenu *uaMenu = static_cast<KMenu *>(QObject::sender()); +    rApp->userAgentManager()->populateUAMenuForTabUrl(uaMenu, currentTab()); +} diff --git a/src/mainwindow.h b/src/mainwindow.h index 3b5706c6..581b4fd1 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -176,6 +176,8 @@ private Q_SLOTS:      void openActionUrl(QAction *action);      void openActionTab(QAction *action); +    void populateUserAgentMenu(); +      void enableNetworkAnalysis(bool);      void setEditable(bool); diff --git a/src/useragent/useragentmanager.cpp b/src/useragent/useragentmanager.cpp index db6e0708..78b5b1c0 100644 --- a/src/useragent/useragentmanager.cpp +++ b/src/useragent/useragentmanager.cpp @@ -31,9 +31,8 @@  // Local Includes  #include "useragentinfo.h"  #include "useragentwidget.h" -#include "application.h" -#include "mainwindow.h"  #include "webtab.h" +#include "webview.h"  // KDE Includes  #include <KAction> @@ -44,30 +43,16 @@  UserAgentManager::UserAgentManager(QObject *parent)      : QObject(parent)      , _uaSettingsAction(0) -    , _uaMenu(new KMenu) +    , _uaTab(0)  {      _uaSettingsAction = new KAction(KIcon("preferences-web-browser-identification"), i18n("Browser Identification"), this);      connect(_uaSettingsAction, SIGNAL(triggered(bool)), this, SLOT(showSettings())); - -    connect(_uaMenu, SIGNAL(aboutToShow()), this, SLOT(populateUserAgentMenu())); -} - - -UserAgentManager::~UserAgentManager() -{ -    delete _uaMenu; -} - - -KMenu *UserAgentManager::userAgentMenu() -{ -    return _uaMenu;  }  void UserAgentManager::showSettings()  { -    QPointer<KDialog> dialog = new KDialog; +    QPointer<KDialog> dialog = new KDialog(_uaTab);      dialog->setCaption(i18nc("@title:window", "User Agent Settings"));      dialog->setButtons(KDialog::Ok); @@ -79,33 +64,38 @@ void UserAgentManager::showSettings()  } -void UserAgentManager::populateUserAgentMenu() +void UserAgentManager::populateUAMenuForTabUrl(KMenu *uaMenu, WebTab *uaTab)  { +    if (_uaTab) +        disconnect(this, SIGNAL(reloadTab()), _uaTab->view(), SLOT(reload())); + +    _uaTab = uaTab; +    connect(this, SIGNAL(reloadTab()), _uaTab->view(), SLOT(reload())); +      bool defaultUA = true; -    KUrl url = rApp->mainWindow()->currentTab()->url();      QAction *a, *defaultAction;      // just to be sure... -    _uaMenu->clear(); +    uaMenu->clear(); -    defaultAction = new QAction(i18nc("Default rekonq user agent", "Default"), this); +    defaultAction = new QAction(i18nc("Default rekonq user agent", "Default"), uaMenu);      defaultAction->setData(-1);      defaultAction->setCheckable(true);      connect(defaultAction, SIGNAL(triggered(bool)), this, SLOT(setUserAgent())); -    _uaMenu->addAction(defaultAction); -    _uaMenu->addSeparator(); +    uaMenu->addAction(defaultAction); +    uaMenu->addSeparator();      UserAgentInfo uaInfo;      QStringList UAlist = uaInfo.availableUserAgents(); -    int uaIndex = uaInfo.uaIndexForHost(url.host()); +    int uaIndex = uaInfo.uaIndexForHost(_uaTab->url().host());      for (int i = 0; i < UAlist.count(); ++i)      {          QString uaDesc = UAlist.at(i); -        a = new QAction(uaDesc, this); +        a = new QAction(uaDesc, uaMenu);          a->setData(i);          a->setCheckable(true);          connect(a, SIGNAL(triggered(bool)), this, SLOT(setUserAgent())); @@ -115,12 +105,12 @@ void UserAgentManager::populateUserAgentMenu()              a->setChecked(true);              defaultUA = false;          } -        _uaMenu->addAction(a); +        uaMenu->addAction(a);      }      defaultAction->setChecked(defaultUA); -    _uaMenu->addSeparator(); -    _uaMenu->addAction(_uaSettingsAction); +    uaMenu->addSeparator(); +    uaMenu->addAction(_uaSettingsAction);  } @@ -131,8 +121,7 @@ void UserAgentManager::setUserAgent()      QString desc = sender->text();      int uaIndex = sender->data().toInt(); -    KUrl url = rApp->mainWindow()->currentTab()->url();      UserAgentInfo uaInfo; -    uaInfo.setUserAgentForHost(uaIndex, url.host()); -    rApp->mainWindow()->currentTab()->page()->triggerAction(QWebPage::Reload); +    uaInfo.setUserAgentForHost(uaIndex, _uaTab->url().host()); +    emit reloadTab();  } diff --git a/src/useragent/useragentmanager.h b/src/useragent/useragentmanager.h index ae38ac6d..62bf4890 100644 --- a/src/useragent/useragentmanager.h +++ b/src/useragent/useragentmanager.h @@ -30,27 +30,31 @@  #include <QObject> +class WebTab; +  class KAction;  class KMenu; +  class UserAgentManager : public QObject  {      Q_OBJECT  public:      UserAgentManager(QObject *parent = 0); -    ~UserAgentManager(); -    KMenu *userAgentMenu(); +    void populateUAMenuForTabUrl(KMenu *, WebTab *);  private Q_SLOTS:      void showSettings();      void setUserAgent(); -    void populateUserAgentMenu(); + +Q_SIGNALS: +    void reloadTab();  private:      KAction *_uaSettingsAction; -    KMenu *_uaMenu; +    WebTab *_uaTab;  };  #endif  // USER_AGENT_MANAGER_H | 
