Russian Qt Forum
Ноябрь 23, 2024, 15:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Плагин, добавляющий табы в QtCreator  (Прочитано 14536 раз)
snasoft
Гость
« : Март 22, 2014, 14:35 »


Тема вкладок для QtCreator неоднократно поднималась на многих форумах. В частности предлагалось решение с модификацией кода самого Qt Creator на prog.org.ru , был плагин Editor tabs (ныне не поддерживаемый и не совместимый с текущей версией QtCreator) , вопрос поднимался на  qt-project.org.
Сам когда-то собирал QtCreator из исходников для поддержки табов (спасибо prog.org.ru), но вскоре прекратил эту практику (при выпуске нового QtCreator приходилось заново пересобирать его). Но вот недавно получил решение в виде плагина, который решает вопрос с табами без необходимости пересборки QtCreator (так как обладает совместимостью с новыми версиями).
Выношу этот плагин на суд общественности, надеюсь он будет полезен. Пожалуйста, пишите все замечания и предложения (в том числе по идеям о создании новых плагинов).

Ссылки:
1. Страница проекта на Sourceforge.net QtCreator Tabbed Editor Plugin (если Вам понравился плагин, то искренне прошу проголосовать за него при наличии времени).
Для получения исходников:
Код
Bash
svn checkout svn://svn.code.sf.net/p/tabbededitor/src/trunk tabbededitor-src
2. Архивы с скомпилированным плагином QtCreator (версии 3.0.0 - 3.x.x ) для:

Windows (x32-x64)
Linux x64
Linux x32
Mac OS X

Для установки плагина содержимое архива необходимо распаковать в директорию, где располагаются плагины:
для Windows обычно C:\Qt\Tools\QtCreator\lib\qtcreator\plugins.
для Lunux-based систем  /home/username/Qt5.2.0/Tools/QtCreator/lib/qtcreator/plugins при установке Qt в директорию пользователя. Или как вариант /opt/Qt5.2.0/Tools/QtCreator/lib/qtcreator/plugins (устанавливалось на Ubuntu).
3. Статья на habrahabr.ru с более подробным описанием Плагин, добавляющий табы в QtCreator

С уважением, Андрей.
« Последнее редактирование: Март 23, 2014, 13:21 от snasoft » Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #1 : Март 22, 2014, 18:36 »

Есть возможность сборки для QtCreator 2.8 ?
Записан

snasoft
Гость
« Ответ #2 : Март 22, 2014, 18:41 »

Поддержка старых версий не предполагалась (и не изучалась), но вы можете самостоятельно собрать плагин, внеся соответствующие изменения (при необходимости).
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Март 22, 2014, 19:13 »

был какой-то плагин и для 2.х, даже у нас на форуме обсуждался
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
snasoft
Гость
« Ответ #4 : Март 22, 2014, 19:50 »

был какой-то плагин и для 2.х, даже у нас на форуме обсуждался
Возможно этот? Editor Tabs
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Март 22, 2014, 20:25 »

нет, другой: http://gitorious.org/qt-creator-tabs

а вот и тема: http://www.prog.org.ru/topic_18970_0.html
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
snasoft
Гость
« Ответ #6 : Март 22, 2014, 20:31 »

Цитата: kambala
был какой-то плагин и для 2.х, даже у нас на форуме обсуждался
Это не плагин, это ветка QtCreator, в которой изменены исходники самого QtCreator. Ссылка на эту тему указана в первом сообщении.
Цитировать
В частности предлагалось решение с модификацией кода самого Qt Creator на prog.org.ru
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Март 22, 2014, 21:03 »

прочитал первый пост по диагонали и не заметил Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
snasoft
Гость
« Ответ #8 : Март 23, 2014, 13:24 »

Обновил плагин до версии 0.0.2:

исправлена недоработка, при которой после сохранения файла он продолжает помечаться * (как модифицированный). Случай возникал при автосохранении перед запуском сборки;
— теперь цвет берется из настроек цветовой схемы самого QtCreator'a (пример на рисунке), после смены настроек цветов необходимо перезапустить QtCreator (чтобы изменения затронули и табы);
— скроллер (элемент прокрутки табов, когда они не помещаются все одновременно) сделан непрозрачным;
— удалил весь отладочный вывод.

Исходники в репозитории и архивы обновлены для всех систем за исключением Mac OS X (пока только версия 0.0.1).
Ссылки в первом сообщении на архивы с скомпилированными плагинами теперь указывают не на файлы архивов, а на директории для загрузки под конкретную систему (сделано чтобы каждый раз не редактировать ссылки на загрузку).
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #9 : Март 23, 2014, 16:20 »

когда переключаешся на *.ui вкладки соответственно не видны. ((
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
snasoft
Гость
« Ответ #10 : Март 23, 2014, 17:21 »

когда переключаешся на *.ui вкладки соответственно не видны. ((
Насколько я понимаю при переключении на *.ui задействуется уже другой режим: "design", и в рабочей области отображается тот же Designer. Лично мне кажется неудобным, что при переходе в Edit после работы с формой в режиме Design отображается XML содержимое файла *.ui. Зачем оно, ведь напрямую этот файл все равно нельзя редактировать (вроде предполагается, что он автоматически генерируется Designer'ом). Но в то же время для *.ui в режиме Edit создается вкладка, то есть в режиме Edit представление формы - это текстовое представление формы (XML файл), а в режиме Design - графическое. Теоретически возможно добавить табы (если позволит Api) поверх Designer'а, но тогда в режиме Design вкладка для ui будет открывать соответствующую форму а в режиме Edit - xml файл, в то же время вкладки с *.cpp *.h  в режиме Design будут переводить в режим Edit и отображать эти файлы. Как то так.

P.S. Спасибо Вам за интересную идею дальнейшего развития плагина.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #11 : Март 23, 2014, 17:35 »

когда переключаешся на *.ui вкладки соответственно не видны. ((
Насколько я понимаю при переключении на *.ui задействуется уже другой режим: "design", и в рабочей области отображается тот же Designer. Лично мне кажется неудобным, что при переходе в Edit после работы с формой в режиме Design отображается XML содержимое файла *.ui. Зачем оно, ведь напрямую этот файл все равно нельзя редактировать (вроде предполагается, что он автоматически генерируется Designer'ом). Но в то же время для *.ui в режиме Edit создается вкладка, то есть в режиме Edit представление формы - это текстовое представление формы (XML файл), а в режиме Design - графическое. Теоретически возможно добавить табы (если позволит Api) поверх Designer'а, но тогда в режиме Design вкладка для ui будет открывать соответствующую форму а в режиме Edit - xml файл, в то же время вкладки с *.cpp *.h  в режиме Design будут переводить в режим Edit и отображать эти файлы. Как то так.

P.S. Спасибо Вам за интересную идею дальнейшего развития плагина.
Оу, а владеешь внутренней структурой API креатора и умеешь интегрировать в него разные вещи?
Прикольно. А вот я пока не докопался. ((
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
snasoft
Гость
« Ответ #12 : Март 23, 2014, 18:17 »

Цитата: panAlexey
владеешь внутренней структурой API креатора и умеешь интегрировать в него разные вещи?

да как сказать владею... вот надо было узнать как отследить - модифицирован файл или нет (чтобы звездочку подрисовывать или убирать). Смотрю в списке файлов в панельке (где и обозначается * в самом QtCreator) есть элемент "<no document>" - явно он статический и "translatable", запускаю поиск этой строки по исходникам QtCreator, нахожу для какого элемента интерфейса это значение задается, потом по имени этого элемента ищу, где он используется (модифицируется), там же нахожу метод isModified() и код для использования модели документов (вроде DocumentModel, как то так). Как таковой серьезной документации для Api все равно ведь нет.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #13 : Март 23, 2014, 22:23 »

Ох, сколько умов билось об эту задачу, сколько калорий сожжено..  Улыбающийся

В любом случае, желаю успеха в твоем начинании... Возможно, хоть у тебя получится довести это до ума..

ЗЫ:

Я плагин еще не смотрел, но сходу, вопросики:

1. Есть ли где-нить в настройках креатора галочка, для того чтобы можно было включать/отключать режим табов?
2. Можно ли кликнув и потянув мышкой за таб, перемещать его как отдельное окно? Например, переемстить на другой монитор, а потом обратно?


Записан

ArchLinux x86_64 / Win10 64 bit
snasoft
Гость
« Ответ #14 : Март 24, 2014, 18:43 »

Обновил плагин до версии 0.0.3.

  • теперь табы отображаются во всех режимах QtCreator (редактора, дизайнера, справки и др.) и расположены сразу под главным меню. Это позволяет переключаться к редактированию того или иного файла сразу из любого режима (в том числе из справочной системы, минуя переключение в режим Edit — данный режим включится автоматически).
  • еще одно улучшение: для форм (файлов *.ui) также появляется вкладка, при переходе на которую сразу отображается редактор формы.

Хотелось бы выразить благодарность пользователю panAlexey за идею этого обновления плагина.


2 kuzulis.
вопросики:
1. Есть ли где-нить в настройках креатора галочка, для того чтобы можно было включать/отключать режим табов?
2. Можно ли кликнув и потянув мышкой за таб, перемещать его как отдельное окно? Например, переемстить на другой монитор, а потом обратно?
1. Да, можно отключить: Help->About Plugins и убрать соответствующую галочку в столбце "Load" напротив плагина.
2. Нет, Drag and drop не поддерживается, но если вы для открытого файла выполните действие "Open In New Window" (ниспадающее меню слева от крестика закрытия файла), то для него откроется новое окно редактирования, которое можно переместить и развернуть на втором (третьем?) мониторе.


Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.241 секунд. Запросов: 23.