Пример #1
0
    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
Пример #4
0
    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()
Пример #5
0
    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()
Пример #6
0
    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
Пример #7
0
    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
Пример #8
0
    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()