setMovable(true);
setTabsClosable(true);
- signalMapper = new QSignalMapper(this);
-
connect(this, SIGNAL(tabCloseRequested(int)), this, SLOT(removeTab(int)));
connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentTabChanged(int)));
- connect(signalMapper, SIGNAL(mapped(QString)), this, SLOT(addTabRequested(QString)));
}
TabWidget::~TabWidget()
void TabWidget::populateMenu(QMenu *menu)
{
- for (const auto &action : menu->actions())
- signalMapper->removeMappings(action);
qDeleteAll(menu->actions());
for (const QString &id : tabMenuOrder)
{
QAction *action = new QAction(registeredTabNames.value(id)(), menu);
- connect(action, SIGNAL(triggered()), signalMapper, SLOT(map()));
- signalMapper->setMapping(action, id);
+ connect(action, &QAction::triggered, [this, id] {
+ this->addTabRequested(id);
+ });
menu->addAction(action);
}
menu->addSeparator();
void deinitTab(AbstractTab *tab);
AbstractTab *previousTab;
- QSignalMapper *signalMapper;
- MainWindow * m_mainWindow;
+ MainWindow *m_mainWindow;
public:
static AbstractTab *createTab(const QString &id, QWidget *parent = 0);