55 const std::vector<LinkData>&
getLinks()
const;
76 std::vector<LinkData>
searchLinks(
const std::string& query)
const;
82 void addFolder(
const std::string& folderName);
88 const std::vector<std::string>&
getFolders()
const;
101 bool hasFolder(
const std::string& folderName)
const;
114 void addContext(
const std::string& contextName);
120 const std::vector<std::string>&
getContexts()
const;
133 bool hasContext(
const std::string& contextName)
const;
140 bool saveToFile(
const std::string& filePath)
const;
155 std::vector<LinkData>
filterLinks(
const std::vector<std::string>& allowedFolders,
const std::vector<std::string>& allowedContexts)
const;
158 std::vector<LinkData> m_links;
159 std::vector<std::string> m_folders;
160 std::vector<std::string> m_contexts;
bool hasContext(const std::string &contextName) const
Перевіряє існування контексту.
Definition linkmanager.cpp:87
void removeFolder(const std::string &folderName)
Видаляє папку зі списку.
Definition linkmanager.cpp:67
LinkManager()
Конструктор за замовчуванням. Ініціалізує менеджер та додає базові контексти.
Definition linkmanager.cpp:8
void updateLink(int index, const LinkData &updatedData)
Оновлює дані існуючого посилання.
Definition linkmanager.cpp:29
void removeContext(const std::string &contextName)
Видаляє контекст зі списку.
Definition linkmanager.cpp:83
const std::vector< std::string > & getContexts() const
Отримує список всіх контекстів.
Definition linkmanager.cpp:82
bool loadFromFile(const std::string &filePath)
Завантажує дані з JSON файлу.
Definition linkmanager.cpp:127
std::vector< LinkData > searchLinks(const std::string &query) const
Шукає посилання за запитом. Пошук здійснюється по назві, URL, коментарю, папці та контекстах.
Definition linkmanager.cpp:40
void deleteLink(int index)
Видаляє посилання за індексом.
Definition linkmanager.cpp:25
void addContext(const std::string &contextName)
Додає новий контекст (тег).
Definition linkmanager.cpp:79
std::vector< LinkData > filterLinks(const std::vector< std::string > &allowedFolders, const std::vector< std::string > &allowedContexts) const
Фільтрує посилання за папками та контекстами.
Definition linkmanager.cpp:198
void addLink(const LinkData &newLink)
Додає нове посилання до колекції.
Definition linkmanager.cpp:15
void clearLinksFolder(const std::string &folderName)
Очищає прив'язку посилань до видаленої папки. Встановлює поле folder у посиланнях в пустий рядок.
Definition linkmanager.cpp:75
void addFolder(const std::string &folderName)
Додає нову папку (категорію).
Definition linkmanager.cpp:63
const std::vector< std::string > & getFolders() const
Отримує список існуючих папок.
Definition linkmanager.cpp:66
const std::vector< LinkData > & getLinks() const
Отримує список всіх посилань.
Definition linkmanager.cpp:23
bool hasFolder(const std::string &folderName) const
Перевіряє наявність папки.
Definition linkmanager.cpp:71
bool saveToFile(const std::string &filePath) const
Зберігає дані у JSON файл.
Definition linkmanager.cpp:93
Структура для зберігання даних про одне посилання.
Definition linkmanager.h:20
std::string comment
Коментар користувача.
Definition linkmanager.h:26
std::string folder
Категорія (папка), до якої належить посилання.
Definition linkmanager.h:23
std::string name
Назва посилання (заголовок).
Definition linkmanager.h:21
std::vector< std::string > contexts
Список контекстних тегів (наприклад, "Робота", "Навчання").
Definition linkmanager.h:24
std::string relatedUrl
Пов'язане посилання (якщо є).
Definition linkmanager.h:25
std::string url
URL-адреса ресурсу.
Definition linkmanager.h:22
std::string iconData
Дані іконки сайту у форматі Base64 (PNG).
Definition linkmanager.h:27