[gnome-builder] gui: remove buttons from IdeFrameHeader menu
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] gui: remove buttons from IdeFrameHeader menu
- Date: Sun, 7 Apr 2019 19:06:57 +0000 (UTC)
commit ff3556c03b82d70612f1069e9b75341a45eeff00
Author: Pavlo Solntsev <p sun fun gmail com>
Date: Wed Apr 3 13:43:44 2019 -0500
gui: remove buttons from IdeFrameHeader menu
- Buttons removed from Popover
- The popover is visible if only at least one file is opened.
Fixes #273
src/libide/gui/ide-frame-header.c | 26 ++++++++++++++
src/libide/gui/ide-frame-header.ui | 71 --------------------------------------
2 files changed, 26 insertions(+), 71 deletions(-)
---
diff --git a/src/libide/gui/ide-frame-header.c b/src/libide/gui/ide-frame-header.c
index 9943fd10e..99a67ea87 100644
--- a/src/libide/gui/ide-frame-header.c
+++ b/src/libide/gui/ide-frame-header.c
@@ -276,6 +276,23 @@ create_document_row (gpointer item,
return GTK_WIDGET (row);
}
+static void
+ide_frame_header_model_changed (IdeFrameHeader *self,
+ guint position,
+ guint removed,
+ guint added,
+ GListModel *model)
+{
+ guint size;
+
+ g_assert (IDE_IS_FRAME_HEADER (self));
+ g_assert (G_IS_LIST_MODEL (model));
+
+ size = g_list_model_get_n_items (model);
+
+ gtk_widget_set_sensitive (GTK_WIDGET (self->title_button), size > 0);
+}
+
void
_ide_frame_header_set_pages (IdeFrameHeader *self,
GListModel *model)
@@ -287,6 +304,13 @@ _ide_frame_header_set_pages (IdeFrameHeader *self,
model,
create_document_row,
self, NULL);
+
+ /* We need to watch our model for any new document added or removed */
+ g_signal_connect_object (model,
+ "items-changed",
+ G_CALLBACK (ide_frame_header_model_changed),
+ self,
+ G_CONNECT_SWAPPED);
}
static void
@@ -704,6 +728,8 @@ ide_frame_header_init (IdeFrameHeader *self)
G_CALLBACK (ide_frame_header_view_row_activated),
self, 0);
+ gtk_widget_set_sensitive (GTK_WIDGET (self->title_button), FALSE);
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
gtk_container_set_reallocate_redraws (GTK_CONTAINER (self), TRUE);
G_GNUC_END_IGNORE_DEPRECATIONS;
diff --git a/src/libide/gui/ide-frame-header.ui b/src/libide/gui/ide-frame-header.ui
index a9a8b776d..e5cf3848a 100644
--- a/src/libide/gui/ide-frame-header.ui
+++ b/src/libide/gui/ide-frame-header.ui
@@ -38,77 +38,6 @@
</child>
</object>
</child>
- <child>
- <object class="GtkBox">
- <property name="homogeneous">true</property>
- <property name="spacing">6</property>
- <property name="visible">true</property>
- <child>
- <object class="GtkButton">
- <property name="tooltip-text" translatable="yes">Open file</property>
- <property name="action-name">editor.open-file</property>
- <property name="visible">true</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="icon-name">document-open-symbolic</property>
- <property name="visible">true</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton">
- <property name="visible">true</property>
- <property name="tooltip-text" translatable="yes">New file</property>
- <property name="action-name">editor.new-file</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="icon-name">document-new-symbolic</property>
- <property name="visible">true</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton">
- <property name="tooltip-text" translatable="yes">New terminal</property>
- <property name="action-name">win.new-terminal</property>
- <property name="visible">true</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="icon-name">utilities-terminal-symbolic</property>
- <property name="visible">true</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton">
- <property name="tooltip-text" translatable="yes">New documentation</property>
- <property name="action-name">devhelp.new-view</property>
- <property name="visible">true</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="icon-name">org.gnome.Devhelp-symbolic</property>
- <property name="visible">true</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
</object>
</child>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]