Add "Show toolbars" menu toggle item bound to F9

presentation
duncan 6 years ago
parent b3bee078bb
commit 1ba572969e
  1. 16
      src/control/settings/Settings.cpp
  2. 8
      src/control/settings/Settings.h
  3. 25
      src/gui/MainWindow.cpp
  4. 6
      src/gui/MainWindow.h
  5. 16
      ui/main.glade

@ -62,6 +62,8 @@ void Settings::loadDefault() {
this->showSidebar = true;
this->sidebarWidth = 150;
this->showToolbar = true;
this->sidebarOnRight = false;
this->scrollbarOnLeft = false;
@ -311,6 +313,8 @@ void Settings::parseItem(xmlDocPtr doc, xmlNodePtr cur) {
this->mainWndHeight = g_ascii_strtoll(reinterpret_cast<const char*>(value), nullptr, 10);
} else if (xmlStrcmp(name, reinterpret_cast<const xmlChar*>("maximized")) == 0) {
this->maximized = xmlStrcmp(value, reinterpret_cast<const xmlChar*>("true")) == 0;
} else if (xmlStrcmp(name, reinterpret_cast<const xmlChar*>("showToolbar")) == 0) {
this->showToolbar = xmlStrcmp(value, reinterpret_cast<const xmlChar*>("true")) == 0;
} else if (xmlStrcmp(name, reinterpret_cast<const xmlChar*>("showSidebar")) == 0) {
this->showSidebar = xmlStrcmp(value, reinterpret_cast<const xmlChar*>("true")) == 0;
} else if (xmlStrcmp(name, reinterpret_cast<const xmlChar*>("sidebarWidth")) == 0) {
@ -717,6 +721,8 @@ void Settings::save() {
WRITE_INT_PROP(mainWndHeight);
WRITE_BOOL_PROP(maximized);
WRITE_BOOL_PROP(showToolbar);
WRITE_BOOL_PROP(showSidebar);
WRITE_INT_PROP(sidebarWidth);
@ -1413,6 +1419,16 @@ void Settings::setSidebarVisible(bool visible) {
save();
}
auto Settings::isToolbarVisible() const -> bool { return this->showToolbar; }
void Settings::setToolbarVisible(bool visible) {
if (this->showToolbar == visible) {
return;
}
this->showToolbar = visible;
save();
}
auto Settings::getSidebarWidth() const -> int { return this->sidebarWidth; }
void Settings::setSidebarWidth(int width) {

@ -179,6 +179,9 @@ public:
bool isSidebarVisible() const;
void setSidebarVisible(bool visible);
bool isToolbarVisible() const;
void setToolbarVisible(bool visible);
int getSidebarWidth() const;
void setSidebarWidth(int width);
@ -474,6 +477,11 @@ private:
*/
bool showSidebar{};
/**
* If the sidebar is visible
*/
bool showToolbar{};
/**
* The Width of the Sidebar
*/

@ -92,9 +92,14 @@ MainWindow::MainWindow(GladeSearchpath* gladeSearchPath, Control* control):
createToolbarAndMenu();
setToolbarVisible(control->getSettings()->isToolbarVisible());
GtkWidget* menuViewSidebarVisible = get("menuViewSidebarVisible");
g_signal_connect(menuViewSidebarVisible, "toggled", G_CALLBACK(viewShowSidebar), this);
GtkWidget* menuViewToolbarsVisible = get("menuViewToolbarsVisible");
g_signal_connect(menuViewToolbarsVisible, "toggled", G_CALLBACK(viewShowToolbar), this);
updateScrollbarSidebarPosition();
gtk_window_set_default_size(GTK_WINDOW(this->window), control->getSettings()->getMainWndWidth(),
@ -376,6 +381,14 @@ void MainWindow::viewShowSidebar(GtkCheckMenuItem* checkmenuitem, MainWindow* wi
win->setSidebarVisible(a);
}
void MainWindow::viewShowToolbar(GtkCheckMenuItem* checkmenuitem, MainWindow* win) {
bool showToolbar = gtk_check_menu_item_get_active(checkmenuitem);
if (win->control->getSettings()->isToolbarVisible() == showToolbar) {
return;
}
win->setToolbarVisible(showToolbar);
}
auto MainWindow::getControl() -> Control* { return control; }
void MainWindow::updateScrollbarSidebarPosition() {
@ -482,6 +495,18 @@ void MainWindow::setSidebarVisible(bool visible) {
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w), visible);
}
void MainWindow::setToolbarVisible(bool visible) {
Settings* settings = control->getSettings();
settings->setToolbarVisible(visible);
for (int i = 0; i < TOOLBAR_DEFINITIONS_LEN; i++) {
gtk_widget_set_visible(this->toolbarWidgets[i], visible);
}
GtkWidget* w = get("menuViewToolbarsVisible");
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w), visible);
}
void MainWindow::saveSidebarSize() {
GtkWidget* panel = get("panelMainContents");

@ -69,6 +69,7 @@ public:
XournalView* getXournal();
void setSidebarVisible(bool visible);
void setToolbarVisible(bool visible);
Control* getControl();
@ -122,6 +123,11 @@ private:
*/
static void viewShowSidebar(GtkCheckMenuItem* checkmenuitem, MainWindow* win);
/**
* Toolbar show / hidden
*/
static void viewShowToolbar(GtkCheckMenuItem* checkmenuitem, MainWindow* win);
/**
* Window close Button is pressed
*/

@ -504,6 +504,22 @@
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkCheckMenuItem" id="menuViewToolbarsVisible">
<property name="name">menuViewToolbarsVisible</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Show toolbars</property>
<property name="use_underline">True</property>
<accelerator key="F9" signal="activate"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="menuViewToolbarsVisibleSeparator">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="menuitemLayout">
<property name="name">menuitemLayout</property>

Loading…
Cancel
Save