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

Идею скрипта я озвучил. Он не сложный в принципе. Только нужно желание его написать и время. А с этим сейчас у меня не складывается.

1. Xintrea у меня сейчас времени в обрез. Чуть позже займусь и основательно сделаю отчет.
2. Soxsten у меня та же проблема, но никакого Git у меня не установлено - значит это не проблема Git. Временно можете перейти на предыдущую версию 1.42

xintrea Ошибка в программе есть. Видео могу сделать если оно всё же понадобится после моего объяснения.
Ошибка повторяемая.
1. Создаю новую ветку в корневого уровня "qweqwe"
2. Создаю в этой ветке 1 запись с текстом произвольного содержания.
3. Кликаю ПКМ на этой ветке и выбираю пункт "Зашифровать ветку"
Ошибка:
4. Появляется окно с текстом "Введите пароль для доступа к зашифрованным данным", хотя я ожидал увидеть окно для установки пароля.

Soxsten пишет:

Вопрос знатокам - как восстановить информацию?

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

Далее по проблеме.
Могу предположить что из-за бага программы зашифрованные данные были второй (или больше) раз зашифрованы. Я не наблюдал проблем с шифрованием в версии 1.42. Попробуйте с помощью этой версии их расшифровать 2 (или более) раза. Только нужно продумать сам алгоритм выполнения этой процедуры.

Примерный план.
1. Эксперименты проводить только с копией базы.
2. Открыть базу в mytetra 1.42
3. Расшифровать папку.
4. Создать новую ветку назвать "восстановление" и в нее скопировать расшифрованные записи (с кракозябрами).
5. закрыть mytetra
4. Открыть mytetra.xml в текстовом редакторе, найти ветку "восстановление" и всем входящим в нее записям присвоить значение <node crypt="1". сохранить файл.
5. Запустить mytetra и повторно расшифровать ветку. (Возможно расшифровывание придется повторить если было зашифровано больше 1 раза).

Действительно что-то неладное с шифрованием наблюдается.

Обратил внимание на следующий баг появившийся в текущем релизе.
1. Создал категорию, в ней создал заметку.
2. При попытке зашифровать эту ветку - появляется окно "Введите пароль для доступа к зашифрованным данным". При вводе пароля - естественно пишет "неверный пароль".

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

xintrea пишет:

Тут вопрос в том, что не все читают документацию и не все умеют правильно работать с git.

Да вопрос именно в невнимательности пользователей.

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

Все пожелания которые я выделил жирным я считаю более важными чем остальные.

- Хотелось бы чтобы MyTetra собранная для windows была собрана с параметрами максимальной доступности контролов. Чтобы к этим контролам можно было бы достучаться извне. Я находил информацию по этой проблеме на ресурсах разработчиков и попробую конечно сам собрать MyTetra с этими параметрами, хотя c++ для меня довольно далек. Невидимость контролов сильно ограничивает автоматизацию MyTetra.

- Очень не хватает внедрения хотя бы одного пользовательского тега в xml дереве, который бы служил для хранения информации предназначенной для сторонних приложений, и содержимое которого MyTetra бы игнорировала при операциях поиска, но при копировании и перемещении она бы его копировала и перемещала. Сейчас же если внедрить новый тег MyTetra сразу падает. Я придумал способ хранения в xml дереве дополнительной информации -  ее можно хранить в теге file используя его не по назначению.

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

Не нравится очень агрессивное поведение к html файлам. Как минимум не нравится что при ручной вставке комментариев в html они удаляются. Очень хочется хранить в комментариях html файлов дополнительную информацию. Вполне устроило бы если бы вы разрешили хранить один единственный комментарий в html коде после закрывающего тега </html>. Тогда бы не нарушалась структура основного кода html

Продолжу.
Хотелось бы чтобы MyTetra поддерживала также формат jpg и по возможности gif анимированный. В данный момент MyTetra может быть обманута путем внедрения в заметки файлов jpg но с расширением png. При копировании с web страниц содержимого с изображениями файлы jpg неоправданно конвертируются в png раздуваясь при этом в размере. Хотелось бы чтобы можно было бы отключать возможность такой конвертации, пусть даже эти jpg и сохранялись бы с расширением png - это не большая беда если это зачем-то нужно.

И так начну раскрывать карты. Расскажу одну маленькую хотелку.

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

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

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

Обнаружил потенциальный канал утечки зашифрованных данных:
1. Создал новую заметку в зашифрованном разделе.
2. К этой заметке прикрепил текстовый файл - он зашифровался.
3. При двойном клике по файлу в окне mytetra он расшифровался в папку trash и был открыт в текстовом редакторе.
4. Расшифрованный файл уплыл в github и доступен всем желающим.
5. После закрытия mytetra расшифрованный файл продолжает находится в папке trash.

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

Я предлагаю этот момент доработать. Из вариантов может быть расшифровывание таких файлов не в папку trash а в другую, рядом находящуюся папку. Например decrypt. В xml дерево перед расшифровкой записывать имена таких файлов, и проверять их наличие в данной папке при закрытии mytetra и при открытии. Должно выводится сообщение при закрытии - "В папке decrypt имеются расшифрованные файлы. Вы хотите удалить их?". Если пользователь откажется их удалять, то записи об этих файлах должны остаться в xml дереве, и при следующем запуске mytetra должно выводится сообщение - "В папке decrypt находятся расшифрованные ранее файлы. Вы хотите удалить их?". Можно даже не делать записи в mytetra.xml а отслеживать наличие расшифрованных файлов по самому наличию папки decrypt. Создавать и удалять эту папку при каждом случае.

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

Насчёт консистентности xml дерева я считаю волноваться не стоит. Как я понял если mytetra успешно считала его - то при дальнейшей модификации она его пересоздает заново. Я создавал дерево в котором были нарушены отступы в начале строк - при перезаписи mytetra их восстанавливала с правильным форматированием.