diff --git a/src/controllers/notifications/NotificationModel.cpp b/src/controllers/notifications/NotificationModel.cpp new file mode 100644 index 00000000..8049f62b --- /dev/null +++ b/src/controllers/notifications/NotificationModel.cpp @@ -0,0 +1,26 @@ +#include "NotificationModel.hpp" + +#include "Application.hpp" +#include "singletons/Settings.hpp" +#include "util/StandardItemHelper.hpp" + +namespace chatterino { + +NotificationModel::NotificationModel(QObject *parent) + : SignalVectorModel(1, parent) +{ +} + +// turn a vector item into a model row +QString NotificationModel::getItemFromRow(std::vector &row, + const QString &original) +{ + return QString(row[0]->data().toString()); +} + +void NotificationModel::getRowFromItem(const QString &item, + std::vector &row) +{ + setStringItem(row[0], item); +} +} // namespace chatterino diff --git a/src/controllers/notifications/NotificationModel.hpp b/src/controllers/notifications/NotificationModel.hpp new file mode 100644 index 00000000..83d14ba0 --- /dev/null +++ b/src/controllers/notifications/NotificationModel.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include + +#include "common/SignalVectorModel.hpp" +#include "controllers/notifications/NotificationController.hpp" + +namespace chatterino { + +class NotificationController; + +class NotificationModel : public SignalVectorModel +{ + explicit NotificationModel(QObject *parent); + +protected: + // turn a vector item into a model row + virtual QString getItemFromRow(std::vector &row, + const QString &original) override; + + // turns a row in the model into a vector item + virtual void getRowFromItem(const QString &item, + std::vector &row) override; + + friend class NotificationController; +}; + +} // namespace chatterino