Hello community,

here is the log from the commit of package yast2-qt for openSUSE:Factory
checked in at Thu May 19 09:36:10 CEST 2011.



--------
--- yast2-qt/yast2-qt.changes   2011-04-28 14:55:17.000000000 +0200
+++ /mounts/work_src_done/STABLE/yast2-qt/yast2-qt.changes      2011-05-18 
17:05:50.000000000 +0200
@@ -1,0 +2,6 @@
+Wed May 18 17:04:43 CEST 2011 - [email protected]
+
+- Fixed selection in tree widgets (bnc #680107)
+- V 2.21.4
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  yast2-qt-2.21.3.tar.bz2

New:
----
  yast2-qt-2.21.4.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-qt.spec ++++++
--- /var/tmp/diff_new_pack.kWfQEV/_old  2011-05-19 09:35:44.000000000 +0200
+++ /var/tmp/diff_new_pack.kWfQEV/_new  2011-05-19 09:35:44.000000000 +0200
@@ -18,13 +18,13 @@
 
 
 Name:           yast2-qt
-Version:        2.21.3
+Version:        2.21.4
 Release:        1
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-Source0:        yast2-qt-2.21.3.tar.bz2
+Source0:        yast2-qt-2.21.4.tar.bz2
 Group:          System/YaST
-License:        GPLv2+
+License:        GPL v2 or later
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  doxygen
 BuildRequires:  libdrm-devel
@@ -60,7 +60,7 @@
 X Window System.
 
 %package devel
-License:        GPLv2+
+
 Summary:        Development package for graphical YaST2 user interfaces
 Group:          Development/Libraries/YaST
 Requires:       yast2-qt = %{version}

++++++ yast2-qt-2.21.3.tar.bz2 -> yast2-qt-2.21.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-qt-2.21.3/VERSION.cmake 
new/yast2-qt-2.21.4/VERSION.cmake
--- old/yast2-qt-2.21.3/VERSION.cmake   2011-04-28 14:55:03.000000000 +0200
+++ new/yast2-qt-2.21.4/VERSION.cmake   2011-05-18 17:05:33.000000000 +0200
@@ -1,3 +1,3 @@
 SET(VERSION_MAJOR "2")
 SET(VERSION_MINOR "21")
-SET(VERSION_PATCH "3")
+SET(VERSION_PATCH "4")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-qt-2.21.3/package/yast2-qt.changes 
new/yast2-qt-2.21.4/package/yast2-qt.changes
--- old/yast2-qt-2.21.3/package/yast2-qt.changes        2011-04-28 
14:55:03.000000000 +0200
+++ new/yast2-qt-2.21.4/package/yast2-qt.changes        2011-05-18 
17:05:33.000000000 +0200
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Wed May 18 17:04:43 CEST 2011 - [email protected]
+
+- Fixed selection in tree widgets (bnc #680107)
+- V 2.21.4
+
+-------------------------------------------------------------------
 Thu Apr 28 14:54:04 CEST 2011 - [email protected]
 
 - Enable shadow for wizard title
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-qt-2.21.3/src/YQTree.cc 
new/yast2-qt-2.21.4/src/YQTree.cc
--- old/yast2-qt-2.21.3/src/YQTree.cc   2011-04-28 14:55:03.000000000 +0200
+++ new/yast2-qt-2.21.4/src/YQTree.cc   2011-05-18 17:05:33.000000000 +0200
@@ -355,6 +355,14 @@
 
 void YQTree::slotSelectionChanged( )
 {
+    QList<QTreeWidgetItem *> items = _qt_treeWidget->selectedItems ();
+
+    if ( ! hasMultiSelection() && ! items.empty() )
+    {
+        QTreeWidgetItem *qItem = items.first();
+        selectItem( dynamic_cast<YQTreeItem *> (qItem) );
+    }
+
 
     if ( notify() && ! YQUI::ui()->eventPendingFor( this ) )
        YQUI::ui()->sendEvent( new YWidgetEvent( this, YEvent::SelectionChanged 
) );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-qt-2.21.3/src/YQTree.cc_backup 
new/yast2-qt-2.21.4/src/YQTree.cc_backup
--- old/yast2-qt-2.21.3/src/YQTree.cc_backup    1970-01-01 01:00:00.000000000 
+0100
+++ new/yast2-qt-2.21.4/src/YQTree.cc_backup    2011-05-18 17:05:33.000000000 
+0200
@@ -0,0 +1,520 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+/*---------------------------------------------------------------------\
+|                                                                     |
+|                     __   __    ____ _____ ____                      |
+|                     \ \ / /_ _/ ___|_   _|___ \                     |
+|                      \ V / _` \___ \ | |   __) |                    |
+|                       | | (_| |___) || |  / __/                     |
+|                       |_|\__,_|____/ |_| |_____|                    |
+|                                                                     |
+|                              core system                            |
+|                                                       (C) SuSE GmbH |
+\----------------------------------------------------------------------/
+
+  File:              YQTree.cc
+
+  Author:     Stefan Hundhammer <[email protected]>
+
+/-*/
+
+#include <QColorGroup>
+#include <QHeaderView>
+#include <QLabel>
+#include <QTreeWidget>
+#include <QVBoxLayout>
+#include <QString>
+#include <QPixmap>
+#define YUILogComponent "qt-ui"
+#include "YUILog.h"
+
+using std::min;
+using std::max;
+
+#include "YQUI.h"
+#include "YEvent.h"
+#include "utf8.h"
+#include "YQTree.h"
+#include "YTreeItem.h"
+#include "YQSignalBlocker.h"
+#include "YQWidgetCaption.h"
+#include "YQApplication.h"
+
+
+#define VERBOSE_TREE_ITEMS     0
+
+
+YQTree::YQTree( YWidget * parent, const string & label, bool 
multiSelectionMode, bool recursiveSelection )
+    : QFrame( (QWidget *) parent->widgetRep() )
+    , YTree( parent, label, multiSelectionMode, recursiveSelection )
+{
+    QVBoxLayout* layout = new QVBoxLayout( this );
+    setLayout( layout );
+
+    setWidgetRep( this );
+
+    layout->setSpacing( YQWidgetSpacing );
+    layout->setMargin ( YQWidgetMargin );
+
+    _nextSerialNo = 0;
+
+    _caption    = new YQWidgetCaption( this, label );
+    YUI_CHECK_NEW( _caption );
+    layout->addWidget( _caption );
+
+    _qt_treeWidget = new QTreeWidget( this );
+    YUI_CHECK_NEW( _qt_treeWidget );
+    layout->addWidget( _qt_treeWidget );
+
+     // _qt_treeWidget->setHeaderLabel("");
+     // _qt_treeWidget->addColumn( "" );
+     _qt_treeWidget->header()->hide();
+     // _qt_treeWidget->setHeader(0L);
+     _qt_treeWidget->setRootIsDecorated ( true );
+
+       _qt_treeWidget->setContextMenuPolicy( Qt::CustomContextMenu );
+
+    _caption->setBuddy ( _qt_treeWidget );
+
+    connect( _qt_treeWidget,   SIGNAL( itemSelectionChanged () ),
+            this,              SLOT  ( slotSelectionChanged () ) );
+
+    connect( _qt_treeWidget,   SIGNAL( itemDoubleClicked( QTreeWidgetItem *, 
int ) ),
+            this,              SLOT  ( slotActivated    ( QTreeWidgetItem *    
  ) ) );
+
+    connect( _qt_treeWidget,   SIGNAL( itemExpanded     ( QTreeWidgetItem * ) 
),
+            this,              SLOT  ( slotItemExpanded ( QTreeWidgetItem * ) 
) );
+
+    connect( _qt_treeWidget,   SIGNAL( itemCollapsed    ( QTreeWidgetItem * ) 
),
+            this,              SLOT  ( slotItemCollapsed( QTreeWidgetItem * ) 
) );
+
+    connect( _qt_treeWidget,   SIGNAL( customContextMenuRequested ( const 
QPoint & ) ),
+            this,              SLOT  ( slotContextMenu ( const QPoint & ) ) );
+
+}
+
+
+YQTree::~YQTree()
+{
+    // NOP
+}
+
+
+void YQTree::setLabel( const string & label )
+{
+    _caption->setText( label );
+    YTree::setLabel( label );
+}
+
+
+void YQTree::rebuildTree()
+{
+    YQSignalBlocker sigBlocker( _qt_treeWidget );
+    _qt_treeWidget->clear();
+
+    buildDisplayTree( 0, itemsBegin(), itemsEnd() );
+    _qt_treeWidget->resizeColumnToContents( 0 );
+}
+
+
+void YQTree::buildDisplayTree( YQTreeItem * parentItem, YItemIterator begin, 
YItemIterator end )
+{
+    for ( YItemIterator it = begin; it < end; ++it )
+    {
+       YTreeItem * orig = dynamic_cast<YTreeItem *> (*it);
+       YUI_CHECK_PTR( orig );
+
+       YQTreeItem * clone;
+
+       if ( parentItem )
+           clone = new YQTreeItem( this, parentItem, orig, _nextSerialNo++ );
+       else
+           clone = new YQTreeItem( this, _qt_treeWidget, orig, _nextSerialNo++ 
);
+
+       YUI_CHECK_NEW( clone );
+
+       if ( orig->hasChildren() )
+           buildDisplayTree( clone, orig->childrenBegin(), orig->childrenEnd() 
);
+    }
+}
+
+
+void YQTree::selectItem( YItem * yItem, bool selected )
+{
+    YQSignalBlocker sigBlocker( _qt_treeWidget );
+
+    // yuiDebug() << "Selecting item \"" << yItem->label() << "\" " << 
boolalpha << selected << endl;
+    YTreeItem * treeItem = dynamic_cast<YTreeItem *> (yItem);
+    YUI_CHECK_PTR( treeItem );
+
+    YQTreeItem * yqTreeItem = (YQTreeItem *) treeItem->data();
+    YUI_CHECK_PTR( yqTreeItem );
+
+
+    if ( selected )
+    {
+       selectItem( yqTreeItem );
+    }
+    else if ( yqTreeItem == _qt_treeWidget->currentItem() )
+    {
+       deselectAllItems();
+    }
+}
+
+
+void YQTree::selectItem( YQTreeItem * item )
+{
+    if ( item )
+    {
+       YQSignalBlocker sigBlocker( _qt_treeWidget );
+
+       _qt_treeWidget->setCurrentItem( item );
+       item->setSelected( true );
+
+        if ( hasMultiSelection() )
+           item->setCheckState( 0, Qt::Checked );
+
+       if ( item->parent() )
+           openBranch( (YQTreeItem *) item->parent() );
+
+       YTree::selectItem( item->origItem(), true );
+
+       // yuiDebug() << "selected item: \"" << item->origItem()->label() << 
"\"" << endl;
+
+    }
+}
+
+
+void YQTree::openBranch( YQTreeItem * item )
+{
+    while ( item )
+    {
+       item->setOpen( true ); // Takes care of origItem()->setOpen()
+       item = (YQTreeItem *) item->parent();
+    }
+}
+
+void YQTree::slotItemExpanded( QTreeWidgetItem * qItem )
+{
+    YQTreeItem * item = dynamic_cast<YQTreeItem *> (qItem);
+
+    if ( item )
+       item->setOpen( true );
+
+    _qt_treeWidget->resizeColumnToContents( 0 );
+}
+
+
+void YQTree::slotItemCollapsed( QTreeWidgetItem * qItem )
+{
+    YQTreeItem * item = dynamic_cast<YQTreeItem *> (qItem);
+
+    if ( item )
+       item->setOpen( false );
+
+    _qt_treeWidget->resizeColumnToContents( 0 );
+}
+
+
+void YQTree::slotItemChanged( QTreeWidgetItem * item )
+{
+
+    YQSignalBlocker sigBlocker( _qt_treeWidget );
+
+    if ( hasMultiSelection() )
+    {
+        if ( recursiveSelection() )
+            YQUI::ui()->busyCursor();
+
+        if ( item->checkState(0) == Qt::Checked )
+            YQTree::selectItem( item, true, recursiveSelection() );
+        else
+            YQTree::selectItem( item, false, recursiveSelection() );
+
+
+        if ( recursiveSelection() )
+            YQUI::ui()->normalCursor();
+
+    }
+    else
+    {
+        QList<QTreeWidgetItem *> items = _qt_treeWidget->selectedItems ();
+
+        if ( ! items.empty() )
+        {
+            QTreeWidgetItem *qItem = items.first();
+            selectItem( dynamic_cast<YQTreeItem *> (qItem) );
+        }
+    }
+
+
+
+    if ( notify() && ! YQUI::ui()->eventPendingFor( this ) )
+        YQUI::ui()->sendEvent( new YWidgetEvent( this, YEvent::ValueChanged ) 
);
+
+
+}
+
+
+void YQTree::slotItemClicked( QTreeWidgetItem * item, int column )
+{
+    _qt_treeWidget->setCurrentItem( item );
+
+    if ( notify() && ! YQUI::ui()->eventPendingFor( this ) )
+        YQUI::ui()->sendEvent( new YWidgetEvent( this, 
YEvent::SelectionChanged ) );
+}
+
+
+void YQTree::deselectAllItems()
+{
+    YQSignalBlocker sigBlocker( _qt_treeWidget );
+
+    YTree::deselectAllItems();
+    _qt_treeWidget->clearSelection();
+}
+
+
+void YQTree::deleteAllItems()
+{
+    YQSignalBlocker sigBlocker( _qt_treeWidget );
+
+    _qt_treeWidget->clear();
+    YTree::deleteAllItems();
+}
+
+
+
+void YQTree::selectItem(QTreeWidgetItem * item, bool selected, bool recursive)
+{
+
+    YQTreeItem * treeItem = dynamic_cast<YQTreeItem *> (item);
+
+    if ( ! treeItem )
+        return;
+
+    YSelectionWidget::selectItem( treeItem->origItem(), selected );
+
+    if ( recursive )
+    {
+        for (int i=0; i < item->childCount(); ++i)
+        {
+            QTreeWidgetItem* child = item->child(i);
+            child->setCheckState(0, ( selected )? Qt::Checked : Qt::Unchecked 
);
+            YQTree::selectItem( child, selected, recursive );
+        }
+    }
+
+}
+
+
+void YQTree::slotSelectionChanged( )
+{
+    QList<QTreeWidgetItem *> items = _qt_treeWidget->selectedItems ();
+
+    if ( ! items.empty() )
+    {
+       QTreeWidgetItem *qItem = items.first();
+       selectItem( dynamic_cast<YQTreeItem *> (qItem) );
+    }
+
+    if ( notify() && ! YQUI::ui()->eventPendingFor( this ) )
+       YQUI::ui()->sendEvent( new YWidgetEvent( this, YEvent::SelectionChanged 
) );
+}
+
+
+void YQTree::slotActivated( QTreeWidgetItem * qItem )
+{
+    selectItem( dynamic_cast<YQTreeItem *> (qItem) );
+
+    if ( notify() )
+       YQUI::ui()->sendEvent( new YWidgetEvent( this, YEvent::Activated ) );
+}
+
+
+int YQTree::preferredWidth()
+{
+    int hintWidth = !_caption->isHidden() ? _caption->sizeHint().width() : 0;
+    return max( 80, hintWidth );
+}
+
+
+int YQTree::preferredHeight()
+{
+    int hintHeight = !_caption->isHidden() ? _caption->sizeHint().height() : 0;
+
+    // 80 is an arbitrary value.  Use a MinSize or MinHeight widget to set a
+    // size that is useful for the application.
+
+    return 80 + hintHeight;
+}
+
+
+void YQTree::setSize( int newWidth, int newHeight )
+{
+    resize( newWidth, newHeight );
+}
+
+
+void YQTree::setEnabled( bool enabled )
+{
+    _caption->setEnabled( enabled );
+    _qt_treeWidget->setEnabled( enabled );
+    YWidget::setEnabled( enabled );
+}
+
+
+bool YQTree::setKeyboardFocus()
+{
+    _qt_treeWidget->setFocus();
+
+    return true;
+}
+
+
+void YQTree::slotContextMenu ( const QPoint & pos )
+{
+    if  ( ! _qt_treeWidget ||  ! _qt_treeWidget->viewport() )
+       return;
+
+    YQUI::yqApp()->setContextMenuPos( _qt_treeWidget->viewport()->mapToGlobal( 
pos ) );
+    if ( notifyContextMenu() )
+       YQUI::ui()->sendEvent( new YWidgetEvent( this, 
YEvent::ContextMenuActivated ) );
+}
+
+
+YTreeItem *
+YQTree::currentItem()
+{
+
+    QTreeWidgetItem * currentQItem = _qt_treeWidget->currentItem();
+
+    if ( currentQItem )
+    {
+        YQTreeItem * item = dynamic_cast<YQTreeItem *> (currentQItem);
+
+        if ( item )
+            return item->origItem();
+    }
+
+    return 0;
+}
+
+
+
+/*============================================================================*/
+
+
+
+YQTreeItem::YQTreeItem( YQTree *       tree,
+                       QTreeWidget *   listView,
+                       YTreeItem *     orig,
+                       int             serial )
+    : QTreeWidgetItem( listView )
+{
+    init( tree, orig, serial );
+
+#if VERBOSE_TREE_ITEMS
+    yuiDebug() << "Creating toplevel tree item \"" << orig->label() << "\"" << 
endl;
+#endif
+
+}
+
+
+YQTreeItem::YQTreeItem( YQTree *       tree,
+                       YQTreeItem *    parentItem,
+                       YTreeItem *     orig,
+                       int             serial )
+    : QTreeWidgetItem( parentItem )
+{
+    init( tree, orig, serial );
+#if VERBOSE_TREE_ITEMS
+    yuiDebug() << "Creating tree item \"" << orig->label()
+              << "\" as child of \"" << parentItem->origItem()->label() << "\""
+              << endl;
+
+#endif
+
+
+
+}
+
+
+void YQTreeItem::init( YQTree *                tree,
+                      YTreeItem *      orig,
+                      int              serial )
+{
+    YUI_CHECK_PTR( tree );
+    YUI_CHECK_PTR( orig );
+
+    _tree      = tree;
+    _serialNo  = serial;
+    _origItem  = orig;
+
+    _origItem->setData( this );
+
+    setText( 0, fromUTF8 ( _origItem->label() ) );
+    setOpen( _origItem->isOpen() );
+
+    if ( _origItem->hasIconName() )
+    {
+       string iconName = _tree->iconFullPath( _origItem );
+       QPixmap icon( iconName.c_str() );
+
+       if ( icon.isNull() )
+           yuiWarning() << "Can't load icon " << iconName << endl;
+       else
+           setData( 0, Qt::DecorationRole, icon );
+    }
+
+    if ( tree->hasMultiSelection() )
+        setCheckState(0,Qt::Unchecked);
+}
+
+
+void
+YQTreeItem::setOpen( bool open )
+{
+    QTreeWidgetItem::setExpanded( open );
+    _origItem->setOpen( open );
+}
+
+
+
+QString
+YQTreeItem::key( int column, bool ascending ) const
+{
+    /*
+     * Sorting key for QListView internal sorting:
+     *
+     * Always sort tree items by insertion order. The tree widget cannot
+     * maintain a meaningful sorting order of its own: All it could do is sort
+     * by names (ASCII sort). Better let the application handle this.
+     */
+
+    QString strKey;
+    strKey.sprintf( "%08d", _serialNo );
+
+    return strKey;
+}
+
+
+#include "YQTree.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-qt-2.21.3/src/YQWizard.cc 
new/yast2-qt-2.21.4/src/YQWizard.cc
--- old/yast2-qt-2.21.3/src/YQWizard.cc 2011-04-28 14:55:03.000000000 +0200
+++ new/yast2-qt-2.21.4/src/YQWizard.cc 2011-05-18 17:05:33.000000000 +0200
@@ -96,8 +96,6 @@
 
 #define USE_ICON_ON_HELP_BUTTON                0
 
-#define SHADOW_WORKAROUND              1
-
 YQWizard *YQWizard::main_wizard = 0;
 
 YQWizard::YQWizard( YWidget *          parent,
@@ -758,18 +756,6 @@
     _dialogHeading->setObjectName( "DialogHeading" );
 
 
-
-#ifdef SHADOW_WORKAROUND
-    // Workaround for text shadow until qt bug is fixed
-    // see: http://bugreports.qt.nokia.com/browse/QTBUG-5087
-    QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(this);
-    effect->setBlurRadius(1);
-    effect->setColor(QColor("#DDDDDD"));
-    effect->setOffset(1,1);
-    _dialogHeading->setGraphicsEffect(effect);
-#endif
-
-
     //
     // Client area (the part that belongs to the YCP application)
     //
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-qt-2.21.3/src/diff new/yast2-qt-2.21.4/src/diff
--- old/yast2-qt-2.21.3/src/diff        1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-qt-2.21.4/src/diff        2011-05-18 17:05:33.000000000 +0200
@@ -0,0 +1,153 @@
+66c66
+< YQTree::YQTree( YWidget * parent, const string & label, bool 
multiSelectionMode, bool recursiveSelection )
+---
+> YQTree::YQTree( YWidget * parent, const string & label, bool 
multiSelectionMode, bool recursiveSelectionMode  )
+68c68
+<     , YTree( parent, label, multiSelectionMode, recursiveSelection )
+---
+>     , YTree( parent, label, multiSelectionMode, recursiveSelectionMode )
+100a101,109
+>     connect( _qt_treeWidget, SIGNAL( itemClicked ( QTreeWidgetItem *, int ) 
),
+>           this,              SLOT  ( slotItemClicked ( QTreeWidgetItem *, 
int ) ) );
+> 
+> //    connect( _qt_treeWidget,       SIGNAL( itemChanged ( QTreeWidgetItem 
*, int ) ),
+> //        this,              SLOT  ( slotItemChanged () ) );
+> 
+>     connect( _qt_treeWidget, SIGNAL( itemChanged ( QTreeWidgetItem *, int ) 
),
+>           this,              SLOT  ( slotItemChanged (QTreeWidgetItem *) ) );
+> 
+171a181
+> 
+191a202,204
+>         if ( hasMultiSelection() )
+>            item->setCheckState( 0, Qt::Checked );
+> 
+197a211
+> 
+238a253,269
+> 
+>     if ( hasMultiSelection() )
+>     {
+>         QTreeWidgetItemIterator it( _qt_treeWidget);
+>         while (*it)
+>         {
+>             YQTreeItem * treeItem = dynamic_cast<YQTreeItem *> (*it);
+> 
+>             if ( treeItem )
+>             {
+>                   treeItem->setCheckState( 0, Qt::Unchecked );
+>                   treeItem->origItem()->setSelected( false );
+>            }
+>            ++it;
+>         }
+>     }
+> 
+251c282,305
+< void YQTree::slotSelectionChanged( )
+---
+> void YQTree::selectItem(QTreeWidgetItem * item, bool selected, bool 
recursive)
+> {
+> 
+>     YQTreeItem * treeItem = dynamic_cast<YQTreeItem *> (item);
+> 
+>     if ( ! treeItem )
+>      return;
+> 
+>     YSelectionWidget::selectItem( treeItem->origItem(), selected );
+> 
+>     if ( recursive )
+>     {
+>      for (int i=0; i < item->childCount(); ++i)
+>      {
+>          QTreeWidgetItem* child = item->child(i);
+>          child->setCheckState(0, ( selected )? Qt::Checked : Qt::Unchecked );
+>          YQTree::selectItem( child, selected, recursive );
+>      }
+>     }
+> 
+> }
+> 
+> 
+> void YQTree::slotItemChanged( QTreeWidgetItem * item )
+253d306
+<     QList<QTreeWidgetItem *> items = _qt_treeWidget->selectedItems ();
+255c308,310
+<     if ( ! items.empty() )
+---
+>     YQSignalBlocker sigBlocker( _qt_treeWidget );
+> 
+>     if ( hasMultiSelection() )
+257,258c312,333
+<      QTreeWidgetItem *qItem = items.first();
+<      selectItem( dynamic_cast<YQTreeItem *> (qItem) );
+---
+>      if ( recursiveSelection() )
+>          YQUI::ui()->busyCursor();
+> 
+>      if ( item->checkState(0) == Qt::Checked )
+>          YQTree::selectItem( item, true, recursiveSelection() );
+>         else
+>          YQTree::selectItem( item, false, recursiveSelection() );
+> 
+> 
+>      if ( recursiveSelection() )
+>          YQUI::ui()->normalCursor();
+> 
+>     }
+>     else
+>     { 
+>         QList<QTreeWidgetItem *> items = _qt_treeWidget->selectedItems ();
+> 
+>         if ( ! items.empty() )
+>         {
+>          QTreeWidgetItem *qItem = items.first();
+>          selectItem( dynamic_cast<YQTreeItem *> (qItem) );
+>         }
+261,271c336,358
+< //<<<<<<< .mine
+< //        if ( ! items.empty() )
+< //        {
+< //               QTreeWidgetItem *qItem = items.first();
+< //       selectItem( dynamic_cast<YQTreeItem *> (qItem) );
+< //        }
+< //    }
+< //
+< //
+< //=======
+< ////>>>>>>> .r62870
+---
+> 
+> 
+>     if ( notify() && ! YQUI::ui()->eventPendingFor( this ) )
+>      YQUI::ui()->sendEvent( new YWidgetEvent( this, YEvent::ValueChanged ) );
+> 
+> 
+> }
+> 
+> 
+> void YQTree::slotItemClicked( QTreeWidgetItem * item, int column )
+> {
+>     _qt_treeWidget->setCurrentItem( item );
+> 
+>     if ( notify() && ! YQUI::ui()->eventPendingFor( this ) )
+>      YQUI::ui()->sendEvent( new YWidgetEvent( this, YEvent::SelectionChanged 
) );
+> }
+> 
+> 
+> 
+> 
+> void YQTree::slotSelectionChanged( )
+> {
+> 
+335a423
+> 
+369a458
+> 
+385a475,477
+> 
+> 
+> 
+414a507,509
+> 
+>     if ( tree->hasMultiSelection() )
+>         setCheckState(0,Qt::Unchecked);


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to