Мое решение, которое реализует функционал корзины.

1. Введем понятие "Режим корзины" - это такой режим работы приложения MyTetra, в котором работа происходит с удаленными записями. Вместо них при открытии приложения, в корневой папке находятся 2 ветки с названиями "корзина" и "восстановление".

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

2. Для перевода программы в "Режим корзины" следует:
  - Заранее создать папку к примеру "Архивные копии". Единоразово.
  - В эту папку произвести архивирование следующих файлов:
      mytetra.xml (файл основной базы данных)
      conf.ini (из каталога программы)
    Там будет склад файлов к примеру 18052017204023archive.zip
    Перед каждым переводом программы в "Режим корзины" будет создаваться новый архив и добавляться в эту папку. Это действие будет производится автоматически, скриптом.

3.  Перед переводом программы в "Режим корзины" рядом с папкой "trash" создается папка "trash_export" (в случае если папка уже существовала, она очищается). В этой папке создаются подпапки "data" "trash". В папке "data" создаются все нужные файлы для работы полноценной базы данных. Для каждой удаленной записи из корзины создаются соответствующие папки в подпапке "base". Данные берутся из файлов *_mytetra.xml и аккумулируются в одном новом файле mytetra.xml.

4. Файл "conf.ini" переименовывается в "conf.ini.tmp". Вместо него создается новый файл, в котором прописаны пути к базе данных "trash_export".

5. Запускается программа. В ней пользователь производит необходимые манипуляции и выгружает восстанавливаемые записи в отдельную папку.

6. После выхода из программы пользователь запускает скрипт перевода программы в "Основной режим". Производится переименование "conf.ini" в "conf.ini.exp.tmp" и файла "conf.ini.tmp" в "conf.ini".

7. Запускается программа и в ней пользователь производит импорт отобранных записей и распределяет их по своим местам.

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

Я примерно так себе  и представлял. У меня возникла идея, как просматривать записи из корзины с помощью несложного, как мне кажется "костыля". Его создание и алгоритм я опишу в следующем посте.

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

Нашел я все таки корзину. Ей оказалась отдельно расположенная одноименная папка. Однако мне не понятен алгоритм восстановления из нее записей. Не могли бы вы прояснить алгоритм по которому надо действовать?

1.  В окне "о программе MyTetra" не лишними будут ссылки на ваш сайт и на этот форум.

Установил программу. Понравилась.
Замечания.
1. Прикрепить файл - будет удобно методом драг-н-дропа. Пока что требуется много лишних движений для этого.

Извиняюсь, ветку не читал, возможно мои идеи уже были кем то озвучены.

Здравствуйте. Посмотрел все 3 видео Есть несколько мыслей пока не забыл запишу:
   1. При операции вырезания например файла в стандартном эксплорере windows сам файл все еще остается на своем месте, до момента операции вставки. У вас же при операции вырезания записи исчезают сразу. И если не произвести вставку, как я понял можно запись потерять совсем. Поэтому пользоваться вашей программой несколько опасно.
  2. Пожелание сделать корзину, куда могли бы помещаться записи при операциях вырезания и удаления. После операции вставки записи из корзины автоматически удаляются. Ну и встроить настраиваемое самоочищение по истечении времени.
  3. Пожелание сделать функционал, аналогичный дополнению Firefox под названием ScrapBook. Т.е. иметь возможнос ть хранить статичные html страницы в качестве записей.
  3.1 В FireFox сделать дополнение, которое добавляло бы выделенный фрагмент, или статичную страницу в базу программы.
  4. Добавить функционал импортирования html страниц (или целого списка страниц). (наприимер импортировать все html из определенной папки)
  5. Не стараться позиционировать и развивать программу в качестве менеджера паролей. Все таки есть специальные программы для этого, которые намного удобнее.
  6. Как я понял, для того что бы перейти по ссылке, при нажатии на нее нужно нажимать дополнительные клавиши. Логичнее было бы чтобы переход был по умолчанию при простом нажатии на ссылку.

Буду устанавливать и тестировать вашу замечательную программу.