Merge branch 'master' of https://vcs.maemo.org/git/situare
[situare] / src / ui / panelbase.cpp
index a0ebc33..72cd122 100644 (file)
@@ -3,6 +3,7 @@
     Copyright (C) 2010  Ixonos Plc. Authors:
 
         Pekka Nissinen - pekka.nissinen@ixonos.com
+        Sami Rämö - sami.ramo@ixonos.com
 
     Situare is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License
@@ -20,6 +21,8 @@
 */
 
 #include <QDebug>
+#include <QListWidget>
+#include <QResizeEvent>
 #include <QVBoxLayout>
 
 #include "panelbase.h"
@@ -29,27 +32,63 @@ PanelBase::PanelBase(QWidget *parent)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
+
+    // --- GENERIC BUTTONS ---
+    m_genericButtons = new QWidget;
+    m_genericButtonsLayout = new QVBoxLayout;
+
     const int CONTEXT_BUTTON_MARGIN_LEFT = 2;
     const int CONTEXT_BUTTON_MARGIN_TOP = 10;
     const int CONTEXT_BUTTON_MARGIN_RIGHT = 0;
     const int CONTEXT_BUTTON_MARGIN_BOTTOM = 0;
     const int CONTEXT_BUTTON_SPACING = 0;
-
-    m_contextButtons = new QWidget;
-
-    m_contextButtonLayout = new QVBoxLayout;
-    m_contextButtonLayout->setContentsMargins(CONTEXT_BUTTON_MARGIN_LEFT,
+    m_genericButtonsLayout->setContentsMargins(CONTEXT_BUTTON_MARGIN_LEFT,
                                               CONTEXT_BUTTON_MARGIN_TOP,
                                               CONTEXT_BUTTON_MARGIN_RIGHT,
                                               CONTEXT_BUTTON_MARGIN_BOTTOM);
-    m_contextButtonLayout->setSpacing(CONTEXT_BUTTON_SPACING);
+    m_genericButtonsLayout->setSpacing(CONTEXT_BUTTON_SPACING);
+
+    m_genericButtons->setLayout(m_genericButtonsLayout);
+
+    // --- ITEM RELATED BUTTONS ---
+    m_itemButtons = new QWidget(this);
+    m_itemButtonsLayout = new QHBoxLayout;
+
+    const int ITEM_CONTEXT_BUTTON_MARGIN_BOTTOM = 0;
+    const int ITEM_CONTEXT_BUTTON_MARGIN_LEFT = 2;
+    const int ITEM_CONTEXT_BUTTON_MARGIN_RIGHT = 2;
+    const int ITEM_CONTEXT_BUTTON_MARGIN_TOP = 2;
+    const int ITEM_CONTEXT_BUTTON_SPACING = 0;
+    m_itemButtonsLayout->setContentsMargins(ITEM_CONTEXT_BUTTON_MARGIN_LEFT,
+                                            ITEM_CONTEXT_BUTTON_MARGIN_TOP,
+                                            ITEM_CONTEXT_BUTTON_MARGIN_RIGHT,
+                                            ITEM_CONTEXT_BUTTON_MARGIN_BOTTOM);
+    m_itemButtonsLayout->setSpacing(ITEM_CONTEXT_BUTTON_SPACING);
+
+    m_itemButtons->setLayout(m_itemButtonsLayout);
+}
+
+QWidget* PanelBase::genericPanelButtons() const
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    return m_genericButtons;
+}
+
+QWidget* PanelBase::itemButtons() const
+{
+    qDebug() << __PRETTY_FUNCTION__;
 
-    m_contextButtons->setLayout(m_contextButtonLayout);
+    return m_itemButtons;
 }
 
-QWidget* PanelBase::contextButtons() const
+void PanelBase::onListItemSelectionChanged()
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    return m_contextButtons;
+    QListWidget *listWidget = dynamic_cast<QListWidget *>(sender());
+    if (listWidget && (listWidget->selectedItems().count() > 0))
+        emit listItemSelectionChanged(true);
+    else
+        emit listItemSelectionChanged(false);
 }