LINUX.ORG.RU

ProjectExplorer в QtCreator: где используется ProjectTreeWidget?

 ,


0

1

Взялся я тут покопаться как сделать перетаскивание файлов в ProjectExplorer, смотрю внутренности:

За боковую панель в режиме File System отвечает класс FolderNavigationModel, и в нем нет обработки перетаскивания, и сидит он в файле foldernavigationwidget.h

В то же время, в этой папке присутствует класс ProjectTreeWidget, который использует FlatModel котая имеет процедуры dropMimeData отвечающие за drag & drop, но откда используется этот ProjectTreeWidget не понятно. Сидят в файлах projecttreewidget.h & projectmodels.h

Может кто сказать за что отвечает классы ProjectTreeWidget и/или FlatModel? В каком режиме он используется или где это посмотреть?

Эмм... О каком перетаскивании речь? Там оно и так работает. Просто теперь надо тянуть и бросать файл (по крайней мере в QtC 4.10) на левую вертикальную панельку (там где иконки Edit, Design, Debug, Projects). Хотя, да, раньше вроде можно было перетаскивать в само окошко эксплорера, но сейчас, похоже, это убрали. Или что именно надо то?

kuzulis ★★
()
Последнее исправление: kuzulis (всего исправлений: 1)
Ответ на: комментарий от kuzulis

Не, не про это. Это ты про открыть файл перетаскиванием из проводника. Я про редактирование открытого проекта, изменение его структуры, про перетаскивание файлов в левой панели в Project Explorer из одной папки в другую, которого там нет. Но если попытаться, он там хватает файл, но значек перетаскивания запрещающий знак.

victor79
() автор топика
Ответ на: комментарий от victor79

И та процедура то же не про открытие файлов при перетаскивание из проводника - я ее отменил, а в скомпелированном варианте без нее файлы перетаскиванием открываются.

victor79
() автор топика
Ответ на: комментарий от kuzulis

Он просто ковыряет сорцы креатора чтобы понять как работает драгндроп.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

На: https://doc.qt.io/qt-5/examples-draganddrop.html

Как работает там drag&drop я разобрался без вопросов, сделал тестовую програмку с QFileSystemModel, все замечательно работает.

А вопрос, где в работающем IDE Qt Creator используются классы ProjectTreeWidget и FlatModel?

victor79
() автор топика
Ответ на: комментарий от victor79

ProjectTreeWidget – скорее всего дерево проекта, которое слева подписано как Projects на этом скрине:

http://esxi.z-lab.me:666/~exl_lab/screens/G3_Qt_Creator_Wayland.png

Это вроде очевидно. Или я не так вас понял? И Drag&Drop на него тоже действует, например, можно *pro-файлик кинуть и откроется проект.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Это вроде очевидно. Или я не так вас понял? И Drag&Drop на него >тоже действует, например, можно *pro-файлик кинуть и откроется >проект.

Ты меня правильно понял, но в действительности за это отвечают классы NavigationTreeView & FolderNavigationModel в которых нет drag&drop. А в этом ProjectTreeWidget есть drag&drop, но за что он отвечает непонятно. Не за открытие файлов перетаскиваемых из проводника, это точно.

victor79
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.