1. Насколько мне известно, в Qt нет проблем с перетаскиванием нескольких элементов. Можно попробовать проработать этот вопрос вместе, если Вы встретились с какими-то трудностями.
Для теста можно написать приложение для перетаскивания строк с одного QTableView на другой.
Попробуйте сделать на форме два QTableView, установите им режим подсветки строки, а не ячейки:
setSelectionBehavior(QAbstractItemView::SelectRows);
Поставьте режим выделения:
setSelectionMode(QAbstractItemView::ExtendedSelection);
Попробуйте выделить несколько строк и перенести их в соседнюю таблицу. Вы увидите, что в момент клика для переноса, выделение строк снимается. И остается выделенной только одна строка. Может быть, в новых версиях Qt это поведение исправили или добавили какую-то настройку флагов поведения.
2. Хотелось бы предусмотреть два режима программы: чтение и редактирование. Здесь меня волнует больше не целостность данных (Знаю есть возможность блокировки записи, было бы неплохо блокировать целые ветви.), а вопрос экономии места на экране. В режиме чтения можно было бы полностью скрывать панели редактора. Ну или можно реализовать просто сокрытие панелей редактора.
Возможно, вам поможет кнопка сворачивания-разворачивания панели редактора (два треугольничка верх-вниз). Там остается только одна строка. кнопок. Это сделано именно для экономии места. В области поиска тоже есть такая кнопка.
3. Самое важное. Мы посмотрели программу коллективом нашего цеха. Понравилась. Хотелось бы использовать ее совместно в многопользовательском режиме для составления карты цехов, журналов работ по заводу и т.д. Возможно ли это в текущей версии или планировалось ли что-то подобное на будущее.
MyTetra - менеджер персональной информации. Не думаю, что в том виде, в котором он есть сейчас, данная программа подойдет для ваших целей. Я понимаю, что то что вы предлагаете - очень заманчиво (кстати, вы не первые кто захотел создать производственную базу знаний на MyTetra). Но тут, по сути, возникает вопрос совместного владения файлами (по аналогии совместного владения кодом). Предполагается что работает один человек, который одновременно в двух местах находиться не может.
В принципе, система автосинхронизации должна подхватывать измененные данные, но я в таком режиме который вы хотите не проверял.
Возможно, можно реализовать какое-то компромиссное решение с помощью какой-либо синхронизации. Мы попробовали разместить каталог с базой данных MyTetra на сетевом диске и подключиться двумя Тетрами с двух машин: одна на Linux, вторая на Windows 7. И включили режим периодической проверки дерева записей. При совместной работе некоторые новые записи теряются.
Часы на машинах нормально засинхронизованы?
К тому же, программа под Windows каждый 10 секунд выдает предупреждение об измененных данных, даже если при этом программа на Linux вовсе не запущена (из трея тоже выгружал).
Выключите все MyTetra и помониторте атрибуты файла mytetra.xml. Попробуйте изменить файл mytetra.xml редактором с Винды и с Линукса (добавьте в отступы пробелы), и посмотрите как меняется дата изменения файла. Если у вас шара на линуксовой машине, то возможно у вас настройки Samba не позволяют менять время, либо сама файловая система настроена так, чтобы время доступа не менялось чтоб не мучать диск (так обычно делают для файлохранилищ и для SSD). Если это так, то MyTetra действительно не сможет понять в какой момент произошло изменение. Тем более ей будет плохеть, если она сама поменяла файл в 10:30, а потом видит, что файл не изменялся, к примеру, с 10:20. Но это только предположение.
А вообще мне нужна собственная подсистема синхронизации с объединением дерева. Я раньше думал, что для этого подойдет Git, но он тоже не подходит, потому что файл дерева не объединяет. Поэтому для синхронизации лучше использовать DropBox.