diff --git a/src/kiwixapp.cpp b/src/kiwixapp.cpp index 5028339..68bd765 100644 --- a/src/kiwixapp.cpp +++ b/src/kiwixapp.cpp @@ -382,8 +382,7 @@ void KiwixApp::createActions() CREATE_ACTION_ICON_SHORTCUT(NewTabAction,"new-tab-icon", gt("new-tab"), QKeySequence::AddTab); - CREATE_ACTION_ICON_SHORTCUTS(CloseTabAction, "close", gt("close-tab"), QList({QKeySequence(Qt::CTRL | Qt::Key_F4), QKeySequence(Qt::CTRL | Qt::Key_W)})); - mpa_actions[CloseTabAction]->setIconVisibleInMenu(false); + CREATE_ACTION_SHORTCUTS(CloseCurrentTabAction, gt("close-tab"), QList({QKeySequence(Qt::CTRL | Qt::Key_F4), QKeySequence(Qt::CTRL | Qt::Key_W)})); CREATE_ACTION_SHORTCUT(ReopenClosedTabAction, gt("reopen-closed-tab"), QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_T)); HIDE_ACTION(ReopenClosedTabAction); diff --git a/src/kiwixapp.h b/src/kiwixapp.h index a998769..c09a1d0 100644 --- a/src/kiwixapp.h +++ b/src/kiwixapp.h @@ -34,7 +34,7 @@ public: OpenHomePageAction, PrintAction, NewTabAction, - CloseTabAction, + CloseCurrentTabAction, ReopenClosedTabAction, BrowseLibraryAction, OpenFileAction, diff --git a/src/mainmenu.cpp b/src/mainmenu.cpp index 6a99d37..e2c8cf5 100644 --- a/src/mainmenu.cpp +++ b/src/mainmenu.cpp @@ -19,7 +19,7 @@ MainMenu::MainMenu(QWidget *parent) : m_fileMenu.setTitle(gt("file")); m_fileMenu.ADD_ACTION(NewTabAction); - m_fileMenu.ADD_ACTION(CloseTabAction); + m_fileMenu.ADD_ACTION(CloseCurrentTabAction); m_fileMenu.ADD_ACTION(ReopenClosedTabAction); m_fileMenu.ADD_ACTION(BrowseLibraryAction); m_fileMenu.ADD_ACTION(OpenFileAction); diff --git a/src/tabbar.cpp b/src/tabbar.cpp index 60ec015..3ebba23 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -28,7 +28,7 @@ TabBar::TabBar(QWidget *parent) : connect(app->getAction(KiwixApp::NextTabAction), &QAction::triggered, this, &TabBar::moveToNextTab); connect(app->getAction(KiwixApp::PreviousTabAction), &QAction::triggered, this, &TabBar::moveToPreviousTab); - connect(app->getAction(KiwixApp::CloseTabAction), &QAction::triggered, + connect(app->getAction(KiwixApp::CloseCurrentTabAction), &QAction::triggered, this, [=]() { this->closeTab(currentIndex()); }); @@ -127,8 +127,17 @@ void TabBar::setCloseTabButton(int index) Q_ASSERT(index > 0 && index < realTabCount()); QToolButton *tb = new QToolButton(this); - tb->setDefaultAction(KiwixApp::instance()->getAction(KiwixApp::CloseTabAction)); + QAction *a = new QAction(QIcon(":/icons/close.svg"), gt("close-tab"), tb); + tb->setDefaultAction(a); setTabButton(index, QTabBar::RightSide, tb); + connect(tb, &QToolButton::triggered, this, [=]() { + for ( int i = 0; i < realTabCount(); ++i ) { + if ( tb == tabButton(i, QTabBar::RightSide) ) { + closeTab(i); + return; + } + } + }); } ZimView* TabBar::createNewTab(bool setCurrent, bool nextToCurrentTab)