Bug 91537

Summary: usability: don't open tag's virtual folder if only 'collapse' arrow is clicked in tag tree
Product: [Applications] digikam Reporter: Michał Kosmulski <michal>
Component: Tags-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: wishlist CC: caulier.gilles
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Slackware   
OS: Linux   
Latest Commit: Version Fixed In: 7.6.0

Description Michał Kosmulski 2004-10-17 20:35:06 UTC
Version:           0.7 beta 1 (using KDE KDE 3.3.0)
Installed from:    Slackware Packages
Compiler:          gcc 3.3.4 
OS:                Linux

It is a bit unconvenient that it is impossible to just collapse a part of the tag's tree structure with the mouse without leaving the current album and entering the virtual album consisting of images marked with the tag that was clicked. A much more useful solution would be to open that virtual album if the name or the icon of the tag is clicked, but to only collapse (or expand, depending on current state) the part of the tree containing the tag's children if the small arrow / triangle left of the tag's icon is clicked. This way it would be possible to expand and collapse parts of the tag tree using the mouse without leaving the current album - it would make tagging images via drag and drop much easier.
Comment 1 Renchi Raju 2004-10-18 05:47:10 UTC
CVS commit by pahlibar: 


expanding/collapsing a tree item should not select the item
CCMAIL: 91537-done@bugs.kde.org


  M +11 -14    listview.cpp   1.11


--- kdeextragear-3/digikam/digikam/listview.cpp  #1.10:1.11
@@ -356,18 +356,4 @@ void ListView::contentsMousePressEvent(Q
         return;
 
-    setSelected(item);
-
-    if (e->button() == Qt::RightButton) {
-        emit signalRightButtonPressed(item);
-        return;
-    }
-}
-
-void ListView::contentsMouseReleaseEvent(QMouseEvent *e)
-{
-    ListItem* item = itemAt(e->pos());
-    if (!item)
-        return;
-
     if (item->isExpandable()) {
         QRect r(d->arrowBoxPos + item->m_offset,
@@ -379,4 +365,15 @@ void ListView::contentsMouseReleaseEvent
         }
     }
+    
+    setSelected(item);
+
+    if (e->button() == Qt::RightButton) {
+        emit signalRightButtonPressed(item);
+        return;
+    }
+}
+
+void ListView::contentsMouseReleaseEvent(QMouseEvent *)
+{
 }