Здравствуйте
Пишу систему создания резервных копий файлов, и возникла проблема выбора этих самих файлов и директорий.
Пока вижу этот "виждет" так: древовидная "левая" панель проводника с чекбоксами слева от имен файлов. Правда как-то флажки "выбрать" рядом с маркерами "развернуть/свернуть каталог" смотряться не очень (хотя, если поменять стиль, ...).
Собственно вопрос. А как бы вы реализовали подобное? Скорее всего делать это буду на QT (может, на HTMLayout было бы проще?). Может кто-то встречал подобные готовые компоненты? Может быть стоит откузаться от древовидной структуры и есть какой-то другой более удобный для пользователей способ выбора множества файлов/каталогов?
Заранее спасибо за ответы
забыл картинку добавить. Вот она:
Здравствуйте, BSkyDiver, Вы писали:
BSD>забыл картинку добавить. Вот она:
BSD>
Имхо линии в дереве обязательны (ну или или опционально уж) — когда нужно активно возиться с деревом, выбирать много веток\подветок узлов ит.д. они хорошо помогают. Дивный косячина есть подобного рода в выборе директорий для скана в Avast — линий там нет, но и компонент "под стаканом" писался — поэтому галки чуть-чуть (но заметно) смещены по вертикали относительно самого узла.... Вот ёпырш какой, все время гадаешь, какой узел на самом деле отмечен галкой

Спасает, только что внизу у него есть список выделенных папок, может кстати тоже добавить (удобно быстро посмотреть что навыделял, не скролясь по дереву).
Если надо могу скриншот выложить — но вроде известный случай.
Тогда уж как в DC++ дерево сделать

Жирным выделены те диски и папки, в которых файлы и директории галочкой отмечены.На диске С сразу видно что ничего не расшарено, а вот на диске Д что-то выделено. По удобству сойдёт для сельской местности, да и с реализацией проблем не должно возникнуть

Есть вариант подсмотреть слегка в KIS 2009.
Там выбор объектов для проверки на вири вот так выглядит:

Жмём добавить и появляется практически стандартное окошко выбора папок и файлов:

Предлагаю сделать окошко в "стиле проводника" (слева дерево, а остальное место под рабочую область).
Дерево как в DC++, т.к. оно достаточно удобно для выбора большого числа файлов и папок (при первоначальной настройке программы, например, очень полезно будет, т.к. скорее всего будет много файлов и папок выбираться, а потом изменения будут незначительными). Рабочую область сделать подобно касперу, т.е. список, отображающий все выбранные папки и файлы. Сюда легко вписывается возможность бэкапить файлы выборочно, а не все сразу. Ну и если надо добавить пару папок/файлов, то можно будет нажать кнопочку добавить и выбрать нужное.
Так же есть вариант сделать не список как в каспере, а снова дерево. По сути такое же дерево, как слева, но там будут только отмеченные слева галочкой файлы. Удобнее для восприятия большого числа файлов, т.к. иерархия пользователю знакома и он в ней ориентироваться будет вероятно лучше, чем в списке, где все файлы и папки в куче лежат. Но тут еще нужно будет думать, как быть со "вспомогательными" элементами в этом дереве. Допустим, отметили для бэкапа папку "С:\123", тогда в дереве же еще появится диск С и у пользователь может ошибочно предположить что бэкапится весь диск С. Еще хуже проблема будет, если будем бэкапить папку: "С:\123\234\345". Визуально будет как-будто папки 123 и 234 тоже бэкапятся. Хотя можно как-то иконки у таких папок другими сделать и внизу сноску, что вот так выглядят папки отмеченные для бэкапа, а вот так — вспомогательные папочки.
Вот в общем для наглядности в Paint'е собрал из того, что было

Слева от кнопки запуска бэкапа соответственно какие-то настройки расположить можно или как-то еще место занять.
Левое дерево нужно не всегда, а потому его сделать "спрятываемым", кроме того, его функции можно выполнять и кнопочкой добавить.
И иконки лучше в деревьях этих сделать разными. В левом — "системные", т.к. оно отображает иерархию файловой системы. В правом же для папочек сделать свои иконки, которые отображают их назначение для функции бэкапа. Вот эта папочка надлежит для бэкапа — значит она зелененькая будет, а вот эта папка вспомогательная — значит пусть будет серая и так же с файлами разрулить ситуацию. Если иконки в деревьях сделать одинаковыми, то пользователи тупо будут путаться в каком дереве чего есть и куда вдруг делся диск С в правом дереве.
Вот в общем как-то так