[gnome-notes] editor-toolbar: Simplify
- From: Mohammed Sadiq <pksadiq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-notes] editor-toolbar: Simplify
- Date: Fri, 14 Oct 2022 10:05:46 +0000 (UTC)
commit 60a2c13a778e02441b59e2e253926d3d6f841342
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date: Wed Jun 1 12:35:35 2022 +0530
editor-toolbar: Simplify
Set note after toolbar is created. Eventually we shall use
a single editor toolbar for every note instead of creating
a toolbar for every open note.
src/bjb-editor-toolbar.c | 92 ++++++++++++------------------------------------
src/bjb-editor-toolbar.h | 3 +-
src/bjb-note-view.c | 4 ++-
3 files changed, 27 insertions(+), 72 deletions(-)
---
diff --git a/src/bjb-editor-toolbar.c b/src/bjb-editor-toolbar.c
index 0cdcd13a..195eb171 100644
--- a/src/bjb-editor-toolbar.c
+++ b/src/bjb-editor-toolbar.c
@@ -28,13 +28,6 @@
#include "bjb-editor-toolbar.h"
#include "bjb-window.h"
-enum
-{
- PROP_0,
- PROP_NOTE,
- NUM_PROPERTIES
-};
-
struct _BjbEditorToolbar
{
GtkActionBar parent_instance;
@@ -153,44 +146,10 @@ bjb_editor_toolbar_map (GtkWidget *widget)
gtk_window_add_accel_group (GTK_WINDOW (self->window), self->accel);
}
-static void
-bjb_editor_toolbar_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- switch (property_id)
- {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static void
-bjb_editor_toolbar_set_property (GObject *object,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- BjbEditorToolbar *self = BJB_EDITOR_TOOLBAR (object);
-
- switch (property_id)
- {
- case PROP_NOTE:
- self->note = g_value_get_object (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
static void
bjb_editor_toolbar_constructed (GObject *object)
{
BjbEditorToolbar *self;
- gboolean can_format;
G_OBJECT_CLASS (bjb_editor_toolbar_parent_class)->constructed (object);
@@ -204,18 +163,6 @@ bjb_editor_toolbar_constructed (GObject *object)
gtk_widget_add_accelerator (self->strike_button, "clicked", self->accel,
GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
-
- can_format = biji_note_obj_can_format (self->note);
-
- gtk_widget_set_sensitive (self->bold_button, can_format);
- gtk_widget_set_sensitive (self->italic_button, can_format);
- gtk_widget_set_sensitive (self->strike_button, can_format);
-
- gtk_widget_set_sensitive (self->bullets_button, can_format);
- gtk_widget_set_sensitive (self->list_button, can_format);
-
- gtk_widget_set_sensitive (self->indent_button, can_format);
- gtk_widget_set_sensitive (self->outdent_button, can_format);
}
static void
@@ -241,23 +188,11 @@ bjb_editor_toolbar_class_init (BjbEditorToolbarClass *klass)
object_class = G_OBJECT_CLASS (klass);
widget_class = GTK_WIDGET_CLASS (klass);
- object_class->get_property = bjb_editor_toolbar_get_property;
- object_class->set_property = bjb_editor_toolbar_set_property;
object_class->constructed = bjb_editor_toolbar_constructed;
object_class->finalize = bjb_editor_toolbar_finalize;
widget_class->map = bjb_editor_toolbar_map;
- g_object_class_install_property (object_class,
- PROP_NOTE,
- g_param_spec_object ("note",
- "Note",
- "Biji Note Obj",
- BIJI_TYPE_NOTE_OBJ,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
-
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Notes/editor-toolbar.ui");
gtk_widget_class_bind_template_child (widget_class, BjbEditorToolbar, bold_button);
@@ -286,10 +221,27 @@ bjb_editor_toolbar_init (BjbEditorToolbar *self)
self->accel = gtk_accel_group_new ();
}
-GtkWidget *
-bjb_editor_toolbar_new (BijiNoteObj *note)
+void
+bjb_editor_toolbar_set_note (BjbEditorToolbar *self,
+ BijiNoteObj *note)
{
- return g_object_new (BJB_TYPE_EDITOR_TOOLBAR,
- "note", note,
- NULL);
+ gboolean can_format = FALSE;
+
+ g_return_if_fail (BJB_IS_EDITOR_TOOLBAR (self));
+ g_return_if_fail (!note || BIJI_IS_NOTE_OBJ (note));
+
+ self->note = note;
+
+ if (note && biji_note_obj_can_format (note))
+ can_format = TRUE;
+
+ gtk_widget_set_sensitive (self->bold_button, can_format);
+ gtk_widget_set_sensitive (self->italic_button, can_format);
+ gtk_widget_set_sensitive (self->strike_button, can_format);
+
+ gtk_widget_set_sensitive (self->bullets_button, can_format);
+ gtk_widget_set_sensitive (self->list_button, can_format);
+
+ gtk_widget_set_sensitive (self->indent_button, can_format);
+ gtk_widget_set_sensitive (self->outdent_button, can_format);
}
diff --git a/src/bjb-editor-toolbar.h b/src/bjb-editor-toolbar.h
index 44a06db6..e9557ddd 100644
--- a/src/bjb-editor-toolbar.h
+++ b/src/bjb-editor-toolbar.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (BjbEditorToolbar, bjb_editor_toolbar, BJB, EDITOR_TOOLBAR, GtkActionBar)
-GtkWidget *bjb_editor_toolbar_new (BijiNoteObj *note);
+void bjb_editor_toolbar_set_note (BjbEditorToolbar *self,
+ BijiNoteObj *note);
G_END_DECLS
diff --git a/src/bjb-note-view.c b/src/bjb-note-view.c
index 9005dbc5..012e921e 100644
--- a/src/bjb-note-view.c
+++ b/src/bjb-note-view.c
@@ -222,7 +222,9 @@ bjb_note_view_constructed (GObject *obj)
/* Edition Toolbar for text selection */
if (!biji_note_obj_is_trashed (BIJI_NOTE_OBJ (self->note)))
{
- self->edit_bar = bjb_editor_toolbar_new (self->note);
+ self->edit_bar = g_object_new (BJB_TYPE_EDITOR_TOOLBAR, NULL);
+ bjb_editor_toolbar_set_note (BJB_EDITOR_TOOLBAR (self->edit_bar), self->note);
+
gtk_box_pack_start (GTK_BOX (self->box), self->edit_bar, FALSE, TRUE, 0);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]