From 91f3d71d750e68f1d5e154d62f12264f0080797e Mon Sep 17 00:00:00 2001 From: Benjamin Hennion Date: Sat, 24 Sep 2022 04:42:30 +0200 Subject: [PATCH] Move gui/TextEditor to control/tools --- src/core/control/Control.cpp | 4 +++- src/core/control/Control.h | 4 ++++ src/core/{gui => control/tools}/TextEditor.cpp | 15 ++++++--------- src/core/{gui => control/tools}/TextEditor.h | 0 .../{gui => control/tools}/TextEditorWidget.h | 0 src/core/gui/MainWindow.cpp | 2 +- src/core/gui/MainWindow.h | 2 +- src/core/gui/PageView.cpp | 2 +- src/core/gui/toolbarMenubar/FontButton.cpp | 4 ++-- src/core/gui/toolbarMenubar/FontButton.h | 4 ++-- src/core/gui/toolbarMenubar/ToolMenuHandler.cpp | 2 +- src/core/gui/toolbarMenubar/ToolMenuHandler.h | 2 +- src/core/view/overlays/TextEditionView.cpp | 2 +- 13 files changed, 23 insertions(+), 20 deletions(-) rename src/core/{gui => control/tools}/TextEditor.cpp (98%) rename src/core/{gui => control/tools}/TextEditor.h (100%) rename src/core/{gui => control/tools}/TextEditorWidget.h (100%) diff --git a/src/core/control/Control.cpp b/src/core/control/Control.cpp index d58445ff46b2..98c671551e1c 100644 --- a/src/core/control/Control.cpp +++ b/src/core/control/Control.cpp @@ -35,13 +35,13 @@ #include "control/settings/SettingsEnums.h" // for Button #include "control/settings/ViewModes.h" // for ViewM.. #include "control/tools/EditSelection.h" // for Edit... +#include "control/tools/TextEditor.h" // for Text... #include "control/xojfile/LoadHandler.h" // for Load... #include "control/zoom/ZoomControl.h" // for Zoom... #include "gui/MainWindow.h" // for Main... #include "gui/PageView.h" // for XojP... #include "gui/PdfFloatingToolbox.h" // for PdfF... #include "gui/SearchBar.h" // for Sear... -#include "gui/TextEditor.h" // for Text... #include "gui/XournalView.h" // for Xour... #include "gui/XournalppCursor.h" // for Xour... #include "gui/dialog/AboutDialog.h" // for Abou... @@ -1919,6 +1919,8 @@ void Control::selectDefaultTool() { } } +void Control::setFontSelected(const XojFont& font) { this->getWindow()->setFontButtonFont(font); } + void Control::toolChanged() { ToolType type = toolHandler->getToolType(); diff --git a/src/core/control/Control.h b/src/core/control/Control.h index e9b68c0796cd..f5978df052d8 100644 --- a/src/core/control/Control.h +++ b/src/core/control/Control.h @@ -65,6 +65,8 @@ class TextEditor; class XournalScheduler; class ZoomControl; class ToolMenuHandler; +class XojFont; + class Control: public ActionHandler, public ToolListener, @@ -149,6 +151,8 @@ class Control: void selectTool(ToolType type); void selectDefaultTool(); + void setFontSelected(const XojFont& font); + void updatePageNumbers(size_t page, size_t pdfPage); /** diff --git a/src/core/gui/TextEditor.cpp b/src/core/control/tools/TextEditor.cpp similarity index 98% rename from src/core/gui/TextEditor.cpp rename to src/core/control/tools/TextEditor.cpp index 0e60fe1daef0..24a1bba9abae 100644 --- a/src/core/gui/TextEditor.cpp +++ b/src/core/control/tools/TextEditor.cpp @@ -12,9 +12,10 @@ #include "control/AudioController.h" #include "control/Control.h" // for Control #include "control/settings/Settings.h" -#include "model/Font.h" // for XojFont -#include "model/Text.h" // for Text -#include "model/XojPage.h" // for XojPage +#include "gui/XournalppCursor.h" // for XournalppCursor +#include "model/Font.h" // for XojFont +#include "model/Text.h" // for Text +#include "model/XojPage.h" // for XojPage #include "undo/DeleteUndoAction.h" #include "undo/InsertUndoAction.h" #include "undo/TextBoxUndoAction.h" @@ -24,11 +25,7 @@ #include "util/raii/CStringWrapper.h" #include "view/overlays/TextEditionView.h" -#include "MainWindow.h" -#include "PageView.h" // for XojPageView #include "TextEditorWidget.h" // for gtk_xoj_int_txt_new -#include "XournalView.h" // for XournalView -#include "XournalppCursor.h" // for XournalppCursor class UndoAction; @@ -1018,7 +1015,7 @@ void TextEditor::finalizeEdition() { Layer* layer = this->page->getSelectedLayer(); UndoRedoHandler* undo = this->control->getUndoRedoHandler(); - this->control->getWindow()->setFontButtonFont(this->control->getSettings()->getFont()); + this->control->setFontSelected(this->control->getSettings()->getFont()); if (this->bufferEmpty()) { // Delete the edited element from layer @@ -1091,7 +1088,7 @@ void TextEditor::initializeEditionAt(double x, double y) { } this->originalTextElement = nullptr; } else { - this->control->getWindow()->setFontButtonFont(text->getFont()); + this->control->setFontSelected(text->getFont()); this->originalTextElement = text; // The original code did not use clone here (but did the cloning by hand). Why? diff --git a/src/core/gui/TextEditor.h b/src/core/control/tools/TextEditor.h similarity index 100% rename from src/core/gui/TextEditor.h rename to src/core/control/tools/TextEditor.h diff --git a/src/core/gui/TextEditorWidget.h b/src/core/control/tools/TextEditorWidget.h similarity index 100% rename from src/core/gui/TextEditorWidget.h rename to src/core/control/tools/TextEditorWidget.h diff --git a/src/core/gui/MainWindow.cpp b/src/core/gui/MainWindow.cpp index b85ad37bc2ef..1ac3ce8bc365 100644 --- a/src/core/gui/MainWindow.cpp +++ b/src/core/gui/MainWindow.cpp @@ -644,7 +644,7 @@ void MainWindow::createToolbar() { this->control->getScheduler()->unblockRerenderZoom(); } -void MainWindow::setFontButtonFont(XojFont& font) { toolbar->setFontButtonFont(font); } +void MainWindow::setFontButtonFont(const XojFont& font) { toolbar->setFontButtonFont(font); } auto MainWindow::getFontButtonFont() const -> XojFont { return toolbar->getFontButtonFont(); } diff --git a/src/core/gui/MainWindow.h b/src/core/gui/MainWindow.h index d7b82f4a9e5c..25aaf2e74383 100644 --- a/src/core/gui/MainWindow.h +++ b/src/core/gui/MainWindow.h @@ -72,7 +72,7 @@ class MainWindow: public GladeGui, public LayerCtrlListener { void updatePageNumbers(size_t page, size_t pagecount, size_t pdfpage); - void setFontButtonFont(XojFont& font); + void setFontButtonFont(const XojFont& font); XojFont getFontButtonFont() const; void saveSidebarSize(); diff --git a/src/core/gui/PageView.cpp b/src/core/gui/PageView.cpp index f611da93c417..bb534b1024dd 100644 --- a/src/core/gui/PageView.cpp +++ b/src/core/gui/PageView.cpp @@ -41,6 +41,7 @@ #include "control/tools/Selection.h" // for RectSelection #include "control/tools/SplineHandler.h" // for SplineHandler #include "control/tools/StrokeHandler.h" // for StrokeHandler +#include "control/tools/TextEditor.h" // for TextEditor, TextE... #include "control/tools/VerticalToolHandler.h" // for VerticalToolHandler #include "gui/FloatingToolbox.h" // for FloatingToolbox #include "gui/MainWindow.h" // for MainWindow @@ -82,7 +83,6 @@ #include "PageViewFindObjectHelper.h" // for SelectObject, Pla... #include "RepaintHandler.h" // for RepaintHandler -#include "TextEditor.h" // for TextEditor, TextE... #include "XournalView.h" // for XournalView #include "XournalppCursor.h" // for XournalppCursor #include "filesystem.h" // for path diff --git a/src/core/gui/toolbarMenubar/FontButton.cpp b/src/core/gui/toolbarMenubar/FontButton.cpp index a8cd39475fb5..f8779440f2d7 100644 --- a/src/core/gui/toolbarMenubar/FontButton.cpp +++ b/src/core/gui/toolbarMenubar/FontButton.cpp @@ -36,7 +36,7 @@ void FontButton::activated(GtkMenuItem* menuitem, GtkToolButton* toolbutton) { handler->actionPerformed(ACTION_FONT_BUTTON_CHANGED, GROUP_NOGROUP, nullptr, true); } -void FontButton::setFontFontButton(GtkWidget* fontButton, XojFont& font) { +void FontButton::setFontFontButton(GtkWidget* fontButton, const XojFont& font) { GtkFontButton* button = GTK_FONT_BUTTON(fontButton); auto fontSizeStream = serdes_stream(); fontSizeStream << font.getSize(); @@ -44,7 +44,7 @@ void FontButton::setFontFontButton(GtkWidget* fontButton, XojFont& font) { gtk_font_button_set_font_name(button, name.c_str()); } -void FontButton::setFont(XojFont& font) { +void FontButton::setFont(const XojFont& font) { this->font = font; if (this->fontButton == nullptr) { return; diff --git a/src/core/gui/toolbarMenubar/FontButton.h b/src/core/gui/toolbarMenubar/FontButton.h index be4cca53b87a..5a90251b30e1 100644 --- a/src/core/gui/toolbarMenubar/FontButton.h +++ b/src/core/gui/toolbarMenubar/FontButton.h @@ -34,7 +34,7 @@ class FontButton: public AbstractToolItem { public: void activated(GtkMenuItem* menuitem, GtkToolButton* toolbutton) override; - void setFont(XojFont& font); + void setFont(const XojFont& font); XojFont getFont() const; std::string getToolDisplayName() const override; void showFontDialog(); @@ -45,7 +45,7 @@ class FontButton: public AbstractToolItem { GtkToolItem* newItem() override; static GtkWidget* newFontButton(); - static void setFontFontButton(GtkWidget* fontButton, XojFont& font); + static void setFontFontButton(GtkWidget* fontButton, const XojFont& font); GtkWidget* getNewToolIcon() const override; GdkPixbuf* getNewToolPixbuf() const override; diff --git a/src/core/gui/toolbarMenubar/ToolMenuHandler.cpp b/src/core/gui/toolbarMenubar/ToolMenuHandler.cpp index 74e820686adc..e24662121993 100644 --- a/src/core/gui/toolbarMenubar/ToolMenuHandler.cpp +++ b/src/core/gui/toolbarMenubar/ToolMenuHandler.cpp @@ -613,7 +613,7 @@ void ToolMenuHandler::initToolItems() { this); } -void ToolMenuHandler::setFontButtonFont(XojFont& font) { this->fontButton->setFont(font); } +void ToolMenuHandler::setFontButtonFont(const XojFont& font) { this->fontButton->setFont(font); } auto ToolMenuHandler::getFontButtonFont() -> XojFont { return this->fontButton->getFont(); } diff --git a/src/core/gui/toolbarMenubar/ToolMenuHandler.h b/src/core/gui/toolbarMenubar/ToolMenuHandler.h index f5edc5f2a0b5..fc0f364e6cb5 100644 --- a/src/core/gui/toolbarMenubar/ToolMenuHandler.h +++ b/src/core/gui/toolbarMenubar/ToolMenuHandler.h @@ -79,7 +79,7 @@ class ToolMenuHandler { SpinPageAdapter* getPageSpinner(); void setPageInfo(size_t pagecount, size_t pdfpage = 0); - void setFontButtonFont(XojFont& font); + void setFontButtonFont(const XojFont& font); XojFont getFontButtonFont(); void showFontSelectionDlg(); diff --git a/src/core/view/overlays/TextEditionView.cpp b/src/core/view/overlays/TextEditionView.cpp index 88cff068d9de..9c3868c7ff09 100644 --- a/src/core/view/overlays/TextEditionView.cpp +++ b/src/core/view/overlays/TextEditionView.cpp @@ -1,6 +1,6 @@ #include "TextEditionView.h" -#include "gui/TextEditor.h" +#include "control/tools/TextEditor.h" #include "model/Text.h" #include "util/Color.h" #include "util/raii/CairoWrappers.h"