Пример #1
0
    def __init__(self, argv):
        """
        Constructor
        @load a config dictionnary
        
        """
        QApplication.__init__(self, argv)
        self.settings = QSettings()
        #for e in self.settings.allKeys():
        #    print str(e)
        self.connect(self, SIGNAL('lastWindowClosed()'), self.goodbye)

        self.undoStack = QUndoStack(self)
        self.useGL = self.checkGL()
        self.lowMemory = False
        self.multiCore = False
        #self.modelView = 'Samples View'
        #self.showSplash=self.settings.value('showSplash', True).toBool()
        from gui.MetBaseGui import MSSplashScreen
        self.splash = MSSplashScreen(
            QPixmap(path.normcase("gui/icons/Tux-G2.png")),
            Qt.WindowStaysOnTopHint)
        self.splash.show()
        #self.splash.setMask(pixmap.mask())
        self.splash.showMessage((u'Starting now...'),
                                Qt.AlignCenter | Qt.AlignBottom, Qt.black)
        self.processEvents()
        self.controllers = {}
        self.metmsconfig = self.loadConfiguration()
Пример #2
0
 def __init__(self, ob, parent):
     QAbstractTableModel.__init__(self)
     # store things
     self.ob = ob
     self.stack = QUndoStack()
     self._parent = parent
     # Make sure we have Name information first
     # _header contains the row headers
     self._header = [
         QVariant('X'),
         QVariant('#'),
         QVariant(getattr(self.ob, 'UniqueName', 'name'))
     ]
     # _tooltips contains the tooltips
     self._tooltips = [
         QVariant('An X indicates row is disabled %s' % bool),
         QVariant('Comment for row'),
         QVariant('Object name %s' % str)
     ]
     # _required is a list of required columns
     self._required = []
     # _defaults is a dict of column -> default values
     self._defaults = {0: QVariant(False), 1: QVariant("")}
     # _optional is a list of optional columns
     self._optional = [2]
     # _cItems is a dict of column -> QVariant QStringList items, returned
     # to combo box
     self._cItems = {}
     # _cValues is a dict of column -> list of QVariant values, stored when
     # corresponding label stored by combobox
     self._cValues = {}
     # _idents is a list of identifier lookup fields
     self._idents = []
     # _types is a list of types for validation
     self._types = [bool, str, str]
     # rows is a list of rows. each row is a list of QVariants
     self.rows = []
     # work out the header and descriptions from the ArgInfo object
     a = ob.ArgInfo
     # for required names just process the ArgType object
     for name in a.required_names:
         self.__processArgType(name, a.descriptions[name])
     # for defaulted names give it a default too
     for name, default in zip(a.default_names, a.default_values):
         self.__processArgType(name, a.descriptions[name], default=default)
     # for optional names flag it as optional
     for name in a.optional_names:
         self.__processArgType(name, a.descriptions[name], optional=True)
     # maps (filt, without, upto) -> (timestamp, stringList)
     self._cachedNameList = {}
     # this is the top left item visible in the TableView widget
     self.topLeftIndex = None
Пример #3
0
	def __init__(self, parent=None):

		# Construye la MainWindow
		QtGui.QMainWindow.__init__(self, parent)
		self.setupUi(self)

		# Define una QUndoStack (no usado)
		self.undoStack = QUndoStack(self)

		# Conecta los botones de la Barra de herramientas
		self.actionAbrir.triggered.connect(self.abrir_click)
		self.actionGuardar.triggered.connect(self.guardar_click)
		self.actionCerrar.triggered.connect(self.cerrar_click)
		self.actionUmbralizar.triggered.connect(self.umbralizar_click)
		self.actionEscalaDeGrises.triggered.connect(self.escalaGrises_click)
		self.actionRGB.triggered.connect(self.RGB_click)
		self.actionDeshacer.triggered.connect(self.deshacer_click)
		self.actionSuma.triggered.connect(self.suma_click)
		self.actionResta.triggered.connect(self.resta_click)
		self.actionMultiplicacion.triggered.connect(self.multiplicacion_click)
		self.actionAnd.triggered.connect(self.and_click)
		self.actionOr.triggered.connect(self.or_click)
		self.actionExor.triggered.connect(self.exor_click)
		self.actionNot.triggered.connect(self.not_click)
		self.actionHist.triggered.connect(self.hist_click)
		self.actionExpand.triggered.connect(self.expand_click)
		self.actionContr.triggered.connect(self.cont_click)
		self.actionDespl.triggered.connect(self.desp_click)
		self.actionEcu.triggered.connect(self.ecu_click)
		self.actionPromedio.triggered.connect(self.prom_click)
		self.actionPromedio_Pesado.triggered.connect(self.prom_pesado_click)
		self.actionFiltro_gausiano.triggered.connect(self.gausiano_click)
		self.actionLaplaciano.triggered.connect(self.laplaciano_click)
		self.actionPrewitt.triggered.connect(self.prewitt_click)
		self.actionSobel.triggered.connect(self.sobel_click)
		self.actionRobert.triggered.connect(self.robert_click)
		self.actionCierre.triggered.connect(self.cierre_click)
		self.actionApertura.triggered.connect(self.apertura_click)
		self.actionPasabanda.triggered.connect(self.pasabanda_click)
		self.actionMultiumbral.triggered.connect(self.multiumbral_click)
Пример #4
0
    def __init__(self, *args, **kwords):
        QMainWindow.__init__(self, *args)
        self.undo_stack = QUndoStack(self)
        self.ui = Ui_TrackingWindow()
        self.ui.setupUi(self)
        self._project = None
        self._data = None
        self.toolGroup = QActionGroup(self)
        self.toolGroup.addAction(self.ui.actionAdd_point)
        self.toolGroup.addAction(self.ui.action_Move_point)
        self.toolGroup.addAction(self.ui.actionAdd_cell)
        self.toolGroup.addAction(self.ui.actionRemove_cell)
        self.toolGroup.addAction(self.ui.action_Pan)
        self.toolGroup.addAction(self.ui.actionZoom_out)
        self.toolGroup.addAction(self.ui.actionZoom_in)
        self.previousSelAct = QActionGroup(self)
        self.previousSelAct.addAction(
            self.ui.actionCopy_selection_from_Previous)
        self.previousSelAct.addAction(self.ui.actionDelete_Previous)
        self.previousSelAct.setEnabled(False)
        self.currentSelAct = QActionGroup(self)
        self.currentSelAct.addAction(self.ui.actionCopy_selection_from_Current)
        self.currentSelAct.addAction(self.ui.actionDelete_Current)
        self.currentSelAct.setEnabled(False)
        self.projectAct = QActionGroup(self)
        self.projectAct.addAction(self.ui.action_Next_image)
        self.projectAct.addAction(self.ui.action_Previous_image)
        self.projectAct.addAction(self.ui.actionAdd_point)
        self.projectAct.addAction(self.ui.action_Move_point)
        self.projectAct.addAction(self.ui.action_Pan)
        self.projectAct.addAction(self.ui.actionAdd_cell)
        self.projectAct.addAction(self.ui.actionRemove_cell)
        self.projectAct.addAction(self.ui.action_Change_data_file)
        self.projectAct.addAction(self.ui.actionNew_data_file)
        self.projectAct.addAction(self.ui.actionZoom_out)
        self.projectAct.addAction(self.ui.actionZoom_in)
        self.projectAct.addAction(self.ui.actionSave_as)
        self.projectAct.addAction(self.ui.action_Fit)
        self.projectAct.addAction(self.ui.actionZoom_100)
        self.projectAct.addAction(self.ui.actionMerge_points)
        self.projectAct.addAction(self.ui.actionCopy_from_previous)
        self.projectAct.addAction(self.ui.actionCopy_from_current)
        self.projectAct.addAction(self.ui.actionReset_alignment)
        self.projectAct.addAction(self.ui.actionAlign_images)
        self.projectAct.addAction(self.ui.actionSelectPreviousAll)
        self.projectAct.addAction(self.ui.actionSelectPreviousNew)
        self.projectAct.addAction(self.ui.actionSelectPreviousNone)
        self.projectAct.addAction(self.ui.actionSelectPreviousNon_associated)
        self.projectAct.addAction(self.ui.actionSelectPreviousAssociated)
        self.projectAct.addAction(self.ui.actionSelectPreviousInvert)
        self.projectAct.addAction(self.ui.actionSelectCurrentAll)
        self.projectAct.addAction(self.ui.actionSelectCurrentNew)
        self.projectAct.addAction(self.ui.actionSelectCurrentNone)
        self.projectAct.addAction(self.ui.actionSelectCurrentNon_associated)
        self.projectAct.addAction(self.ui.actionSelectCurrentAssociated)
        self.projectAct.addAction(self.ui.actionSelectCurrentInvert)
        self.projectAct.addAction(self.ui.actionEdit_timing)
        self.projectAct.addAction(self.ui.actionEdit_scales)
        self.projectAct.addAction(self.ui.actionCompute_growth)
        self.projectAct.addAction(self.ui.actionClean_cells)
        self.projectAct.addAction(self.ui.actionGotoCell)

        self.projectAct.setEnabled(False)

        current_sel_actions = [
            self.ui.actionSelectCurrentAll, self.ui.actionSelectCurrentNew,
            self.ui.actionSelectCurrentNone, self.ui.actionSelectCurrentInvert,
            '-', self.ui.actionSelectCurrentNon_associated,
            self.ui.actionSelectCurrentAssociated,
            self.ui.actionCopy_selection_from_Previous
        ]

        previous_sel_actions = [
            self.ui.actionSelectPreviousAll, self.ui.actionSelectPreviousNew,
            self.ui.actionSelectPreviousNone,
            self.ui.actionSelectPreviousInvert, '-',
            self.ui.actionSelectPreviousNon_associated,
            self.ui.actionSelectPreviousAssociated,
            self.ui.actionCopy_selection_from_Current
        ]

        self._previousScene = TrackingScene(self.undo_stack,
                                            self.ui.actionDelete_Previous,
                                            previous_sel_actions, self)
        self._currentScene = LinkedTrackingScene(self._previousScene,
                                                 self.undo_stack,
                                                 self.ui.actionDelete_Current,
                                                 current_sel_actions, self)
        self._previousScene.hasSelectionChanged.connect(
            self.previousSelAct.setEnabled)
        self._currentScene.hasSelectionChanged.connect(
            self.currentSelAct.setEnabled)
        self._previousScene.realSceneSizeChanged.connect(self.sceneSizeChanged)
        self._currentScene.realSceneSizeChanged.connect(self.sceneSizeChanged)
        self._previousScene.zoomIn[QPointF].connect(self.zoomIn)
        self._currentScene.zoomIn.connect(self.zoomIn)
        self._previousScene.zoomOut[QPointF].connect(self.zoomOut)
        self._currentScene.zoomOut.connect(self.zoomOut)
        self.ui.previousData.setScene(self._previousScene)
        self.ui.currentData.setScene(self._currentScene)
        self.ui.previousData.setDragMode(QGraphicsView.ScrollHandDrag)
        self.ui.currentData.setDragMode(QGraphicsView.ScrollHandDrag)
        #self.ui.previousData.setCacheMode(QGraphicsView.CacheBackground)
        #self.ui.currentData.setCacheMode(QGraphicsView.CacheBackground)

        # Redefine shortcuts to standard key sequences
        self.ui.action_Save.setShortcut(QKeySequence.Save)
        self.ui.actionSave_as.setShortcut(QKeySequence.SaveAs)
        self.ui.action_Open_project.setShortcut(QKeySequence.Open)
        self.ui.action_Undo.setShortcut(QKeySequence.Undo)
        self.ui.action_Redo.setShortcut(QKeySequence.Redo)
        self.ui.action_Next_image.setShortcut(QKeySequence.Forward)
        self.ui.action_Previous_image.setShortcut(QKeySequence.Back)

        # Connecting undo stack signals
        self.ui.action_Undo.triggered.connect(self.undo)
        self.ui.action_Redo.triggered.connect(self.redo)
        self.undo_stack.canRedoChanged[bool].connect(
            self.ui.action_Redo.setEnabled)
        self.undo_stack.canUndoChanged[bool].connect(
            self.ui.action_Undo.setEnabled)
        self.undo_stack.redoTextChanged["const QString&"].connect(
            self.changeRedoText)
        self.undo_stack.undoTextChanged["const QString&"].connect(
            self.changeUndoText)
        self.undo_stack.cleanChanged[bool].connect(
            self.ui.action_Save.setDisabled)

        #        link_icon = QIcon()
        #        pix = QPixmap(":/icons/link.png")
        #        link_icon.addPixmap(pix, QIcon.Normal, QIcon.On)
        #        pix = QPixmap(":/icons/link_broken.png")
        #        link_icon.addPixmap(pix, QIcon.Normal, QIcon.Off)
        #        self.link_icon = link_icon
        #        #self.ui.linkViews.setIconSize(QSize(64,32))
        #        self.ui.linkViews.setIcon(link_icon)

        self._recent_projects_menu = QMenu(self)
        self.ui.actionRecent_projects.setMenu(self._recent_projects_menu)

        self._recent_projects_act = []
        self._projects_mapper = QSignalMapper(self)
        self._projects_mapper.mapped[int].connect(self.loadRecentProject)

        self.param_dlg = None

        # Setting up the status bar
        bar = self.statusBar()
        # Adding current directory
        cur_dir = QLabel("")
        bar.addPermanentWidget(cur_dir)
        self._current_dir_label = cur_dir
        # Adding up zoom
        zoom = QLabel("")
        bar.addPermanentWidget(zoom)
        self._zoom_label = zoom
        self.changeZoom(1)

        self.loadConfig()

        parameters.instance.renderingChanged.connect(self.changeRendering)
        self.changeRendering()
Пример #5
0
    def createActions(self):
        self.undoGroup = QUndoGroup(self)
        self.undoStack = QUndoStack(self)

        self.__createUndoRedoActions()

        self.slots["File"] = FileSlots(self)
        self.slots["List"] = ListSlots(self)
        self.slots["Edit"] = EditSlots(self)
        self.slots["Item"] = ItemSlots(self)
        self.slots["Server"] = ServerSlots(self)
        self.slots["Help"] = HelpSlots(self)
        self.slots["Windows"] = WindowsSlots(self)

        for sl in self.slots.values():
            self.__setActions(sl)
            self.__setTasks(sl)

        self.slots["Windows"].updateWindowMenu()

        if not PYTANGO_AVAILABLE:
            self.ui.actionConnectServer.setDisabled(True)
        self.disableServer(True)

        viewCompDockAction = self.ui.compDockWidget.toggleViewAction()
        viewCompDockAction.setToolTip("Show/Hide the dock lists")
        viewCompDockAction.setStatusTip("Show/Hide the dock lists")

        viewLogDockAction = self.ui.logDockWidget.toggleViewAction()
        viewLogDockAction.setToolTip("Show/Hide the logger")
        viewLogDockAction.setStatusTip("Show/Hide the logger")

        self.ui.menuView.insertAction(self.ui.menuView.actions()[0],
                                      viewLogDockAction)

        self.ui.menuView.insertAction(self.ui.menuView.actions()[0],
                                      viewCompDockAction)

        self.__setAction(self.ui.actionAllAttributesView,
                         "&All Attributes",
                         self.viewAllAttributes,
                         "",
                         tip="Go to the component list",
                         checkable=True)

        # Signals
        self.connect(self.componentList.ui.elementListWidget,
                     SIGNAL("itemDoubleClicked(QListWidgetItem*)"),
                     self.slots["Edit"].componentEdit)

        self.connect(self.sourceList.ui.elementListWidget,
                     SIGNAL("itemDoubleClicked(QListWidgetItem*)"),
                     self.slots["Edit"].dsourceEdit)

        ## Component context menu
        self.ui.mdi.setContextMenuPolicy(Qt.ActionsContextMenu)
        self.contextMenuActions = (
            self.ui.actionNewGroupItem, self.ui.actionNewFieldItem,
            self.ui.actionNewDataSourceItem, self.ui.actionNewStrategyItem,
            self.ui.actionNewAttributeItem, self.ui.actionNewLinkItem, None,
            self.ui.actionLoadSubComponentItem,
            self.ui.actionLoadDataSourceItem, None,
            self.ui.actionAddDataSourceItem, self.ui.actionLinkDataSourceItem,
            None, self.ui.actionCutItem, self.ui.actionCopyItem,
            self.ui.actionPasteItem, self.ui.actionTakeDataSourceItem, None,
            self.ui.actionMoveUpComponentItem,
            self.ui.actionMoveDownComponentItem, None,
            self.ui.actionApplyComponentItem, None,
            self.ui.actionClearComponentItems)

        ## Component list menu
        self.componentListMenuActions = (
            self.ui.actionNew, self.ui.actionEditComponent,
            self.ui.actionMergeComponentItems, self.ui.actionClose, None, {
                "File":
                (self.ui.actionLoad, self.ui.actionSave, self.ui.actionSaveAs,
                 self.ui.actionSaveAll, self.ui.actionReloadList,
                 self.ui.actionChangeDirectory)
            }, None, {
                "Server": (self.ui.actionFetchComponentsServer,
                           self.ui.actionStoreComponentServer,
                           self.ui.actionStoreAllComponentsServer,
                           self.ui.actionDeleteComponentServer,
                           self.ui.actionGetMandatoryComponentsServer,
                           self.ui.actionSetComponentMandatoryServer,
                           self.ui.actionUnsetComponentMandatoryServer)
            }, None, self.ui.actionTakeDataSources)

        ## DataSource list menu
        self.dsourceListMenuActions = (
            self.ui.actionNewDataSource, self.ui.actionEditDataSource,
            self.ui.actionApplyDataSource, self.ui.actionCloseDataSource, None,
            self.ui.actionCopyDataSource, self.ui.actionCutDataSource,
            self.ui.actionPasteDataSource, None, {
                "File":
                (self.ui.actionLoadDataSource, self.ui.actionSaveDataSource,
                 self.ui.actionSaveDataSourceAs,
                 self.ui.actionSaveAllDataSources,
                 self.ui.actionReloadDataSourceList,
                 self.ui.actionChangeDataSourceDirectory)
            }, None, {
                "Server": (self.ui.actionFetchDataSourcesServer,
                           self.ui.actionStoreDataSourceServer,
                           self.ui.actionStoreAllDataSourcesServer,
                           self.ui.actionDeleteDataSourceServer)
            })

        # datasource widget actions
        self.externalDSActions = {
            "externalSave": self.slots["File"].dsourceSaveButton,
            "externalApply": self.slots["Edit"].dsourceApplyButton,
            "externalClose": self.slots["Windows"].dsourceClose,
            "externalStore": self.slots["Server"].serverStoreDataSourceButton
        }

        # component widget actions
        self.externalCPActions = {
            "externalSave": self.slots["File"].componentSaveButton,
            "externalStore": self.slots["Server"].serverStoreComponentButton,
            "externalApply": self.slots["Item"].componentApplyItemButton,
            "externalClose": self.slots["Windows"].componentClose,
            "externalDSLink":
            self.slots["Item"].componentLinkDataSourceItemButton
        }