Russian Qt Forum

Qt => Вклад сообщества в Qt => Тема начата: navrocky от Июнь 10, 2012, 00:45



Название: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 10, 2012, 00:45
Клон Qt Creator с доработками от нашего сообщества

Брать отсюда: https://qt.gitorious.org/+progorg-developers/qt-creator/progorg-developers-qt-creator
Стабильная ветка 2.5: https://qt.gitorious.org/+progorg-developers/qt-creator/progorg-developers-qt-creator/commits/2.5
Баг-трекер и wiki: http://develplace.dyndns.org/projects/qtcreator
Прямая связь через джаббер-конфу: qt@conference.jabber.ru

На данный момент реализовано (06.07.2012):
  • Исправлен русский язык в TODO
  • Добавлена подсказка в окошко дополнения, отображающая полную сигнатуру метода
  • Табы на открытые файлы в редакторе
  • Добавлена опция, позволяющая включить полный путь к файлам для точек останова по умолчанию


Быстрый старт для чайников (linux)
1. Устанавливаем необходимые пакеты: libqt4-devel, git
2. Затем в консоли:
Код:
> git clone git://gitorious.org/+progorg-developers/qt-creator/progorg-developers-qt-creator.git
> cd progorg-developers-qt-creator
> git checkout -t -b 2.5 origin/2.5
> ./install
> ~/qtcreator/bin/qtcreator.sh

Обновление, сборка, установка и запуск:
Код:
> cd progorg-developers-qt-creator
> git pull
> ./install
> ~/qtcreator/bin/qtcreator.sh

Скрипт ./install устанавливает qtcreator в папку пользователя ~/qtcreator. Для установки в систему надо сделать:
Код:
> cd build ; sudo make install


Начало треда:

Предлагаю совместно допиливать Qt Creator нашим сообществом. Затесаться в Qt разработчики и пропихивать наши патчи в master :D (хотя для меня этот процесс пока в тумане).

Я завел клон Qt Creator в нашей группе https://gitorious.org/+progorg-developers, так что присоединяйтесь!
http://www.prog.org.ru/topic_16401_30.html - тут написано как начать.
Вопросы можно задавать в джаббер-конфочке: qt@conference.jabber.ru

Также внес первый вклад: опция для точек останова - полный путь к файлам по умолчанию для GDB. (https://bugreports.qt-project.org/browse/QTCREATORBUG-7007 - вот я тут напарывался на грабли с неполным путем к файлам при установке точки)

У меня еще в ближайших планах:
  • исправить кодировку в новом плагине TODO, если её автор к этому времени не исправит
  • добавить недостающие шорткаты (например, создание реализации метода)

Также хотелось бы как-то улучшить менеджер проектов или сделать новый, который бы опирался на мейкфайлы и папки с исходниками (как это сделано в Netbeans).


Название: Re: Допиливаем Qt Creator
Отправлено: Akon от Июнь 10, 2012, 10:04
Хорошее предложение, поскольку этим инструментом (QtCreator), я думаю, пользуются очень многие.

Также имею небольшой допил, сделанный во времена QtCreator v1.3, - вкладки (табы) открытых документов (см. аттач), как это принято в других средах. По причине этого до сих пор пользуюсь QtCreator v.1.3.80  :D. Тролли данную фичу отклонили, мотивируя тем, что это не особо нужно - есть список Open Documents. Лично для меня и некоторых моих коллег этот список не удобен, напрягает зрение. Пользуясь случаем, хочу задать всем вопрос - вам была бы полезна эта фича?

А так, готов присоединиться, но в ближайшее время у меня, к сожалению, все плотно.

По ссылке https://bugreports.qt-project.org/browse/QTCREATORBUG-7007 (https://bugreports.qt-project.org/browse/QTCREATORBUG-7007)
Цитировать
Creator is not correctly sets a breakpoint if multiple files exists in a project with the same name
А такое (файлы с одинаковым именем в пределах одного приложения или библиотеки) вообще возможно как-нибудь сделать в случае с qmake?


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 10, 2012, 12:10
Есть микропроблемка в плагине TODO, проявляется только при тёмной цветовой схеме интерфейса (например obsidian coast из KDE). Такая цветовая схема делает дефолтный цвет текста белым, дефолтный цвет фона чёрным. Так вот, в плагине TODO выставляется кастомный цвет для фона (жёлтый, например), но не выставляется цвет для текста. Белый текст на жёлтом фоне выглядит не очень.

Проявляется это в самой панели TODO и в разделе настроек TODO в меню tools->options. Вот такой патч фиксит панель: http://qt.gitorious.org/~sergey-shambir/qt-creator/qt-creator-py-reborn/commit/88bb874b041b382cb728a234598d9ae7cd1a2dda (http://qt.gitorious.org/~sergey-shambir/qt-creator/qt-creator-py-reborn/commit/88bb874b041b382cb728a234598d9ae7cd1a2dda) Если кто продвинет в апстрим, будет здорово.


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июнь 10, 2012, 12:33
...
Также имею небольшой допил, сделанный во времена QtCreator v1.3, - вкладки (табы) открытых документов (см. аттач), как это принято в других средах. По причине этого до сих пор пользуюсь QtCreator v.1.3.80  :D. Тролли данную фичу отклонили, мотивируя тем, что это не особо нужно - есть список Open Documents. Лично для меня и некоторых моих коллег этот список не удобен, напрягает зрение. Пользуясь случаем, хочу задать всем вопрос - вам была бы полезна эта фича?
...
Вот-вот! То, что нужно. Этот список Open Documents очень неудобен. С табами было бы гораздо лучше.


Название: Re: Допиливаем Qt Creator
Отправлено: Igors от Июнь 10, 2012, 12:43
Ах как приятно заниматься такими вещами :) Особенно вначале. Ну ничего
Цитировать
и это пройдет


Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Июнь 10, 2012, 12:57
...
Также имею небольшой допил, сделанный во времена QtCreator v1.3, - вкладки (табы) открытых документов (см. аттач), как это принято в других средах. По причине этого до сих пор пользуюсь QtCreator v.1.3.80  :D. Тролли данную фичу отклонили, мотивируя тем, что это не особо нужно - есть список Open Documents. Лично для меня и некоторых моих коллег этот список не удобен, напрягает зрение. Пользуясь случаем, хочу задать всем вопрос - вам была бы полезна эта фича?
...
Вот-вот! То, что нужно. Этот список Open Documents очень неудобен. С табами было бы гораздо лучше.
http://www.prog.org.ru/topic_18970_0.html :)


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июнь 10, 2012, 13:12
Спасибо. Давно только проект не обновляется, жаль, хотя новая версия креатора уже выходила.


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июнь 10, 2012, 14:21
Я только ЗА!

Сам пилю пилил плагин для креатора, который позволял бы компилировать дрова для Windows/Linux,
тут:

https://gitorious.org/qt-creator-drivers-builder-project-manager-plugin

Реализовал пока что для Windows автодетект WDK, на большее не хватило духу и времени,
если кто желает присоединиться - я только рад буду.

Вот, еще я тут на форуме поднимал эту тему: http://www.prog.org.ru/topic_20573_0.html



Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 10, 2012, 15:03
Я только ЗА!

Сам пилю пилил плагин для креатора, который позволял бы компилировать дрова для Windows/Linux,
тут:

https://gitorious.org/qt-creator-drivers-builder-project-manager-plugin

Реализовал пока что для Windows автодетект WDK, на большее не хватило духу и времени,
если кто желает присоединиться - я только рад буду.

Вот, еще я тут на форуме поднимал эту тему: http://www.prog.org.ru/topic_20573_0.html

Тут есть три крупных проблемы. Во-первых, в QtCreator стараются добавлять только реально нужные фичи, которые точно никому не мешают и не требуют доп. обучения, а просто срабатывают в нужный момент; за это он и любим. И из-за этого недоработанные плагины (тот же XmlTreeEditor) в мейнстрим так и не попадают. Во-вторых API непостоянный, а сообщить, что ты работаешь над определённой фичей, очень трудно; у нового плагина есть только два состояния - "мы работаем над этим" и "заброшено автором". В-третьих, иногда требуется править существующий код криэйтора, чтобы избежать копирования. А это значит, что вместе со своим плагином RubyEditor.so придётся распространять пропатченую библиотеку Utils.so; и разумеется, протолкнуть бесполезные для остальных, но полезные для вашего плагина патчи в мейнстрим не выйдет несмотря на их малый размер и безвредность (для ABI).

В общем я вот что думаю: пора бы создать свой мейнстрим с подкидным дураком и содержанками. Эдакий KDE playground для обкатывания плагинов, не готовых для конечной аудитории. Вижу его примерно таким:
  • доступ даётся почти кому угодно, даже если написанный им патч/плагин плоховат
  • желательная общая вики и трекер, но не связанные с qt-project - всё-таки реализация личных хотелок и создание среды для десятков тысяч людей суть немного разные вещи
  • такой плейграунд всегда будет вторичен, а значит надо периодически мержить патчи из мейнстрима. Думаю, мердж раз в месяц + при выходе новой версии не создаст лишних проблем самому плейграунду

Существующий процесс разработки QtCreator слишком жесток к желающим запилить новую фишку или просто набраться опыта без обязательств. Лично я за последнее время видел целый ряд очень нужных, но заброшенных попыток:
  • Интеграция с Open Build Service от OpenSUSE - вещь критически важная для популяризации линуксов и борьбы таким неприятным явлением, как программы, собираемые только под ubuntu
  • Редактор XML, позволяющий мигом переключаться между редактированием в виде текста и редактированием в виде дерева. Уж на что в XCode редактор XML неудобный, так и то помогает - а уж этот плагин можно превратить в конфетку

А лично я работаю над поддержкой python и pyside/pyqt в QtCreator. Это запрашивают очень часто, удивляются, почему нет, но у самих разработчиков тупо нет времени (могу пруф на это кинуть). Были попытки это сделать. В этом году такая штука была выдвинута на Google Summer Of Code одним студентом из Китая, нашёлся ментор (Tobias Hunger), но, к огромному сожалению, ни одна организация не успела принять их под своё крыло - а сам qt-project не участвовал. Теперь что-то делаю я один, с кем-то с ЛОРа договаривались связаться, но он не отвечает на e-mail. А всё потому, что просто нет единой точки связи.

В общем кто подскажет, где можно найти нормальный хостинг проектов с вики, мультиязычностью (прозрачной для пользователя офк), трекером, выкладыванием документации и ссылок. И, разумеется, нужна возможность отделить мясо от мух, а кодирование от документации, статей по тюнингу типа вот этой (http://shinnok.com/rants/tag/qt-creator/) и перевода. Сам код-то следует держать на gitorious как прежде. Займусь этим, чего уж там.

А этот клон пусть остаётся для фиксов и улучшения мейнстрима ;)


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 10, 2012, 15:08
Вдогонку: разумеется, я готов этим сам заняться, раз в неделю компилить снапшоты по крайней мере под линукс и заниматься сбором инфы и ссылок. Не против и оплатить небольшой хостинг, не рассчитанный офк на наплыв кучи народу. В конце концов, я же планирую всё лето заниматься питончиком - чего уж там, я в академическом отпуске и работаю только пол дня.


Название: Re: Допиливаем Qt Creator
Отправлено: vregess от Июнь 10, 2012, 16:18
github.com ?


Название: Re: Допиливаем Qt Creator
Отправлено: panAlexey от Июнь 10, 2012, 17:09
Вот-вот! То, что нужно. Этот список Open Documents очень неудобен. С табами было бы гораздо лучше.
+1


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 12, 2012, 11:13
Хорошее предложение, поскольку этим инструментом (QtCreator), я думаю, пользуются очень многие.

Также имею небольшой допил, сделанный во времена QtCreator v1.3, - вкладки (табы) открытых документов (см. аттач), как это принято в других средах. По причине этого до сих пор пользуюсь QtCreator v.1.3.80  :D. Тролли данную фичу отклонили, мотивируя тем, что это не особо нужно - есть список Open Documents. Лично для меня и некоторых моих коллег этот список не удобен, напрягает зрение. Пользуясь случаем, хочу задать всем вопрос - вам была бы полезна эта фича?

А так, готов присоединиться, но в ближайшее время у меня, к сожалению, все плотно.

По ссылке https://bugreports.qt-project.org/browse/QTCREATORBUG-7007 (https://bugreports.qt-project.org/browse/QTCREATORBUG-7007)
Цитировать
Creator is not correctly sets a breakpoint if multiple files exists in a project with the same name
А такое (файлы с одинаковым именем в пределах одного приложения или библиотеки) вообще возможно как-нибудь сделать в случае с qmake?

Табы надо впилить однозначно! Akon подключайся к проекту или пришли свой патч, я его впихну. Можно связаться в qt джаббер-конфе.

Также я могу делать сброки для RPM дистрибутивов на OBS если кому-то надо.


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июнь 13, 2012, 10:53
Вот-вот! То, что нужно. Этот список Open Documents очень неудобен. С табами было бы гораздо лучше.
Я тоже долго плевался. Потом втянулся и понял, что табы только занимают лишнее место. Если много открытых документов, то табы становятся просто неюзабельными. Народ, отсутствие табов это не плохо. Это по-другому. Просто непривычно поначалу. А со временем начинаешь ценить решение троллей. Особенно, если используешь широкоэкранный монитор.

Думаю, в первую очередь стоит заняться решением проблемы кириллицы в выводе компилятора под Windows (в первую очередь касается msvc). Только стоит иметь в виду, что микрософтовский линкер выдает инфу в отдной кодировке, а компилятор в другой (это касается только режима передачи в другое приложение, в консоль оба выдают корректно).


Название: Re: Допиливаем Qt Creator
Отправлено: sudo от Июнь 13, 2012, 11:20
В топку табы. Когда 50-60 открытых файлов исходников, табы превращаются в тыкву.

В QtCreator у меня принимали патчи через gitorious, сейчас возможно что-то изменилось. В Qt патчи принимаются только через Gerrit - можно почитать здесь - http://qt-project.org/contribute . Не сказал бы, что залить очень просто, первый раз втыкал долго

github.com ?
Зачем?

В общем, как сказал Igors, дело хорошее, но... пройдёт


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июнь 13, 2012, 11:44
Я тоже долго плевался. Потом втянулся и понял, что табы только занимают лишнее место. Если много открытых документов, то табы становятся просто неюзабельными.
Некоторые можно и закрыть :)

Народ, отсутствие табов это не плохо. Это по-другому. Просто непривычно поначалу. А со временем начинаешь ценить решение троллей.
Было высказано субъективное мнение.

Особенно, если используешь широкоэкранный монитор.
Как же раздражает эта мода на обрезанные мониторы. Гробы на боку.

В топку табы. Когда 50-60 открытых файлов исходников, табы превращаются в тыкву.
Ага, а список от такого количества позиций хорошеет прямо на глазах :)


Название: Re: Допиливаем Qt Creator
Отправлено: sudo от Июнь 13, 2012, 15:15
Прокрутить список намного проще, чем ковыряться в табах. Тем более, файлы отсортированы по алфавиту.
Тут вопрос самый интересный - у кого сколько исходников в проектах ;) Тот же Qt если открыть и начинать копаться глубоко и прицельно, никакие табы не помогут


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июнь 13, 2012, 15:49
Прокрутить список намного проще, чем ковыряться в табах.
Щёлкать по табам намного проще, чем ковыряться в списке :)

Тем более, файлы отсортированы по алфавиту.
Тем более, что файлы в табах выведены в том порядке, в котором их открывал, а не по алфавиту.

Тут вопрос самый интересный - у кого сколько исходников в проектах ;) Тот же Qt если открыть и начинать копаться глубоко и прицельно, никакие табы не помогут
И что? Ну можно озадачиться открытием кучи файлов исходников Qt в редакторе (конечно же глубоко и прицельно)... и через некоторое время, откинувшись на спинку кресла и осознавая грандиозность проделанной работы, закурить с наслаждением сигаретку.


Название: Re: Допиливаем Qt Creator
Отправлено: panAlexey от Июнь 13, 2012, 22:46
В топку табы. Когда 50-60 открытых файлов исходников, табы превращаются в тыкву.
Дайте выбор, мы сами каждый для себя как привык выберет основной интерфейс.
наверное это лучшая парадигма - давать пользователю выбор.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 14, 2012, 08:52
Akon, ау! Опубликуй свой патч я его воткну, я тоже хочу табы ) постараюсь сделать их опционально


Название: Re: Допиливаем Qt Creator
Отправлено: Akon от Июнь 14, 2012, 09:49
Вот тот репозиторий. Это было для версии 1.3.x. Там первый коммит содержит весь код, что я добавил, в директивах AKON_CONTRIBUTION. Второй коммит удовлетворяет требованиям троллей.
http://qt.gitorious.org/~akon/qt-creator/akons-qt-creator

Описание коммита:

+ OpenEditrosTabBar: represents open editors (open files) in tab bar manner.

The OpenEditrosTabBar is a simple GUI component looking as ordinary tab bar
(it is realized through QTabBar). I found a tab bar more useful control for
editor switching with mouse than QtCreator's controls: editor drop-down list
and left panel navigation widget under "Open Documents" mode. In addition
the OpenEditrosTabBar allows tabs free reordering (QtCreator's controls
support alphabetical ordering only) and keeps the order between sessions.

Возможно, в новых версиях произошли изменения, затрагивающие патч, и поэтому с пол-пинка вставить не получится, ну а может и получится :) Если будут вопросы, пишите в личку.


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июнь 18, 2012, 11:31
Так как я немного в курсе кухни разработки и внесения изменений в Qt-шные проекты, то могу подсказать что делать, чтобы проблем было меньше:
1. стиль кода должен совпадать со стилем Qt (в первую очередь - отступы 4-мя пробелами, без табов).
2. поддержка табов должна быть опциональная (в настройках check box) и, желательно, в виде отдельного плагина.
3. надо зарегистрироваться на gerrit и внимательно прочитать: http://qt-project.org/wiki/Setting-up-Gerrit
4. склонировать оттуда qt-creator.
5. чтобы опубликовать патч, необходимо: скопировать изменения в нужную свежеобновленную ветку (git pull) репозитория gerrit (git checkout xxx), закоммитить (первая строка должна содержать краткую суть изменений, вторая должна быть пустая или не должно быть вовсе), затем отправить на сервер: git push origin <xxx>:refs/for/<xxx>
6. Будет создан патч. И его смогут обсуждать все, кому не лень. А лень обычно всем. Поэтому, надо добавить ревьюверов. Для начала, лучше из списка заинтересованных в патче. Затем, когда патч будет вылезан, то можно добавить уже кого-нибудь из сотрудников Nokia. Например, ossi (вменяемый перец, чаще всего общается с энтузиастами). А он уже определит, кому еще стоит на это взглянуть.

ЗЫ: Патч не смотрел.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 18, 2012, 16:31
Открыл проект по допилу на редмайне здесь http://develplace.dyndns.org/projects/qtcreator. На gitorius я так понял тикетов и вики не существует.


Название: Re: Допиливаем Qt Creator
Отправлено: sudo от Июнь 18, 2012, 16:49
А почему #29 - ошибка? Это самое натуральное улучшение ;)


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 18, 2012, 16:54
Там еще несколько проектов скрытых. Редмайн сквозную нумерацию ведёт %)


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июнь 18, 2012, 20:42
Я мельком глянул патч, и да - нужно его вынести отдельным плагином,
т.к. на данный момент он жестко захардкожен в исходники креатора.

Может попозже посмотрю что можно сделать (и можно ли вообще), т.к. пока нет времени.



Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 18, 2012, 22:08
Я мельком глянул патч, и да - нужно его вынести отдельным плагином,
т.к. на данный момент он жестко захардкожен в исходники креатора.

Может попозже посмотрю что можно сделать (и можно ли вообще), т.к. пока нет времени.
Какой именно патч?


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июнь 19, 2012, 09:50
Этот http://qt.gitorious.org/~akon/qt-creator/akons-qt-creator


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 22, 2012, 11:50
Открыл проект по допилу на редмайне здесь http://develplace.dyndns.org/projects/qtcreator. На gitorius я так понял тикетов и вики не существует.

Не могу согласиться с некоторыми тикетами - по-моему, они непродуманы. Взять те же табы - ну ничем они не улучшают юзабилити, только привычный вид возвращают. Занимать экран ненужным виджетом только потому, что кому-то так привычнее? Так не всем ведь. Говоря откровенно, в QtCreator 2.5 табы не нужны (не знаю как там было в 1.3), есть дерево проекта слева, есть F4, есть ctrl+click по идентификатору, есть тулбар с аутлайном над редактором кода. В конце концов, можно зажать Ctrl+Tab и кликнуть по нужному варианту. Табы нужны в менее юзабельных средах. Можно вынести в настройки и отключить по дефолту, но может лучше не загромождать настройки, чем удовлетворять чьи-то вредные привычки? :D

Кстати, у библиотеки cplusplus есть определённые проблемы с макросами. Например, он не может распарсить Qt-шный макрос QT_NO_LISTVIEW и ему подобные (->намертво убитая подсветка всех item view классов),  не парсит GLIBC__CXX_EXPERIMENTAL (->убитая подсветка C++11 в библиотеке libstd++), не одолевает BOOST_AUTOTEST_SUITE. Улучшить препроцессор, наверное, непросто - сейчас и знатоков работы препроцессора C очень мало. Но видел где-то патчи, где некоторые макросы были просто вбиты хардкодом. Так вот - стоит ли подобные патчи добавлять в репозиторий?

P.S. висит ваш редмайн ;0 отдаёт пустой ответ.


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 22, 2012, 12:01
Открыл проект по допилу на редмайне здесь http://develplace.dyndns.org/projects/qtcreator. На gitorius я так понял тикетов и вики не существует.
Да, ещё не очень нравится тикет с горячими клавищами на рефакторинг. Я вот например даже про Alt+Enter не знал. Стоит ли заставлять учить 10 комбинаций для вызова рефакторинга, если тот же Alt+Enter, Ctrl+Space ускоряют работу очень сильно? К тому же я подозреваю, что QtCreator итак позволяет включить горячие клавиши на эти действия в настройках.


Название: Re: Допиливаем Qt Creator
Отправлено: Akon от Июнь 22, 2012, 12:46
Цитировать
Можно вынести в настройки и отключить по дефолту, но может лучше не загромождать настройки, чем удовлетворять чьи-то вредные привычки?
Вредные? Это вы перебрали. Ксати, по схеме, что вы описали, сделан Qt Assistant 4.8.


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 22, 2012, 13:56
Цитировать
Можно вынести в настройки и отключить по дефолту, но может лучше не загромождать настройки, чем удовлетворять чьи-то вредные привычки?
Вредные? Это вы перебрали. Ксати, по схеме, что вы описали, сделан Qt Assistant 4.8.
Табы могут быть хоть чем-то лучше open documents только при правильной обработке сплита окна.
А травой могу поделиться, мне не жалко.


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 22, 2012, 19:14
Табы лучше списка. Ты можешь настроить список по быстрому, чтобы там первыми шли файлы, которые тебе необходимы в ДАННЫЙ момент?  Или придётся искать по всему дереву, разбитому на подразделы? :D


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 22, 2012, 20:09
Табы лучше списка. Ты можешь настроить список по быстрому, чтобы там первыми шли файлы, которые тебе необходимы в ДАННЫЙ момент?  Или придётся искать по всему дереву, разбитому на подразделы? :D
Неужели в Qt для списка невозможно реализовать драг-н-дроп? Что насчёт сортировки - я видел в gerrit патчи, добавляющие к списку открытых документов возможность настроить параметр, по которому они сортируются. Т.е. в версии 2.6 уже, вероятно, будет, а для пущей уверенности можно найти эти патчи и отревьюшить.
Ещё списку не хватает драг-н-дропа для пресловутой ручной настройки и иконок файлов - дабы с 1 взгляда отличать заголовки от исходников или шейдеров.


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июнь 24, 2012, 12:24
Если сортировка открытых документов будет отличаться от "по алфавиту", то это черевато запутыванием. Так как для маленького списка это не актуально, а в большом хрен найдешь редкий файл. Как вариант, можно организовать фиксированую часть, куда добавляются часто используемые фодкументы (например, 4 штуки), а все остальные сортировать тупо по алфавиту.
Кстати, табы в этом плане ничуть не лучше. Когда много документов их названия не прочитать или просто часть скрыта и надо нажать на стрелку, чтобы появился все тот же список.
Еще раз повторяю, табы - это просто привычка. Они ничем не лучше списка открытых документов.


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 24, 2012, 13:09
Табы от 1 до 20 превосходят ВСЕ возможности и преимущества списка.

Открыв к примеру по взаимосвязям 10 файлов разных типов, я могу спокойно по ним переключаться (кратковременная память у человека очень даже гуд - запомнить что нужный файл пятый, а зависимый от него 6 очень легко).

А список? Настраивать какие то условия по сортировке, драг енд дропить в разные списки?

И наконец, если привлечь юзабилити, насколько действий пользователя список ХУЖЕ табов?

Ответ: минимум 2-4. Найти файл, тыкнуть, настроить правило/перенести куда-то, найти в перенесенной группе среди уже добавленных файлов, тыкнуть на него и посмотреть.

А переключение между табами и списком?

Табы имеют горизонтальную ориентация и простоту (Если вы не можете мгновенно посчитать 3-4-5-6 таб, то у вас какие то нарушения (со зрением ли, либо с математикой)).
Причём их положение регулируется вами же, одновременно с их открытием. По порядку открытия.

То есть действия пользователя для открытия таба - Найти в списке, тыкнуть 2 раза. Всё!

Можно много спорить, но список как "средство быстрого реагирования" не тянет.




Название: Re: Допиливаем Qt Creator
Отправлено: Igors от Июнь 24, 2012, 13:28
Я никогда не использовал QtCreator, но процесс/стиль обсуждения в этом топике мне хорошо знаком. Возможно пилильщикам надо действовать более целеустремленно, напр

- утвердить список задач подлежаших решению. Обсуждение списка должно быть закончено до <data>. Возможны различные подходы (мозговой штурм, голосование, просто волевой). Дать имя продукту (напр Pack 1), определить сроки первой беты. Назначить исполнителей.

А иначе дело сведется к бесконечной полемике (проще говоря базару) который только утомит всех


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 24, 2012, 17:18
Я никогда не использовал QtCreator, но процесс/стиль обсуждения в этом топике мне хорошо знаком. Возможно пилильщикам надо действовать более целеустремленно, напр

- утвердить список задач подлежаших решению. Обсуждение списка должно быть закончено до <data>. Возможны различные подходы (мозговой штурм, голосование, просто волевой). Дать имя продукту (напр Pack 1), определить сроки первой беты. Назначить исполнителей.

А иначе дело сведется к бесконечной полемике (проще говоря базару) который только утомит всех

Если бы всё так просто... Исполнителей в несформированном опенсорсном проекте обычно попросту нет. У людей работа, семьи в конце-то концов; это только у меня куча времени в академическом отпуске да с работой на пол дня. Плюс у каждого свои приоритеты - лично для меня изменения в мышкотыкательной части интерфейса мало волнуют, если только они не пожирают место на экране  :-\ А вот C++ 2011 заботит очень сильно - пытаюсь приобщить бывших одногруппников к этому счастью, но на 100% готовой к новому стандарту среды попросту нет; visual studio упускает критически важные вещи - потому хочу пересадить их на QtCreator с парой патчей и gcc 4.7 || clang 3.1.

P.S. Надо бы добровольцам отметиться в вики (http://develplace.dyndns.org/projects/qtcreator/wiki), кто чем занят. Только что отписал на мыло топик-стартеру (https://gitorious.org/~navrocky) с просьбой дать доступ на редактирование.


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июнь 24, 2012, 23:54
Табы от 1 до 20 превосходят ВСЕ возможности и преимущества списка.

Открыв к примеру по взаимосвязям 10 файлов разных типов, я могу спокойно по ним переключаться (кратковременная память у человека очень даже гуд - запомнить что нужный файл пятый, а зависимый от него 6 очень легко).

А список? Настраивать какие то условия по сортировке, драг енд дропить в разные списки?

И наконец, если привлечь юзабилити, насколько действий пользователя список ХУЖЕ табов?

Ответ: минимум 2-4. Найти файл, тыкнуть, настроить правило/перенести куда-то, найти в перенесенной группе среди уже добавленных файлов, тыкнуть на него и посмотреть.

А переключение между табами и списком?

Табы имеют горизонтальную ориентация и простоту (Если вы не можете мгновенно посчитать 3-4-5-6 таб, то у вас какие то нарушения (со зрением ли, либо с математикой)).
Причём их положение регулируется вами же, одновременно с их открытием. По порядку открытия.

То есть действия пользователя для открытия таба - Найти в списке, тыкнуть 2 раза. Всё!

Можно много спорить, но список как "средство быстрого реагирования" не тянет.
Мне вот только интересно, что из перечисленных достоинств табов не "умеет" список? Ты можешь запомнить положение нужного тебе файла и не читать его название каждый раз. Ты можешь растянуть список на весь экран (по вертикали) и будет одновременный доступ к нужным файлам.

я еще раз повторяю, табы и списки они не лучше и не хуже друг друга. просто, с учетом текущих тенденций в области мониторостроения, можно предположить, что список наше будущее.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 25, 2012, 01:02
Открыл проект по допилу на редмайне здесь http://develplace.dyndns.org/projects/qtcreator. На gitorius я так понял тикетов и вики не существует.
Да, ещё не очень нравится тикет с горячими клавищами на рефакторинг. Я вот например даже про Alt+Enter не знал. Стоит ли заставлять учить 10 комбинаций для вызова рефакторинга, если тот же Alt+Enter, Ctrl+Space ускоряют работу очень сильно? К тому же я подозреваю, что QtCreator итак позволяет включить горячие клавиши на эти действия в настройках.
В том-то и дело, что нет настройки горячей клавиши на эти действия. А я их часто зову, тоже сперва про Alt+Enter не знал - мучался с менюшкой. Но и сейчас я был бы не против иметь горячую кнопку на реализацию метода - очень частая операция всё-таки.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июнь 25, 2012, 01:08
P.S. Надо бы добровольцам отметиться в вики (http://develplace.dyndns.org/projects/qtcreator/wiki), кто чем занят. Только что отписал на мыло топик-стартеру (https://gitorious.org/~navrocky) с просьбой дать доступ на редактирование.

Ну я открыл для тебя доступ. У сервера были трудности, теперь решены... А сам пока сейчас не могу ничего сделать, два сайта надо срочно на джумле запилить %) Надеюсь скоро освобожусь и продолжу допил )


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 25, 2012, 06:54
b-s-a ты частично прав с одним исключением.

Быстрая работа с табами = медленная работа со списком.

Список имеет больше возможностей, расширений, настроек. Для работы с 20+ файлами одновременно - да, он лучше. (но архитектура программы Г значит :D )
А для работы до 20 табы лучше.

Я уже приводил довод - чтобы расположить файлы в списке как тебе удобно - нужна куча условий.
Если изменить древовидную модель списка и расформировать группы (cpp, h, ресурсы) - тогда путаница возникнет в стократ большая.
Если не изменять модель - тогда нельзя будет инитуитивно найти файл, который тебе нужен. Ведь какие то группы могут быть свёрнуты, развёрнуты, скрыты. Вон кто-то уже вообще предлагал изменять алфавитную сортировку. И получится белиберда в стакане.

Список - 20+
Табы - 20-

Ну и с каким количеством одновременно редактируемых файлов ты работал? :) И назовёшь ли ты работу с таким количеством удобным?


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 25, 2012, 12:14
b-s-a ты частично прав с одним исключением.

Быстрая работа с табами = медленная работа со списком.

Список имеет больше возможностей, расширений, настроек. Для работы с 20+ файлами одновременно - да, он лучше. (но архитектура программы Г значит :D )
А для работы до 20 табы лучше.

Я уже приводил довод - чтобы расположить файлы в списке как тебе удобно - нужна куча условий.
Если изменить древовидную модель списка и расформировать группы (cpp, h, ресурсы) - тогда путаница возникнет в стократ большая.
Если не изменять модель - тогда нельзя будет инитуитивно найти файл, который тебе нужен. Ведь какие то группы могут быть свёрнуты, развёрнуты, скрыты. Вон кто-то уже вообще предлагал изменять алфавитную сортировку. И получится белиберда в стакане.

Список - 20+
Табы - 20-

Ну и с каким количеством одновременно редактируемых файлов ты работал? :) И назовёшь ли ты работу с таким количеством удобным?

На днях делал патч для корректного парсинга и подсветки override и final из нового стандарта. Пока найдёшь место, где нужно внести изменения, 20 файлов открываешь запросто. А с табами их придётся ещё и закрывать. И да, вы опять забываете про open documents, F4 и Ctrl+Tab, который тоже показывает список открытых документов.


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 25, 2012, 13:36
Открыть таб и закрыть таб - 2 нажатия.

Причём опять таки и клавиатурные сокращения имеются.

А ваш "список" не сможет быстро и организованно предоставить в нужном ВАМ порядке хотя бы 10-15 документов.  А доступ к ним осуществится (с помощью табов конечно) за 1 клик. (расчёт таба на который нажать я даже не учитываю - слишком мало по сравнению со списком).

Вы возможно "так привыкли", возможно "вам так удобнее", но для рядового пользователя (меня, васю пупкина и человека, впервые увидевшего IDE) удобнее табы.

Делайте список под себя, пожалуйста. Но табы убирать не следует.

PS всё гениальное просто. А табы ООООчень просты.


Название: Re: Допиливаем Qt Creator
Отправлено: sudo от Июнь 25, 2012, 16:53

А ваш "список" не сможет быстро и организованно предоставить в нужном ВАМ порядке хотя бы 10-15 документов.  А доступ к ним осуществится (с помощью табов конечно) за 1 клик. (расчёт таба на который нажать я даже не учитываю - слишком мало по сравнению со списком).

Вы возможно "так привыкли", возможно "вам так удобнее", но для рядового пользователя (меня, васю пупкина и человека, впервые увидевшего IDE) удобнее табы.

Делайте список под себя, пожалуйста. Но табы убирать не следует.

PS всё гениальное просто. А табы ООООчень просты.

Это видимо ваш список не сможет быстро и организованно что-то сделать ;) Мой с этим прекрасно справляется. Тролли всё сделали правильно. И табы при возможности разделить редактор на несколько областей редактирования не то что не нужны, они вредны и бесполезны


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 25, 2012, 17:04
sudo, не суди других и не судим будешь :)

Если они вредны, почему 80% программ их использует? :) Более 60% IDE с табами.

Но видно вы смотрите со своей колокольни. Бесполезно объяснять, что Простое = Гениальное.


Название: Re: Допиливаем Qt Creator
Отправлено: sudo от Июнь 25, 2012, 17:26
То, что все их используют, не значит, что это единственно верный путь. 1-й канал тоже многие смотрят ;) То, что предложили Тролли, очень удобно, если уметь пользоваться


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 25, 2012, 17:44
Таки никто не задумывался, что то - что привычно, оно и лучше для большинства? :)

Яркий пример - раскладка Дворака. Она лучше, она быстрее в печати, если к ней привыкнуть, но :D

Но увы, переучивать людей, выучивших qwerty будет мучительно и жестоко.

PS к тому же многие на имеют несколько рабочих компьютеров. И если дома проблема решается "Что хочу, то творю", то на работе зачастую такое невозможно :D


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июнь 26, 2012, 19:44
Я просто оставлю это здесь (http://dl.dropbox.com/u/86213541/prog.org.ru/hello_veres.png)


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 26, 2012, 19:53
Ну да не буду спорить - скажу просто. У меня в проекте (рабочем) около 8 проектов, в том числе и не моих )
Количество файлов можешь представить сам. Если список на всё развернуть, он аккурат как колбаса выйдет )

PS Сделай простую вещь - какую нить прогу возьми для записи действий. Открой проект с 60-80 файлами.

Открой 10 файлов из всего списка табами. Запиши действия программой для переключения с 1 на 10, с 9 на 2  и так далее.

Потом открой 10 файлов в своём "подствечивающемся списке". Запиши действия -//- -//-.

Потом можешь открыть  их параллельно и посмотреть, что займёт больше времени и усилий :)

PS твори что хочешь, наслаждайся творчеством :D


Название: Re: Допиливаем Qt Creator
Отправлено: Igors от Июнь 26, 2012, 21:25
Бесполезно объяснять, что Простое = Гениальное.
Даже если предположить что (якобы) "все гениальное просто" - из этого совсем не следует что "простое = гениальное". Вообще нелады с формальной логикой очень популярны среди пользователей Qt.

Вот немного теории (в доступной форме)
http://wap.avtoinformator.ru/howto-article-25.htm (http://wap.avtoinformator.ru/howto-article-25.htm)
Многие топики (да и этот тоже) попирают все законы  :)


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 26, 2012, 22:27
Бесполезно взывать к рассудку через текст, если оппонент его не читает :)

И да, Igors - всё простое = гениальное :D


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июнь 27, 2012, 10:16
Бесполезно взывать к рассудку через текст, если оппонент его не читает :)
К сожалению, ты сам текст плохо читаешь. Тебе уже сказали, что ты говоришь о дереве "Проекты", а мы тебе о списке "открытые документы".
(http://img198.imageshack.us/img198/7025/qtcreator.png)


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 27, 2012, 10:23
Бесполезно взывать к рассудку через текст, если оппонент его не читает :)

И это уже обсуждалось. Читать надо хотя бы. Прочти пожалуйста все мои замечания в этой теме, а потом уже пости. Уже рассматривалась ситуация с отдельным списком открытых документов.

PS сколько мне уже упрёков наделали, однако. Но никто не может сказать, чем плохи табы :D


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июнь 27, 2012, 10:51
А кто говорит, что они плохи? Это тоже самое, что сравнивать сладкое и соленое.
Просто тут речь о том, что идеология у Qt Creator другая. Вот и все. Ты привык к табам, и ты не можешь принять того, что есть список. И что он может быть тоже удобен. Вот в этом только и проблема. Но ее решать не нам. А тебе самому.


Название: Re: Допиливаем Qt Creator
Отправлено: Igors от Июнь 27, 2012, 11:01
PS сколько мне уже упрёков наделали,
Правильно наделали :) Ну хорошо, пусть Ваше мнение не совпадает с мнением других или даже большинства. Ну высказались разок-другой, все поняли Вашу точку зрения. Чего дальше писать и писать по принципу "ты мне слово - я те десять"? Чего Вы достигаете? Очень быстро понять что-либо в таком зафлуженном Вами топике становится невозможно. Тема убита, Ваша репутация тролля укреплена, и увы - для этого есть основания. Не тарахтите бесконечно, дайте другим сказать  :)


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 27, 2012, 12:21
Кхм. Igors, а попробуйте почитать всё что я написал :)
А так же тему с самого начала :)

Я присоединился по 1 простой причине - некий юзверь яростно восстал против табов. Я и b-s-a вошли в спор аля "табы просто привычка, или необходимость".

Ну а всеми дальнейшеми постами я пытался донести до юзверей свою точку мнения :) Судя по их сообщениям, прочитав мои, они их тут же забывали и начинали гнуть аля "мы в танке" :)

Делайте список под себя, пожалуйста. Но табы убирать не следует.
- вот весь смысл, который я пытался донести.

Далее пришло большинство. Не мне их судить, но разве нельзя привести хотя бы доводы в пользу списка/табов, вместо "список лучше"?
 
Ну а дальше вообще Igors повернул в философию и придирку к словам, а b-s-a привёл скрин того списка открытых документов, что обсуждался на предыдущей странице :D

PS да не трогаю я вас, не трогаю :) А длинные посты потому, что почти в каждом из них есть лёгкие способы сравнить табы и список. Эти способы можно буквально на коленке провести и понять преимущества и недостатки :D

PPS Считаете меня троллем - считайте) Буду рад относиться косвенно к авторам Qt :)

toIgors - "Не суди о посте по длине его"


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июнь 27, 2012, 12:40
По идее, дерево файлов проекта и список открытых документов - есть суть дублирование. Честно говоря, вообще не представляю, как можно работать с ними обоими на широкоформатных мониторах. На своём, "традиционном" (1920х1080) и то толком ничего не влезает по высоте, а если экран сплюснутый, так вообще кошмар наверное. Табы в этом смысле выглядят куда как предпочтительнее, занимая лишь незначительную часть от общей высоты по сравнению со списком.


Название: Re: Допиливаем Qt Creator
Отправлено: kamre от Июнь 27, 2012, 15:53
Если нужен просто список открытых документов в порядке их использования, то по Ctrl+Tab разве не это самое и показывается?

Еще можно посмотреть на Mylyn плагин (http://www.eclipse.org/mylyn/) для Eclipse:
Цитировать
Mylyn makes tasks a first class part of the IDE, integrates rich and offline editing for ALM tools, and monitors your programming activity to create a "task context" that focuses your workspace and automatically links all relevant artifacts to the task-at-hand. This puts the information you need at your fingertips and improves productivity by reducing information overload, facilitating multitasking and easing the sharing of expertise.
IDE сама следит с какими файлами/классами/методами работаешь больше всего при активной задаче, сохраняет эту информацию, а на ее основе умеет отфильтровывать и показывать во всех списках/деревьях только актуальное для задачи. При переключении на другие задачи и обратно вся эта информация восстанавливается и контекст того с чем работал не теряется. Также весь накопленный контекст можно передать другому разработчику, чтобы он сразу мог увидеть только то, что относится к задаче.


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июнь 27, 2012, 16:06
Если нужен просто список открытых документов в порядке их использования, то по Ctrl+Tab разве не это самое и показывается?
Да, по Ctrl+Tab выводится список открытых файлов. Но что если файл ещё не был открыт? Тогда, нажав эту заветную комбинацию и разочаровавшись в отсутствии открытого файла (ну не держать же в собственной памяти, какие файлы открывал?!), придётся с тяжестью и глубокой скорбью на сердце обратить внимание на дерево файлов проекта. Ctrl+Tab - ещё хуже чем всегда видимый список открытых файлов.


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июнь 27, 2012, 16:46
Я уже писал, но ещё раз повторюсь.

Человек автоматически запоминает расположения табов. Не прилагая никаких усилий, на подкорке. И вспомнить какой таб открывал 4 файла подряд ему не надо - услужливая память (зрительная) сама наведёт указатель на него.

А переключение внимания на список и обратно, а так же "умную систему" которая сама распределяет файлы лишь будет нервировать.

PS и продолжу для фанатов списков - первые 8 месяцев будет неприятно, а потом прямота рук автоматом подстроится под ваше решение :D


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июль 05, 2012, 00:09
PS и продолжу для фанатов списков - первые 8 месяцев будет неприятно, а потом прямота рук автоматом подстроится под ваше решение :D
Гораздо быстрее. Впрочем, когнитивное сопротивление (ура, модное слово!) всё же есть, убедили.

Простенькая реализация табов есть в репозитории (см. 1 пост), также есть минимап. Скриншот (http://dl.dropbox.com/u/86213541/prog.org.ru/ololo-creator.png). Хотя есть мелкие технические недоработки, мне больше не нравится идея сделать табы так же, как в других средах. В том же нетбинсе табы очень быстро загромождают экран. Фактически, когда табов больше 4 - это уже избыток, и что-то придётся закрывать. Заставлять человека самого оперировать ненужными ему табами нельзя, тем более что большинство постоянных пользователей QtCreator табы считают ненужными (LOR подтверждает). Т.е. всё-таки придётся сделать автозакрытие табов и показ оных в виде не более чем 4 кнопок, плюс сделаю возможность отключить панель табов, плюс она будет отключаться автоматически при появлении списка "Открытые документы".

Выглядеть будет как-то так (http://dl.dropbox.com/u/86213541/tabs-concept.png).

Вопрос - как именно закрывать лишние табы? Понятно, что базовый метод - закрывать самые старые. Кроме того, при переключении между заголовком и исходником старый таб тоже можно закрыть, но тогда и только тогда, когда переключениет было сделано соответствующим QAction (по дефолту F4). Ну и если документ в табе был изменён, то можно чуть поднять его приоритет в истории - т.е. старые табы отсекаются по времени открытия или по времени последнего редактирования (соотв. сигналы в коде QtCreator уже есть).


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июль 05, 2012, 07:39
Я б выражусь максимально ясно. И по желаниям пользователей и по прочему.

Есть табы (прекрасно), есть список(прекрасно), табов нельзя больше 4 (Оо какого фига, спросит пользователь), табы закрываются автоматически(п****ас это делал скажет пользователь, когда у него закроется самый важный документ, открытый самым первым), открыл ради прикола список открытые документы - табы исчезают (Оо, почему? Нельзя и туда и туда смотреть? Ты ущемляешь права вундеркиндов, да и те, кому трудно переходить твой список и не откроют никогда из-за утери привычных табов :D ). И добивание - у меня обычно открыто около 6-7 табов. Штуки 4-5 рабочих и 1-2 справочных, без которых предыдущие 4-5 вообще ненужны :D Справочные ясно дело не изменяются/добавляются.

LOR - не показатель :D

Механизма табов лучше, чем сейчас уже есть, ты не придумаешь. Он простой, понятный, интуитивный(очень полезное качество) и стандартный. Усекать его - ну значит те, кто привыкли к нему, никогда не перейдут на твой список. Ибо если сделаешь как сказал - получится что те, кто использует табы будут оччень усечены в возможностях :D А между "непонятным списком с кривыми табами" пользователь выберет "прямые табы".

PS у тебя какой то максимализм. Аля выбирайте, список или табы. Правда табы у меня порезаны и исчезают сами по себе. А вот список работает хорошо. А со списком и табами одновременно работать нельзя :D

PPS Хочешь сделать список и подсадить по тихому на него людей? Сделай так, чтобы ни список, ни табы не мешали друг другу. И чтобы можно было работать с ними одновременно. И если мнение LOR'а правдиво, то люди сами вскоре сравнят удобство и будут пользоваться чем то одним(но думаю, будут всё же использовать одновременно, специализация у табов и списка разная :D ). Это моё ИМХО.

PPPS Автоматическое закрытие табов сделать будет тебе очень сложно. Люди открывают табы, которые им могут пригодиться. Порой они так и висят по часу, по два. А потом пригождаются. Т.о. обращения к ним засекать бесполезно. Время открытия - бесполезно.(Сам понимаешь, открыл самый 1 файл правишь. А потом открыл новый и Рраз - первый таб испаряется). Да и к тому же учти - закрывающиеся табы нужно будет сохранять, или же выдавать диалог. А это плохо.


Название: Re: Допиливаем Qt Creator
Отправлено: Akon от Июль 05, 2012, 07:51
Друзья, не нужно разводить срач по поводу табов и высказываться категорично в стиле "табы вредны" и т.п. Понятно, что это вопрос предпочтений, привычек (разумеется не вредных) и т.п.

Лично я совместно использую табы, список "Open Documents" и список "File System". Под основные аспекты работы над программой я завожу сессии, в которых сразу открываются все нужные мне файлы (не более 10-12, иначе табы неэффективны), т.к. меня сильно раздражает, если в процессе активной работы вдруг потребуется тратить время на открытие нужного файла - это снижает концентрацию. Расположение табов строго упорядочено, например, файл Foo.cpp располагается всегда правее файла Foo.h. За некоторыми исключениями, файлы располагаются слева направо в соответствии с их зависимостями друг от друга. Такая организация позволяет с минимумом умственных и физических усилий, почти на автомате осуществлять переключение между используемыми файлами.

Если по каким то причинам табов стало много, в дело идет список "Open Documents". Зачастую, он используется просто для закрытия ненужных табов.

У меня, как правило, структурное разбиение проекта соответствует структуре файлов и директорий проекта на диске, поэтому я активно использую список "File System".

И последнее, но для меня это на первом месте, - при работе со списком "Open Documents" у меня тупо уставали глаза. Также отмечу, что список не позволяет отсортировать файлы в соответствии с вашими предпочтениями.

Резюме: чтобы учесть желания всех, нужны отключаемые табы (как в QtAssistant).


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июль 05, 2012, 08:44
Я бы ещё предложил (это касается и списков, и табов) ориентироваться не на открытые файлы, а на модули. В данном контексте модуль - это связка cpp + h (ну или один из них, если не имеет напарника). Сейчас в QtCreator между файлом исходников и файлом заголовков можно переключаться по клавише F4. И на мой взгляд незачем их обоих показывать одновременно. Экономия места.


Название: Re: Допиливаем Qt Creator
Отправлено: Bepec от Июль 05, 2012, 08:50
alexis031182 % на 50 я с вами согласен. Но это надо опробывать и посмотреть, как будет - удобно или нет :)


Название: Re: Допиливаем Qt Creator
Отправлено: Akon от Июль 05, 2012, 08:57
В системах, основанных на инклюдах (как С/С++), нет понятия "модуль". Например, добавьте к вашим *.h и *.cpp еще файлы *_p.h - приватные заголовки, *.inl - включаемые реализации (часто шаблонов) и т.д.


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июль 05, 2012, 09:03
Я в Borland Builder (не помню, в какой версии) с этой штукой познакомился. В Visual C IDE она наверное тоже имеется, но мне эта среда разработки никогда не нравилась. Так вот, сначала показалось неудобно, но за очень короткое время обвыкся на столько, что эта примочка стала казаться неотъемлемой частью, необходимой любой IDE. Как-то она интуитивно понятна. Ведь чтобы въехать, что открыты исходники или заголовки достаточно одного взгляда. Да и на табе (списке) всегда висит имя файла.


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июль 05, 2012, 09:08
В системах, основанных на инклюдах (как С/С++), нет понятия "модуль". Например, добавьте к вашим *.h и *.cpp еще файлы *_p.h - приватные заголовки, *.inl - включаемые реализации (часто шаблонов) и т.д.
Это не сильно противоречит обозначенному принципу работы. Такие файлы конечно могут открываться отдельно. А h и cpp могут быть единым целом, если имеют одинаковое имя.


Название: Re: Допиливаем Qt Creator
Отправлено: alexis031182 от Июль 05, 2012, 09:09
А Borland ещё выпускает свои IDE? Просто ностальжи вдруг накатило


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 05, 2012, 09:50
2 quiet_readonly,

а где твои наработки хранятся? Можно увидеть сорцы?
На твоих скриншотах какая версия креатора? Плагин сделан как плагин, или захардкожен?

PS: Дай исчерпывающую инфу.


Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Июль 05, 2012, 11:28
вопрос слегка не по табам/списку, а по сессиям: можно ли как-то сделать так, чтобы при открытии проекта по щелчку на файл .pro в проводнике или при выборе его из списка недавних в QtCreator'е последняя сессия восстанавливалась автоматически (как например в студии)? а то очень напрягает открывать креатор и жать default (last session). если нельзя – вот и ещё одно предложение для допиливания :)


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 06, 2012, 10:16
2 quiet_readonly,
а где твои наработки хранятся? Можно увидеть сорцы?
Тут вроде он вбрасывает коммиты: https://gitorious.org/+progorg-developers/qt-creator/progorg-developers-qt-creator

На твоих скриншотах какая версия креатора? Плагин сделан как плагин, или захардкожен?
Креатор из мастера, правда не совсем свежий ) Табы захардкожены вроде.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 06, 2012, 10:17
вопрос слегка не по табам/списку, а по сессиям: можно ли как-то сделать так, чтобы при открытии проекта по щелчку на файл .pro в проводнике или при выборе его из списка недавних в QtCreator'е последняя сессия восстанавливалась автоматически (как например в студии)? а то очень напрягает открывать креатор и жать default (last session). если нельзя – вот и ещё одно предложение для допиливания :)
Дело говоришь, я тоже как-то не нашёл автозагрузки. Надо записать.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 06, 2012, 11:59
Сейчас залил свежих коммитов из мастера оригинала. Стало вполне юзабельно.

Брать здесь:
https://gitorious.org/+progorg-developers/qt-creator/progorg-developers-qt-creator

Прикрепил скрины с новыми функциями.


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 06, 2012, 14:40
2navrocky,

ох, здорово!

А уменьшенный предпросмотр файла в этих изменениях есть (или как там оно называется) ?


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 06, 2012, 15:00
А уменьшенный предпросмотр файла в этих изменениях есть (или как там оно называется) ?
Этого пока нет. Появится автор - спросим )


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 06, 2012, 18:51
Тестирование выявило проблемы со свежей веткой master.  :( (какие-то глюки в дополнении и рефакторинге, не происходит запуск приложения на исполнение и отладку)

Думаю создать стабильную ветку и откатиться в ней до 2.5.0, и к ней применять наши правки.

Теперь у меня возник вопрос как это грамотно сделать в джите?





Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 06, 2012, 20:44
 Имхо сначала все эти правки нужно разбить на отдельные плагины. Т.к. там много чего свалено в одну кучу. Сделать отдельно табы. отдельно миниатюры отдельно полные пути и т.п.



Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 07, 2012, 11:58
Имхо сначала все эти правки нужно разбить на отдельные плагины. Т.к. там много чего свалено в одну кучу. Сделать отдельно табы. отдельно миниатюры отдельно полные пути и т.п.
Это как-то связано с моим предыдущим вопросом?

Табы и миниатюры надо в плагин, согласен. А вот полные пути - патч и не более.


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 07, 2012, 21:41
Цитировать
Табы и миниатюры надо в плагин, согласен.
В два плагина

Цитировать
А вот полные пути - патч и не более.
Да, скорее всего.

Тогда создай пока что-ли там два пустых проекта для двух плагинов табов и миниатюр.

Оффтоп: Также можно из Sublime некоторые фишки взять  :)


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 07, 2012, 22:25
Блин, как эта фича с миниатюрами называется по английски?

Отставить, отвечу сам себе: Minimap


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 09, 2012, 09:57
Я немного покодил и накодил отдельный шаблон для плагина Minimap.
Но мне необходим код для отображения этой самой миниатюры.

Дайте код вот от этого (http://dl.dropbox.com/u/86213541/prog.org.ru/ololo-creator.png) минимапа! :)




Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 09, 2012, 17:12
Цитировать
Дайте код вот от этого минимапа!

Отвечу сам себе, похоже что этот код взят отсюда (https://qt.gitorious.org/qt-creator/qt-creator/merge_requests/2189)

Но меня не устраивает эта реализация, т.к. минимап получается одноцветный.

У меня есть идея сделать его по аналогии с Sublime - с подсветкой синтаксиса.

В API креатора есть интерфейс IEditor, у которого есть метод duplicate(), который позволяет продублировать текущий открытый редактор и разместить его в любом виджете.

Так вот, я это могу сделать, но нужно как-то уменьшить размер этой копии редактора чтобы разместить все содержимое в Mimimap,
а также нужно как-то подсветить в Minimap текущую видимую область (окно) главного редактора, а остальное затемнить.

И вот это самое сложное.

Мож у кого есть иные идеи как можно Minimap сварганить?

Вот то что есть сейчас http://saveimg.ru/show-image.php?id=b267996da11b4c34bcfb804d9758d5eb


Название: Re: Допиливаем Qt Creator
Отправлено: Sancho_s_rancho от Июль 10, 2012, 09:16
Я бы пошел другим путем. Получал бы текстовый редактор и рисовал его содержимое в QPixmap. И сглаживать можно как угодно и выделять участки.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 12, 2012, 23:41
Скопировал наши коммиты в стабильную ветку 2.5. Теперь можно пользоваться. Мастер все-таки не стабилен, то одно не работает, то другое...


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июль 15, 2012, 18:19

Отвечу сам себе, похоже что этот код взят отсюда (https://qt.gitorious.org/qt-creator/qt-creator/merge_requests/2189)

Но меня не устраивает эта реализация, т.к. минимап получается одноцветный.

У меня есть идея сделать его по аналогии с Sublime - с подсветкой синтаксиса.

В API креатора есть интерфейс IEditor, у которого есть метод duplicate(), который позволяет продублировать текущий открытый редактор и разместить его в любом виджете.

Так вот, я это могу сделать, но нужно как-то уменьшить размер этой копии редактора чтобы разместить все содержимое в Mimimap,
а также нужно как-то подсветить в Minimap текущую видимую область (окно) главного редактора, а остальное затемнить.

И вот это самое сложное.

Мож у кого есть иные идеи как можно Minimap сварганить?

Вот то что есть сейчас http://saveimg.ru/show-image.php?id=b267996da11b4c34bcfb804d9758d5eb

Да, код оттуда. Подсветку можно было бы отрисовать - знать бы, как хранятся данные о цвете кусков текста; видел, что здесь (https://qt.gitorious.org/+progorg-developers/qt-creator/progorg-developers-qt-creator/blobs/master/src/plugins/cpptools/cppchecksymbols.cpp) они устанавливаются; класс Use непосредственно за это отвечает. Далее в цикле
Код
C++ (Qt)
for (uint j = 0; currBlock.firstLineNumber() <= endLine; ++j) {
   // ...
}
 
нужно лишь рисовать текст по кускам, вызывая mmPainter.setFont() перед каждым.

Однако, есть куда более страшная проблема - производительность. Сейчас рисование подвешено прямо на событие перерисовки; стоит потянуть колёсико мышки - и десяток перерисовок в секунду гарантирован. Даже без подсветки я замечал подлагивания на четырёхядерной машинке, с подсветкой будет неюзабельно. Собственно, действительно нужно рисовать в QPixmal, и то в другом потоке да не более чем раз в секунду.

Займусь этим если не сегодня, так завтра ;) Заодно и скролл-бар обычный надо будет скрыть.


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 15, 2012, 19:46
А нафига так делать? Можно же получить дубликат виджета редактора (который уже имеет подсветку и т.п.), нужно просто его разместить где нужно, уменьшить (зум), сделать только для чтения и всё. Также при смене темы, в минимапе она также будет меняться.

Просто фишка в том, что хардкодить нет смысла, если используются плагины, то нам доступно только публичное АПИ креатора, ИМХО.

Если интересно, я могу сюда приаттачить код плагина (который я делал для минимапа), в котором в принципе, я размещаю дубликат виджета редактора или слева или справа.. Но вот допилить его у меня нет времени и желания (имею ввиду уменьшить масштаб и т.п.).


Название: Re: Допиливаем Qt Creator
Отправлено: quiet_readonly от Июль 15, 2012, 23:09
Скопировал наши коммиты в стабильную ветку 2.5. Теперь можно пользоваться. Мастер все-таки не стабилен, то одно не работает, то другое...
Ах да, не могли бы вы поделиться опытом, как были смержены изменения из транка основного репозитория qt-project? Для меня git тоже не слишком понятен.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 15, 2012, 23:14
Скопировал наши коммиты в стабильную ветку 2.5. Теперь можно пользоваться. Мастер все-таки не стабилен, то одно не работает, то другое...
Ах да, не могли бы вы поделиться опытом, как были смержены изменения из транка основного репозитория qt-project? Для меня git тоже не слишком понятен.

Ну добавил origin на официальный реп, затем git pull creator-official, коммиты подлились, затем git push. Сам с горем пополам тоже разбираюсь )

Заходи в жабир, быстрее будем вопросы решать )

Сейчас единственная проблема, которую я не знаю как решить - когда я твои коммиты перетаскиваю в ветку 2.5, то, если возникает конфликт и его разрулить, теряется авторство.


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июль 16, 2012, 15:06
Думаю создать стабильную ветку и откатиться в ней до 2.5.0, и к ней применять наши правки.

Теперь у меня возник вопрос как это грамотно сделать в джите?
git checkout (для смены ветки) или git reset --hard (для отката назад внутри ветки) тебе поможет. Рекомендую сразу работать относительно 2.5.х, а не откатывать мастер (так как 2.5 включает ряд поздних изменений).

И не надо все изменения в одно место сваливать. Я про "русский в todo", "табы", "миниатюры" и пр. Их нужно делать раздельно (в разных ветках). Легче будет включить в основное дерево проекта.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 16, 2012, 17:59
git checkout (для смены ветки) или git reset --hard (для отката назад внутри ветки) тебе поможет. Рекомендую сразу работать относительно 2.5.х, а не откатывать мастер (так как 2.5 включает ряд поздних изменений).
Ну так я и делаю. Переключился на ветку 2.5 и наши коммиты туда вбросил.

И не надо все изменения в одно место сваливать. Я про "русский в todo", "табы", "миниатюры" и пр. Их нужно делать раздельно (в разных ветках). Легче будет включить в основное дерево проекта.
Если функционал размазать по веткам, то как потом пользоваться? И поддерживать N веток гораздо сложнее чем одну. Может есть какой-то способ группировать коммиты, чтобы потом быстро найти нужный ряд коммитов и что-то с ним сделать.? Тэги подойдут?


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 16, 2012, 20:45
Цитировать
Тэги подойдут?
Нет.

Цитировать
Если функционал размазать по веткам, то как потом пользоваться?
Для минимапа и табов сделать два отдельных плагина и пользоваться.
Плагины пока можно сделать отдельными проектами, а в будущем, когда они дойдут до кондиции,
то их можно вмержить в текущий Git креатора и представить на Gerrit.
В чем проблема?

Для остальных фич, фиксы сгруппировать по функциональности и сделать отдельные ветки для них,
и аналогично, когда дойдут до кондиции то в Gerrit хлопцам показать.

Приаттачиваю набросок плагина с минимапом, а также картинки, что получилось (предварительно).




Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 16, 2012, 20:48
Вот еще


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 16, 2012, 23:04
kuzulis, может на gitorious зальешь? Наша группа в шапке указана )


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 17, 2012, 10:51
Не, ты ж там рулишь - вот и залей исходники, я для этого и выложил их на форум. Или добавь меня в группу чтобы я там создал проект плагина.

Аналогично исходникам плагина минимапа можно сделать и плагин табов, где просто размещать виджеты редактора в табах, т.е. подсовывать в качестве центрального виджета таббар. Тем самым можно реализовать фичу типа drag&drop, когда мы мышой можем зацепить любую вкладку и переместив ее куда нить, создать отдельное окно. :)

В принципе, шаблон табов у меня тоже есть, но он самый самый простой, ничего не делает еще...  ::)


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 17, 2012, 11:52
Не, ты ж там рулишь - вот и залей исходники, я для этого и выложил их на форум. Или добавь меня в группу чтобы я там создал проект плагина.
Добавил в группу )

https://gitorious.org/+progorg-developers

Аналогично исходникам плагина минимапа можно сделать и плагин табов, где просто размещать виджеты редактора в табах, т.е. подсовывать в качестве центрального виджета таббар. Тем самым можно реализовать фичу типа drag&drop, когда мы мышой можем зацепить любую вкладку и переместив ее куда нить, создать отдельное окно. :)

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

А я сейчас пока пытаюсь в gerrit протолкнуть свой коммит.


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 17, 2012, 13:24
Все, добавил проект Минимапы https://gitorious.org/qt-creator-minimap-plugin


Название: Re: Допиливаем Qt Creator
Отправлено: VPS от Июль 20, 2012, 19:23
Здравствуйте, решил немного допилить креатор под себя.
Задача заключалась в том, чтобы при закрытии проекта также закрывались открытые документы, являющиеся его частью... Хотел оформить решение в виде отдельного плагина, но пока не могу понять как...
Вместо этого нашёл в исходниках самого креатора место (файл "projectexplorer.cpp"), где внес небольшое изменение.
А именно:
Код:
void ProjectExplorerPlugin::unloadProject()
{
    if (debug)
        qDebug() << "ProjectExplorerPlugin::unloadProject";

    if (buildManager()->isBuilding(d->m_currentProject)) {
        QMessageBox box;
        QPushButton *closeAnyway = box.addButton(tr("Cancel Build && Unload"), QMessageBox::AcceptRole);
        QPushButton *cancelClose = box.addButton(tr("Do Not Unload"), QMessageBox::RejectRole);
        box.setDefaultButton(cancelClose);
        box.setWindowTitle(tr("Unload Project %1?").arg(d->m_currentProject->displayName()));
        box.setText(tr("The project %1 is currently being built.").arg(d->m_currentProject->displayName()));
        box.setInformativeText(tr("Do you want to cancel the build process and unload the project anyway?"));
        box.exec();
        if (box.clickedButton() != closeAnyway)
            return;
        buildManager()->cancel();
    }

    Core::IDocument *document = d->m_currentProject->document();

    if (!document || document->fileName().isEmpty()) //nothing to save?
        return;

    QList<Core::IDocument*> documentsToSave;
    documentsToSave << document;
    bool success = false;
    if (document->isFileReadOnly())
        success = Core::DocumentManager::saveModifiedDocuments(documentsToSave).isEmpty();
    else
        success = Core::DocumentManager::saveModifiedDocumentsSilently(documentsToSave).isEmpty();

    if (!success)
        return;

    addToRecentProjects(document->fileName(), d->m_currentProject->displayName());

    //========================= НАЧАЛО КОДА ================================

    //почему-то при вызове Core::ICore::editorManager()->closeEditors(editors)
    //меняется текущий проект.
    //поэтому данный вызов приходится делать здесь, а не ниже

    QStringList filesList(currentProject()->files(Project::AllFiles));

    //========================= КОНЕЦ КОДА =================================

    d->m_session->removeProject(d->m_currentProject);
    updateActions();

    //========================= НАЧАЛО КОДА ================================

    QList<Core::IEditor*> editors;

    foreach(QString file, filesList)
    {
        editors << Core::ICore::editorManager()->editorsForFileName(file);
    }

    if(!Core::ICore::editorManager()->closeEditors(editors))
        return; // Action has been cancelled

    //========================= КОНЕЦ КОДА =================================
}


П.С.: изменения находятся между комментариями "НАЧАЛО КОДА" и "КОНЕЦ КОДА"

Сам считаю, что внесение изменений в код самого креатора - не очень хороший тон. Может кто-нибудь подскаажет, как можно реализовать данную задачу с использованием отдельного плагина?


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 20, 2012, 19:36
Ну для плагина здесь как-то маловато смысла, да и кроме как патчем здесь ничем не обойтись.

Тут главное, чтобы это была опциональная штука (в настройках можно было бы включать и выключать).

Допили опцию в диалог настройки и я включу твой патч к нам.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 20, 2012, 19:57
Первый win: https://codereview.qt-project.org/#change,30572  :D

Поздравляю Сергея!


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июль 20, 2012, 20:46
Тут главное, чтобы это была опциональная штука (в настройках можно было бы включать и выключать).
Настройку предлагаю следующего вида: При закрытии проекта закрывать открытые документы: Никогда, Спросить, Всегда.


Название: Re: Допиливаем Qt Creator
Отправлено: VPS от Июль 22, 2012, 00:17
Ну для плагина здесь как-то маловато смысла, да и кроме как патчем здесь ничем не обойтись.

Тут главное, чтобы это была опциональная штука (в настройках можно было бы включать и выключать).

Допили опцию в диалог настройки и я включу твой патч к нам.

Всё-таки получилось вынести функциональность в отдельный плагин, т.е. не надо менять исходники креатора... :D
На счёт настроек: Вы имеете в виду вынос настройки в Core::IOptionsPage?


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Июль 22, 2012, 22:48
Лично я не уверен в необходимости делать из этого отдельный плагин. Не стоит оно того. А про опции ты правильно понял. Думаю, в общем разделе ей самое место


Название: Re: Допиливаем Qt Creator
Отправлено: VPS от Июль 23, 2012, 02:22
Лично я не уверен в необходимости делать из этого отдельный плагин. Не стоит оно того.

Уже сделал в виде плагина (что и планировал)...
Настройку поместил  в меню: "Tools" -> "Project Files" и уже в нём чекбокс с возможностью выбора вкл/откл опции...

Варианты работы:
а. если все файлы сохранены, то  при закрытии проекта все они закрываются.
б. если есть не сохранённые файлы, то при закрытии проекта будет стандартное меню с вопросом о сохранении (Сохранить,  Не сохранять, Отмена). При выборе "Сохранить" или "Не сохранять" все файлы закроются (с сохранением или нет). При выборе "Отмена" - файлы останутся открытыми.

П.С.: крайняя версия исходников плагина доступна на bitbucket.org вот здесь (https://bitbucket.org/vps2/closeprojectfiles.git).



Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Июль 23, 2012, 15:49
все названия вроде нормальные, вот только попался один комментарий в интересной форме в closingfilesobject.cpp:62
Код
C++ (Qt)
// Action has been cancelled*/

попробую исправить выпадающий список методов для мак ос – сейчас он у меня вылезает за пределы экрана если не влезает по высоте, а также при этом первый метод в списке выбирается автоматом почему-то. у кого-то еще такое наблюдается?


Название: Re: Допиливаем Qt Creator
Отправлено: VPS от Июль 23, 2012, 16:20
kambala, этот комментарий сейчас на самом деле лишний...
Просто он был скопирован из самих исходников, где вызывался диалог сохранения файлов...
По поводу названий методов и классов, они точно нормальные?
Мне например, не совсем нравится название класса "ClosingFilesObject", но вот только ничего другого не смог придумать...

По поводу выпадающего списка методов и т.п. (если я правильно понял о чём вы): у меня на Windows с ним проблем не возникает. Вот только иногда хочется изменить его размеры (как в C++ Builder 6) , например, чтобы влезло всё название метода... А этот список не даёт такой возможности...




Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Июль 23, 2012, 16:24
в винде с ним проблем и у меня нет, а вот в мак ос (во льве точно, в снежном барсе не помню) – есть

upd: а CloseFilesManager устраивает? и ещё я бы переименовал пункт меню на «Close Project Files Together With Project»

upd 2: VPS, а как правильно встроить твой плагин в креатор (раньше с плагинами вообще дел не имел)? засунул твою папку в progorg-developers-qt-creator\src\plugins, добавил в plugins.pro: plugin_closeprojectfiles в SUBDIRS и
Код:
plugin_closeprojectfiles.subdir = closeprojectfiles
plugin_closeprojectfiles.depends = plugin_projectexplorer
plugin_closeprojectfiles.depends += plugin_coreplugin
в конец файла, компиляция не прошла. выкинул из closeprojectfiles.pro строки
Код:
QTCREATOR_SOURCES = C:/Programs/Qt/qtcreator-2.5.0-src
IDE_BUILD_TREE = C:/Programs/Qt/qtcreator-2.5.0
и заменил include($$QTCREATOR_SOURCES/src/qtcreatorplugin.pri) на include(../../qtcreatorplugin.pri), а также closeprojectfiles_dependencies.pri привёл к виду
Код:
include(../../plugins/coreplugin/coreplugin.pri)
include(../../plugins/projectexplorer/projectexplorer.pri)
теперь всё равно вываливается ошибка
Код:
16:45:06: Starting: "C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe" 
cd src\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
cd libs\aggregation\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd libs\extensionsystem\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd app\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd libs\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
cd 3rdparty\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
cd botan\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
cd src\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd utils\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd utils\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.process_stub
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.process_stub.Debug
cd languageutils\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd symbianutils\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd cplusplus\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd qmljs\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd qmljsdebugclient\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd glsl\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd qmleditorwidgets\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd qtcomponents\styleitem\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd zeroconf\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd utils\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.process_ctrlc_stub
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.process_ctrlc_stub.Debug
cd plugins\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
cd coreplugin\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd debugger\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.dumper
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.dumper.Debug
cd locator\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd find\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd imageviewer\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd resourceeditor\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
cd closeprojectfiles\ && C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile
c:\Programming\Qt\4.8.2-msvs2010\bin\qmake.exe -spec c:\Programming\Qt\4.8.2-msvs2010\mkspecs\win32-msvc2010 CONFIG+=declarative_debug -o Makefile ..\..\..\..\progorg-developers-qt-creator\src\plugins\closeprojectfiles\closeprojectfiles.pro
C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe -f Makefile.Debug
link /LIBPATH:"c:\Programming\Qt\4.8.2-msvs2010\lib" /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /DLL /MANIFEST /MANIFESTFILE:"debug\CloseProjectFilesd.intermediate.manifest" /OUT:..\..\..\lib\qtcreator\plugins\VPS\CloseProjectFilesd.dll @C:\Users\User\AppData\Local\Temp\CloseProjectFilesd.dll.8968.47.jom
LINK : fatal error LNK1104: cannot open file 'TextEditord.lib'
jom: D:\Programming\Qt\QtCreator\qtcreator-build-desktop-Qt_4_8_2__4_8_2-msvs2010__Debug\src\plugins\closeprojectfiles\Makefile.Debug [..\..\..\lib\qtcreator\plugins\VPS\CloseProjectFilesd.dll] Error 1104
jom: D:\Programming\Qt\QtCreator\qtcreator-build-desktop-Qt_4_8_2__4_8_2-msvs2010__Debug\src\plugins\closeprojectfiles\Makefile [debug] Error 2
jom: D:\Programming\Qt\QtCreator\qtcreator-build-desktop-Qt_4_8_2__4_8_2-msvs2010__Debug\src\plugins\Makefile [sub-closeprojectfiles-make_default] Error 2
jom: D:\Programming\Qt\QtCreator\qtcreator-build-desktop-Qt_4_8_2__4_8_2-msvs2010__Debug\src\Makefile [sub-plugins-make_default-ordered] Error 2
jom: D:\Programming\Qt\QtCreator\qtcreator-build-desktop-Qt_4_8_2__4_8_2-msvs2010__Debug\Makefile [sub-src-make_default-ordered] Error 2
16:45:13: The process "C:\Programming\Qt\qtcreator-2.5.0\bin\jom.exe" exited with code 2.
Error while building/deploying project qtcreator (target: Desktop)
When executing step 'Make'
что ещё надо сделать?

upd 3: а в режиме релиз собралось :)


Название: Re: Допиливаем Qt Creator
Отправлено: VPS от Июль 23, 2012, 18:19
Я тоже до этого не имел дела с плагинами...

В .pro файле данные переменные:

1. QTCREATOR_SOURCES = C:/Programs/Qt/qtcreator-2.5.0-src
2. IDE_BUILD_TREE = C:/Programs/Qt/qtcreator-2.5.0

это переменные указывающие путь:
1. к исходникам креатора
2. к билду креатора

Использовал их потому, что у меня исходники плагина лежат на другом диске в каталоге с проектами.
Если вы решили их убрать, то еще зависимости прописаны в .pri файле.

А также, если собираете плагин в отладочной версии креатора, то и сам проект должен был отладочным, т.е. тип билда должен соответствовать билду креатора.

И еще, изначально в .pro файле (в самом конце) была строчка: LIBS += -L$$IDE_PLUGIN_PATH/Nokia
Но у меня без неё всё собралось (использую MinGW).


П.С.: Можете в самом креаторе создать свой проект плагина (New Project -> Libraries -> Qt Creator plugin) и посмотрите чего у вас там будет в .pro файле...



Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Июль 25, 2012, 21:19
как-то эти ваши табы криво работают – периодически пытаются закрыть/закрывают не тот файл, на который жмёшь. вот например только что закрыл несколько файлов из open documents, потом закрыл один из табов (нормально), а сейчас при попытке закрыть соседний с текущим табом он пытается закрыть мой текущий (хорошо хоть предлагает сохранить изменения). если перейти на этот другой таб, то картина та же.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Июль 25, 2012, 22:07
Я тоже это заметил - http://develplace.dyndns.org/issues/51


Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Июль 26, 2012, 10:47
попробую исправить выпадающий список методов для мак ос – сейчас он у меня вылезает за пределы экрана если не влезает по высоте, а также при этом первый метод в списке выбирается автоматом почему-то. у кого-то еще такое наблюдается?
судя по всему, это баг системы 10.7, потому что он проявляется и в тестовом проекте (надо добавить столько элементов, чтобы не влезали на экран, а также сделать ширину комбобокса примерно на треть экрана), а вот на системах 10.6 и 10.8 никаких проблем не замечено.

а что надо сделать с собраным креатором в винде, чтобы отладчик (cdb) заработал (в станднартном креаторе всё работает)? при запуске проекта в режиме отладки приложение сразу же завершается.

добавлено: ещё по поводу табов. только сейчас заметил, что в контекстном меню всегда предлагается закрыть текущий таб, а не тот, на который ты щёлкнул. и неплохо было бы добавить закрытие таба по двоймному щелчку и/или щелчку колёсиком.


Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Август 09, 2012, 13:33
как заставить дебаггер работать? Windows 7 x64, msvs 2010, cdb, в установленном креаторе он работает.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Август 09, 2012, 16:10
хзхз, таким набором не пользуюсь (


Название: Re: Допиливаем Qt Creator
Отправлено: LisandreL от Август 15, 2012, 09:25
А как у этих сборок со стабильностью?
Пробовал ставить оригинальный 2.5. Он переодически падает без показа какой либо ошибки (предположительно на показе подсказки).


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Август 15, 2012, 09:35
Всё стабильно, уже пару недель на нем сижу. В общем-то и изменения там небольшие )


Название: Re: Допиливаем Qt Creator
Отправлено: xokc от Август 16, 2012, 09:36
Пробовал ставить оригинальный 2.5. Он переодически падает без показа какой либо ошибки (предположительно на показе подсказки).
Кстати да. Периодически молча умирает. Но я связи с подсказкой не замечал.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Август 16, 2012, 10:37
Ни разу не падал. Какая у вас конфигурация?


Название: Re: Допиливаем Qt Creator
Отправлено: xokc от Август 17, 2012, 14:45
Мне казалось, что падает после восстановления из hibernate, когда большой проект открыт в QtCreator достаточно долгое время (несколько суток) причем как-то умирает мгновенно безо всякого на то повода. Появилось начиная с 2.5. Сейчас на 2.5.2 пока не наблюдаю, но статистики мало. В принципе, при наличии сессий и достаточно редких вылетах это не сильно напрягает.

Windows 7 x64 + Qt 4.8.1 MinGW, 4.8.2 MSVS2010 x86, 4.8.2 MSVS2010 x64.


Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Август 23, 2012, 17:24
как заставить дебаггер работать? Windows 7 x64, msvs 2010, cdb, в установленном креаторе он работает.
разобрался открыв debugger log (переключиться на отладочный вид - Window - Views - Debugger Log):
Цитировать
ERROR: Internal error: The extension D:\Programming\Qt\QtCreator\qtcreator-build-desktop-Qt_4_8_2__4_8_2-msvs2010__Release\lib\qtcreatorcdbext32\qtcreatorcdbext.dll cannot be found.
скопировал папку qtcreatorcdbext32 и всё завелось.

и заодно наконец-то узнал где можно вводить команды дебаггеру когда стоишь на брейкпоинте :) (в том же debugger log)

P.S. креатор ни разу не падал «просто так»


Название: Re: Допиливаем Qt Creator
Отправлено: m0rph от Ноябрь 16, 2012, 22:25
Всем привет! Где-то около года назад я сделал небольшой патч для QtCreator, позволяющий настраивать синтаксическую подсветку для POD типов отдельно от всех остальных ключевых слов C++. Не так давно набрел на эту тему и думаю, что моя работа вполне соответствует этому проекту, поэтому если она кому-то интересна, подскажите куда можно прислать патч.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Ноябрь 16, 2012, 23:05
В каком виде он у тебя? Кидай сюда или регайся на gitorious.


Название: Re: Допиливаем Qt Creator
Отправлено: m0rph от Ноябрь 16, 2012, 23:34
Прикрепляю. Патч адаптирован для версии 2.6.0


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Ноябрь 17, 2012, 11:19
А вообще лучше бы ты создал собственный клон на gitorious и туда запихнул бы эту правку. Если это буду делать я то потеряется твое авторство.

Или можешь вступить в нашу группу, тогда можешь коммитить прямо в нужную ветку. Потом я буду отправлять твой патч, если он хорош, на gerrit для включения в основной код креатора.


Название: Re: Допиливаем Qt Creator
Отправлено: m0rph от Ноябрь 17, 2012, 11:37
А каким образом можно вступить в группу? Есть у меня одна задумка по поводу креатора, может быть займусь ей в будущем в свободное время.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Ноябрь 17, 2012, 12:30
Регайся на gitorious.org, сообщи мне свой username, я добавлю в группу.


Название: Re: Допиливаем Qt Creator
Отправлено: b-s-a от Ноябрь 18, 2012, 23:19
Может сразу зарегистрироваться на codereview.qt-project.org и отправить патч на рассмотрение? В 2.6 не примут с вероятностью 99,9%. А вот в мастер шансов значительно больше.


Название: Re: Допиливаем Qt Creator
Отправлено: navrocky от Ноябрь 18, 2012, 23:21
Ну я попробую отправить, как только обкатаю. Еще у меня один свой патчик есть до кучи.


Название: Re: Допиливаем Qt Creator
Отправлено: Fregloin от Апрель 08, 2013, 16:30
Привет, написал прожку, которая фиксит pro-файл, после того, как содержимое папки/подпапок поменялось: например нужно было группы файлов h/cpp переместить в другие каталоги и т.п.
каждый раз править pro файл меня напрягло, да и через ProjectExplorer я не понял как переносить файлы в другие каталоги. А мне иногда приходится таким заниматься.
Так вот, прогжка сканирует pro файл, а потом на его основе сканирует файловую систему и обновляет pro файл на основе текущих данных. Может кому то пригодится? Хотел оформить в качестве плагина, но пока не разобрался как это сделать.


Название: Re: Допиливаем Qt Creator
Отправлено: Avazart от Май 18, 2013, 20:58
Пишу свой плагин для QtCtreator.

Суть  работы плагина отображать все "зависимости от DLL"  текущего открытого проекта и при необходимости скопировать все DLL в папку с exe  проекта - т.е. для удобства "переноса приложения на другие компьютеры."

Вопрос : как получить из  плагина полный путь к исполняемому файлу  exe  текущего открытого проекта, текущей сборки ( debug/release ) ?


На данный момент готово : http://www.youtube.com/watch?feature=playe...p;v=vyqmNb5sQ2Y (http://www.youtube.com/watch?feature=player_embedded&v=vyqmNb5sQ2Y)

Но  путь определяется не совсем верно, может кто подскажет как точно определить этот путь ?


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Май 18, 2013, 21:45
Цитировать
Вопрос : как получить из  плагина полный путь к исполняемому файлу  exe  текущего открытого проекта, текущей сборки ( debug/release ) ?

Код
C++ (Qt)
...
QList<BuildConfiguration *> list = project->activeTarget()->buildConfigurations();
...
foreach(BuildConfiguration *bc, list) {
   if (bc->buildType == BuildConfiguration::Release) {
       QString buildDirectory = bc->buildDirectory(); // < путь к директории сборки
       QString projectName = project()->displayName(); // < это должно быть имя исполняемого файла (без расширения), хотя могу ошибаться
 
       // Ну и далее скомбинируй путь к директории сборки и имя файла через QFileInfo
       // и получишь полный путь к исполняемому файлу
   }
}
 

Как то так


Название: Re: Допиливаем Qt Creator
Отправлено: Avazart от Май 18, 2013, 22:17
В принципе оно сейчас так и делается :

Код:
void DLLCollectorPlugin::triggerAction()
{
     ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
     QObject* obj= pm->getObjectByClassName(tr("ProjectExplorer::ProjectExplorerPlugin"));
     ProjectExplorer::ProjectExplorerPlugin* pep= dynamic_cast<ProjectExplorer::ProjectExplorerPlugin*>(obj);
     ProjectExplorer::Project* project= pep->currentProject();
     ProjectExplorer::Target* target= project->activeTarget();
 
     QString buildDir = target->activeBuildConfiguration()->buildDirectory();
     QString displayName= target->activeRunConfiguration()->displayName();
 
     Utils::Environment envir= target->activeBuildConfiguration()->environment();
 
     QString QtDir = envir.value(tr("QTDIR"));
 
     PluginWidget*w = new PluginWidget;
 
     w->setDirs(QtDir,buildDir,tr("C:/Windows"));
     w->setDisplayName(displayName);
 
     w->show();
}

Внутри виджета уже соединяется buildDir и displayName
Код:
ui->lineEditName->setText(ui->lineEditBuild->text()+QDir::separator()+file+tr(".exe"));

Но теряется еще одна директория ...

К примеру :

buildDirectory()- даёт "C:/Users/fujitsu/Documents/QtCreator/test/build-test-MSVC-Debug"
displayName()  - дает  "test"

А реальный путь :

C:/Users/fujitsu/Documents/QtCreator/test/build-test-MSVC-Debug/debug/test.exe



Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Май 18, 2013, 22:56
Я понял. Но это скорее всего какие-то заморочки с параметрами QMake.

Вполне возможно, что что-то можно вытащить из RunConfiguration->workingDirectory. Посмотри по сорсникам.

UPD: Там есть в Run панели проекта полный путь к исполняемому файлу.
Что-то типа RunConfiguration->executable(). Глянь в общем сорцы.

UPD2: См.

Код
C++ (Qt)
QString Qt4RunConfiguration->executable() const;


Название: Re: Допиливаем Qt Creator
Отправлено: Avazart от Май 18, 2013, 23:53
Ага вот нашел

http://wiki.ifba.edu.br/apidoc/qtcreator/html-dev/projectexplorer-localapplicationrunconfiguration.html#executable

Код:
#include <projectexplorer/localapplicationrunconfiguration.h>

ProjectExplorer::LocalApplicationRunConfiguration* larc=
             dynamic_cast<ProjectExplorer::LocalApplicationRunConfiguration*>(target->activeRunConfiguration());

QString exeFileName= larc->executable();

P.S. Спасибо  за помощь !


Название: Re: Допиливаем Qt Creator
Отправлено: kuzulis от Июль 07, 2013, 11:01
Парни, никто не видел плагина для QtCreator, с помощью которого в процессе отладки можно было бы увидеть (или раскрыть) содержимое переменной при наведении на нее мышкой.. Как в студии.. ?

UPD: Хотя, в QtCreator ( по крайней мере в v 2.8 ) есть что-то похожее - но шибко неудобное и глючное..

Код:
Tools->Debugger->General->[x] Use tooltips in main editor while debugging

Минусы:

* при наведении на какой-нить член структуры, его значение не показывается, а показывается сама структура с треугольничком, который нужно раскрыть - и тогда только можно увидеть все ее переменные!

* не всегда при наведении показывается этот тоолтип!

Блин, неудобно то как..


Название: Re: Допиливаем Qt Creator
Отправлено: kambala от Июль 07, 2013, 14:24
да, в студии это получше сделано, но 2012 студия наотрез отказывается нормально показывать содержимое QString и разных Qt контейнеров :(

чтобы не наводить мышкой на переменные и потом беситься что тултип закрылся, проще использовать соответствующее док-окно :)