[glom] Relationships Overview window: HIG corrections.



commit 1c7dcab2fd92b13dc0ee4a74b917ab0fcc92b735
Author: Murray Cumming <murrayc murrayc com>
Date:   Wed Oct 23 12:06:23 2013 +0200

    Relationships Overview window: HIG corrections.
    
    This is now a GtkWindow, rather than a GtkDialog, allowing us
    to arrange things so that the menu is snugly against the edge.

 Makefile_glom.am                                   |    4 +-
 data/glom.gresource.xml                            |    2 +-
 .../developer/window_relationships_overview.glade  |  114 ++++++++++----------
 glom/frame_glom.cc                                 |   36 +++----
 glom/frame_glom.h                                  |    4 +-
 .../window_relationships_overview.cc               |   85 ++++++++-------
 .../window_relationships_overview.h                |   16 ++--
 7 files changed, 132 insertions(+), 129 deletions(-)
---
diff --git a/Makefile_glom.am b/Makefile_glom.am
index 298fcaa..27e7a6a 100644
--- a/Makefile_glom.am
+++ b/Makefile_glom.am
@@ -354,10 +354,10 @@ glom_source_files +=                                                      \
        glom/mode_design/layout/layout_item_dialogs/dialog_textobject.h                 \
        glom/mode_design/relationships_overview/canvas_group_dbtable.cc                 \
        glom/mode_design/relationships_overview/canvas_group_dbtable.h                  \
-       glom/mode_design/relationships_overview/dialog_relationships_overview.cc        \
-       glom/mode_design/relationships_overview/dialog_relationships_overview.h         \
        glom/mode_design/relationships_overview/printoperation_relationshipsoverview.cc \
        glom/mode_design/relationships_overview/printoperation_relationshipsoverview.h  \
+       glom/mode_design/relationships_overview/window_relationships_overview.cc        \
+       glom/mode_design/relationships_overview/window_relationships_overview.h         \
        glom/mode_design/print_layouts/box_print_layouts.cc             \
        glom/mode_design/print_layouts/box_print_layouts.h              \
        glom/mode_design/print_layouts/dialog_text_formatting.cc        \
diff --git a/data/glom.gresource.xml b/data/glom.gresource.xml
index 740421d..9680c8c 100644
--- a/data/glom.gresource.xml
+++ b/data/glom.gresource.xml
@@ -21,7 +21,6 @@
     <file preprocess="xml-stripblanks">data/ui/developer/dialog_new_group.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/dialog_new_library_script.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/dialog_notebook.glade</file>
-    <file preprocess="xml-stripblanks">data/ui/developer/dialog_relationships_overview.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/dialog_script_library.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/dialog_sort_fields.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/dialog_translation_copy.glade</file>
@@ -36,6 +35,7 @@
     <file preprocess="xml-stripblanks">data/ui/developer/window_groups.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/window_imageobject.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/window_print_layout_edit.glade</file>
+    <file preprocess="xml-stripblanks">data/ui/developer/window_relationships_overview.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/window_report_layout.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/window_text_format.glade</file>
     <file preprocess="xml-stripblanks">data/ui/developer/window_textobject.glade</file>
diff --git a/data/ui/developer/window_relationships_overview.glade 
b/data/ui/developer/window_relationships_overview.glade
index e661390..a1d6764 100644
--- a/data/ui/developer/window_relationships_overview.glade
+++ b/data/ui/developer/window_relationships_overview.glade
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.15.4 on Wed Oct 23 11:52:24 2013 -->
 <interface>
-  <requires lib="gtk+" version="3.6"/>
 
   <menu id='Overview_MainMenu'>
     <submenu>
@@ -41,96 +41,96 @@
     </section>
   </menu>
 
-  <object class="GtkDialog" id="dialog_relationships_overview">
+  <!-- interface-requires gtk+ 3.6 -->
+  <object class="GtkWindow" id="window_relationships_overview">
     <property name="can_focus">False</property>
-    <property name="border_width">6</property>
     <property name="title" translatable="yes">Relationships Overview</property>
     <property name="default_width">400</property>
     <property name="default_height">400</property>
     <property name="type_hint">dialog</property>
-    <child internal-child="vbox">
+    <child>
       <object class="GtkBox" id="vbox_main">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="hbuttonbox38">
+        <child>
+          <object class="GtkBox" id="vbox_placeholder_menubar">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="vbox_main_inner">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="border_width">6</property>
+            <property name="orientation">vertical</property>
             <child>
-              <object class="GtkButton" id="button30">
-                <property name="label">gtk-help</property>
+              <object class="GtkButtonBox" id="hbuttonbox38">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">False</property>
+                <property name="border_width">6</property>
+                <property name="layout_style">end</property>
+                <child>
+                  <object class="GtkButton" id="button_close">
+                    <property name="label">gtk-close</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="can_default">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
+                <property name="pack_type">end</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="button31">
-                <property name="label">gtk-close</property>
+              <object class="GtkScrolledWindow" id="scrolledwindow_canvas">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="border_width">6</property>
+                <property name="shadow_type">in</property>
+                <child>
+                  <placeholder/>
+                </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="vbox_placeholder_menubar">
-            <property name="orientation">vertical</property>
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkScrolledWindow" id="scrolledwindow_canvas">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="border_width">6</property>
-            <property name="shadow_type">in</property>
-            <child>
-              <placeholder/>
-            </child>
-          </object>
-          <packing>
             <property name="expand">True</property>
             <property name="fill">True</property>
-            <property name="position">2</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
     </child>
-    <action-widgets>
-      <action-widget response="-11">button30</action-widget>
-      <action-widget response="-7">button31</action-widget>
-    </action-widgets>
   </object>
 </interface>
diff --git a/glom/frame_glom.cc b/glom/frame_glom.cc
index 4df863c..1ba842c 100644
--- a/glom/frame_glom.cc
+++ b/glom/frame_glom.cc
@@ -42,7 +42,7 @@
 #include <glom/mode_design/dialog_add_related_table.h>
 #include <glom/mode_design/script_library/dialog_script_library.h>
 #include <glom/mode_design/dialog_initial_password.h>
-#include <glom/mode_design/relationships_overview/dialog_relationships_overview.h>
+#include <glom/mode_design/relationships_overview/window_relationships_overview.h>
 #include <glom/glade_utils.h>
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 
@@ -93,7 +93,7 @@ Frame_Glom::Frame_Glom(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
   m_pDialog_Fields(0),
   m_pDialog_Relationships(0),
   m_dialog_addrelatedtable(0),
-  m_dialog_relationships_overview(0),
+  m_window_relationships_overview(0),
 #endif // !GLOM_ENABLE_CLIENT_ONLY
   m_pDialogConnection(0)
 {
@@ -228,11 +228,11 @@ Frame_Glom::~Frame_Glom()
     m_dialog_addrelatedtable = 0;
   }
 
-  if(m_dialog_relationships_overview)
+  if(m_window_relationships_overview)
   {
-    remove_view(m_dialog_relationships_overview);
-    delete m_dialog_relationships_overview;
-    m_dialog_relationships_overview = 0;
+    remove_view(m_window_relationships_overview);
+    delete m_window_relationships_overview;
+    m_window_relationships_overview = 0;
   }
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 }
@@ -1613,22 +1613,20 @@ void Frame_Glom::do_menu_developer_fields(Gtk::Window& parent)
 
 void Frame_Glom::on_menu_developer_relationships_overview()
 {
-  if(!m_dialog_relationships_overview)
+  if(!m_window_relationships_overview)
   {
-    Utils::get_glade_widget_derived_with_warning(m_dialog_relationships_overview);
-    add_view(m_dialog_relationships_overview);
+    Utils::get_glade_widget_derived_with_warning(m_window_relationships_overview);
+    add_view(m_window_relationships_overview);
+
+    m_window_relationships_overview->signal_hide().connect( sigc::mem_fun(*this, 
&Frame_Glom::on_developer_dialog_hide));
   }
 
-  if(m_dialog_relationships_overview)
+  if(m_window_relationships_overview)
   {
-    m_dialog_relationships_overview->set_transient_for(*(get_app_window()));
-    m_dialog_relationships_overview->load_from_document();
-
-    Glom::Utils::dialog_run_with_help(m_dialog_relationships_overview);
+    m_window_relationships_overview->set_transient_for(*(get_app_window()));
+    m_window_relationships_overview->load_from_document();
 
-    remove_view(m_dialog_relationships_overview);
-    delete m_dialog_relationships_overview;
-    m_dialog_relationships_overview = 0;
+    m_window_relationships_overview->show();
   }
 }
 
@@ -1857,8 +1855,8 @@ void Frame_Glom::on_developer_dialog_hide()
     m_dialog_addrelatedtable->set_fields(m_table_name);
 
   //Update the display. TODO: Shouldn't this happen automatically via the view?
-  if(m_dialog_relationships_overview)
-    m_dialog_relationships_overview->load_from_document();
+  if(m_window_relationships_overview)
+    m_window_relationships_overview->load_from_document();
 }
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 
diff --git a/glom/frame_glom.h b/glom/frame_glom.h
index 203ac4d..0abbb36 100644
--- a/glom/frame_glom.h
+++ b/glom/frame_glom.h
@@ -53,7 +53,7 @@ namespace Glom
 class Dialog_Layout_Report;
 class Window_PrintLayout_Edit;
 class Dialog_AddRelatedTable;
-class Dialog_RelationshipsOverview;
+class Window_RelationshipsOverview;
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 
 class Frame_Glom :
@@ -288,7 +288,7 @@ private:
   Dialog_Fields* m_pDialog_Fields;
   Dialog_Relationships* m_pDialog_Relationships;
   Dialog_AddRelatedTable* m_dialog_addrelatedtable;
-  Dialog_RelationshipsOverview* m_dialog_relationships_overview;
+  Window_RelationshipsOverview* m_window_relationships_overview;
 
 #endif //GLOM_ENABLE_CLIENT_ONLY
 
diff --git a/glom/mode_design/relationships_overview/window_relationships_overview.cc 
b/glom/mode_design/relationships_overview/window_relationships_overview.cc
index df2dd96..1b3e7fa 100644
--- a/glom/mode_design/relationships_overview/window_relationships_overview.cc
+++ b/glom/mode_design/relationships_overview/window_relationships_overview.cc
@@ -19,7 +19,7 @@
  */
 
 #include "config.h"
-#include "dialog_relationships_overview.h"
+#include "window_relationships_overview.h"
 #include "glom/utility_widgets/canvas/canvas_line_movable.h"
 #include "glom/utility_widgets/canvas/canvas_text_movable.h"
 #include <glom/mode_design/layout/dialog_choose_relationship.h>
@@ -35,19 +35,24 @@ namespace Glom
 {
 
 //static:
-int Dialog_RelationshipsOverview::m_last_size_x = 0;
-int Dialog_RelationshipsOverview::m_last_size_y = 0;
+int Window_RelationshipsOverview::m_last_size_x = 0;
+int Window_RelationshipsOverview::m_last_size_y = 0;
 
-const char* Dialog_RelationshipsOverview::glade_id("dialog_relationships_overview");
-const bool Dialog_RelationshipsOverview::glade_developer(true);
+const char* Window_RelationshipsOverview::glade_id("window_relationships_overview");
+const bool Window_RelationshipsOverview::glade_developer(true);
 
-Dialog_RelationshipsOverview::Dialog_RelationshipsOverview(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
-  : Gtk::Dialog(cobject),
+Window_RelationshipsOverview::Window_RelationshipsOverview(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
+  : Gtk::Window(cobject),
     m_builder(builder),
     m_menu(0),
     m_modified(false),
     m_scrolledwindow_canvas(0)
 {
+  Gtk::Button* button_close = 0;
+  builder->get_widget("button_close",  button_close);
+  if(button_close)
+    button_close->signal_clicked().connect( sigc::mem_fun(*this, 
&Window_RelationshipsOverview::on_button_close) );
+
   m_refPageSetup = Gtk::PageSetup::create();
   m_refSettings = Gtk::PrintSettings::create();
 
@@ -58,14 +63,14 @@ Dialog_RelationshipsOverview::Dialog_RelationshipsOverview(BaseObjectType* cobje
   Glib::RefPtr<Gio::SimpleActionGroup> action_group = Gio::SimpleActionGroup::create();
 
   action_group->add_action("pagesetup",
-    sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_menu_file_page_setup) );
+    sigc::mem_fun(*this, &Window_RelationshipsOverview::on_menu_file_page_setup) );
   action_group->add_action("print",
-    sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_menu_file_print) );
+    sigc::mem_fun(*this, &Window_RelationshipsOverview::on_menu_file_print) );
 
   m_action_showgrid = Gio::SimpleAction::create_bool("showgrid", false);
   action_group->add_action(m_action_showgrid);
   m_action_showgrid->signal_activate().connect(
-    sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_menu_view_showgrid)
+    sigc::mem_fun(*this, &Window_RelationshipsOverview::on_menu_view_showgrid)
   );
 
   insert_action_group("relationshipsoverview", action_group);
@@ -106,14 +111,14 @@ Dialog_RelationshipsOverview::Dialog_RelationshipsOverview(BaseObjectType* cobje
   //Respond to changes of window size,
   //so we always make the canvas bounds big enough:
   m_scrolledwindow_canvas->get_hadjustment()->signal_changed().connect(
-    sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_scroll_value_changed) );
+    sigc::mem_fun(*this, &Window_RelationshipsOverview::on_scroll_value_changed) );
   m_scrolledwindow_canvas->get_vadjustment()->signal_changed().connect(
-    sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_scroll_value_changed) );
+    sigc::mem_fun(*this, &Window_RelationshipsOverview::on_scroll_value_changed) );
 
   setup_context_menu();
 }
 
-Dialog_RelationshipsOverview::~Dialog_RelationshipsOverview()
+Window_RelationshipsOverview::~Window_RelationshipsOverview()
 {
   get_size(m_last_size_x, m_last_size_y);
 
@@ -133,7 +138,7 @@ Dialog_RelationshipsOverview::~Dialog_RelationshipsOverview()
 }
 
 
-void Dialog_RelationshipsOverview::draw_tables()
+void Window_RelationshipsOverview::draw_tables()
 {
   //Disconnect signal handlers for all current items,
   //so sigc::bind()ed RefPtrs can be released.
@@ -182,10 +187,10 @@ void Dialog_RelationshipsOverview::draw_tables()
       m_canvas.associate_with_grid(table_group); //Make snapping work.
 
       table_group->signal_moved().connect(
-        sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_table_moved));
+        sigc::mem_fun(*this, &Window_RelationshipsOverview::on_table_moved));
 
       sigc::connection the_connection = table_group->signal_show_context().connect( sigc::bind(
-        sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_table_show_context),
+        sigc::mem_fun(*this, &Window_RelationshipsOverview::on_table_show_context),
         table_group) );
       m_list_table_connections.push_back(the_connection);
 
@@ -201,7 +206,7 @@ void Dialog_RelationshipsOverview::draw_tables()
   }
 }
 
-void Dialog_RelationshipsOverview::draw_lines()
+void Window_RelationshipsOverview::draw_lines()
 {
   //Remove all current items:
   while(m_group_lines->get_n_children() > 0)
@@ -316,26 +321,18 @@ void Dialog_RelationshipsOverview::draw_lines()
   }
 }
 
-void Dialog_RelationshipsOverview::load_from_document()
+void Window_RelationshipsOverview::load_from_document()
 {
   draw_tables();
   draw_lines();
 }
 
-void Dialog_RelationshipsOverview::on_response(int /* id */)
-{
-  if(m_modified && get_document())
-    get_document()->set_modified();
-
-  hide();
-}
-
-void Dialog_RelationshipsOverview::on_menu_file_print()
+void Window_RelationshipsOverview::on_menu_file_print()
 {
   print_or_preview(Gtk::PRINT_OPERATION_ACTION_PRINT_DIALOG);
 }
 
-void Dialog_RelationshipsOverview::on_menu_file_page_setup()
+void Window_RelationshipsOverview::on_menu_file_page_setup()
 {
   //Show the page setup dialog, asking it to start with the existing settings:
   Glib::RefPtr<Gtk::PageSetup> new_page_setup =
@@ -346,7 +343,7 @@ void Dialog_RelationshipsOverview::on_menu_file_page_setup()
   m_refPageSetup = new_page_setup;
 }
 
-void Dialog_RelationshipsOverview::on_menu_view_showgrid(const Glib::VariantBase& /* parameter */)
+void Window_RelationshipsOverview::on_menu_view_showgrid(const Glib::VariantBase& /* parameter */)
 {
   bool showgrid = false;
   m_action_showgrid->get_state(showgrid);
@@ -366,11 +363,11 @@ void Dialog_RelationshipsOverview::on_menu_view_showgrid(const Glib::VariantBase
 }
 
 //TODO: Is this used?
-void Dialog_RelationshipsOverview::on_menu_file_save()
+void Window_RelationshipsOverview::on_menu_file_save()
 {
 }
 
-void Dialog_RelationshipsOverview::print_or_preview(Gtk::PrintOperationAction print_action)
+void Window_RelationshipsOverview::print_or_preview(Gtk::PrintOperationAction print_action)
 {
   //Create a new PrintOperation with our PageSetup and PrintSettings:
   //(We use our derived PrintOperation class)
@@ -396,7 +393,7 @@ void Dialog_RelationshipsOverview::print_or_preview(Gtk::PrintOperationAction pr
   }
 }
 
-Glib::RefPtr<CanvasGroupDbTable> Dialog_RelationshipsOverview::get_table_group(const Glib::ustring& 
table_name)
+Glib::RefPtr<CanvasGroupDbTable> Window_RelationshipsOverview::get_table_group(const Glib::ustring& 
table_name)
 {
   const int count = m_group_tables->get_n_children();
   for(int i = 0; i < count; ++i)
@@ -413,7 +410,7 @@ Glib::RefPtr<CanvasGroupDbTable> Dialog_RelationshipsOverview::get_table_group(c
   return Glib::RefPtr<CanvasGroupDbTable>();
 }
 
-void Dialog_RelationshipsOverview::on_table_moved(const Glib::RefPtr<CanvasItemMovable>& item, double /* 
x_offset */, double /* y_offset */)
+void Window_RelationshipsOverview::on_table_moved(const Glib::RefPtr<CanvasItemMovable>& item, double /* 
x_offset */, double /* y_offset */)
 {
   Glib::RefPtr<CanvasGroupDbTable> table = 
     Glib::RefPtr<CanvasGroupDbTable>::cast_dynamic(item);
@@ -436,7 +433,7 @@ void Dialog_RelationshipsOverview::on_table_moved(const Glib::RefPtr<CanvasItemM
   draw_lines();
 }
 
-void Dialog_RelationshipsOverview::on_table_show_context(guint button, guint32 activate_time, 
Glib::RefPtr<CanvasGroupDbTable> table)
+void Window_RelationshipsOverview::on_table_show_context(guint button, guint32 activate_time, 
Glib::RefPtr<CanvasGroupDbTable> table)
 {
   if(m_action_edit_fields)
   {
@@ -444,18 +441,18 @@ void Dialog_RelationshipsOverview::on_table_show_context(guint button, guint32 a
     // and connect a new one, with the correct table as a bound parameter:
     m_connection_edit_fields.disconnect();
     m_connection_edit_fields = m_action_edit_fields->signal_activate().connect(
-      sigc::bind( sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_context_menu_edit_fields), table ));
+      sigc::bind( sigc::mem_fun(*this, &Window_RelationshipsOverview::on_context_menu_edit_fields), table ));
 
     m_connection_edit_relationships.disconnect();
     m_connection_edit_relationships = m_action_edit_relationships->signal_activate().connect(
-      sigc::bind( sigc::mem_fun(*this, &Dialog_RelationshipsOverview::on_context_menu_edit_relationships), 
table ));
+      sigc::bind( sigc::mem_fun(*this, &Window_RelationshipsOverview::on_context_menu_edit_relationships), 
table ));
   }
 
   if(m_context_menu)
     m_context_menu->popup(button, activate_time);
 }
 
-void Dialog_RelationshipsOverview::setup_context_menu()
+void Window_RelationshipsOverview::setup_context_menu()
 {
   Glib::RefPtr<Gio::SimpleActionGroup> action_group = Gio::SimpleActionGroup::create();
 
@@ -476,7 +473,7 @@ void Dialog_RelationshipsOverview::setup_context_menu()
   m_context_menu->attach_to_widget(*this);
 }
 
-void Dialog_RelationshipsOverview::on_context_menu_edit_fields(const Glib::VariantBase& /* parameter */, 
Glib::RefPtr<CanvasGroupDbTable> table)
+void Window_RelationshipsOverview::on_context_menu_edit_fields(const Glib::VariantBase& /* parameter */, 
Glib::RefPtr<CanvasGroupDbTable> table)
 {
   AppWindow* pApp = AppWindow::get_appwindow();
   if(pApp && table)
@@ -487,7 +484,7 @@ void Dialog_RelationshipsOverview::on_context_menu_edit_fields(const Glib::Varia
   }
 }
 
-void Dialog_RelationshipsOverview::on_context_menu_edit_relationships(const Glib::VariantBase& /* parameter 
*/, Glib::RefPtr<CanvasGroupDbTable> table)
+void Window_RelationshipsOverview::on_context_menu_edit_relationships(const Glib::VariantBase& /* parameter 
*/, Glib::RefPtr<CanvasGroupDbTable> table)
 {
   AppWindow* pApp = AppWindow::get_appwindow();
   if(pApp && table)
@@ -499,7 +496,7 @@ void Dialog_RelationshipsOverview::on_context_menu_edit_relationships(const Glib
 }
 
 
-void Dialog_RelationshipsOverview::on_scroll_value_changed()
+void Window_RelationshipsOverview::on_scroll_value_changed()
 {
   if(!m_scrolledwindow_canvas)
     return;
@@ -526,4 +523,12 @@ void Dialog_RelationshipsOverview::on_scroll_value_changed()
   }
 }
 
+void Window_RelationshipsOverview::on_button_close()
+{
+  if(m_modified && get_document())
+    get_document()->set_modified();
+
+  hide();
+}
+
 } //namespace Glom
diff --git a/glom/mode_design/relationships_overview/window_relationships_overview.h 
b/glom/mode_design/relationships_overview/window_relationships_overview.h
index df4d266..e8664d9 100644
--- a/glom/mode_design/relationships_overview/window_relationships_overview.h
+++ b/glom/mode_design/relationships_overview/window_relationships_overview.h
@@ -18,8 +18,8 @@
  * Boston, MA 02110-1301 USA.
  */
 
-#ifndef GLOM_DIALOG_RELATIONSHIPS_OVERVIEW
-#define GLOM_DIALOG_RELATIONSHIPS_OVERVIEW
+#ifndef GLOM_WINDOW_RELATIONSHIPS_OVERVIEW
+#define GLOM_WINDOW_RELATIONSHIPS_OVERVIEW
 
 #include <libglom/document/view.h>
 #include "glom/utility_widgets/canvas/canvas_editable.h"
@@ -40,16 +40,16 @@
 namespace Glom
 {
  
-class Dialog_RelationshipsOverview
- : public Gtk::Dialog,
+class Window_RelationshipsOverview
+ : public Gtk::Window,
    public View_Composite_Glom
 {
 public:
   static const char* glade_id;
   static const bool glade_developer;
 
-  Dialog_RelationshipsOverview(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder);
-  virtual ~Dialog_RelationshipsOverview();
+  Window_RelationshipsOverview(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder);
+  virtual ~Window_RelationshipsOverview();
   
   virtual void load_from_document(); //overridden.
 
@@ -61,7 +61,7 @@ private:
   void setup_context_menu();
   void update_relationships(TableView* table_from);
   void print_or_preview(Gtk::PrintOperationAction print_action);
-  void on_response(int id);
+  void on_button_close();
 
   void on_menu_file_print();
   void on_menu_file_page_setup();
@@ -109,4 +109,4 @@ private:
 
 } //namespace Glom
 
-#endif //GLOM_DIALOG_RELATIONSHIPS_OVERVIEW
+#endif //GLOM_WINDOW_RELATIONSHIPS_OVERVIEW


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]