summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainwindow.cpp48
-rw-r--r--src/mainwindow.h3
2 files changed, 45 insertions, 6 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 60784af0..a2768bb6 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -286,7 +286,8 @@ void MainWindow::setupActions()
fullScreenShortcut.setAlternate( Qt::Key_F11 );
a->setShortcut( fullScreenShortcut );
- KStandardAction::home(this, SLOT(homePage()), actionCollection());
+ a = actionCollection()->addAction( KStandardAction::Home );
+ connect(a, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(homePage(Qt::MouseButtons)));
KStandardAction::preferences(this, SLOT(preferences()), actionCollection());
a = KStandardAction::redisplay(m_view, SLOT(webReload()), actionCollection());
@@ -345,14 +346,16 @@ void MainWindow::setupActions()
connect(a, SIGNAL(triggered(bool)), this, SLOT(clearPrivateData()));
// ========================= History related actions ==============================
- a = KStandardAction::back(this, SLOT(openPrevious()) , actionCollection());
+ a = actionCollection()->addAction( KStandardAction::Back );
+ connect(a, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(openPrevious(Qt::MouseButtons)));
m_historyBackMenu = new KMenu(this);
a->setMenu(m_historyBackMenu);
connect(m_historyBackMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowBackMenu()));
connect(m_historyBackMenu, SIGNAL(triggered(QAction *)), this, SLOT(openActionUrl(QAction *)));
- KStandardAction::forward(this, SLOT(openNext()) , actionCollection());
+ a = actionCollection()->addAction( KStandardAction::Forward );
+ connect(a, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(openNext(Qt::MouseButtons)));
// ============================== General Tab Actions ====================================
a = new KAction(KIcon("tab-new"), i18n("New &Tab"), this);
@@ -929,9 +932,18 @@ void MainWindow::viewPageSource()
}
+void MainWindow::homePage(Qt::MouseButtons btn)
+{
+ if(btn == Qt::MidButton)
+ Application::instance()->loadUrl( KUrl(ReKonfig::homePage()), Rekonq::SettingOpenTab );
+ else
+ currentTab()->view()->load( QUrl(ReKonfig::homePage()) );
+}
+
+
void MainWindow::homePage()
{
- currentTab()->view()->load( QUrl(ReKonfig::homePage()) );
+ homePage(Qt::LeftButton);
}
@@ -974,17 +986,41 @@ void MainWindow::browserLoading(bool v)
void MainWindow::openPrevious()
{
+ openPrevious(Qt::LeftButton);
+}
+
+
+void MainWindow::openPrevious(Qt::MouseButtons btn)
+{
QWebHistory *history = currentTab()->view()->history();
if (history->canGoBack())
- history->goToItem(history->backItem());
+ {
+ KUrl back = history->backItem().url();
+ if(btn == Qt::MidButton)
+ Application::instance()->loadUrl(back, Rekonq::SettingOpenTab);
+ else
+ Application::instance()->loadUrl(back);
+ }
}
void MainWindow::openNext()
{
+ openNext(Qt::LeftButton);
+}
+
+
+void MainWindow::openNext(Qt::MouseButtons btn)
+{
QWebHistory *history = currentTab()->view()->history();
if (history->canGoForward())
- history->goToItem(history->forwardItem());
+ {
+ KUrl next = history->forwardItem().url();
+ if(btn == Qt::MidButton)
+ Application::instance()->loadUrl(next, Rekonq::SettingOpenTab);
+ else
+ Application::instance()->loadUrl(next);
+ }
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 57b88dfd..9e491c69 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -88,6 +88,7 @@ private:
public slots:
void homePage();
+ void homePage(Qt::MouseButtons);
/**
* Notifies a message in a popup
@@ -123,7 +124,9 @@ private slots:
// history related
void openPrevious();
+ void openPrevious(Qt::MouseButtons);
void openNext();
+ void openNext(Qt::MouseButtons);
// Find Action slots
void find(const QString &);