Merge branch 'new_panels' of https://vcs.maemo.org/git/situare into new_panels
[situare] / src / ui / tabbedpanel.cpp
index f534a86..424496a 100644 (file)
@@ -38,9 +38,8 @@ TabbedPanel::TabbedPanel(QWidget *parent)
 {
     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);
@@ -48,7 +47,7 @@ TabbedPanel::TabbedPanel(QWidget *parent)
     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()));
@@ -98,17 +97,23 @@ int TabbedPanel::addTab(QWidget *widget, const QIcon& icon)
 {
     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);
@@ -126,59 +131,50 @@ void TabbedPanel::removeTab(int index)
     }
 }
 
-///< @todo sort alphabetically (other methods too)
-void TabbedPanel::closePanel()
+void TabbedPanel::resizePanel(const QSize &size)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    if(m_isOpen)
-        emit toggleState();
-}
+    resize(PANEL_BAR_TABBED_WIDTH + PANEL_WIDTH,
+           size.height() - PANEL_TOP_PADDING - PANEL_BOTTOM_PADDING);
 
-void TabbedPanel::openPanel()
-{
-    qDebug() << __PRETTY_FUNCTION__;
+    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);
+
+    m_panelBar->resizeBar(size);
+
+    m_panelContent->resizePanelContent(size);
+
+    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()