From fdf05ba369b62b0c87217f2c2565e7054d4123b6 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 9 May 2011 10:53:32 +0200 Subject: Use of QSignalMapper for switchToTab() method in terms of code unification Patch by Thomas Murach, thanks ;) RB:101246 --- src/mainview.cpp | 10 +++------- src/mainview.h | 2 +- src/mainwindow.cpp | 15 ++++++++------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/mainview.cpp b/src/mainview.cpp index 19e4aae7..c7d66fa1 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -667,15 +667,11 @@ void MainView::openClosedTab() } -void MainView::switchToTab() +void MainView::switchToTab(const int index) { - // uses the sender to determine the tab index - QAction *sender = static_cast(QObject::sender()); - int index = sender->data().toInt(); - index -= 1; // to compensate for off by 1 presented to the user - if (index < 0 || index >= count()) + if (index <= 0 || index > count()) return; - setCurrentIndex(index); + setCurrentIndex(index-1); } diff --git a/src/mainview.h b/src/mainview.h index d01bb5b8..2ca3e9e7 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -151,7 +151,7 @@ public Q_SLOTS: void openLastClosedTab(); void openClosedTab(); - void switchToTab(); + void switchToTab(const int index); void loadFavorite(const int index); // WEB slot actions diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 1ded9836..f226c9ee 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -481,28 +481,29 @@ void MainWindow::setupActions() closedTabsMenu->setDelayed(false); actionCollection()->addAction(QL1S("closed_tab_menu"), closedTabsMenu); + QSignalMapper *tabSignalMapper = new QSignalMapper(this); // shortcuts for quickly switching to a tab for (int i = 1; i <= 9; i++) { a = new KAction(i18n("Switch to Tab %1", i), this); a->setShortcut(KShortcut(QString("Alt+%1").arg(i))); - a->setData(QVariant(i)); actionCollection()->addAction(QL1S(("switch_tab_" + QString::number(i)).toAscii()), a); - connect(a, SIGNAL(triggered(bool)), m_view, SLOT(switchToTab())); + connect(a, SIGNAL(triggered(bool)), tabSignalMapper, SLOT(map())); + tabSignalMapper->setMapping(a, i); } + connect(tabSignalMapper, SIGNAL(mapped(const int)), m_view, SLOT(switchToTab(const int))); // shortcuts for loading favorite pages - QSignalMapper *signalMapper = new QSignalMapper(this); + QSignalMapper *favoritesSignalMapper = new QSignalMapper(this); for (int i = 1; i <= 9; ++i) { a = new KAction(i18n("Switch to Favorite Page %1", i), this); a->setShortcut(KShortcut(QString("Ctrl+%1").arg(i))); - a->setData(QVariant(i)); actionCollection()->addAction(QL1S(("switch_favorite_" + QString::number(i)).toAscii()), a); - connect(a, SIGNAL(triggered(bool)), signalMapper, SLOT(map())); - signalMapper->setMapping(a, i); + connect(a, SIGNAL(triggered(bool)), favoritesSignalMapper, SLOT(map())); + favoritesSignalMapper->setMapping(a, i); } - connect(signalMapper, SIGNAL(mapped(const int)), m_view, SLOT(loadFavorite(const int))); + connect(favoritesSignalMapper, SIGNAL(mapped(const int)), m_view, SLOT(loadFavorite(const int))); // ============================== Indexed Tab Actions ==================================== a = new KAction(KIcon("tab-close"), i18n("&Close Tab"), this); -- cgit v1.2.1