pipitos пишет:

Возможно не плохо будет сделать что-то подобное в дистрибутиве.

Поместил в задачи на GitHub.

https://github.com/xintrea/mytetra_dev/issues/58

GoodMorning пишет:

Сегодня нашёл небольшой баг

Записал себе.


GoodMorning пишет:

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

Эээ, ну это довольно странно - требовать от программы чтобы она запустилась с диска, неважно какого, потом вытащить его, поработать с другим, потом снова всунуть прежний... Может быть лучше купить маленький настольный USB-хаб? Он копейки стоит.

dzuvogdao пишет:
xintrea пишет:

Если нужно сделать вложенный - просто меняете отступы.

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

Проверил, если в html делать вложенные <ol>, <ul> то тогда в самом редакторе вложенность работает как надо.
Еще желательно больше видов списков, чем буллеты и нумерованный. Опять же в html это можно проставить, и тогда в самом редакторе оно работает.

Может просто по нажатию таба обрамлять текщий пункт <ol> или <ul> и тогда оно будет работать?

Я пытался это реализовать, но была какая-то проблема. Вроде вложенность не добавлялась, а просто шло форматирование в нужный список. Там во внутрях вовсе не HTML, а структура документа. С HTML тоже можно работать, но очень криво.

dzuvogdao пишет:

5. Сделать возможность скрывать табы с деревом и записями, то есть чтобы показывался один редактор. Типа как в любой IDE.

Кнопка "Распахнуть область редактирования" - это не то?

dzuvogdao пишет:

Заметил что цвет текста не поменять из UI, только через html:
6. Добавить компонент для выбора цвета текста

Такая возможность есть, но она скрыта и недоделана немного.
http://webhamster.ru/site/page/index/ar … ctcode/143
Раздел "Скрытые возможности"

hugarin пишет:

Подробности такие. Время синхронизировано на Линуск и Виндовс машине. Различия увидел такие.

Рассмотрим только Виндовс машину. Когда база лежит в папке программы, то при редактировании у файла дерева меняются атрибуты изменен и открыт, но не меняется атрибут создан. Когда мы кладем базу на сетевой диск, то при редактировании меняются все три атрибута одним временем. И программа каждые 10 секунд выдает сообщение о изменении данных сторонней программой. Причем больше никаких копий Тетры не запускали.

Не понятно, что за атрибуты " у файла дерева меняются атрибуты изменен и открыт"? Запустите Peower Shell, и в каталоге с mytetra.xml выполните команду:

dir . -Filter mytetra.xml | Format-Table Fullname,CreationTime,LastAccessTime,LastWriteTime

отредактируйте файл, и дайте команду снова. Вывод сюда покажите. Сделать это нужно для файла на локальном диске, и для файла на шаре.

GoodMorning пишет:

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

В Qt с CSS в просто беда. Я в самом начале планировал делать WISYWING редактор на основе стилей, чтоб не шрифт и размер выбирать, а иметь набор стилей, и выбирать для текста нужный стиль. И иметь один *.css файл на все записи. Он по-моему даже все еще лежит в моей базе знаний в каталоге base. Я попробовал прикрутить этот файл к тексту записи, но оказалось, что базовый компонент QTextEdit не понимает даже простые атрибуты стилей. И мне пришлось на это дело забить, и сделать просто выбор шрифта, размера и отступов, хотя я очень не хотел этого делать. Ну вот как-то так.

avcarch пишет:

Компонент, который отображает HTML заметку, так сильно ограничен, что не может без переделки под себя показать HTML страницу?

Именно так. Причем делает он это дело самостоятельно и нет никакой возможности повлиять на то, чтобы он оставлял нужный HTML-код. Таков компонент QTextEdit, так он работает, а методы, переопределяющие его работу закрытые. Это нужно все переделывать на уровне самого Qt. Или писать полностью свой редактор с нуля.

GoodMorning пишет:

Если уж говорить по делу, то сегодня при сортировке записей (точнее при их перетаскивании между разделами) я обнаружил, что у меня все записи в категориях оказались совсем не те. Позже я понял, что это не я такой невнимательный, а просто drag'n'drop работает странно (по крайней мере под виндой). Если взять запись и начать перемещать её не строго в сторону, а вверх/вниз/по диагонали, то есть шанс что фокус переключится на другую запись и, соответственно, в другую категорию переместится совсем не то (гифка).

Да, есть такой баг, тоже сейчас его заметил. Это, видимо, регрессия в QTableView, раньше такого небыло, а в моем коде такого поведения не прописывалось никогда, все системное.

Дома проверю на линухе, таких проблем не замечал но надо проверить еще раз.

Записываю в баги, надо на проффорумах поспрашивать.

dzuvogdao пишет:

1. Вложенные списки. Почему-то этого нет у многих простых редакторов. В MyTetra этого хотя бы можно добиться поправив html код, но хотелось бы работы из редактора. То есть, например, вводя список по пунктам 1,2,3, дальше сдвигаясь внутрь и вводя пару пунктов звездочек, дальше сдвигаясь обратно, надо сразу иметь пункт 4. И как отметили выше, удобнее чтобы пункт 1 списка появлялся сразу после нажатия кнопки, а не после выделения текста.

Работа со списками - это работа со структурой текста, поэтому таких вещей и нет в простых редакторах, только в Word/Libre и т. д. Потому что это и нумерация, и разный вид маркеров на разных уровнях, и прочие прелести.

В MyTetra сделано все по-простому: выделяете абзац, выбираете тип  списка. Если нужно сделать вложенный - просто меняете отступы.


dzuvogdao пишет:

2. Кастомная настройка байдингов клавиш ко всем действиям редактора. В одной из программ, что я рассматривал, была такая фича. То есть для тех же списков сделать возможность настроить свое сочетание клавиш. Или для начала, хотя бы захардкодить эти сочетания для всех функций, для списков или таблиц вроде как сейчас сочетания нет вообще. При быстром наборе текста не очень удобно кликать мышкой чтобы вызвать нужную функцию, байдинги удобнее.

Подсистема настройки шорткатов в планах.


dzuvogdao пишет:

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

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

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

Я специально проверял - эта же проблема есть и у Evernote. Если одновременно начать редактировать заметку через установленную программу и через Web-клиент, то тоже теряются изменения, причем молча и без предупреждений. Я думаю, что если такая контора как Evernote до сих пор не смогла решить эту проблему, то мне тут ловить тоже нечего.

dzuvogdao пишет:

4. Можно ли менять масштаб документа, как в веб браузере по ctrl+колесико мышки? Иногда глаза устают и хочется видеть весь текст крупнее, просто поменяв масштаб.

Я тоже об этом подумываю. Если в новых версия Qt появится возможность масштабиования для QTextEdit, я ее прикручу, она очень востребована.

weekendbegin пишет:

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

Вы можете поставить галку "Разрешить создавать пустые записи" в настройках "Разное".


weekendbegin пишет:

Не хватает всплывающих описаний иконок в менюшках. Нет возможности только по картинке понять что делает кнопка с паутинкой или кнопка с ёлкой, а особо желания нажимать на кнопки без понимания, что они делают тоже нет - вдруг она стирает целиком всю запись или ещё что-нибудь в таком духе делает. Открывать документацию ради этих кнопок можно, но не хочется. Дружелюбные интерфейсы прикрепляют к кнопкам всплывающие подсказки (hint) с подробным описанием зачем эта кнопка тут находится и что делает.

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


weekendbegin пишет:

Немного непонятно, почему по умолчанию не отображается никакого шрифта в том месте, где выбирается шрифт. Очевидно, что набираемый текст какому-то шрифту соответствует, раз уж он отображается, но шрифта нет. Более того, если часть текста выделить и шрифт "поменять" на Arial, то мы увидим, что текст не изменится (вероятно шрифт по умолчанию - Arial), но у него теперь и впредь будет отображаться шрифт Arial, а вот у остального текста - так и останется безымянный одиночка.

Все ноги растут от объекта QTextEdit, у которого свой особый, уличный HTML. Встраиваемый редактор, по сути, надо по сути с нуля писать. Но я на такой подвиг пойти не могу, потому что тогда не будет MyTetra.


weekendbegin пишет:

Во первых, если я всё понял верно, единственное, что можно сделать с изображением это изменить его размер. Как мне кажется минимальные требования для такого функционала это кадрирование, ручка, подсветка и ластик. Можно взять за основу стандартный (хоть и не для всех поставок) Snipping Tool в винде. Супер удобно для каждодневной работы, когда надо подстветить кому-то деталь того, что происходит на твоём экране. В Snipping Tool кадрирование можно сказать есть из коробки - само снятие картинки идёт с кадрированием, а дальше до минимального набора дополняют подсветка, ручка, ластик. Вот это вот то, что очень важно, когда прилагается та или иная картинка, поясняющая слова в заметке. То есть на практике чтобы это сделать, приходится делать тот же snipping tool или доставать paint, а это долго и ненужно.

Прикручивать инструменты ривания и правки картинок в ближайшее время не планиру. На десктопе это не проблема - по виндой всегда есть Paint, под Linux - Kolourpaint и проч.

weekendbegin пишет:

Во вторых, это уже к сложности. Совсем не очевидно и весьма неудобно поведение контекстного меню. Когда пользователь нажимает правой кнопкой мыши (стандарт при вызове контекстного окна) на картинке, он ожидает, что "Edit image properties" относится именно к той самой картинке, на которую он нажимал. Но на самом деле при этом станут изменятся свойства.. картинки, которая непосредственно перед курсором ввода (который к клавиатуре относится, а не к мыши). По сути это означает, что чтобы редактировать свойства картинки на неё надо нажать дважды - сначала левой кнопкой (курсор появляется в нужном месте) и теперь правой. При этом, да, нельзя забывать, что контекстное меню также может вызываться и по кнопке с клавиатуры. Думаю было бы логичным, если бы нажатие правой кнопки мыши по изображению приводило к перестановке курсора клавиатуры в нужное место(сразу за картинкой), а только потом к появлению контекстного меню... Тогда на вызов контекстного меню с клавиатуры это бы не повлияло.

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

Возможно, имеет смысл не переставлять курсор, а выделять картинку при правом клике. Надо подумать.


weekendbegin пишет:

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


weekendbegin пишет:

Во многих текстовых редакторах, что в браузерах, что в средах разработки есть встроенная проверка текста на опечатки, что довольно удобно. В MyTetra этого не хватает.

Спелл-чекинг в планах, но в очень далеких. Как и подсветка синтаксиса.



weekendbegin пишет:

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

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

И на будущее. Я вижу, что в основном все претензии к текстовому редактору. К сожалению, для Qt нет нормально встраиваемого текстового редактора. Поэтому приходится писать редактор самому. Но в Qt-овском классе QTextEdit, на котором написан редактор обнаружилось столько косяков, недоделок и недокументированных особенностей, что я уже трижды пожалел о том, что начал разработку именно на базе этого класса. Редактор отнимает у меня туеву хучу времени, поэтому я решил, что изменения буду вносить только минимальные и по необходимости.

weekendbegin пишет:

Привет, только начал пользоваться MyTetra и сразу заметил такую неприятность, как отсутствие стандартных шорткатов. За долгое время пользования различными редакторами привыкаешь к стандартным шорткатам по, например, переименованию айтемов - f2, cntrl+R, shift+f6 . Ни один из них не сработал, из пунктов контекстного меню я тоже не увидел, чтобы на "Edit item name" был какой-то шорткат указан.
Такое вот пожелание - обогатить программу шорткатами. С клавиатурой значительно удобней работать зачастую, чем с мышой.

Перед тем как делать шорткаты, надо сделать подсистему настройки шорткатов. Это большой кусок кода, у меня пока нет времени этим заняться.

ise-dvp пишет:

если это последняя строка.

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

ise-dvp пишет:

В node
хотелось бы, чтобы ссылки автоматически становились кликабельными.

А то у меня текст, в котором штук 50 ссылок...
и таких текстов штук 100

замучаешься постоянно нажимать кнопку в редакторе "ссылка"

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

ise-dvp пишет:

где найти русскую локализацию?

В настройках Main есть выпадающий список с пререключением на русский язык.

hugarin пишет:

1. Насколько мне известно, в Qt нет проблем с перетаскиванием нескольких элементов. Можно попробовать проработать этот вопрос вместе, если Вы встретились с какими-то трудностями.

Для теста можно написать приложение для перетаскивания строк с одного QTableView на другой.

Попробуйте сделать на форме два QTableView, установите им режим подсветки строки, а не ячейки:

setSelectionBehavior(QAbstractItemView::SelectRows);

Поставьте режим выделения:

setSelectionMode(QAbstractItemView::ExtendedSelection);

Попробуйте выделить несколько строк и перенести их в соседнюю таблицу. Вы увидите, что в момент клика для переноса, выделение строк снимается. И остается выделенной только одна строка. Может быть, в новых версиях Qt это поведение исправили или добавили какую-то настройку флагов поведения.


hugarin пишет:

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

Возможно, вам поможет кнопка сворачивания-разворачивания панели редактора (два треугольничка верх-вниз). Там остается только одна строка. кнопок. Это сделано именно для экономии места. В области поиска тоже есть такая кнопка.

hugarin пишет:

3. Самое важное. Мы посмотрели программу коллективом нашего цеха. Понравилась. Хотелось бы использовать ее совместно в многопользовательском режиме для составления карты цехов, журналов работ по заводу и т.д. Возможно ли это в текущей версии или планировалось ли что-то подобное на будущее.

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

В принципе, система автосинхронизации должна подхватывать измененные данные, но я в таком режиме который вы хотите не проверял.


hugarin пишет:

Возможно, можно реализовать какое-то компромиссное решение с помощью какой-либо синхронизации. Мы попробовали разместить каталог с базой данных MyTetra на сетевом диске и подключиться двумя Тетрами с двух машин: одна на Linux, вторая на Windows 7. И включили режим периодической проверки дерева записей. При совместной работе некоторые новые записи теряются.

Часы на машинах нормально засинхронизованы?


hugarin пишет:

К тому же, программа под Windows каждый 10 секунд выдает предупреждение об измененных данных, даже если при этом программа на Linux вовсе не запущена (из трея тоже выгружал).

Выключите все MyTetra и помониторте атрибуты файла mytetra.xml. Попробуйте изменить файл mytetra.xml редактором с Винды и с Линукса (добавьте в отступы пробелы), и посмотрите как меняется дата изменения файла. Если у вас шара на линуксовой машине, то возможно у вас настройки Samba не позволяют менять время, либо сама файловая система настроена так, чтобы время доступа не менялось чтоб не мучать диск (так обычно делают для файлохранилищ и для SSD). Если это так, то MyTetra действительно не сможет понять в какой момент произошло изменение. Тем более ей будет плохеть, если она сама поменяла файл в 10:30, а потом видит, что файл не изменялся, к примеру, с 10:20. Но это только предположение.

А вообще мне нужна собственная подсистема синхронизации с объединением дерева. Я раньше думал, что для этого подойдет Git, но он тоже не подходит, потому что файл дерева не объединяет. Поэтому для синхронизации лучше использовать DropBox.