Менеджер записів ELibrary

    
 
Напевно у кожного на вінчестері скупчується величезна кількість всіляких книжок, записів, нотаток і так далі. Звичайно ж все це в різних форматах fb2, pdf, doc, а може бути, що до однієї логічної запису відноситься декілька файлів або серія книг. Як все це зберігати?
 
 
Одним прекрасним ранком переді мною виник саме таке питання, так як я вже не міг нормально орієнтуватися по масивах директорій і файлів. Вирішивши для себе якось упорядкувати хаос я встановив менеджер електронних книг (назва давати не буду, варіантів багато, всім у допомогу гугл).
 
На жаль менеджер мене не влаштував, так як при формуванні бібліотек менеджер оперує шляхами до файлів. Здається нічого критичного в цьому немає, але якщо ми переміщаємо / копіюємо / видаляємо файл, то відповідно сконфигурированная бібліотека летить під три чорти. Ах так, плюс до всього, вам доводилося копіювати 100500 + файлів на знімний носій? У уникнення даної задоволення доводитися все складати в архів, що також займає час.
 
Довелося вигадувати велосипед під себе. По-перше, було вирішено, що всі файли будуть зберігатися в базі даних, а по-друге, що буде використовуватися вбудована база даних FireBird 2.5. Ну і звичайно все це на православному С + + / Qt 5.3.0
 
Через кілька днів я придбав найпростіший менеджер бібліотек, який зберігає файли в базі даних і здійснює пошук по фільтрам.
 
 
 
Запис можна додати, або з меню, або Ctrl + N, або перетягуванням файлів на головне вікно. Спочатку необхідно вибрати один або декілька файлів, які будуть співвідноситися із записом. Далі необхідно заповнити кілька полів: «назва», «автор», «тема», «теги» і «опис». Причому якщо поля «назва», «автор» і «опис» завжди доведеться заповнювати руками, то поля тема і опис вибираються з довідника бази, якщо значення для заповнення не знаходиться, то додається нове. За бажанням можна ще докинути файлів в запис кнопкою "+ файли". Файли при додаванні тиснуться методом qCompress, з рівнем 6.
 
 
 
Кнопкою «Знайти» грід заповнюється відповідно до обраних фільтрами. Подвійним натисканням по запису або з меню відкривається директорія з усіма присутніми в ній файлами. Якщо подвійним клацанням клацнути по рядку з інформацією по файлу, то відповідно файл розпакується і відкриється. Файли розпаковуються в temp директорію ELibrary, після закриття директорія з усіма файлами видаляється.
 
Ну от і все, пост не претендує на вихід у топ, але сподіваюся кому-небудь знадобиться. А якщо зацікавить можу і продовжити розширювати функціонал.
Ах так посилання на GitHub
src — директорія з исходниками і «чистої» базою ELIBRARY_clean.FDB
build_mingw_win32 — директорія з білдом під вінду. У файлі settings зберігаються налаштування підключення до БД.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.