MyTetra Share
Делитесь знаниями!
Быстрое добавление новой записи в MyTetra по глобальной горячей клавише
Время создания: 19.06.2019 19:37
Раздел: INFO - System - MyTetra
Запись: wwwlir/Tetra/master/base/1560944274gd4abqdde9/text.html на raw.githubusercontent.com

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

 

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

 

Во-первых, надо создать ветку с говорящим названием "Входящие" или "Неразобранные", именно в нее будут добавляться записи по глобальной горячей клавише. Далее нужно узнать ID этой ветки. Для этого можно заглянуть в файл mytetra.xml и найти название ветки по имени (смотреть нужно теги <node>). Если ветка зашифрована, то понять, где находится строка с ее описанием, можно просто по расположению в дереве. Пусть найденный ID будет равен, к примеру, 1540715849a3hrpjk4ix.

 

Далее, в случае Linux, нужно рядом со скриптом mytetra.run сделать скрипт mytetraAddNote.run следующего содержания (для Windows нужно сделать что-то аналогичное в *.bat-файле):

 

 

#!/bin/sh

PROGDIR=$(dirname $(readlink -e $0))
cd $PROGDIR


./mytetra.run --control --openTreeItem 1540715849a3hrpjk4ix
./mytetra.run --control --addNoteDialog

 

 

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

 

Внимание! В экспериментальной ветка пока есть проблема: если в момент выполнения данного скрипта окно MyTetra было свернуто в трей, то после добавления записи будет происходить сегфолт. Это как-то связано с закрытием модального окна, у которого основное окно свернуто. Пока эта проблема не решена, и чтобы ее обойти, надо первой командой в скрипте дать команду --show.

 

Можно сразу проверить работу скрипта, просто запустив его. Должно появляться окно добавления новой записи. Добавленная запись попадет в ветку "Входящие". Данный скрипт с полным путем к нему надо навесить на нужную комбинацию клавиш, так же, как это делалось для команды открытия окна MyTetra (автор испльзует комбинацию Alt+Ins).

 

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

 

 

/home/USER/work/mytetra/mytetra.run -openTreeItem 1540715849a3hrpjk4ix ; /home/USER/work/mytetra/mytetra.run --control --addNoteDialog

 

 

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

 
MyTetra Share v.0.65
Яндекс индекс цитирования