[bijiben/wip/sadiq/modernize] organize-dialog: wip
- From: Mohammed Sadiq <pksadiq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben/wip/sadiq/modernize] organize-dialog: wip
- Date: Fri, 15 Dec 2017 02:05:55 +0000 (UTC)
commit 76b83c33ae70a4f9c2c7097b726a58f6e2b8bc88
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date: Wed Dec 13 21:01:06 2017 +0530
organize-dialog: wip
data/bjb.gresource.xml | 1 +
data/resources/organize-dialog.ui | 67 +++++++++++++++++++++++++++++
src/bjb-organize-dialog.c | 85 +++++++++++++++++++++----------------
3 files changed, 117 insertions(+), 36 deletions(-)
---
diff --git a/data/bjb.gresource.xml b/data/bjb.gresource.xml
index a7a441b..d07bfc3 100644
--- a/data/bjb.gresource.xml
+++ b/data/bjb.gresource.xml
@@ -15,6 +15,7 @@
</gresource>
<gresource prefix="/org/gnome/bijiben/ui">
+ <file alias="organize-dialog.ui" preprocess="xml-stripblanks">resources/organize-dialog.ui</file>
<file alias="settings-dialog.ui">resources/settings-dialog.ui</file>
<file alias="empty-results-box.ui">resources/empty-results-box.ui</file>
<file alias="import-dialog.ui" preprocess="xml-stripblanks">resources/import-dialog.ui</file>
diff --git a/data/resources/organize-dialog.ui b/data/resources/organize-dialog.ui
new file mode 100644
index 0000000..03b046f
--- /dev/null
+++ b/data/resources/organize-dialog.ui
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <template class="BjbOrganizeDialog" parent="GtkDialog">
+ <property name="title" translatable="yes">Notebooks</property>
+ <property name="default-width">480</property>
+ <property name="default-height">380</property>
+ <signal name="response" handler="gtk_widget_destroy" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="border-width">8</property>
+
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">true</property>
+ <property name="margin-bottom">2</property>
+ <property name="label" translatable="yes">Enter a name to create a notebook</property>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkBox">
+ <property name="visible">true</property>
+ <property name="spacing">8</property>
+ <property name="margin-bottom">6</property>
+ <child>
+ <object class="GtkEntry" id="entry">
+ <property name="visible">true</property>
+ </object>
+ <packing>
+ <property name="expand">true</property>
+ <property name="fill">true</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">true</property>
+ <property name="label" translatable="yes">New notebook</property>
+ </object>
+ </child>
+ </object>
+ </child> <!-- /GtkBox -->
+
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">true</property>
+ <property name="shadow-type">etched-in</property>
+ <child>
+ <object class="GtkTreeView">
+ <property name="visible">1</property>
+ <property name="model">notebook_store</property>
+ <property name="selection">multiple</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ </object>
+ </child>
+ </template>
+ <object class="GtkListStore" id="notebook_store">
+ <columns>
+ <column type="gint"/>
+ <column type="gchararray"/>
+ <column type="gchararray"/>
+ </columns>
+ </object>
+</interface>
diff --git a/src/bjb-organize-dialog.c b/src/bjb-organize-dialog.c
index 12744ba..879070c 100644
--- a/src/bjb-organize-dialog.c
+++ b/src/bjb-organize-dialog.c
@@ -1,5 +1,6 @@
/* bjb-note-tag-dialog.c
* Copyright (C) Pierre-Yves LUYTEN 2012 <py luyten fr>
+ * Copyright 2017 Mohammed Sadiq <sadiq sadiqpk org>
*
* bijiben is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -20,8 +21,8 @@
#include "bjb-organize-dialog.h"
#include "bjb-window-base.h"
-#define BJB_ORGANIZE_DIALOG_DEFAULT_WIDTH 460
-#define BJB_ORGANIZE_DIALOG_DEFAULT_HEIGHT 380
+/* #define BJB_ORGANIZE_DIALOG_DEFAULT_WIDTH 460 */
+/* #define BJB_ORGANIZE_DIALOG_DEFAULT_HEIGHT 380 */
/* Model for tree view */
enum {
@@ -60,6 +61,7 @@ struct _BjbOrganizeDialog
GtkTreeView * view;
// data
+ GtkListStore *notebook_store;
GList *items;
GtkListStore *store;
GHashTable *notebooks;
@@ -82,7 +84,7 @@ append_notebook (BijiInfoSet *set, BjbOrganizeDialog *self)
gint item_has_tag;
GList *l;
- gtk_list_store_append (self->store, &iter);
+ gtk_list_store_append (self->notebook_store, &iter);
item_has_tag = biji_item_has_notebook (self->items->data, set->title);
/* Check if other notes have the same */
@@ -349,15 +351,17 @@ add_columns (GtkTreeView *view, BjbOrganizeDialog *self)
static void
bjb_organize_dialog_init (BjbOrganizeDialog *self)
{
- gtk_window_set_default_size (GTK_WINDOW (self),
- BJB_ORGANIZE_DIALOG_DEFAULT_WIDTH,
- BJB_ORGANIZE_DIALOG_DEFAULT_HEIGHT);
- gtk_window_set_title (GTK_WINDOW (self), _("Notebooks"));
+ gtk_widget_init_template (GTK_WIDGET (self));
- gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (gtk_dialog_get_header_bar (GTK_DIALOG (self))),
TRUE);
+ /* gtk_window_set_default_size (GTK_WINDOW (self), */
+ /* BJB_ORGANIZE_DIALOG_DEFAULT_WIDTH, */
+ /* BJB_ORGANIZE_DIALOG_DEFAULT_HEIGHT); */
+ /* gtk_window_set_title (GTK_WINDOW (self), _("Notebooks")); */
- g_signal_connect_swapped (self, "response",
- G_CALLBACK (gtk_widget_destroy), self);
+ /* gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (gtk_dialog_get_header_bar (GTK_DIALOG (self))),
TRUE); */
+
+ /* g_signal_connect_swapped (self, "response", */
+ /* G_CALLBACK (gtk_widget_destroy), self); */
self->store = gtk_list_store_new (N_COLUMNS,
G_TYPE_INT, // notebook is active
@@ -372,47 +376,48 @@ bjb_organize_dialog_constructed (GObject *obj)
BjbOrganizeDialog *self = BJB_ORGANIZE_DIALOG (obj);
GtkWidget *hbox, *label, *new, *area, *sw;
- gtk_window_set_transient_for (GTK_WINDOW (self), self->window);
+ return;
+ /* gtk_window_set_transient_for (GTK_WINDOW (self), self->window); */
- area = gtk_dialog_get_content_area (GTK_DIALOG (self));
- gtk_container_set_border_width (GTK_CONTAINER (area), 8);
+ /* area = gtk_dialog_get_content_area (GTK_DIALOG (self)); */
+ /* gtk_container_set_border_width (GTK_CONTAINER (area), 8); */
- label = gtk_label_new (_("Enter a name to create a notebook"));
- gtk_box_pack_start (GTK_BOX (area), label, FALSE, FALSE, 2);
+ /* label = gtk_label_new (_("Enter a name to create a notebook")); */
+ /* gtk_box_pack_start (GTK_BOX (area), label, FALSE, FALSE, 2); */
/* New Tag */
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
- gtk_box_pack_start (GTK_BOX (area), hbox, FALSE, FALSE, 2);
+ /* hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); */
+ /* gtk_box_pack_start (GTK_BOX (area), hbox, FALSE, FALSE, 2); */
- self->entry = gtk_entry_new();
- gtk_box_pack_start (GTK_BOX (hbox), self->entry, TRUE, TRUE, 0);
+ /* self->entry = gtk_entry_new(); */
+ /* gtk_box_pack_start (GTK_BOX (hbox), self->entry, TRUE, TRUE, 0); */
- new = gtk_button_new_with_label (_("New notebook"));
- g_signal_connect_swapped (new, "clicked", G_CALLBACK (add_new_tag), self);
+ /* new = gtk_button_new_with_label (_("New notebook")); */
+ /* g_signal_connect_swapped (new, "clicked", G_CALLBACK (add_new_tag), self); */
- gtk_box_pack_start (GTK_BOX (hbox), new, FALSE, FALSE, 2);
+ /* gtk_box_pack_start (GTK_BOX (hbox), new, FALSE, FALSE, 2); */
/* List of notebooks */
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
- GTK_SHADOW_ETCHED_IN);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
+ /* sw = gtk_scrolled_window_new (NULL, NULL); */
+ /* gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), */
+ /* GTK_SHADOW_ETCHED_IN); */
+ /* gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), */
+ /* GTK_POLICY_AUTOMATIC, */
+ /* GTK_POLICY_AUTOMATIC); */
update_notebooks_model_async (self);
- self->view = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (self->store)));
- gtk_tree_view_set_headers_visible (self->view, FALSE);
- g_object_unref (self->store);
+ /* self->view = GTK_TREE_VIEW (gtk_tree_view_new_with_model (GTK_TREE_MODEL (self->store))); */
+ /* gtk_tree_view_set_headers_visible (self->view, FALSE); */
+ /* g_object_unref (self->store); */
- gtk_tree_selection_set_mode (gtk_tree_view_get_selection (self->view),
- GTK_SELECTION_MULTIPLE);
+ /* gtk_tree_selection_set_mode (gtk_tree_view_get_selection (self->view), */
+ /* GTK_SELECTION_MULTIPLE); */
add_columns (self->view, self);
- gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (self->view));
+ /* gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (self->view)); */
- gtk_box_pack_start (GTK_BOX (area), sw, TRUE, TRUE,2);
- gtk_widget_show_all (area);
+ /* gtk_box_pack_start (GTK_BOX (area), sw, TRUE, TRUE,2); */
+ /* gtk_widget_show_all (area); */
}
static void
@@ -477,6 +482,7 @@ static void
bjb_organize_dialog_class_init (BjbOrganizeDialogClass *klass)
{
GObjectClass* object_class = G_OBJECT_CLASS (klass);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->constructed = bjb_organize_dialog_constructed;
object_class->finalize = bjb_organize_dialog_finalize;
@@ -499,6 +505,12 @@ bjb_organize_dialog_class_init (BjbOrganizeDialogClass *klass)
G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
+
+ gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/bijiben/ui/organize-dialog.ui");
+
+ gtk_widget_class_bind_template_child (widget_class, BjbOrganizeDialog, notebook_store);
+
+ /* gtk_widget_class_bind_template_callback (gtk_widget_class, on_color_set); */
}
void
@@ -509,6 +521,7 @@ bjb_organize_dialog_new (GtkWindow *parent,
"use-header-bar", TRUE,
"window", parent,
"items", biji_items,
+ "transient-for", parent,
NULL);
gtk_dialog_run (GTK_DIALOG (self));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]