PanelTabBar::PanelTabBar(QWidget *parent)
: QWidget(parent),
-- m_activeTab(-1)
++ m_activeTab(-1) ///< @todo magic
{
qDebug() << __PRETTY_FUNCTION__;
{
qDebug() << __PRETTY_FUNCTION__;
- return insertTab(-1, icon);
+ const int APPEND_INDEX = -1;
+
+ return insertTab(APPEND_INDEX, icon);
}
void PanelTabBar::deselectTabs()
m_tabButtonGroup->addButton(new PanelTab(this), index);
m_tabButtonGroup->button(index)->setIcon(icon);
-- // [BEGIN]: Purkkaa (to be removed ASAP!!!)
++ ///< @todo [BEGIN]: Purkkaa (to be removed ASAP!!!)
if(index > 0)
verticalStartPoint += 65 * index;
}
}
+ void PanelTabBar::selectTab(int index)
+ {
+ qDebug() << __PRETTY_FUNCTION__;
+
+ if (!m_tabButtonGroup->button(index)->isChecked())
+ m_tabButtonGroup->button(index)->click();
+ }
+
void PanelTabBar::setCurrentIndex(int index)
{
qDebug() << __PRETTY_FUNCTION__;
if(m_activeTab == index) {
++ ///< @todo magic
m_activeTab = -1;
emit tabCloseRequested(index);
} else {
{
qDebug() << __PRETTY_FUNCTION__;
- ///< @todo Do not use this, REMOVE ALL OCCURENCES IN ALL FILES!
- this->resize(PANEL_BAR_TABBED_WIDTH + PANEL_WIDTH, PANEL_HEIGHT);
- this->move(PANEL_CLOSED_X, PANEL_TOP_PADDING);
+ resize(PANEL_BAR_TABBED_WIDTH + PANEL_WIDTH, PANEL_HEIGHT);
+ move(PANEL_CLOSED_X, PANEL_TOP_PADDING);
// --- TABS ---
m_panelWidgetStack = new QStackedWidget(this);
m_panelTabBar = new PanelTabBar(this);
connect(m_panelTabBar, SIGNAL(currentChanged(int)),
- this, SLOT(showTab(int)));
+ this, SLOT(setCurrentIndex(int)));
connect(m_panelTabBar, SIGNAL(tabCloseRequested(int)),
this, SLOT(closePanel()));
{
qDebug() << __PRETTY_FUNCTION__;
- ///< @todo magic
- return insertTab(-1, widget, icon);
++
+ const int APPEND_INDEX = -1;
+
+ return insertTab(APPEND_INDEX, widget, icon);
}
- int TabbedPanel::insertTab(int index, QWidget *widget, const QIcon& icon)
+ void TabbedPanel::closePanel()
{
qDebug() << __PRETTY_FUNCTION__;
- ///< @todo callers responsibility to call with right parameters
- if(!widget)
- return -1;
+ if(m_isOpen)
+ emit toggleState();
+ }
+
+ int TabbedPanel::insertTab(int index, QWidget *widget, const QIcon& icon)
+ {
+ qDebug() << __PRETTY_FUNCTION__;
index = m_panelWidgetStack->insertWidget(index, widget);
m_panelTabBar->insertTab(index, icon);
}
}
- ///< @todo sort alphabetically (other methods too)
- void TabbedPanel::closePanel()
+ void TabbedPanel::resizePanel(const QSize &size)
{
qDebug() << __PRETTY_FUNCTION__;
- if(m_isOpen)
- emit toggleState();
- }
- this->resize(PANEL_BAR_TABBED_WIDTH + PANEL_WIDTH,
- size.height() - PANEL_TOP_PADDING - PANEL_BOTTOM_PADDING);
++ resize(PANEL_BAR_TABBED_WIDTH + PANEL_WIDTH,
++ size.height() - PANEL_TOP_PADDING - PANEL_BOTTOM_PADDING);
- void TabbedPanel::openPanel()
- {
- qDebug() << __PRETTY_FUNCTION__;
- if (!m_isOpen) {
++ if (!m_isOpen)
+ move(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH, PANEL_TOP_PADDING);
- } else {
- move(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH - PANEL_WIDTH,
- PANEL_TOP_PADDING);
- }
++ else
++ move(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH - PANEL_WIDTH, PANEL_TOP_PADDING);
+
+ m_panelBar->resizeBar(size);
+
+ m_panelContent->resizePanelContent(size);
+
- m_panelStateClosed->assignProperty(this, "pos",
- QPoint(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH,
- PANEL_TOP_PADDING));
- m_panelStateOpened->assignProperty(this, "pos",
- QPoint(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH - PANEL_WIDTH,
- PANEL_TOP_PADDING));
++ QPoint closedPosition(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH, PANEL_TOP_PADDING);
++ m_panelStateClosed->assignProperty(this, "pos", closedPosition);
++
++ QPoint openedPosition(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH - PANEL_WIDTH,
++ PANEL_TOP_PADDING);
++ m_panelStateOpened->assignProperty(this, "pos", openedPosition);
+
- if(!m_isOpen)
- emit toggleState();
}
- void TabbedPanel::showTab(int index)
+ void TabbedPanel::showPanel(QWidget *widget)
{
qDebug() << __PRETTY_FUNCTION__;
- ///< @todo if ((first) && (second)) {
- if (index < m_panelWidgetStack->count() && index >= 0) {
- m_panelWidgetStack->setCurrentIndex(index);
- openPanel();
- emit currentChanged(index);
- }
+ m_panelTabBar->selectTab(m_panelWidgetStack->indexOf(widget));
}
- void TabbedPanel::resizePanel(const QSize &size)
+ void TabbedPanel::setCurrentIndex(int index)
{
qDebug() << __PRETTY_FUNCTION__;
- this->resize(PANEL_BAR_TABBED_WIDTH + PANEL_WIDTH,
- size.height() - PANEL_TOP_PADDING - PANEL_BOTTOM_PADDING);
-
- if (!m_isOpen) {
- this->move(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH, PANEL_TOP_PADDING);
- } else {
- this->move(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH - PANEL_WIDTH,
- PANEL_TOP_PADDING);
- }
-
- m_panelBar->resizeBar(size);
+ if ((index < m_panelWidgetStack->count()) && (index >= 0)) {
+ m_panelWidgetStack->setCurrentIndex(index);
- m_panelContent->resizePanelContent(size);
+ if(!m_isOpen)
+ emit toggleState();
- ///< @todo alignment
- m_panelStateClosed->assignProperty(this, "pos",
- QPoint(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH, PANEL_TOP_PADDING));
- m_panelStateOpened->assignProperty(this, "pos",
- QPoint(size.width() - PANEL_TAB_WIDTH - PANEL_BAR_WIDTH - PANEL_WIDTH,
- PANEL_TOP_PADDING));
+ emit currentChanged(index);
+ }
}
void TabbedPanel::stateChanged()