import os import urlparse import pygtk import gtk import gtk.glade import gtk.gdk import gobject import glib from net.lliurex.ide import * class WinIDE: def __init__(self): print("WinIDE::__init__") print(os.getcwd()) self.uiTree = gtk.glade.XML("../rsrc/ui.glade") self.win = self.uiTree.get_widget("winIDE") self.win.connect("destroy", gtk.main_quit) self.treeviewFiles = self.uiTree.get_widget("treeviewFiles") model = gtk.ListStore(gobject.TYPE_STRING) colname = gtk.TreeViewColumn("File") self.treeviewFiles.append_column(colname) cell = gtk.CellRendererText() colname.pack_start(cell,True) colname.add_attribute(cell,"text",0) self.treeviewFiles.enable_model_drag_dest([('text/uri-list', 0, 0)],gtk.gdk.ACTION_DEFAULT) self.treeviewFiles.connect("drag-data-received",self.on_drag_data_received) self.treeviewFiles.set_model(model) tmp=self.uiTree.get_widget("menuitem_options") tmp.connect("activate",self.on_menuitemOptions_activate) tmp=self.uiTree.get_widget("menuitem_open") tmp.connect("activate",self.on_menuitemOpen_activate) self.optionsvbox=self.uiTree.get_widget("vbox2") self.winOptions=self.uiTree.get_widget("winOptions") self.treeviewOptions=self.uiTree.get_widget("treeviewOptions") model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING) colname = gtk.TreeViewColumn("Property") self.treeviewOptions.append_column(colname) cell = gtk.CellRendererText() colname.pack_start(cell,True) colname.add_attribute(cell,"text",0) colname = gtk.TreeViewColumn("Value") self.treeviewOptions.append_column(colname) cell = gtk.CellRendererText() cell.set_property('editable', True) colname.pack_start(cell,True) colname.add_attribute(cell,"text",1) self.treeviewOptions.set_model(model) self.winOptions.connect("delete-event", self.on_winOptionsClose) self.win.show_all() scan_pkgconfig() def on_winOptionsClose(self,data,data2): self.winOptions.hide() return True def on_menuitemOptions_activate(self,data): self.winOptions.show() def on_menuitemOpen_activate(self,data): chooser = gtk.FileChooserDialog(title="Open project",action=gtk.FILE_CHOOSER_ACTION_OPEN,buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) filter = gtk.FileFilter() filter.set_name("Lliurex IDE projects") filter.add_pattern("*.lxp") chooser.add_filter(filter) filter = gtk.FileFilter() filter.set_name("All files") filter.add_pattern("*") chooser.add_filter(filter) response=chooser.run() if response == gtk.RESPONSE_OK: print chooser.get_filename(), 'selected' #loading project... pdata=open_project(chooser.get_filename()) model=self.treeviewFiles.get_model() model.clear() for p in pdata["files"].split(";"): model.append([p]) model=self.treeviewOptions.get_model() model.clear() model.append(["APP_NAME",pdata["app_name"]]) model.append(["LIBS",pdata["libs"]]) # *** elif response == gtk.RESPONSE_CANCEL: print 'Closed, no files selected' chooser.destroy() def on_drag_data_received(self,treeview, context, x, y, selection,info, etime): fpath=urlparse.urlparse(selection.get_uris()[0]).path fpath=os.path.relpath(fpath,".") print "Adding file:",fpath self.treeviewFiles.get_model().append([fpath]) if __name__=="__main__": win=WinIDE() gtk.main()