Bug 19618 - Виджет списка дополнительных групп при установке
Summary: Виджет списка дополнительных групп при установке
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: alterator-browser-qt (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords: usability
Depends on:
Blocks: 23155
  Show dependency tree
 
Reported: 2009-04-14 12:33 MSD by Andrey Cherepanov
Modified: 2010-10-26 15:26 MSD (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Cherepanov 2009-04-14 12:33:37 MSD
+++ Данная ошибка создана размножением ошибки 19611 +++

Для выбора групп пакетов требуется виджет выбора групп (checkbox'ы, со значками, названием и описанием).

[x] значок название (полужирным)
           описание
Comment 1 Sergey V Turchin 2009-04-15 17:34:53 MSD
Есть идеи, для чего он может еще быть использован?
Comment 2 Sergey V Turchin 2009-04-15 20:17:45 MSD
Есть идея доработать текущий:
Картинки можно справа помещать, а крыжики остануться слева.
Так же можно добавить event, который будет отправляться при нахождении курсора мыши над строкой. По нему в отдельном label можно будет показывать соотв. description. Это сэкономит место по высоте.
Comment 3 Andrey Cherepanov 2009-04-16 10:39:56 MSD
(В ответ на комментарий №2)
> Есть идея доработать текущий:
> Картинки можно справа помещать, а крыжики остануться слева.
> Так же можно добавить event, который будет отправляться при нахождении курсора
> мыши над строкой. По нему в отдельном label можно будет показывать соотв.
> description. Это сэкономит место по высоте.
Не годится. Нынешний список очень сложно использовать.
Comment 4 Andrey Cherepanov 2009-04-16 11:03:35 MSD
Есть также предложение сделать выделение в виде дерева, а описание и (опционально) значок - в виде отдельного блока.

То есть примерно так:
Виджет списка:

> [x] Работа с мультимедиа
   L [x] Редактирование звука
   L [x] Редактирование звука
   L [x] Редактирование звука

При нажатии на галочку (>) ветка сворачивается или разворачивается. По умолчанию все ветки свёрнуты. При нажатии на текст пункта показывается его описание (пока без значка можно) в виджете 2 (обычный Label с переносом), расположенный под списком.
Comment 5 Sergey V Turchin 2009-04-16 13:31:00 MSD
(В ответ на комментарий №3)
> Нынешний список очень сложно использовать.
Кому? Пользователю? Чем? Почему "очень"?
Comment 6 Sergey V Turchin 2009-04-16 13:37:04 MSD
(В ответ на комментарий №3)
> Нынешний список очень сложно использовать.
Я подозреваю, что новый будет действительно "очень сложно использовать" Стасу, т.к. тот же ахалай-махалай, который он сделал с tree повторить(еще и с наворотами) не смогу, а сделаю по-своему.
Comment 7 Andrey Cherepanov 2009-04-17 11:04:38 MSD
(В ответ на комментарий №5)
> (В ответ на комментарий №3)
> > Нынешний список очень сложно использовать.
> Кому? Пользователю?
Да. И не одному.

> Чем? Почему "очень"?
Потому что
а) слишком много пунктов, а в большом списке легко пропустить нужное
б) нет описаний
в) нет структурированности (как следствие — см. п. а)
г) выделение всей строки сбивает пользателя с толку, он привык что выделение показывает текущий фокус.
Comment 8 Sergey V Turchin 2009-04-17 13:28:33 MSD
(В ответ на комментарий №7)
> а) слишком много пунктов, а в большом списке легко пропустить нужное
С деревом меньше пунктов не станет

> б) нет описаний
с описаниями их будет "еще больше", поэтому предлагаю по накрытию мышкой показывать описание в одном отдельном месте (это далеко не моя идея, см. настройки virtualbox).

> в) нет структурированности (как следствие — см. п. а)
Насчем неразвернутости дерева по умолчанию сомневаюсь, т.к. "легко пропустить нужное".
А-а-а, там получиться плюс в том, что всю ветку отметить можно будет.

> г) выделение всей строки сбивает пользателя с толку, он привык что выделение
> показывает текущий фокус.
Там еще галки есть. Выделение, согласен, лишенее, но сбивать не должно, т.к. везде такое используется. В HTML списках с множественным выбором, например.

В общем, что-нибудь сварганю, но мне кажется, что это не быстро.
Comment 9 Andrey Cherepanov 2009-04-17 20:53:39 MSD
(В ответ на комментарий №8)
> (В ответ на комментарий №7)
> > а) слишком много пунктов, а в большом списке легко пропустить нужное
> С деревом меньше пунктов не станет
Будет меньше пунктов на верхнем уровне.
 
> > б) нет описаний
> с описаниями их будет "еще больше", поэтому предлагаю по накрытию мышкой
> показывать описание в одном отдельном месте (это далеко не моя идея, см.
> настройки virtualbox).
Читай мой комментарий #4 - я как раз это и предлагал.

> > в) нет структурированности (как следствие — см. п. а)
> Насчем неразвернутости дерева по умолчанию сомневаюсь, т.к. "легко пропустить
> нужное".
> А-а-а, там получиться плюс в том, что всю ветку отметить можно будет.
Угу. Зато не будет путаницы. Пользователь же идёт от общих задач.

> > г) выделение всей строки сбивает пользателя с толку, он привык что выделение
> > показывает текущий фокус.
> Там еще галки есть. Выделение, согласен, лишенее, но сбивать не должно, т.к.
> везде такое используется. В HTML списках с множественным выбором, например.
Неее, это только твоё творчество.

> В общем, что-нибудь сварганю, но мне кажется, что это не быстро.
Я не тороплю ;)
Comment 10 Sergey V Turchin 2009-04-21 12:35:16 MSD
(В ответ на комментарий №9)
> > везде такое используется. В HTML списках с множественным выбором, например.
> Неее, это только твоё творчество.
Мое творчество -- галочки. А выделение везде есть.
Comment 11 Andrey Cherepanov 2009-04-21 12:41:00 MSD
(В ответ на комментарий №10)
> Мое творчество -- галочки. А выделение везде есть.
Нет, выделение по включение галочки только у тебя есть. Что не есть правильно.
Comment 12 Sergey V Turchin 2009-04-21 13:10:35 MSD
(В ответ на комментарий №11)
> Нет, выделение по включение галочки только у тебя есть.
Еще раз повторяю. У меня включение галочки по выделению. Галочки туда я запихал. Остальное стандартное, как в HTML, например.
Comment 13 Andrey Cherepanov 2010-03-23 17:08:19 MSK
Реанимируем тему для Кентавра. Сергей, что необходимо чтобы реализовать?
Comment 14 Andrey Cherepanov 2010-03-23 17:26:16 MSK
Как минимум, пока можно реализовать без значков и описаний. Просто иерархический список с контролируемым включением/выключением флажков и управлением первоначальным сворачиванием (до первого уровня).
Comment 15 Sergey V Turchin 2010-03-23 17:28:06 MSK
(В ответ на комментарий №13)
> Сергей, что необходимо чтобы реализовать?
Мне врубиться в "Model/View Programming", но пока не врубаюсь
Comment 16 Andrey Cherepanov 2010-03-23 17:50:28 MSK
(В ответ на комментарий №15)
> Мне врубиться в "Model/View Programming", но пока не врубаюсь
А зачем? Внешний вид переключаться не будет. Так что парадигма MVC здесь не особо уместна и избыточна.
Comment 17 Sergey V Turchin 2010-03-23 18:50:32 MSK
Тогда я просто не знаю, как сделать. Если есть исходники необходимого класса, дайте -- встрою.
Comment 18 Andrey Cherepanov 2010-03-23 19:55:04 MSK
(В ответ на комментарий №17)
> Тогда я просто не знаю, как сделать. Если есть исходники необходимого класса,
> дайте -- встрою.
Нужно на этапе создания строки добавить что-то типа (внимание! неработающий прототип!)

--- a/alterator-browser-qt/widgets/al_listbox.cc
+++ b/alterator-browser-qt/widgets/al_listbox.cc
@@ -124,6 +124,25 @@ void AListBox::addRow(QStringList& data, RowType row_type)
     int col = 0;
 
     AListBoxItem *item = new AListBoxItem(this);
+               
+    /*
+    else if ("parent" == name)
+       {
+               // Lookup parent if it name is defined
+               if( ! value.isEmpty() ) {
+                       QTreeWidgetItem *parent = NULL;
+                       QList<QTreeWidgetItem *> l = wnd_->findItems( value );
+                       if( l.count() > 0 ) {
+                               parent = l.at(0);
+                       }
+               }
+
+               // Set parent by create new item and move under new parent
+               if( parent ) {
+                       parent->addChild(  );
+               }
+       }
+    */
Comment 19 Andrey Cherepanov 2010-03-23 19:57:28 MSK
Есть две проблемы:
1. addRow не принимает сторонних свойств (name, parent,...)
2. Не факт, что элемент родителя будет создан раньше дочернего элемента.
Comment 20 Sergey V Turchin 2010-03-24 11:51:13 MSK
(В ответ на комментарий №18)
> неработающий прототип!
Да таких я много могу сделать, а толку?
Comment 21 Sergey V Turchin 2010-06-15 17:02:15 MSD
alterator-browser-qt-2.13.0-alt1