diff --git a/src/modules/windows/notes/NotesContentsWidget.cpp b/src/modules/windows/notes/NotesContentsWidget.cpp index 375e11dbdf..dab5236623 100644 --- a/src/modules/windows/notes/NotesContentsWidget.cpp +++ b/src/modules/windows/notes/NotesContentsWidget.cpp @@ -38,11 +38,14 @@ namespace Otter { NotesContentsWidget::NotesContentsWidget(const QVariantMap ¶meters, Window *window, QWidget *parent) : ContentsWidget(parameters, window, parent), - m_ui(new Ui::NotesContentsWidget) + m_ui(new Ui::NotesContentsWidget), + m_zoom(100) { m_ui->setupUi(this); m_ui->filterLineEditWidget->setClearOnEscape(true); + m_defaultFont = m_ui->textEditWidget->font(); + QMenu *addMenu(new QMenu(m_ui->addButton)); addMenu->addAction(ThemesManager::createIcon(QLatin1String("inode-directory")), tr("Add Folder…"), this, &NotesContentsWidget::addFolder); addMenu->addAction(tr("Add Note"), this, &NotesContentsWidget::addNote); @@ -263,6 +266,20 @@ void NotesContentsWidget::triggerAction(int identifier, const QVariantMap ¶m } } +void NotesContentsWidget::setZoom(int zoom) +{ + if (zoom != m_zoom) + { + m_zoom = zoom; + + QFont font(m_defaultFont); + font.setPointSize(qRound(font.pointSize() * (static_cast(zoom) / 100))); + m_ui->textEditWidget->setFont(font); + + emit zoomChanged(zoom); + } +} + void NotesContentsWidget::updateActions() { const QModelIndex index(m_ui->notesViewWidget->getCurrentIndex()); @@ -428,4 +445,14 @@ bool NotesContentsWidget::eventFilter(QObject *object, QEvent *event) return ContentsWidget::eventFilter(object, event); } +bool NotesContentsWidget::canZoom() const +{ + return true; +} + +int NotesContentsWidget::getZoom() const +{ + return m_zoom; +} + } diff --git a/src/modules/windows/notes/NotesContentsWidget.h b/src/modules/windows/notes/NotesContentsWidget.h index af8eb069a7..26f944b93e 100644 --- a/src/modules/windows/notes/NotesContentsWidget.h +++ b/src/modules/windows/notes/NotesContentsWidget.h @@ -50,9 +50,12 @@ class NotesContentsWidget final : public ContentsWidget QIcon getIcon() const override; ActionsManager::ActionDefinition::State getActionState(int identifier, const QVariantMap ¶meters = {}) const override; bool eventFilter(QObject *object, QEvent *event) override; + virtual bool canZoom() const override; + int getZoom() const override; public slots: void triggerAction(int identifier, const QVariantMap ¶meters = {}, ActionsManager::TriggerType trigger = ActionsManager::UnknownTrigger) override; + void setZoom(int zoom) override; protected: void changeEvent(QEvent *event) override; @@ -71,6 +74,8 @@ protected slots: private: Ui::NotesContentsWidget *m_ui; + int m_zoom; + QFont m_defaultFont; }; }