[beryl-commits] r2258 - trunk/beryl-settings-2

quinn at server.beryl-project.org quinn at server.beryl-project.org
Tue Jan 2 09:56:50 CET 2007


Author: quinn
Date: 2007-01-02 08:56:49 +0000 (Tue, 02 Jan 2007)
New Revision: 2258

Modified:
   trunk/beryl-settings-2/main.py
Log:
all buttons in the binding popup now work
should I remove in-place editing of bindings? (is it just going to be annoying?)
just about done really, need some input on how exactly to display and handle binding conflicts, how to manage profiles


Modified: trunk/beryl-settings-2/main.py
===================================================================
--- trunk/beryl-settings-2/main.py	2007-01-02 08:52:03 UTC (rev 2257)
+++ trunk/beryl-settings-2/main.py	2007-01-02 08:56:49 UTC (rev 2258)
@@ -399,6 +399,9 @@
 def hideshowclick(wid):
 	UpdateBindingsList(wid.props.active)
 
+statemask=gdk.SHIFT_MASK | gdk.CONTROL_MASK | gdk.MOD1_MASK | gdk.MOD2_MASK | gdk.MOD3_MASK | \
+		gdk.MOD5_MASK | gdk.SUPER_MASK | gdk.HYPER_MASK | gdk.META_MASK
+
 def kpe(win,ev,ent):
 	keygot=(ev.keyval,ev.state)
 	#check to see if its a modifier key
@@ -410,8 +413,6 @@
 	win.grab_remove()
 	gdk.keyboard_ungrab()
 	win.destroy()
-	statemask=gdk.SHIFT_MASK | gdk.CONTROL_MASK | gdk.MOD1_MASK | gdk.MOD2_MASK | gdk.MOD3_MASK | \
-		gdk.MOD5_MASK | gdk.SUPER_MASK | gdk.HYPER_MASK | gdk.META_MASK
 	keygot=(keygot[0],keygot[1]&statemask)
 	win.destroy()
 	if (keygot[1]==0 and keygot[0]==gdk.keyval_from_name("Escape")):
@@ -452,7 +453,24 @@
 	keygot=None
 	win.connect("key-press-event",kpe,ent)
 
+def clearit(wid,ent):
+	ent.set_text('Disabled')
+
+def resetit(wid,inf):
+	ent=inf[0]
+	set=inf[1]
+	typ=inf[2]
+	vv=set.Value
+	v0=vv[0]
+	v1=vv[1]
+	v2=vv[2]
+	v3=vv[3]
+	set.ResetToDefault()
+	ent.set_text(set.Value[typ])
+	set.Value=[v0,v1,v2,v3]
+
 def BindingPopup(wid,path,col):
+	global AllowUpdate
 	#why does this get a tuple? that makes no sense.
 	spath=None
 	for foo in path:
@@ -471,13 +489,15 @@
 		return
 	vals=GenStore.get(Iter,5,6)
 	set=Ctx.Plugin(vals[0]).Setting(vals[1])
-	dlg=gtk.Dialog("Edit Binding %s"%set.ShortDesc,MainWindow,gtk.DIALOG_MODAL,(gtk.STOCK_OK,gtk.RESPONSE_OK,gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL))
+	dlg=gtk.Dialog("Edit Shortcuts for %s"%set.ShortDesc,MainWindow,gtk.DIALOG_MODAL,(gtk.STOCK_OK,gtk.RESPONSE_OK,gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL))
 	vb=dlg.vbox
 	tb=gtk.Table()
 	tb.props.border_width=5
 	tb.props.row_spacing=5
 	tb.props.column_spacing=5
 	vb.pack_start(tb,False,False)
+	kent=None
+	bent=None
 	if (set.Restrictions[0]):
 		lab=gtk.Label("Keyboard Binding:")
 		lab.props.xalign=1
@@ -489,10 +509,13 @@
 		tb.attach(grab,2,3,0,1)
 		grab.connect("clicked",getkey,ent)
 		clear=gtk.Button("Clear")
+		clear.connect("clicked",clearit,ent)
 		tb.attach(clear,3,4,0,1)
 		rest=gtk.Button()
+		rest.connect("clicked",resetit,(ent,set,0))
 		rest.props.image=gtk.image_new_from_stock(gtk.STOCK_CLEAR,gtk.ICON_SIZE_BUTTON)
 		tb.attach(rest,4,5,0,1)
+		kent=ent
 	if (set.Restrictions[1]):
 		lab=gtk.Label("Mouse Binding:")
 		lab.props.xalign=1
@@ -501,12 +524,28 @@
 		ent.set_text(set.Value[1])
 		tb.attach(ent,1,2,1,2)
 		clear=gtk.Button("Clear")
+		clear.connect("clicked",clearit,ent)
 		tb.attach(clear,3,4,1,2)
 		rest=gtk.Button()
+		rest.connect("clicked",resetit,(ent,set,1))
 		rest.props.image=gtk.image_new_from_stock(gtk.STOCK_CLEAR,gtk.ICON_SIZE_BUTTON)
 		tb.attach(rest,4,5,1,2)
+		bent=ent
 	vb.show_all()
-	dlg.run()
+	ret=dlg.run()
+	if (ret==gtk.RESPONSE_OK):
+		v0=set.Value[0]
+		v1=set.Value[1]
+		v2=set.Value[2]
+		v3=set.Value[3]
+		if kent:
+			v0=kent.get_text()
+		if bent:
+			v1=bent.get_text()
+		set.Value=[v0,v1,v2,v3]
+		AllowUpdate=False
+		GenStore.set(Iter,1,set.Value[0],3,set.Value[1])
+		Ctx.Write()
 	dlg.destroy()
 
 def MakeBindingsList():




More information about the commits mailing list