Lab1
Loading...
Searching...
No Matches
Note Class Reference

Модель даних для однієї нотатки. More...

#include <note.h>

Public Member Functions

 Note (const QString &title, int schemaId)
 Конструктор класу Note.
 
void addField (const QString &name, const QString &value)
 Додає нове поле з даними до нотатки.
 
QString getTitle () const
 Повертає назву нотатки.
 
int getSchemaId () const
 Повертає ID схеми, до якої належить нотатка.
 
const QMap< QString, QString > & getFields () const
 Повертає мапу всіх полів та їх значень.
 
QDateTime getCreationDate () const
 Повертає дату та час створення нотатки.
 
void addTag (const QString &tag)
 Додає один новий тег до нотатки.
 
const QSet< QString > & getTags () const
 Повертає набір усіх тегів, що належать до нотатки.
 
void setTags (const QSet< QString > &tags)
 Повністю замінює набір тегів нотатки.
 
void setTitle (const QString &title)
 Встановлює нову назву для нотатки.
 
void setImage (const QString &base64Image)
 Зберігає зображення у нотатці.
 
QString getImage () const
 Отримує збережене зображення.
 
bool isPinned () const
 Перевіряє, чи є нотатка "Закріпленою" (Вибраною).
 
void setPinned (bool pinned)
 Встановлює статус закріплення нотатки.
 
void setCreationDate (const QDateTime &date)
 Встановлює дату створення нотатки.
 

Detailed Description

Модель даних для однієї нотатки.

Цей клас є основним контейнером даних. Він зберігає всю інформацію, що стосується однієї нотатки: її заголовок, прив'язку до схеми (шаблону), динамічні поля з даними, теги, дату створення.

Також клас підтримує розширені можливості:

  • Збереження зображень (у форматі Base64).
  • Статус "Закріплено" (Pinned) для пріоритетного відображення у списку.

Constructor & Destructor Documentation

◆ Note()

Note::Note ( const QString &  title,
int  schemaId 
)

Конструктор класу Note.

  • Створює нову нотатку із заданим заголовком та схемою. Дата створення встановлюється автоматично на поточний момент часу. За замовчуванням нотатка не є закріпленою і не містить зображення.
Parameters
titleНазва (заголовок) нової нотатки.
schemaIdІдентифікатор (індекс) схеми, за якою створюється нотатка.

Member Function Documentation

◆ addField()

void Note::addField ( const QString &  name,
const QString &  value 
)

Додає нове поле з даними до нотатки.

  • Використовується для заповнення динамічних полів, визначених у схемі.
Parameters
nameНазва поля (має відповідати назві поля у схемі, наприклад "Інгредієнти").
valueЗначення, яке ввів користувач (наприклад, "Картопля, морква").

◆ addTag()

void Note::addTag ( const QString &  tag)

Додає один новий тег до нотатки.

  • Тег автоматично очищується від зайвих пробілів. Якщо такий тег вже існує, він не буде доданий повторно (використовується QSet).
Parameters
tagТекст тега для додавання (наприклад, "важливо").

◆ getCreationDate()

QDateTime Note::getCreationDate ( ) const

Повертає дату та час створення нотатки.

Returns
QDateTime об'єкт, що зберігає момент створення.

◆ getFields()

const QMap< QString, QString > & Note::getFields ( ) const

Повертає мапу всіх полів та їх значень.

Returns
Константне посилання на QMap, де ключ — це назва поля, а значення — вміст поля.

◆ getImage()

QString Note::getImage ( ) const

Отримує збережене зображення.

Повертає рядок у форматі Base64. Для відображення в інтерфейсі цей рядок необхідно декодувати назад у QByteArray і завантажити в QPixmap. Якщо зображення не було встановлено, повертає порожній рядок.

Returns
QString з даними зображення або порожній рядок.

◆ getSchemaId()

int Note::getSchemaId ( ) const

Повертає ID схеми, до якої належить нотатка.

  • Цей ID використовується для того, щоб знати, які поля має відображати редактор і до якої категорії належить нотатка при побудові статистики.
Returns
int Ідентифікатор (індекс) схеми.

◆ getTags()

const QSet< QString > & Note::getTags ( ) const

Повертає набір усіх тегів, що належать до нотатки.

Returns
Константне посилання на QSet<QString> з унікальними тегами.

◆ getTitle()

QString Note::getTitle ( ) const

Повертає назву нотатки.

Returns
QString, що містить заголовок нотатки.

◆ isPinned()

bool Note::isPinned ( ) const

Перевіряє, чи є нотатка "Закріпленою" (Вибраною).

Закріплені нотатки мають пріоритет при сортуванні (відображаються зверху списку) і позначаються спеціальною іконкою (зірочкою) в інтерфейсі.

Returns
true, якщо нотатка закріплена, інакше false.

◆ setCreationDate()

void Note::setCreationDate ( const QDateTime &  date)

Встановлює дату створення нотатки.

Використовується переважно для десеріалізації (завантаження з JSON) та тестування.

Parameters
dateНова дата та час створення.

◆ setImage()

void Note::setImage ( const QString &  base64Image)

Зберігає зображення у нотатці.

Зображення зберігається не як файл на диску, а як закодований текстовий рядок у форматі Base64. Це дозволяє зберігати картинку безпосередньо всередині JSON-файлу бази даних разом з текстом (Embedded Image).

Parameters
base64ImageРядок, що містить бінарні дані зображення, закодовані в Base64.

◆ setPinned()

void Note::setPinned ( bool  pinned)

Встановлює статус закріплення нотатки.

Зміна цього статусу впливає на порядок сортування нотаток у головному списку.

Parameters
pinnedtrue для закріплення, false для відкріплення.

◆ setTags()

void Note::setTags ( const QSet< QString > &  tags)

Повністю замінює набір тегів нотатки.

  • Використовується при редагуванні нотатки, коли користувач змінює список тегів. Старий набір тегів видаляється і замінюється новим.
Parameters
tagsНовий набір тегів (QSet).

◆ setTitle()

void Note::setTitle ( const QString &  title)

Встановлює нову назву для нотатки.

Parameters
titleНовий рядок заголовка.

The documentation for this class was generated from the following files: