Автор ты жив?
Жив, просто на основной работе охренеть как занят. Что хотел?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум сайта Webhamster.ru → Сообщения от xintrea
Автор ты жив?
Жив, просто на основной работе охренеть как занят. Что хотел?
Нам бы тут на основе дерева знания объединять научиться.
Инсталлятор планируется, но в очень, очень дальней перспективе. Связано это с тем, что программа кроссплатформенная, и для разных систем инсталляторы должны быть разными.
Я планирую делать отдельный сайт для 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, но когда руки дойдут до реализации - не знаю.
> Раз уж ветки и метки в чем-то родственные, есть ли смысл организовывать метки в иерархию. Поможет ли это поиску нужной информации?
Не знаю, по мне так это было бы неудобно. Метки-это "горизонтальные" связи, и потому они равнозначны.
Заметил, что по дереву можно перемещаться клавишами Up, Down, PgUp, PgDn, сворачивать/разворачивать ветки клавишами <Left> и <Right> соответственно, перейти в область записей выбранной ветки можно нажав <Tab>. Если это возможно, сделайте так чтобы повторным нажатием <Tab> можно было перейти из области записей в редактор, а обратно например по <Shift-Tab>. То есть <Tab> перемещает по часовой стрелке, <Shift-Tab> - против. В некоторых qt-приложениях я встречал такой вариант навигации.
С табами есть проблема: как только курсор попадает в виджет, который по-своему трактует реакцию на TAB, то клавиатурой выйти из него невозможно. Например, это виджет таблицы, который используется в списке записей и в списке найденных записей. Это стандартное поведение, хотя его и можно изменить.
В любом случае, все хотелки по настройке горячих клавиш и навигации клавиатурой будут реализовываться только после того, как появится подсистема настроек клавиатуры, а с ней не все однозначно, потому что есть вся программа, а есть редактор в программе. И Их надо доуг с другом как-то состыковывать.
К функционалу программы есть пожелания, а именно:
Часть этих хотелок планируется добавлять в следующую десктопную версию.
Возможно не плохо будет сделать что-то подобное в дистрибутиве.
Поместил в задачи на GitHub.
Сегодня нашёл небольшой баг
Записал себе.
И последний, только на этот раз уже более неприятный.
У меня программа и база лежат на флешке, чтобы можно было пользоваться базой как дома, так и на работе (на которой с интернетом как-то не очень хорошо). Не знаю, имеет ли это смысл, но в один момент нужно было вытащить флешку на пару минут.
Эээ, ну это довольно странно - требовать от программы чтобы она запустилась с диска, неважно какого, потом вытащить его, поработать с другим, потом снова всунуть прежний... Может быть лучше купить маленький настольный USB-хаб? Он копейки стоит.
xintrea пишет:Если нужно сделать вложенный - просто меняете отступы.
Тогда и нумерация переносится с отступом. Если же поменять вложенный список с нумерованного на буллеты, а при отступе обратно опять сделать нумерацию, то она начнется с единицы, а не с последнего номера.
Проверил, если в html делать вложенные <ol>, <ul> то тогда в самом редакторе вложенность работает как надо.
Еще желательно больше видов списков, чем буллеты и нумерованный. Опять же в html это можно проставить, и тогда в самом редакторе оно работает.Может просто по нажатию таба обрамлять текщий пункт <ol> или <ul> и тогда оно будет работать?
Я пытался это реализовать, но была какая-то проблема. Вроде вложенность не добавлялась, а просто шло форматирование в нужный список. Там во внутрях вовсе не HTML, а структура документа. С HTML тоже можно работать, но очень криво.
5. Сделать возможность скрывать табы с деревом и записями, то есть чтобы показывался один редактор. Типа как в любой IDE.
Кнопка "Распахнуть область редактирования" - это не то?
Заметил что цвет текста не поменять из UI, только через html:
6. Добавить компонент для выбора цвета текста
Такая возможность есть, но она скрыта и недоделана немного.
http://webhamster.ru/site/page/index/ar … ctcode/143
Раздел "Скрытые возможности"
Подробности такие. Время синхронизировано на Линуск и Виндовс машине. Различия увидел такие.
Рассмотрим только Виндовс машину. Когда база лежит в папке программы, то при редактировании у файла дерева меняются атрибуты изменен и открыт, но не меняется атрибут создан. Когда мы кладем базу на сетевой диск, то при редактировании меняются все три атрибута одним временем. И программа каждые 10 секунд выдает сообщение о изменении данных сторонней программой. Причем больше никаких копий Тетры не запускали.
Не понятно, что за атрибуты " у файла дерева меняются атрибуты изменен и открыт"? Запустите Peower Shell, и в каталоге с mytetra.xml выполните команду:
dir . -Filter mytetra.xml | Format-Table Fullname,CreationTime,LastAccessTime,LastWriteTime
отредактируйте файл, и дайте команду снова. Вывод сюда покажите. Сделать это нужно для файла на локальном диске, и для файла на шаре.
К странице можно подключить внешние стили, но потом оказывается, что из них подхватывается лишь цвет текста, его фон и атрибуты текста вроде шрифта, его размера и жирности (думал написать себе оформление фрагментов кода, одного лишь моноширинного шрифта немного недостаточно, но, в принципе, не критично).
В Qt с CSS в просто беда. Я в самом начале планировал делать WISYWING редактор на основе стилей, чтоб не шрифт и размер выбирать, а иметь набор стилей, и выбирать для текста нужный стиль. И иметь один *.css файл на все записи. Он по-моему даже все еще лежит в моей базе знаний в каталоге base. Я попробовал прикрутить этот файл к тексту записи, но оказалось, что базовый компонент QTextEdit не понимает даже простые атрибуты стилей. И мне пришлось на это дело забить, и сделать просто выбор шрифта, размера и отступов, хотя я очень не хотел этого делать. Ну вот как-то так.
Компонент, который отображает HTML заметку, так сильно ограничен, что не может без переделки под себя показать HTML страницу?
Именно так. Причем делает он это дело самостоятельно и нет никакой возможности повлиять на то, чтобы он оставлял нужный HTML-код. Таков компонент QTextEdit, так он работает, а методы, переопределяющие его работу закрытые. Это нужно все переделывать на уровне самого Qt. Или писать полностью свой редактор с нуля.
Если уж говорить по делу, то сегодня при сортировке записей (точнее при их перетаскивании между разделами) я обнаружил, что у меня все записи в категориях оказались совсем не те. Позже я понял, что это не я такой невнимательный, а просто drag'n'drop работает странно (по крайней мере под виндой). Если взять запись и начать перемещать её не строго в сторону, а вверх/вниз/по диагонали, то есть шанс что фокус переключится на другую запись и, соответственно, в другую категорию переместится совсем не то (гифка).
Да, есть такой баг, тоже сейчас его заметил. Это, видимо, регрессия в QTableView, раньше такого небыло, а в моем коде такого поведения не прописывалось никогда, все системное.
Дома проверю на линухе, таких проблем не замечал но надо проверить еще раз.
Записываю в баги, надо на проффорумах поспрашивать.
Форум сайта Webhamster.ru → Сообщения от xintrea
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 2 official extensions. Copyright © 2003–2009 PunBB.
Сгенерировано за 0.050 секунды (79% PHP — 21% БД) 4 запросов к базе данных