[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/kexi
From:       Jarosław Staniek <staniek () kde ! org>
Date:       2010-09-13 20:45:22
Message-ID: 20100913204522.77C0CAC888 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1174999 by staniek:

Forms
*Widgets Tree:
**select tab widget instead when clicking tab items
**tab icon added for tab items



 M  +28 -5     formeditor/WidgetTreeWidget.cpp  
 M  +3 -1      formeditor/WidgetTreeWidget.h  
 AM            pics/hi16-action-tabwidget-tab.png  
 AM            pics/hi22-action-tabwidget-tab.png  


--- trunk/koffice/kexi/formeditor/WidgetTreeWidget.cpp #1174998:1174999
@@ -82,7 +82,7 @@
                 m_customSortingKey = QString("tab%1").arg(tabIndex);
                 itemFlags |= Qt::ItemIsSelectable;
                 itemFlags ^= Qt::ItemIsSelectable;
-                //TODO itemIcon = ...
+                itemIcon = "tabwidget-tab";
             }
         }
     }
@@ -345,6 +345,17 @@
     blockSignals(false);
 }
 
+void WidgetTreeWidget::selectWidgetForItem(QTreeWidgetItem *item)
+{
+    WidgetTreeWidgetItem *it = dynamic_cast<WidgetTreeWidgetItem*>(item);
+    if (!it)
+        return;
+    QWidget *w = it->data()->widget();
+    if (w && !m_form->selectedWidgets()->contains(w)) {
+        m_form->selectWidget(w, Form::AddToPreviousSelection | Form::DontRaise | \
Form::LastSelection); +    }
+}
+
 void WidgetTreeWidget::slotSelectionChanged()
 {
     if (!m_form || !m_slotSelectionChanged_enabled)
@@ -353,12 +364,24 @@
     const QList<QTreeWidgetItem*> list( selectedItems() );
     m_form->selectFormWidget();
     foreach(QTreeWidgetItem *item, list) {
-        WidgetTreeWidgetItem *it = static_cast<WidgetTreeWidgetItem*>(item);
-        QWidget *w = it->data()->widget();
-        if (w && !m_form->selectedWidgets()->contains(w)) {
-            m_form->selectWidget(w, Form::AddToPreviousSelection | Form::DontRaise | \
Form::LastSelection); +        selectWidgetForItem(item);
         }
+    // alter selection of the item is nonselectable item clicked and parent item is \
available +    if (   currentItem()
+        && !(currentItem()->flags() & Qt::ItemIsSelectable)
+        && currentItem()->parent()
+        && (currentItem()->parent()->flags() & Qt::ItemIsSelectable)
+       )
+    {
+        m_slotSelectionChanged_enabled = false;
+        foreach (QTreeWidgetItem *selectedItem, selectedItems()) {
+            selectedItem->setSelected(false);
     }
+        selectWidgetForItem(currentItem()->parent());
+        setCurrentItem(currentItem()->parent());
+        currentItem()->setSelected(true);
+        m_slotSelectionChanged_enabled = true;
+    }
     if (hadFocus)
         setFocus(); //restore focus
 }
--- trunk/koffice/kexi/formeditor/WidgetTreeWidget.h #1174998:1174999
@@ -152,9 +152,11 @@
 
     virtual void contextMenuEvent(QContextMenuEvent* e);
 
-private:
     void handleContextMenuEvent(QContextMenuEvent* e);
 
+    void selectWidgetForItem(QTreeWidgetItem *item);
+
+private:
     Form *m_form;
     //2.0 WidgetTreeWidgetItem *m_topItem;
     Options m_options;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic