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

List:       kde-commits
Subject:    koffice/kexi/formeditor
From:       Jarosław Staniek <staniek () kde ! org>
Date:       2010-09-09 21:15:39
Message-ID: 20100909211539.B3B83AC884 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1173621 by staniek:

Forms
*Widgets Tree: do not clear selection when switching between forms



 M  +5 -2      WidgetTreeWidget.cpp  
 M  +3 -0      WidgetTreeWidget.h  


--- trunk/koffice/kexi/formeditor/WidgetTreeWidget.cpp #1173620:1173621
@@ -169,6 +169,7 @@
         : QTreeWidget(parent)
         , m_form(0)
         , m_options(options)
+        , m_slotSelectionChanged_enabled(true)
 {
     setRootIsDecorated(false);
     setHeaderLabels(QStringList() << i18n("Widget name") << i18nc("Widget's type", "Type"));
@@ -284,10 +285,10 @@
 
 void WidgetTreeWidget::slotSelectionChanged()
 {
-    if (!m_form)
+    if (!m_form || !m_slotSelectionChanged_enabled)
         return;
     const bool hadFocus = hasFocus();
-    QList<QTreeWidgetItem*> list = selectedItems();
+    const QList<QTreeWidgetItem*> list( selectedItems() );
     m_form->selectFormWidget();
     foreach(QTreeWidgetItem *item, list) {
         WidgetTreeWidgetItem *it = static_cast<WidgetTreeWidgetItem*>(item);
@@ -333,6 +334,7 @@
 
 void WidgetTreeWidget::setForm(Form *form)
 {
+    m_slotSelectionChanged_enabled = false;
     if (m_form)
         disconnect(m_form, SIGNAL(destroying()), this, SLOT(slotBeforeFormDestroyed()));
     m_form = form;
@@ -358,6 +360,7 @@
         selectWidget(form->selectedWidgets()->first());
     else
         selectWidget(form->widget());
+    m_slotSelectionChanged_enabled = true;
 }
 
 void WidgetTreeWidget::slotBeforeFormDestroyed()
--- trunk/koffice/kexi/formeditor/WidgetTreeWidget.h #1173620:1173621
@@ -148,6 +148,9 @@
     //2.0 WidgetTreeWidgetItem *m_topItem;
     Options m_options;
 
+    //! Used to temporarily disable slotSelectionChanged() when reloading contents in setForm().
+    bool m_slotSelectionChanged_enabled;
+
     friend class TabStopDialog;
 };
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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