43 QString
id()
const override
45 return QSL(
"tabmanager-icon");
48 QString
name()
const override
50 return tr(
"Tab Manager button");
57 , m_defaultTabManager(nullptr)
67 return tr(
"Tab Manager");
72 auto* act =
new QAction(tr(
"Tab Manager"),
this);
73 act->setCheckable(
true);
74 act->setIcon(QIcon(
QSL(
":tabmanager/data/tabmanager.png")));
75 act->setShortcut(QKeySequence(
QSL(
"Ctrl+Shift+M")));
76 act->setData(
QSL(
"TabManager"));
92 if (m_statusBarIcons.contains(mainWindow)) {
93 return m_statusBarIcons.value(mainWindow);
97 icon->setIcon(QPixmap(
QSL(
":tabmanager/data/tabmanager.png")));
98 icon->setTitle(tr(
"Tab Manager"));
99 icon->setToolTip(tr(
"Show Tab Manager"));
106 static int titleBarHeight =
defaultTabManager()->style()->pixelMetric(QStyle::PM_TitleBarHeight);
108 QSize newSize(
defaultTabManager()->width(), mainWindow->height() - titleBarHeight - frameWidth);
113 QTimer::singleShot(0,
this, [=]() {
119 showAction->setCheckable(
false);
120 showAction->setParent(icon);
121 mainWindow->addAction(showAction);
122 connect(showAction, SIGNAL(triggered()),
this, SLOT(
raiseTabManager()));
124 m_statusBarIcons.insert(mainWindow, icon);
125 m_actions.insert(mainWindow, showAction);
142 auto* tabManagerWidget =
new TabManagerWidget(mainClass, parent, defaultWidget);
143 tabManagerWidget->setGroupType(m_groupType);
146 m_defaultTabManager = tabManagerWidget;
148 showAction->setCheckable(
false);
149 showAction->setParent(m_defaultTabManager);
150 m_defaultTabManager->addAction(showAction);
151 connect(showAction, SIGNAL(triggered()),
this, SLOT(
raiseTabManager()));
155 m_defaultTabManager =
nullptr;
163 return tabManagerWidget;
168 return m_defaultTabManager;
184 window->removeAction(m_actions.value(window));
185 delete m_actions.value(window);
186 delete m_statusBarIcons.value(window);
187 m_statusBarIcons.remove(window);
188 m_actions.remove(window);
216 const QRect &availableGeometry =
defaultTabManager()->screen()->availableGeometry();
218 static int titleBarHeight =
defaultTabManager()->style()->pixelMetric(QStyle::PM_TitleBarHeight);
220 QRect managerRect(availableGeometry.left() + frameWidth, availableGeometry.top() + titleBarHeight,
221 defaultTabManager()->width(), availableGeometry.height() - titleBarHeight - frameWidth);
222 QRect windowRect(managerRect.topRight().x() + 2 * frameWidth, managerRect.top(),
223 availableGeometry.width() - managerRect.width() - 4 * frameWidth, managerRect.height());
226 mApp->getWindow()->setGeometry(windowRect);
227 mApp->getWindow()->showNormal();
228 mApp->getWindow()->raise();
240#include "tabmanagerwidgetcontroller.moc"
NavigationBar * navigationBar() const
StatusBar * statusBar() const
void removeToolButton(AbstractButtonInterface *button)
void addToolButton(AbstractButtonInterface *button)
void addButton(AbstractButtonInterface *button)
void removeButton(AbstractButtonInterface *button)