X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fui%2Ftabbedpanel.cpp;h=2321ceb10a3f7b21f2d6c4ed13f1cacd4b1a47bf;hb=2d29b91ec946f8d09b8ab4b2b723d035d3f3e902;hp=ec2aff27d6cf7de2b702943b03d0aaf8b3afab73;hpb=5858519af25f31a9496d4601baeb87b3bb476313;p=situare diff --git a/src/ui/tabbedpanel.cpp b/src/ui/tabbedpanel.cpp index ec2aff2..2321ceb 100644 --- a/src/ui/tabbedpanel.cpp +++ b/src/ui/tabbedpanel.cpp @@ -20,7 +20,6 @@ USA. */ -#include #include #include #include @@ -29,15 +28,13 @@ #include "panelbar.h" #include "panelcontent.h" -#include "paneltab.h" -#include "userinfo.h" +#include "paneltabbar.h" #include "tabbedpanel.h" TabbedPanel::TabbedPanel(QWidget *parent) : QWidget(parent), - m_isOpen(false), - m_activeTab(-1) + m_isOpen(false) { qDebug() << __PRETTY_FUNCTION__; @@ -47,10 +44,16 @@ TabbedPanel::TabbedPanel(QWidget *parent) // --- TABS --- m_panelWidgetStack = new QStackedWidget(this); - m_tabButtonGroup = new QButtonGroup(this); + m_panelTabBar = new PanelTabBar(this); - connect(m_tabButtonGroup, SIGNAL(buttonPressed(int)), - this, SLOT(setActiveTab(int))); + connect(m_panelTabBar, SIGNAL(currentChanged(int)), + this, SLOT(showTab(int))); + + connect(m_panelTabBar, SIGNAL(tabCloseRequested(int)), + this, SLOT(closePanel())); + + connect(this, SIGNAL(panelClosed()), + m_panelTabBar, SLOT(deselectTabs())); // --- BAR --- m_panelBar = new PanelBar(this); @@ -104,18 +107,8 @@ int TabbedPanel::insertTab(int index, QWidget *widget, const QIcon& icon) if(!widget) return -1; - int verticalStartPoint = 8; - index = m_panelWidgetStack->insertWidget(index, widget); - m_tabButtonGroup->addButton(new PanelTab(this), index); - m_tabButtonGroup->button(index)->setIcon(icon); - - // [BEGIN]: Purkkaa (to be removed ASAP!!!) - if(index > 0) - verticalStartPoint += 65 * index; - - m_tabButtonGroup->button(index)->move(0, verticalStartPoint); - // [END]: Purkkaa + m_panelTabBar->insertTab(index, icon); return index; } @@ -126,10 +119,7 @@ void TabbedPanel::removeTab(int index) if(QWidget *widget = m_panelWidgetStack->widget(index)) { m_panelWidgetStack->removeWidget(widget); - - QAbstractButton *tab = m_tabButtonGroup->button(index); - m_tabButtonGroup->removeButton(tab); - delete tab; + m_panelTabBar->removeTab(index); } } @@ -149,6 +139,17 @@ void TabbedPanel::openPanel() emit toggleState(); } +void TabbedPanel::showTab(int index) +{ + qDebug() << __PRETTY_FUNCTION__; + + if (index < m_panelWidgetStack->count() && index >= 0) { + m_panelWidgetStack->setCurrentIndex(index); + openPanel(); + emit currentChanged(index); + } +} + void TabbedPanel::resizePanel(const QSize &size) { qDebug() << __PRETTY_FUNCTION__; @@ -173,25 +174,6 @@ void TabbedPanel::resizePanel(const QSize &size) PANEL_TOP_PADDING)); } -void TabbedPanel::setActiveTab(int index) -{ - qDebug() << __PRETTY_FUNCTION__; - - if(m_activeTab == -1) { - m_activeTab = index; - m_panelWidgetStack->setCurrentIndex(index); - emit tabChanged(); - emit toggleState(); - } else if(m_activeTab == index) { - m_activeTab = -1; - emit toggleState(); - } else { - m_activeTab = index; - m_panelWidgetStack->setCurrentIndex(index); - emit tabChanged(); - } -} - void TabbedPanel::stateChanged() { qDebug() << __PRETTY_FUNCTION__; @@ -201,11 +183,6 @@ void TabbedPanel::stateChanged() emit panelOpened(); } else { m_isOpen = false; - - m_tabButtonGroup->setExclusive(false); - m_tabButtonGroup->button(m_tabButtonGroup->checkedId())->setChecked(false); - m_tabButtonGroup->setExclusive(true); - emit panelClosed(); } }