~ubuntu-branches/ubuntu/precise/glom/precise-updates

« back to all changes in this revision

Viewing changes to glom/mode_design/users/dialog_groups_list.cc

  • Committer: Bazaar Package Importer
  • Author(s): Chris Coulson
  • Date: 2009-10-09 16:50:36 UTC
  • mfrom: (1.1.42 upstream)
  • Revision ID: james.westby@ubuntu.com-20091009165036-orinvwmohk838xxl
Tags: 1.12.2-0ubuntu1
* New upstream version:
  - FFE LP: #391664
* debian/control:
  - Bump python-gnome2-extras-dev build-dep to >= 2.25.3.
  - Bump libgdamm3.0-dev build-dep to libgdamm4.0-dev >= 3.99.14.
  - Change libgda3-dev build-dep to libgda-4.0-dev.
  - Change libgda3-postgres dependency to libgda-4.0-postgres.
  - Bump libgtkmm-2.4-dev build-dep to >= 2.14.
  - Add build-dep on libgconfmm-2.6-dev.
  - Bump libgoocanvasmm-dev build-dep to >= 0.14.0.
  - Remove build-dep on libbakery-2.6-dev.
  - Bump postgresql-8.3 dependency to postgresql-8.4.
  - Change scrollkeeper build-dep to rarian-compat.
  - Rename libglom{0,-dev} -> libglom-1.12-{0,dev}. Upstream include
    APIVER in the library name now.
* debian/rules:
  - Update --with-postgres-utils configure flag to point to the new
    path.
  - Drop deprecated --disable-scrollkeeper configure flag.
  - Update DEB_SHLIBDEPS_INCLUDE with new libglom-1.12-0 package name.
  - Don't include /usr/share/cdbs/1/rules/simple-patchsys.mk - there
    are currently no patches.
* debian/libglom-1.12-0.install:
  - Updated for new version.
* debian/libglom-1.12-dev.install:
  - Install pc and header files.
* debian/glom-doc.install:
  - Updated for new version.
* debian/glom.install:
  - Updated for new version.
* Fix debian/watch.
* Dropped obsolete 10-distro-install-postgres-change.patch.
* Built against latest libgoocanvasmm (LP: #428445).
* Also closes LP: #230007, LP: #393229, LP: #393231, LP: #394507,
  LP: #394887, LP: #394894, LP: #397409, LP: #381563.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
#include "dialog_user.h"
23
23
#include "dialog_users_list.h"
24
24
#include "dialog_new_group.h"
25
 
#include <glom/libglom/standard_table_prefs_fields.h>
26
 
#include <glom/libglom/glade_utils.h>
 
25
#include <libglom/standard_table_prefs_fields.h>
 
26
#include <glom/glade_utils.h>
27
27
#include <glom/glom_privs.h>
28
28
//#include <libgnome/gnome-i18n.h>
29
 
#include <bakery/App/App_Gtk.h> //For util_bold_message().
 
29
#include <glom/utils_ui.h> //For bold_message()).
30
30
#include <glibmm/i18n.h>
31
31
 
32
32
namespace Glom
33
33
{
34
34
 
35
 
Dialog_GroupsList::Dialog_GroupsList(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade)
 
35
Dialog_GroupsList::Dialog_GroupsList(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
36
36
: Gtk::Dialog(cobject),
37
37
  m_treeview_groups(0),
38
38
  m_button_group_new(0),
41
41
{
42
42
  //set_default_size(600, -1);
43
43
 
44
 
  refGlade->get_widget("treeview_groups", m_treeview_groups);
45
 
  refGlade->get_widget("treeview_tables", m_treeview_tables);
 
44
  builder->get_widget("treeview_groups", m_treeview_groups);
 
45
  builder->get_widget("treeview_tables", m_treeview_tables);
46
46
 
47
47
  m_model_groups = Gtk::ListStore::create(m_model_columns_groups);
48
48
  m_model_tables = Gtk::ListStore::create(m_model_columns_tables);
92
92
    refSelection->signal_changed().connect( sigc::mem_fun(*this, &Dialog_GroupsList::on_treeview_tables_selection_changed) );
93
93
  }
94
94
 
95
 
  refGlade->get_widget("button_group_new", m_button_group_new);
 
95
  builder->get_widget("button_group_new", m_button_group_new);
96
96
  m_button_group_new->signal_clicked().connect( sigc::mem_fun(*this, &Dialog_GroupsList::on_button_group_new) );
97
97
 
98
 
  refGlade->get_widget("button_group_delete", m_button_group_delete);
 
98
  builder->get_widget("button_group_delete", m_button_group_delete);
99
99
  m_button_group_delete->signal_clicked().connect( sigc::mem_fun(*this, &Dialog_GroupsList::on_button_group_delete) );
100
100
 
101
 
  refGlade->get_widget("button_group_users", m_button_group_users);
 
101
  builder->get_widget("button_group_users", m_button_group_users);
102
102
  m_button_group_users->signal_clicked().connect( sigc::mem_fun(*this, &Dialog_GroupsList::on_button_group_users) );
103
103
 
104
104
  enable_buttons();
111
111
}
112
112
 
113
113
/*
114
 
void Dialog_GroupsList::set_document(const Glib::ustring& layout, Document_Glom* document, const Glib::ustring& table_name, const type_vecLayoutFields& table_fields)
 
114
void Dialog_GroupsList::set_document(const Glib::ustring& layout, Document* document, const Glib::ustring& table_name, const type_vecLayoutFields& table_fields)
115
115
{
116
116
  m_modified = false;
117
117
 
125
125
    m_label_table_name->set_text(table_name);
126
126
    m_entry_table_title->set_text( document->get_table_title(table_name) );
127
127
 
128
 
    Document_Glom::type_list_layout_groups mapGroups = document->get_data_layout_groups_plus_new_fields(layout, m_table_name);
 
128
    Document::type_list_layout_groups mapGroups = document->get_data_layout_groups_plus_new_fields(layout, m_table_name, m_layout_platform);
129
129
 
130
130
    //If no information is stored in the document, then start with something:
131
131
 
153
153
 
154
154
    m_model_groups->clear();
155
155
 
156
 
    for(Document_Glom::type_list_layout_groups::const_iterator iter = mapGroups.begin(); iter != mapGroups.end(); ++iter)
 
156
    for(Document::type_list_layout_groups::const_iterator iter = mapGroups.begin(); iter != mapGroups.end(); ++iter)
157
157
    {
158
158
      sharedptr<const LayoutGroup> group = iter->second;
159
159
 
209
209
      if(!group.empty())
210
210
      {
211
211
        //TODO: Prevent deletion of standard groups
212
 
        Gtk::MessageDialog dialog(Bakery::App_Gtk::util_bold_message(_("Delete Group")), true, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_OK_CANCEL);
 
212
        Gtk::MessageDialog dialog(Utils::bold_message(_("Delete Group")), true, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_OK_CANCEL);
213
213
        dialog.set_secondary_text(_("Are your sure that you wish to delete this group?"));
214
214
        dialog.set_transient_for(*this);
215
215
 
219
219
        if(response == Gtk::RESPONSE_OK)
220
220
        {
221
221
          Glib::ustring strQuery = "DROP GROUP \"" + group + "\"";
222
 
          query_execute(strQuery, this);
 
222
          const bool test = query_execute(strQuery);
 
223
          if(!test)
 
224
            std::cerr << "Box_DB_Table_Definition::on_adddel_delete(): DROP GROUP failed." << std::endl;
223
225
 
224
226
          fill_group_list();
225
227
        }
235
237
  Dialog_NewGroup* dialog = 0;
236
238
  try
237
239
  {
238
 
    Glib::RefPtr<Gnome::Glade::Xml> refXml = Gnome::Glade::Xml::create(Utils::get_glade_file_path("glom_developer.glade"), "dialog_new_group");
 
240
    Glib::RefPtr<Gtk::Builder> refXml = Gtk::Builder::create_from_file(Utils::get_glade_file_path("glom_developer.glade"), "dialog_new_group");
239
241
 
240
242
    refXml->get_widget_derived("dialog_new_group", dialog);
241
243
  }
242
 
  catch(const Gnome::Glade::XmlError& ex)
 
244
  catch(const Gtk::BuilderError& ex)
243
245
  {
244
246
    std::cerr << ex.what() << std::endl;
245
247
  }
257
259
  if(!group_name.empty())
258
260
  {
259
261
    const Glib::ustring strQuery = "CREATE GROUP \"" + group_name + "\"";
260
 
    Glib::RefPtr<Gnome::Gda::DataModel> data_model = query_execute(strQuery, this);
 
262
    const bool test = query_execute(strQuery);
 
263
    if(!test)
 
264
      std::cout << "Dialog_GroupsList::on_button_group_new(): CREATE GROUP failed." << std::endl;
261
265
 
262
266
    //Give the new group some sensible default privileges:
263
267
    Privileges priv;
264
268
    priv.m_view = true;
265
269
    priv.m_edit = true;
266
270
 
267
 
    Document_Glom::type_listTableInfo table_list = get_document()->get_tables(true /* plus system prefs */);
 
271
    Document::type_listTableInfo table_list = get_document()->get_tables(true /* plus system prefs */);
268
272
 
269
 
    for(Document_Glom::type_listTableInfo::const_iterator iter = table_list.begin(); iter != table_list.end(); ++iter)
 
273
    for(Document::type_listTableInfo::const_iterator iter = table_list.begin(); iter != table_list.end(); ++iter)
270
274
    {
271
275
      Privs::set_table_privileges(group_name, (*iter)->get_name(), priv);
272
276
    }
294
298
      Dialog_UsersList* dialog = 0;
295
299
      try
296
300
      {
297
 
        Glib::RefPtr<Gnome::Glade::Xml> refXml = Gnome::Glade::Xml::create(Utils::get_glade_file_path("glom_developer.glade"), "window_users");
 
301
        Glib::RefPtr<Gtk::Builder> refXml = Gtk::Builder::create_from_file(Utils::get_glade_file_path("glom_developer.glade"), "window_users");
298
302
 
299
303
        refXml->get_widget_derived("window_users", dialog);
300
304
      }
301
 
      catch(const Gnome::Glade::XmlError& ex)
 
305
      catch(const Gtk::BuilderError& ex)
302
306
      {
303
307
        std::cerr << ex.what() << std::endl;
304
308
      }
362
366
  //Fill the model rows:
363
367
  m_model_groups->clear();
364
368
 
365
 
  type_vecStrings group_list = Privs::get_database_groups();
366
 
  for(type_vecStrings::const_iterator iter = group_list.begin(); iter != group_list.end(); ++iter)
 
369
  type_vec_strings group_list = Privs::get_database_groups();
 
370
  for(type_vec_strings::const_iterator iter = group_list.begin(); iter != group_list.end(); ++iter)
367
371
  {
368
372
    Gtk::TreeModel::iterator iterTree = m_model_groups->append();
369
373
    Gtk::TreeModel::Row row = *iterTree;
394
398
  //Fill the model rows:
395
399
  m_model_tables->clear();
396
400
 
397
 
  Document_Glom* pDocument = get_document();
 
401
  Document* pDocument = get_document();
398
402
  if(pDocument)
399
403
  {
400
404
    // Make sure that these are in the document,
402
406
    GroupInfo group_info;
403
407
    group_info.set_name(group_name);
404
408
 
405
 
    Document_Glom::type_listTableInfo table_list = pDocument->get_tables(true /* plus system prefs */);
 
409
    Document::type_listTableInfo table_list = pDocument->get_tables(true /* plus system prefs */);
406
410
 
407
 
    for(Document_Glom::type_listTableInfo::const_iterator iter = table_list.begin(); iter != table_list.end(); ++iter)
 
411
    for(Document::type_listTableInfo::const_iterator iter = table_list.begin(); iter != table_list.end(); ++iter)
408
412
    {
409
413
      Gtk::TreeModel::iterator iterTree = m_model_tables->append();
410
414
      Gtk::TreeModel::Row row = *iterTree;
492
496
 
493
497
  strQuery += " GROUP \"" + group_name + "\"";
494
498
 
495
 
  query_execute(strQuery, this); //TODO: Handle errors.
 
499
  const bool test = query_execute(strQuery); //TODO: Handle errors.
 
500
  if(!test)
 
501
    std::cerr << "Dialog_GroupsList::set_table_privilege(): GRANT/REVOKE failed." << std::endl;
496
502
 
497
 
  return true;
 
503
  return test;
498
504
}
499
505
 
500
506
void Dialog_GroupsList::on_treeview_tables_toggled_view(const Glib::ustring& path_string)