Soxsten пишет:

для статей, которые вставляются с исходным форматированием

Ничего не могу с этим поделать. Это такой кривой упрощенный рендер и парсер HTML в Qt для стандартного объекта QTextEdit.

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

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

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

kvesda пишет:

Не всегда корректно срабатывает форматирование выделенного(ых) абзаца(ев) стилем code

Если включить отображение специальных символов, то переносы строк везде одинаковые? Они должны походить на букву Пи. Если перенос строк "мягкий", отображаемый как стрелка-кочерга, то на такой строке форматирование абзаца не будет полностью применяться. Потому что на мягком переносе абзац не считается абзацем, а считается продолжением строки.

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

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

kvesda пишет:

Спасибо за совет, я умею работать с GitHub.
Вы когда-то обсуждали, если не ошибаюсь, на ЛОР, что у вас на работе нет возможности доступа к GitHub через прокси (не помню, чем закончилось это Ваше там обсуждение). У меня такая же проблема на работе, только еще более "закрученная". Склонировать и скачать код могу, а pull-request - нет. Прокси не позволяет.

Не ожидал такой заботы smile Но дело в том, что я оттудава сбежал уже больше года как:

ЖЖшечка-стайл: Год после увольнения из Росатома (Часть 1)
ЖЖшечка-стайл: Год после увольнения из Росатома (Часть 2)

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

kvesda пишет:

У меня нет доступ в GitHub репозиторий MyTetra, поэтому склонированный через git и дополненный нововведением код экспериментальной ветки я закоммитил, сжал в zip и высылаю Вам. Также высылаю архив со сборкой для Windows.
Код: https://drive.google.com/open?id=1gjvjj … yu6rvTXgVB
Сборка под Windows: https://drive.google.com/open?id=1S83Yh … CkpxdnWWtY
Напишите, примите ли Вы эти изменения для Вашего GitHub репозитория?
Планирую заняться импортом в MyTetra из других PIM, таких, как Nimbus Note,
Как можно присоединиться к Вам к разработке программы?

Фак мой мозг. Вам не нужен "доступ в GitHub репозитория MyTetra". Вы можете склонировать git-репозитарий, сделать в своей копии изменения и оформить как pull-request. Это сандартная практика совместной разработки. Посмотрите видео на ютубе как это делается, по-моему там даже на русском языке есть.

Stanislaw пишет:

Такой вопрос - а нет планов встроить интерпретатор скриптового языка, типа rexx python perl?

А какой в этом смысл? Можно и так иметь инсталляцию python/php и писать свои скрипты.

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

Типа, пользователь может создать команду-действие, задав ей название и команду, типа

Получить все теги в базе

python getAllTags.py %treeFile

где вместо %treeFile будет подставляться полное имя файла mytatra.xml. Ну и там другие подстановки, например %currentNoteId - идентификатор текущей записи. %currentNoteDir - каталог текущей записи и тому подобное.

Команда появляется в списке команд, например "Инструменты" - "Команды" - "Получить все теги в базе", ей можно назначить горячую клавишу. И все, ее можно выполнять из MyTetra.

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

Oleg пишет:

MyTetra 1.44.31
Вроде же была опция, открыть папку с записью на диске? Или я перепутал .
В любом случаи автор, добавьте эту функцию,чтобы по правой кнопке на записе, была функция открыть место записи на локальном диске ..
Ибо я еще собираюсь прикреплять Html записи mytetra к бесплатному TheBrain,там просто в него файл перетаскиваешь любой с компьютера и он заносится как ссылка ..

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

chadwick пишет:

при вызове addNoteDialog появляется окно добавления записи, но MyTetra закрывается после нажатия Cancel; то же самое если создать заметку - MyTetra закрывается после нажатия OK, но заметка успевает попасть в базу

команды show, hide, quit выполняются нормально

UPD: MyTetra падает только в том случае, если она свернута в трей и при этом вызывается addNoteDialog; если развернуть основное окно и затем вызвать addNoteDialog, то не падает - заметка создается в текущей ветке; я пока просто добавил команду show в mytetraAddNote.run, но хотелось бы исправить

MyTetra не падает, а корректно завершает работу smile

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

Исправлено в следующем коммите: https://github.com/xintrea/mytetra_dev/ … f6659bb174  (v.1.44.46)

Stanislaw пишет:

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

Это все регулируется опциями diff. В 1С просто сделали человеческую настройку по-умолчанию, ну и часть опций вынесли в визуальные настройки.

Если diff пользоваться "в лоб" то конечно, красоты и удобства не увидишь.

kvesda пишет:

БАГ
В версии 1.44.31, если всего 1 родительская ветка, и она зашифрована, то при следующем запуске программы ни один контрол не доступен, и нельзя создать ни новую ветку, ни новую заметку. Даже нельзя расшифровать ветку (так как все контекстное меню недоступно).  Вообще ничего нельзя сделать. Хорошо бы ввести проверку таких случаев.

Вообще-то, пароль спрашивается автоматически в таком случае при старте MyTetra. И если он был введен неправильно или была нажата кнопка Отмена, то тогда да, в этом случае повторно пароль невозможно было ввести.

Исправлено:

https://github.com/xintrea/mytetra_dev/ … 93b77cf2dc

Я проверял одновременное редактирование одной и той же записи в Evernote. Уж более известного продукта в области PIM-менеджеров просто не существует. Так вот, у них тоже никакого параллельного редактирования нет. Пользователь запросто может потерять напечатанные строки в зависимости от того, в какой момент какой инстанс Evernote засинхронизируется. И ничего, пользователи нормально это воспринимают, и деньги за пользование платят, что характерно.

Stanislaw пишет:

Говорят в 1С хорошая сравнивалка текстовых файлов.

Это просто diff с пользовательским интерфейсом. В Linux таких программ куча: kdiff3, meld, diffmerge и т.д.

kvesda пишет:

Работа с деревом Категорий
- Drag-and-drop для веток

В перспективе.

kvesda пишет:

Шифрование
- Лучше шифровать не один текст в html файле, а и все картинки для этого файла. Иначе смысл шифрования теряется, если хоть какая-то информация не зашифрована.

Это ограничение базового класса QTextEdit. Нет возможности работать с ресурсом картинки (который можно было бы представить самодельным объектом и шифровать/расшифровывать на лету). QTextEdit тупо работает с картинками на диске, и другого не умеет, а нужное поведение не переопределяется. Здесь только полностью переписывать механизм редактирования, чтобы редактирование шло не в каталоге записи, а в отдельном временном каталоге, куда перед редактированием надо скидывать текст, картинки, аттачи, а после редактирования забирать это дело обратно. Но это очень сильно замедлит работу MyTetra.

По остальным хотелкам половина того что пишете есть в MyTetra, такое впечатление что вы эту программу не видели. Что есть:

- По нажатию на метку в этом списке меток - отображение всех заметок с этой меткой. (пять лет как есть)
- Поиск по меткам. (пять лет как есть)
- На "Увеличить отступ" назначить быструю клавишу "Alt+Стрелка право" (читайте новости)
- На "Уменьшить отступ" назначить быструю клавишу "Alt+Стрелка влево" (читайте новости)
- Ввести систему Undo / Redo для работы в текстовом редакторе. (всегда было с самой первой версии)
- Вести Корзину для удаленных заметок (Корзина есть)
- Для этого в базе (папка data) предусмотреть папку trash. (Смотри настройки)

kvesda пишет:

В редакторе текста 2 панели. На 2-й - выпадающие списки Шрифта и Размера Шрифта (fontselect и fontsize), а также кнопки работы с таблицей..
Может, лучше, переместить эти 2 контрола fontselect и fontsize на панель 1 в самое ее начало? Так логичнее: контролы работы со шрифтами функционально размещены рядом с контролами форматирования, а не с контролами по работе с таблицей.

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

chadwick пишет:

я то думал, что Ctrl+Alt+C для редактора и списка записей должны независимо друг от друга работать

Имеется в виду другое. Например, копирование в буфер обмена текста происходит по Ctrl+C. И по этому же Ctrl+C происходит копирование строк лога в окне с таблицей журнала действий. Действия разные, но комбинация одна, потому что журнал действий - это модальное окно. Поэтому такой повтор и допустим.

chadwick пишет:

команды show, hide, quit выполняются нормально

UPD: MyTetra падает только в том случае, если она свернута в трей и при этом вызывается addNoteDialog; если развернуть основное окно и затем вызвать addNoteDialog, то не падает - заметка создается в текущей ветке; я пока просто добавил команду show в mytetraAddNote.run, но хотелось бы исправить

Да, проверил, есть такая проблема. Если окно свернуто в трей, то любые действия с появляющимися модальными окнами (которые появляются по команде) приводят к сегфолту.