g.shiroki пишет:

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

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


Кроме того, вы писали:

g.shiroki пишет:

то программа выдает ошибку" новый и старный пароли совпадают"

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


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

babaduk пишет:

А можно ее самому скомпилировать и протестировать?

Не могу вам этого запретить smile

Это же опенсорч.

chadwick пишет:

Если изменить tools_line на tools_line_1, то ругается на отсутствие tools_line_2. Если добавить tools_line_2 без каких-либо значений или со значением false, то всё равно не запускается.

Попробуйте

tools_line_2=""

Должно сработать.

g.shiroki пишет:

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

Это происходит на одной записи, или на нескольких записях? В v.1.42.4 был исправлен баг вот такой: https://github.com/xintrea/mytetra_dev/issues/29

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

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

Вы же наткнулись на граничный эффект - редактируется запись, ветка шифруется, запись продолжает редактироваться. Вот последовательность действий:

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

Этот баг был исправлен: https://github.com/xintrea/mytetra_dev/ … 9f5ff9736f

Вы не на него случайно наткнулись, или у вас что-то другое произошло?

Исправленная версия - v.1.42.4, у нее релиза не было, она пока только в исходниках есть.

babaduk пишет:

Я мог бы попробовать реализовать эту идею.

Это будет сложно даже для меня как для автора программы. Работа большая. Лучше придумайте какие-нибудь консольные программы-помогаторы на PHP, с помощью которых можно выполнять действия с базой MyTetra. Попробуйте все что вы написали реализовать в виде PHP-скрипта: запускаете, он лезет в корзину, находит файлы, составляет список, показывает его пользователю, спрашивает что восстановить, и восстанавливает, создавая через DOM в mytetra.xml нужные ветки, создавая каталоги восстанавливаемых записей, помещая туда файлы восстанавливаетмых записей, правильно их переименовывая.

Вот это будет действительно нужная вещь, и вам будет более реалистично ее сделать.

knn пишет:

- наличия возможности копирования текста из открытого "открепляемого окна текста" (пр.: "мои тэги  mytetra" (для добавления тэгов из списка)) и вставки в "редактирование свойств записи" -
p.s. можно : создать файл, прикрепить к записи "Тэги MyTetra" ;

Не понял. Копировать текст из открепленного окошка можно. Вставить текст в режиме редактирования свойств записи тоже можно. Или вы хотите это автоматизировать?

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


knn пишет:

- возможности увеличения шрифтов в заголовках, названиях заметок;

Для этого есть настройщики внешнего вида Qt программ:

https://www.linux.org.ru/news/opensource/13171326

Но я ими не пользуюсь, поэтому что там как сказать не могу.


knn пишет:

- возможности выбора "скрытых файлов" в "menu settings" -> "select dir" (пока можно копировать путь из файл-менеджера и "вставлять"(для смены баз)).

Там появляется стандарное системное окно выбора файла, если в системе есть таковое (справедливо для Windows и Linux DE типа KDE, Gnome, Mate...) какие есть возможности в этом окне, такие и будут, нет смысла там что-то менять.

knn пишет:

"Собрал" модуль(~ли) Mytetra-1.42.2 для PuppyRus-A03 - работает, пользуюсь. В компьютерах и линуксе я "новичок" - как вышло - так вышло (можно ещё подправить модули, названия, "зависимости"; доработать, выложить 32-bit модули.).  " :-\ По-моему вполне подходит - multyOS-port-приложение для port-Дистра/OS-PRA (возможно и др. PuppyRus-ов) - всё от российских "производителей"  "

http://forum.puppyrus.org/index.php?topic=19813.0

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

babaduk пишет:

Такой вопрос: создал новую запись, либо к примеру открыл старую и начал ее редактирование. Редактировал 2 часа, написал много текста и в этот момент пропадает питание в сети и естественно бесперебойник отсутствует. Будет ли данная запись потеряна? Или есть периодическое автосохранение?

Сброс изменений в тексте записи на диск происходит в следующие моменты времени:

- Когда вы в MyTetra переключаетесь на другую запись
- Когда окно MyTetra теряет фокус (вы переключаетесь куда-нибудь в браузер или на другую программу)
- Перед срабатыванием команды синхронизации с периодичностью синхронизации, задаваемой в Настройках - Синхронизация - Периодичность синхронизации.
- Когда вы нажимаете Ctrl+S (есть такая скрытая кнопка save, которая настраивается только в конфиге редактора, но сочетание ctrl+s работает всегда)

Есть еще другие моменты сохранения на диск, но это основные.

То есть, если вы два часа работаете только с одной записью MyTetra, никуда не переключаетесь, редактируете только этот текст, не нажимаете Ctrl+S, и у вас не включена синхронизация, то да, изменения могут не записаться на диск.

Можете воспользоваться хаком: даже если вы не пользуетесь синхронизацией,  настройте периодическую синхронизацию-пустышку. То есть, в команде синхронизации оставьте только одну команду "cd" (если команда будет полностью пуста, процесс синхронизации не будет запускаться). Установите галку "Включить периодическую фоновую синхронизацию", задайте периодичность синхронизации (там по умолчанию 5 минут вроде). И все. Как таковой синхронизации у вас происходить не будет, зато сброс на диск изменений, вносимых вами в запись, будет происходить с указанной вами частотой.

Примерно так.

babaduk пишет:

Какая ситуация в настоящий момент? Поломается ли база при неполной синхронизации через  Dropbox?

Это как повезет. Все данные уж точно не потеряете.

Стратегия следующая: если вы переносите куда-то базу, или сделали большие изменения, затрагивающие всю базу (обработали все записи скриптом, или влили автоматом какую-нибудь крупную ветку, или еще что), то лучше убедиться что DropBox все засинхронизировал.

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

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

Если боитесь за данные, а Dropbox работает плохо, например из-за плохого интернета, сделайте себе скрипт бекапа (лучше инкрементального, типа rdiff-backup), и поместите его вызов первым в команду синхронизации "Настройки - Синхронизация - Команда синхронизации". Если пользуетесь DropBox, так вообще, больше никаких команд в этой строке не нужно. Не забываете ставить галку "периодическая фоновая синхронизация". По сути, такими настройками вы просто запускете определенную команду в фоне с определенной периодичностью. И пусть у вас там периодически делается бекап. Тогда даже если что-то пойдет не так из-за неполной синхронизации Dropbox, у вас всегда локально будут в наличие сохраненные данные.

babaduk пишет:

Автор ты жив?

Жив, просто на основной работе охренеть как занят. Что хотел?

Нам бы тут на основе дерева знания объединять научиться.

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

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

Корзина в том виде, в котором она есть сейчас - это задел на будущее. Восстановить из нее запись можно вручную, при всяких форсмажорах. В корзину скидываются файлы базы MyTetra перед их перезаписью. То есть, когда файл должен измениться, вначале его копия помещается в корзину, а потом он меняется. И еще в корзину попадают файлы удаленных записей. И при изменении дерева в корзину попадает копия файла делева mytetra.xml. Можете поэкспериментировать: поудалять, поизменять записи, и вы увидите как появляются новые файлы в корзине и удаляются старые.

Имена файлов в корзине генерируются автоматически: "TempUID_имяфайла.расширение". TempUID - это уникальный идентификатор, содержащий в начале себя время UNIX timestamp и случайную строку для избегания коллизий с вероятностью 10^-15 в секунду появления файла. Например, при удалении записи с одной картинкой, в корзине появятся файлы:

14950891894te1zbcsth_mytetra.xml - файл дерева перед удалением записи
1495089189i5ua2dsfjh_text.html - файл текста записи
1495089189cfl7z52n7l_image5288.png - картинка, используемая в записи

Если удаляемые/изменяемые данные не были зашифрованы, то вручную восстановить запись просто. Во-первых, вы их можете посмотреть чтобы понять, та ли эта запись которая нужна. Во-вторых, вы можете создать пустую запись, найти каталог этой записи (сделать видимым столбец "Имя директории" или нажать в контекстном меню "Скопировать ссылку на запись", в ссылке увидеть идентификатор и по нему найти имя директории в файле mytetra.xml). И вот в этой директории нужно подменить файлы записи (html и png), предварительно переименовав их путем удаления префикса "TempUID_". Название и прочие атрибуты удаленной записи можно найти в файле 14950891894te1zbcsth_mytetra.xml, и потом прописать их в интерфейсе MyTetra или напрямую отредактировать файл mytetra.xml.

Внимание! В момент ручной работы с базой MyTetra должна быть выключена. Или, как минимум, в момент подмены файлов записи, курсор должен стоять на другой записи (если вы только подменяете запись) плюс должна быть включена настройка "Периодическая проверка дерева записей..." если вручную меняете mytetra.xml и у вас при этом MyTetra работает.

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

Возможно я когда-нибудь сделаю MyTetra Crypt Tool, чтобы можно было расшифровывать файлы, зная пароль.

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

> Можно ли сделать поиск не только по меткам, названиям и текстам заметок, но и по названиям веток и подветок?

Да, в следующих версиях это будет.


> Есть ли возможность увидеть весь список уже имеющихся меток?

Это называется облако меток. Скорее врего будет, но не в приоритете.


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

Эта задача заведена на guthub, но когда руки дойдут до реализации - не знаю.


> Раз уж ветки и метки в чем-то родственные, есть ли смысл организовывать метки в иерархию. Поможет ли это поиску нужной информации?

Не знаю, по мне так это было бы неудобно. Метки-это "горизонтальные" связи, и потому они равнозначны.

chadwick пишет:

Заметил, что по дереву можно перемещаться клавишами Up, Down, PgUp, PgDn, сворачивать/разворачивать ветки клавишами <Left> и <Right> соответственно, перейти в область записей выбранной ветки можно нажав <Tab>. Если это возможно, сделайте так чтобы повторным нажатием <Tab> можно было перейти из области записей в редактор, а обратно например по <Shift-Tab>. То есть <Tab> перемещает по часовой стрелке, <Shift-Tab> - против. В некоторых qt-приложениях я встречал такой вариант навигации.

С табами есть проблема: как только курсор попадает в виджет, который по-своему трактует реакцию на TAB, то клавиатурой выйти из него невозможно. Например, это виджет таблицы, который используется в списке записей и в списке найденных записей. Это стандартное поведение, хотя его и можно изменить.

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