xintrea / mytetra_dev

MyTetra - smart crossplatform manager for information collecting / MyTetra - кроссплатформенный менеджер накопления информации / Официальная страница:
http://webhamster.ru/site/page/index/articles/projectcode/105
254 stars 55 forks source link

Сделан диалог выбора расположения кнопок (команд) на панелях инструментов редактора текста. #112

Closed DikBSD closed 5 years ago

DikBSD commented 5 years ago

Сделан диалог выбора расположения кнопок (команд) на панелях инструментов редактора текста.

  1. В диалог "Настройки редактора" добавлена вкладка "Keyboard", на которой размещена кнопка "Edit Toolbuttons", нажатие которой вызывает диалог "Toolbars settings".
  2. В диалоге "Toolbars settings" размещены контроллеры для отображения моделей всех доступных команд редактора (слева) и используемых команд обоих панелей (справа).
  3. Выбор редактируемой панели осуществляется контролом соответствующим контролов (справа сверху).
  4. Из модели всех доступных команд редактора команды можно перемещать на выбранную панель.
    • Самый верхний элемент модели - <SEPARATOR>. Он не удаляемый, т.е., при добавлении separator на панель используемых команд элемент <SEPARATOR> остается в модели всех доступных команд, поскольку разделителей может быть сколь угодно много на панели инструментов.
  5. Из модели используемых команд редактора выбранной панели инструментов команды можно перемещать:
    • в модель всех доступных команд;
    • вверх в пределах модели используемых команд выбранной панели;
    • вниз в пределах модели используемых команд выбранной панели; -- Для перемещения команды вверх/вниз сделана блокировка выхода за границы первого и последнего элемента модели.
  6. Все перемещения команд по моделям сопровождаются выделением и фокусировкой этих команд, чтобы можно было не выделять их мышкой, а быстрой пользоваться кнопками перемещения.
  7. Сделана информационная кнопка, нажатие на которую выдает сообщение-напоминание, куда вставляется команда.
  8. Для кнопок перемещения команд присвоены быстрые клавиши:
    • Для перемещения выделенной команды из модели всех доступных команд в модель используемых команд: "Alt+Right".
    • Для перемещения выделенной команды из модели используемых команд в модель всех доступных команд: "Alt+Left".
    • Для перемещения выделенной команды вверх в модели используемых команд: "Alt+Up".
    • Для перемещения выделенной команды вниз в модели используемых команд: "Alt+Down".
  9. Информация по данным быстрым клавишам добавлена в сообщение-напоминание (информационная кнопка).
  10. Команды, которые используются только в мобильной версии программы отображаются только в мобильной версии и не отображаются в десктопной версии.
  11. Для всех представлений всех моделей присвоено минимальная ширина, равная ширине колонки этих моделей.
  12. При закрытии диалога настройки расположения кнопок делается проверка на обязательном наличии на одной из панелей инструментов команды settings, без которой невозможно будет открыть диалог "Настройки редактора".
  13. Делается проверка, было ли совершено изменение расположения команд или нет. Если было, то все изменения записываются в конфигурационный файл редактора editorconf.ini и генерируется признак того, что требуется перезагрузка mytetra по закрытию (кнопка Ok) диалога "Настройки редактора".
xintrea commented 5 years ago

Вадим, засинхронизируйтесь пожалуйста с experimental, я там кое что в вашем коде подправил.

DikBSD commented 5 years ago

Хорошо.

Отправлено из Mail.Ru для Android четверг, 28 февраля 2019г., 15:36 +03:00 от Xintrea notifications@github.com :

Вадим, засинхронизируйтесь пожалуйста с experimental, я там кое что в вашем коде подправил. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

DikBSD commented 5 years ago

Я только что послал ещё один реквест. Переименовал метод и переменную. Иначе программа не компилировалась.

Отправлено из Mail.Ru для Android четверг, 28 февраля 2019г., 15:36 +03:00 от Xintrea notifications@github.com :

Вадим, засинхронизируйтесь пожалуйста с experimental, я там кое что в вашем коде подправил. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

xintrea commented 5 years ago

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

755d9c35c377bfd4d61de6a782405b10763365a5

Но панель все равно нуждается в доработках. По-хорошему нужно сделать такие вещи:

  1. Вместо технологических названий действий показывать человекочитаемое названия действий из

QString ShortcutManager::getDescription(QString actionName)

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

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

  2. DragNDrop между available и used областями

  3. DragNDrop в used области для изменения порядка элементов (необязательно, но желательно)

Вы это сможете сделать?

DikBSD commented 5 years ago

Сергей, думаю, смогу. Правда, с DragNDrop в дереве никогда дела не имел, но будет интересно изучить. Завтра начну дорабатывать.

P.S. Можно сделать 2 колонки: 1-я - как есть сейчас, с кодом команды. 2-я - человекочитаемое название. Как Вы на это смотрите (про 2 колонки)?

С уважением, Вадим

чт, 28 февр. 2019 г. в 17:15, Xintrea notifications@github.com:

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

755d9c3 https://github.com/xintrea/mytetra_dev/commit/755d9c35c377bfd4d61de6a782405b10763365a5

Но панель все равно нуждается в доработках. По-хорошему нужно сделать такие вещи:

  1. Вместо технологических названий действий показывать человекочитаемое названия действий из

QString ShortcutManager::getDescription(QString actionName)

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

1.

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

DragNDrop между available и used областями 3.

DragNDrop в used области для изменения порядка элементов (необязательно, но желательно)

Вы это сможете сделать?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/xintrea/mytetra_dev/pull/112#issuecomment-468287741, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeyEwtOEroNEs8vebbebtA5rM2qM13aks5vR-SRgaJpZM4bWllM .

xintrea commented 5 years ago

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

На крайний случай можно сделать через таблицу, по аналогии со списком записей в MyTetra.

Дерево там вроде не нужно.

DikBSD commented 5 years ago

Возможно, я неверно выразил мысль. Поясню: Таблица из 2-х колонок, вида | bold | Жирный | | italic | Курсив |

и т.д.

Такого вида - все таблицы в диалоге.

Как Вы на это смотрите?

С уважением, Вадим

чт, 28 февр. 2019 г. в 17:26, Xintrea notifications@github.com:

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

На крайний случай можно сделать через таблицу, по аналогии со списком записей в MyTetra.

Дерево там вроде не нужно.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/xintrea/mytetra_dev/pull/112#issuecomment-468291676, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeyE0I_JhoPdxZX20E6pZKu5U6ouNAPks5vR-cdgaJpZM4bWllM .

xintrea commented 5 years ago

Смотрю отрицательно. Нужно просто: иконка и человекочитаемое название действия. Не надо пугать пользователей техническими подробностями в интерфейсе.

DikBSD commented 5 years ago

Хорошо. Если в ShortcutManager::getDescription(QString actionName) не будет человекочитаемого названия действий для команды (описаниепустое), то я оставлю код команды.

С уважением, Вадим

чт, 28 февр. 2019 г. в 17:38, Xintrea notifications@github.com:

Смотрю отрицательно. Нужно просто: иконка и название действия. Не надо пугать пользователей техническими подробностями в интерфейсе.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/xintrea/mytetra_dev/pull/112#issuecomment-468295775, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeyExyRPOJHnj3X4O2lCwiImorwzHj6ks5vR-nLgaJpZM4bWllM .

xintrea commented 5 years ago

Да, конечно, так и надо.

DikBSD commented 5 years ago

Хорошо. Сейчас гляну по-быстрому - надо будет решать проблему: В конфиге, например, прописано editor-tb-fix_break_symbol А в ShortcutManager для этой же команды для action: editor-fixBreakSymbol Надо будет подумать, как искать их соответсвие. Если бы все команды были бы одного вида и для конфига, и для шорткатов (например, editor-tb-fixBreakSymbol и editor-fixBreakSymbol ) - .было бы легко задавать это соответствие. Как Вы думаете, может мне привести все команды к одному виду, не затрагивая префиксы editor-tb- и editor- ?

С уважением, Вадим

чт, 28 февр. 2019 г. в 17:49, Xintrea notifications@github.com:

Да, конечно, так и надо.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/xintrea/mytetra_dev/pull/112#issuecomment-468300206, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeyE75dU9amGxijoqqpIh09L8cS4aqNks5vR-yAgaJpZM4bWllM .

xintrea commented 5 years ago

Вообще-то, это нужно сделать. Приоритет надо отдавать записи как в ShortcutManager, без этих уродливых подчеркиваний. Но все надо сделать аккуратно, чтобы ничего не разломать.

xintrea commented 5 years ago

Я сейчас крупно переименовываю файлы и каталоги, вместо EditorToolbar делаю EditorToolbarSettings и так далее. Поэтому чтобы небыло конфликтов, лучше пока подождать.

DikBSD commented 5 years ago

Хорошо. Я сделаю. Вы потом посмотрите, может где не доисправил.

Отправлено из Mail.Ru для Android четверг, 28 февраля 2019г., 18:23 +03:00 от Xintrea notifications@github.com :

Вообще-то, это нужно сделать. Приоритет надо отдавать записи как в ShortcutManager, без этих уродливых подчеркиваний. Но все надо сделать аккуратно, чтобы ничего не разломать. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

DikBSD commented 5 years ago

Хорошо. Вы мне сообщите, когда закончите, я засинхронизируюсь.

Отправлено из Mail.Ru для Android четверг, 28 февраля 2019г., 18:26 +03:00 от Xintrea notifications@github.com :

Я сейчас крупно переименовываю файлы и каталоги, вместо EditorToolbar делаю EditorToolbarSettings и так далее. Поэтому чтобы небыло конфликтов, лучше пока подождать. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

xintrea commented 5 years ago

Вы потом посмотрите, может где не доисправил.

Эээ, наверно, тогда уж лучше я это сделаю. Я ж тоже не помню где там что, поэтому и нужно аккуратно, проверяя по ходу пьесы.

DikBSD commented 5 years ago

Хорошо. Буду ждать Вашего сообщения.

Отправлено из Mail.Ru для Android четверг, 28 февраля 2019г., 18:28 +03:00 от Xintrea notifications@github.com :

Вы потом посмотрите, может где не доисправил. Эээ, наверно, тогда уж лучше я это сделаю. Я ж тоже не помню где там что, поэтому и нужно аккуратно, проверяя по ходу пьесы. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

xintrea commented 5 years ago

Так, придется наверно поднимать версию конфига редактора, и в этот момент сбрасывать первую и вторую панель редактора на дефолтные кнопки, так как имена меняются.

Из новых кнопок я наверно оставлю кнопки с управлением цветом, а остальное уберу, так как панель реально пересыщена.

Но это не страшно, потому что у нас теперь есть редактор кнопок на панели, пользователь всегда может добавить то что ему еще нужно.

DikBSD commented 5 years ago

Сергей, может тогда Вы сделаете все изменения в диалоге? О чем писали выше. А я посмотрю что-нибудь другое. Что именно?

Отправлено из Mail.Ru для Android четверг, 28 февраля 2019г., 19:16 +03:00 от Xintrea notifications@github.com :

Так, придется наверно поднимать версию конфига редактора, и в этот момент сбрасывать первую и вторую панель редактора на дефолтные кнопки, так как имена меняются. Из новых кнопок я наверно оставлю кнопки с управлением цветом, а остальное уберу, так как панель реально пересыщена. Но это не страшно, потому что у нас теперь есть редактор кнопок на панели, пользователь всегда может добавить то что ему еще нужно. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

xintrea commented 5 years ago

Есть еще одна изолированная задача. Надо доделать окно ввода формулы.

Сейчас это просто многострочное текстовое поле. А нужно, чтобы верхннюю часть (половина по высоте при открытии окна) занимала область отображения формулы. Картинка формулы должна обновляться с заданной периодичностью. Для периодичности нужно сделать настройку редактора

mathExpressionUpdateTime

которая задается в секундах. Если формула не менялась со времени последнего обновления картинки, то и обновления картинки делать не нужно, естественно. Настройку эту можно поместить в раздел окна настроек "Разное".

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

DikBSD commented 5 years ago

Хорошо, я поизучаю исходники MyTetra по работе с формулами.

Отправлено из Mail.Ru для Android четверг, 28 февраля 2019г., 21:01 +03:00 от Xintrea notifications@github.com :

Есть еще одна изолированная задача. Надо доделать окно ввода формулы. Сейчас это просто многострочное текстовое поле. А нужно, чтобы верхннюю часть (половина по высоте при открытии окна) занимала область отображения формулы. Картинка формулы должна обновляться с заданной периодичностью. Для периодичности нужно сделать настройку редактора mathExpressionUpdateTime которая задается в секундах. Если формула не менялась со времени последнего обновления картинки, то и обновления картинки делать не нужно, естественно. Настройку эту можно поместить в раздел окна настроек "Разное". Необходима возможность изменять вертикальный размер виджетов картинки и области ввода текста формулы, то есть разделительная линия посередине должна двиаться вверх-вниз. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

DikBSD commented 5 years ago

Сергей, я посмотрел - Вы используете диалог EditorMultiLineInputDialog и для редактирования основного файла конфигурации, и для редактирования файла конфигурации редактора текста, и для создания формулы. Если в этом диалоге сделать изменения, о котором Вы говорили (2 части диалога), то оно отразится на всех вышеописанных действиях. Что не есть хорошо. Лучше для работы с формулами создать отдельный диалог. Что Вы думаете по этому вопросу? (Хочу согласовать с Вами некоторые действия, чтобы потом не переделывать работу)

xintrea commented 5 years ago

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

DikBSD commented 5 years ago

Спасибо.. Я так и сделаю, с нуля.

xintrea commented 5 years ago

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

DikBSD commented 5 years ago

Хорошо.

Отправлено из Mail.Ru для Android пятница, 01 марта 2019г., 10:51 +03:00 от Xintrea notifications@github.com :

Только засинхронизироваться не забудь,там структура каталогов поменялась, я твои классы окна настроек редактора в каталог WyEdit перенес. Потому что он задумывался как переносимый редактор, может быть когда нибудь я его таковым и сделаю. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .

xintrea commented 5 years ago

Да, и класс окна ввода формул тоже надо в каталоге wyedit делать, не выпрыгивать выше.

DikBSD commented 5 years ago

Хорошо.

Отправлено из Mail.Ru для Android пятница, 01 марта 2019г., 10:54 +03:00 от Xintrea notifications@github.com :

Да, и класс окна ввода формул тоже надо в каталоге wyedit делать, не выпрыгивать выше. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub , or mute the thread .