[gevice] Fixes bug 583056
- From: Alejandro Valdes Jimenez <avaldes src gnome org>
- To: svn-commits-list gnome org
- Subject: [gevice] Fixes bug 583056
- Date: Thu, 21 May 2009 17:13:13 -0400 (EDT)
commit 56ce5617eb42453ad212d64cf4acf0932d226d4d
Author: Alejandro Valdes Jimenez <avaldes utalca cl>
Date: Thu May 21 17:12:54 2009 -0400
Fixes bug 583056
---
ChangeLog | 7 ++++
data/glade/gevice.glade | 6 ++-
src/gevice.py | 18 ++++++++----
src/geviceprefer.py | 71 +++++++++++++++++++++++++++++++++++------------
4 files changed, 76 insertions(+), 26 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index bb3e52f..429072c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-05-21 Alejandro Valdes Jimenez <avaldes gnome org>
+
+ Fixes bug #583056.
+ * data/glade/gevice.glade: change viewport for scrollwindows (tab user - window_prefer)
+ * src/gevice.py: add functon set_listusers_on_combobox()
+ * src/geviceprefer.py: add support for save/load users list in gconf.
+
2009-05-19 Alejandro Valdes Jimenez <avaldes gnome org>
* data/glade/gevice.glade: add new tab in window preferences. (lists of users)
diff --git a/data/glade/gevice.glade b/data/glade/gevice.glade
index 7ced0cc..2403e30 100644
--- a/data/glade/gevice.glade
+++ b/data/glade/gevice.glade
@@ -378,9 +378,11 @@
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<child>
- <widget class="GtkViewport" id="viewport1">
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
- <property name="resize_mode">queue</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
<child>
<widget class="GtkTreeView" id="treeview_users">
<property name="visible">True</property>
diff --git a/src/gevice.py b/src/gevice.py
index 3a5a565..103803b 100755
--- a/src/gevice.py
+++ b/src/gevice.py
@@ -26,6 +26,7 @@ import gtk
import gnome
import gtk.glade
import psycopg2
+import gobject
import config
import gevicefind
@@ -118,6 +119,7 @@ class Gevice:
self.list_links = None
self.connected_to_database = False
self.context_id = None
+ self.modelusers = gtk.ListStore(gobject.TYPE_STRING)
# get model for devices
self.gmodel = gevicemodel.GeviceModel(self)
@@ -225,7 +227,7 @@ class Gevice:
self.vboxcombo = gtk.VBox(False,0)
- self.combobox_user = gtk.combo_box_entry_new_text()
+ self.combobox_user = gtk.combo_box_entry_new_with_model(self.modelusers,0)
self.vboxcombo.pack_end (self.combobox_user,True,False)
self.toolitem_user.add(self.vboxcombo)
@@ -276,16 +278,20 @@ class Gevice:
self.gpref.load_preferences(self)
self.gpref.load_interface (self)
- # set users in combo
- for user in self.gpref.listusers:
- self.combobox_user.append_text(user)
-
- self.combobox_user.set_active (0)
+ self.set_listusers_on_combobox()
# show all
self.window_main.show_all()
return
+ def set_listusers_on_combobox (self):
+ self.modelusers.clear()
+ for user in self.gpref.listusers:
+ self.combobox_user.append_text(user)
+
+ self.combobox_user.set_active (0)
+
+
def main(self):
gtk.main()
diff --git a/src/geviceprefer.py b/src/geviceprefer.py
index 1210500..441822b 100644
--- a/src/geviceprefer.py
+++ b/src/geviceprefer.py
@@ -29,8 +29,6 @@ class GevicePrefer:
self.dbase = _("Database")
self.user_dbase = _("User database")
- self.modelusers = gtk.ListStore(gobject.TYPE_STRING)
-
def load_interface (self,gevice):
glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "gevice.glade"),"window_prefer",None)
@@ -75,8 +73,8 @@ class GevicePrefer:
self.entry_dbase.connect ("changed",self.on_entry_dbase_changed,gevice)
self.entry_user_dbase.connect ("changed",self.on_entry_user_dbase_changed,gevice)
- self.button_add_user.connect ("clicked",self.on_button_add_user_clicked)
- self.button_rem_user.connect ("clicked",self.on_button_rem_user_clicked)
+ self.button_add_user.connect ("clicked",self.on_button_add_user_clicked,gevice)
+ self.button_rem_user.connect ("clicked",self.on_button_rem_user_clicked,gevice)
# for not activate callback when loading preferences
self.flag_load_preferences = True
@@ -101,36 +99,37 @@ class GevicePrefer:
col = gtk.TreeViewColumn (_("Users"))
self.treeview_users.append_column (col)
cell = gtk.CellRendererText()
- cell.connect('edited', self.on_name_user_edited)
+ cell.connect('edited', self.on_name_user_edited,gevice)
col.pack_start (cell,True)
cell.set_property('editable',True)
col.add_attribute (cell,"text",0)
self.treeview_users.set_model (None)
- self.treeview_users.set_model (self.modelusers)
- self.modelusers.clear()
+ self.treeview_users.set_model (gevice.modelusers)
+ gevice.modelusers.clear()
for usr in self.listusers:
- iter = self.modelusers.append ()
- self.modelusers.set (
+ iter = gevice.modelusers.append ()
+ gevice.modelusers.set (
iter,
0,usr)
- def on_name_user_edited(self,cell,path,newname):
+ def on_name_user_edited(self,cell,path,newname,gevice):
newname = newname.strip()
- iter = self.modelusers.get_iter_from_string(path)
- oldname = self.modelusers.get(iter,0)[0]
+ iter = gevice.modelusers.get_iter_from_string(path)
+ oldname = gevice.modelusers.get(iter,0)[0]
# check, newname exists
if oldname == newname:
return
self.is_in_list = False
- self.modelusers.foreach(self.is_newname_in_list, newname)
+ gevice.modelusers.foreach(self.is_newname_in_list, newname)
if not self.is_in_list:
- print "guardar"
+ gevice.modelusers.set(iter,0,newname)
+ self.save_preferences(gevice)
else:
dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR,gtk.BUTTONS_OK,_("User exist: " + newname) )
dialog.run()
@@ -152,11 +151,36 @@ class GevicePrefer:
def close_window (self,window):
window.destroy()
- def on_button_add_user_clicked (self,button):
- pass
+ def on_button_add_user_clicked (self,button,gevice):
+ liststore = self.treeview_users.get_model()
+ iter = liststore.append ()
+ liststore.set (
+ iter,
+ 0,"New")
+
+ path = liststore.get_path(iter)
+ self.treeview_users.set_cursor(path,None,False)
+
+ self.save_preferences(gevice)
+
+
+ def on_button_rem_user_clicked (self,button,gevice):
+ selection = self.treeview_users.get_selection()
+ model,iter = selection.get_selected()
+
+ name = model.get(iter,0)[0]
+
+ dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION,
+ gtk.BUTTONS_YES_NO, _("Do you want to remove: ") + name)
+
+ result = dialog.run()
+
+ if result == gtk.RESPONSE_YES:
+ model.remove(iter)
+ self.save_preferences(gevice)
+
+ dialog.destroy()
- def on_button_rem_user_clicked (self,button):
- pass
def on_button_background_clicked (self,button,entry):
self.create_color_selection_dialog(_("Select background color"),entry)
@@ -301,8 +325,19 @@ class GevicePrefer:
client.set_bool('/apps/gevice/diagmodel', self.diagmodel)
client.set_bool('/apps/gevice/diaglink', self.diaglink)
+ # clear list
+ self.listusers = []
+ gevice.modelusers.foreach(self.update_list_users)
+ client.set_list('/apps/gevice/listusers',gconf.VALUE_STRING,self.listusers)
+
+ gevice.set_listusers_on_combobox()
gevice.update_statusbar ()
+ def update_list_users(self,model,path,iter):
+ username = model.get(iter,0)[0]
+ self.listusers.append(username)
+
+
def show_column (self,checkbutton,column,gevice):
st = checkbutton.get_active()
tcl = gevice.gmodel.treeview.get_column (column)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]