def Export(self, widget): dialog = gtk.FileChooserDialog(_("Export priorities database"), None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK)) dialog.set_current_name("export") self.__SetFileFilters(dialog) """PNG""" filter = gtk.FileFilter() filter.set_name(_("PNG image")) filter.add_pattern("*.png") # filter.add_pixbuf_formats() dialog.add_filter(filter) """JPEG""" filter = gtk.FileFilter() filter.set_name(_("JPEG image")) filter.add_pattern("*.jpeg") # filter.add_pixbuf_formats() dialog.add_filter(filter) if dialog.run() == gtk.RESPONSE_OK: filter_name = dialog.get_filter().get_name() try: if (filter_name == _("PNG image") or filter_name == _("JPEG image")): layout_size = self.layout.get_size() if self.config.Get('showSharp'): layout_size = (layout_size[0] + 1, layout_size[1] + 1) pixbuf = (gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, layout_size[0], layout_size[1]).get_from_drawable( self.layout.get_bin_window(), gtk.gdk.colormap_get_system(), 0, 0, 0, 0, layout_size[0], layout_size[1])) if filter_name == _("PNG image"): pixbuf.save(dialog.get_filename() + ".png", "png") elif filter_name == _("JPEG image"): pixbuf.save(dialog.get_filename() + ".jpeg", "jpeg") else: file = open(dialog.get_filename() + ".priorities", "w") file.write( self.controller.Export(self.navBar.get_active_id())) file.close() except: print _("Exception exporting database") dialog.destroy()
def __Cancel(self): closeDialog = self.oldObjective == self.txtObjective.get_text() if not closeDialog: dialog = MessageDialog(self.window, 0, MESSAGE_QUESTION, BUTTONS_YES_NO, _("The objective have been modified")) dialog.format_secondary_text( _("The objective have been modified and the changes will be lost. Are you sure do you want to continue?" )) response = dialog.run() dialog.destroy() if response == RESPONSE_YES: return True return closeDialog
def __Delete(self): if self.__objective: # Delete in cascade if (self.config.Get('deleteCascade') and len(self.controller.Requeriments(self.__objective)) > 1): dialog = DeleteCascade(self.__objective) dialog.window.set_transient_for(self.window) response = dialog.window.run() dialog.window.destroy() # if response > 0: # self.__CreateTree() # Delete only the objective else: dialog = MessageDialog( self.window, 0, MESSAGE_QUESTION, BUTTONS_YES_NO, _("Do you want to delete the objective ") + self.__objective + "?") response = dialog.run() dialog.destroy() if response == RESPONSE_YES: self.controller.DeleteObjective(self.__objective) # self.__CreateTree() return True
def Import(self, widget): dialog = gtk.FileChooserDialog(_("Import priorities database"), None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) # dialog.set_current_name("export.priorities") self.__SetFileFilters(dialog) if dialog.run() == gtk.RESPONSE_OK: if self.controller.Import(dialog.get_filename()): self.__CreateGraph(self.navBar.get_active_id()) else: print _("Exception importing database") dialog.destroy()
def DelObjective(self, menuitem, name): if (self.config.Get('deleteCascade') and len(self.controller.DirectRequeriments(name)) > 1): dialog = DeleteCascade(name) if self.config.Get('confirmDeleteCascade'): dialog.window.set_transient_for(self.window) response = dialog.window.run() dialog.window.destroy() else: response = dialog.DeleteObjective_recursive() if response > 0: self.__CreateGraph() else: dialog = gtk.MessageDialog( self.window, 0, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _("Do you want to delete the objetive ") + name + "?") if dialog.run() == gtk.RESPONSE_YES: self.controller.DeleteObjective( name, self.config.Get('removeOrphanRequeriments')) self.__CreateGraph() dialog.destroy()
def __OpenDB_dialog(self): dialog = FileChooserDialog(_("Select the database to use"), None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) dialog.set_default_response(gtk.RESPONSE_OK) # sqlite files dialogFilter = gtk.FileFilter() dialogFilter.set_name("SQLite database") dialogFilter.add_pattern("*.sqlite") dialog.add_filter(dialogFilter) # Priorities export file dialogFilter = gtk.FileFilter() dialogFilter.set_name(_("Priorities export file")) dialogFilter.add_pattern("*.priorities") dialog.add_filter(dialogFilter) # All files dialogFilter = gtk.FileFilter() dialogFilter.set_name("All files") dialogFilter.add_pattern("*") dialog.add_filter(dialogFilter) response = dialog.run() if response == gtk.RESPONSE_OK: response = dialog.get_filename() # Export file if response[-11:] == ".priorities": self.controller.Connect(":memory:") if not self.controller.Import(response): print _("Exception importing database") dialog.destroy() return False # Database else: self.controller.Connect(response) dialog.destroy() return True else: dialog.destroy() return False
def __SaveDB_dialog(self): dialog = gtk.FileChooserDialog(_("Select the database to create"), None, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_NEW, gtk.RESPONSE_OK)) dialog.set_default_response(gtk.RESPONSE_OK) dialog.set_do_overwrite_confirmation(True) # sqlite files dialogFilter = gtk.FileFilter() dialogFilter.set_name(_("SQLite database")) dialogFilter.add_pattern("*.sqlite") dialog.add_filter(dialogFilter) # All files dialogFilter = gtk.FileFilter() dialogFilter.set_name("All files") dialogFilter.add_pattern("*") dialog.add_filter(dialogFilter) return dialog
def __init__(self, input=None): Gtk.__init__(self, "Main") if input and not self.controller.Import(input): print _("Exception importing database") self.__objectiveHI_edit = None self.__objectiveHI_delete = None self.__objectiveHI_zoomin = None self.__cursorObjective = None self.__needRenderGraph = False self.layout = self.builder.get_object("layout") self.layout.modify_bg(STATE_NORMAL, color_parse('white')) # Navigation Bar self.navBar = navigationbar.NavigationBar() self.navBar.show() vbox1 = self.builder.get_object("vbox1") vbox1.pack_start(self.navBar, False) vbox1.reorder_child(self.navBar, 2) # # File self.mnuSaveAs = self.builder.get_object("mnuSaveAs") self.mnuExport = self.builder.get_object("mnuExport") # # View self.mnuZoomIn = self.builder.get_object("mnuZoomIn") self.mnuZoomOut = self.builder.get_object("mnuZoomOut") # # Contextual menues # Layout # mnuLayout_ZoomIn = self.builder.get_object("mnuLayout_ZoomIn") # mnuLayout_ZoomOut = self.builder.get_object("mnuLayout_ZoomOut") # Objective self.mnuCtxObjective = self.builder.get_object("mnuCtxObjective") self.mnuObjective_Edit = self.builder.get_object("mnuObjective_Edit") self.mnuObjective_Delete = self.builder.get_object( "mnuObjective_Delete") self.mnuObjective_ZoomIn = self.builder.get_object( "mnuObjective_ZoomIn") self.mnuObjective_ZoomOut = self.builder.get_object( "mnuObjective_ZoomOut") # # Toolbar # Start button self.navBar.add_with_id("gtk-home", self.__NavbarHome, 0) self.navBar.get_button_from_id(0).set_use_stock(True) # Maximize if self.config.Get('maximized'): self.window.maximize() # Show window and start GTK main loop self.window.show() gtk.main()