Source code for ArgsWindow
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
from gi.repository import Notify
from gi.repository import Gdk
from gi.repository import Gio
from os.path import expanduser
import os, sys, subprocess, gettext
gettext.install('google2ubuntu',os.path.dirname(os.path.abspath(__file__))+'/i18n/')
# gère l'apparition de la fenêtre d'assistance de création de module
[docs]class ArgsWindow():
"""
@description: Display a window to help the user create a config for a
module
@param module
module's folder
@param name
module's name
@param store
a Gtk.Listore in which we will append a new line for this module
"""
def __init__(self,module,name,store):
self.w = Gtk.Window()
self.w.set_title(_("Module setup"))
self.w.set_resizable(False)
self.w.get_focus()
self.w.set_position(Gtk.WindowPosition.CENTER)
self.w.set_default_size(300,300)
self.w.set_border_width(5)
grid = Gtk.Grid()
label1 = Gtk.Label(_("Linking word"))
label1.set_justify(Gtk.Justification.LEFT)
label1.set_halign(Gtk.Align.START)
self.entry1 = Gtk.Entry()
self.entry1.set_tooltip_text(_("Word to separate call and parameter"))
self.checkbutton = Gtk.CheckButton()
self.checkbutton.set_label(_("Replace space by plus"))
self.checkbutton.set_tooltip_text(_("Replace space by plus"))
button = Gtk.Button()
button.set_label(_("Go"))
button.set_tooltip_text(_("Go"))
image = Gtk.Image()
image.set_from_stock(Gtk.STOCK_APPLY, Gtk.IconSize.BUTTON)
button.set_image(image)
button.connect("clicked",self.do_clicked,module,name,store)
grid.attach(label1,0,0,4,1)
grid.attach(self.entry1,0,1,4,1)
grid.attach(self.checkbutton,0,2,4,1)
grid.attach(button,3,3,1,1)
self.w.add(grid)
self.w.show_all()
[docs] def do_clicked(self,button,module,name,store):
"""
@description: callback function called when the user want to finish
the configuration of the module. If everything is ok then the config
file is written at the right place
"""
linker = self.entry1.get_text()
if self.checkbutton.get_active():
spacebyplus='1'
else:
spacebyplus='0'
if linker is not '':
try:
folder = name.split('.')[0]
module_path=expanduser('~')+'/.config/google2ubuntu/modules/'+folder
if not os.path.exists(module_path):
os.makedirs(module_path)
f = open(module_path+'/args',"w")
f.write('linker='+linker+'\n')
f.write('spacebyplus='+spacebyplus+'\n')
f.close()
os.system('cp '+module+name+' '+module_path)
store.append(['<phrase clé>',folder+'/'+name,'modules'])
except IOError:
"Unable to open the file"
self.w.destroy()