Port xconfig to Qt5 - Add(back) one click checkbox toggle.
authorBoris Barbulovski <bbarbulovski@gmail.com>
Tue, 22 Sep 2015 18:36:35 +0000 (11:36 -0700)
committerMichal Marek <mmarek@suse.com>
Wed, 14 Oct 2015 12:59:04 +0000 (14:59 +0200)
Signed-off-by: Boris Barbulovski <bbarbulovski@gmail.com>
Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
scripts/kconfig/qconf.cc

index b03cfad..ca22676 100644 (file)
@@ -776,10 +776,26 @@ void ConfigList::mouseReleaseEvent(QMouseEvent* e)
 
        menu = item->menu;
        x = header()->offset() + p.x();
-       idx = header()->sectionPosition(x);
+       idx = header()->logicalIndexAt(x);
        switch (idx) {
        case promptColIdx:
                icon = item->pixmap(promptColIdx);
+               if (!icon.isNull()) {
+                       int off = header()->sectionPosition(0) + visualRect(indexAt(p)).x() + 4; // 4 is Hardcoded image offset. There might be a way to do it properly.
+                       if (x >= off && x < off + icon.availableSizes().first().width()) {
+                               if (item->goParent) {
+                                       emit parentSelected();
+                                       break;
+                               } else if (!menu)
+                                       break;
+                               ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+                               if (ptype == P_MENU && rootEntry != menu &&
+                                   mode != fullMode && mode != menuMode)
+                                       emit menuSelected(menu);
+                               else
+                                       changeValue(item);
+                       }
+               }
                break;
        case noColIdx:
                setValue(item, no);