Esempio n. 1
0
    def init_ui(self):
        logging.debug("MainWindow::init_ui")
        self.setCentralWidget(self.wapp)
        # self.setWindowTitle(title)

        dockWidget = QtGui.QDockWidget(project_dock_name, self)
        # dockWidget.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.wproject = TreeWidget()
        self.wproject.parent_type = "file"  # configure the treeViewItem scan
        self.wproject.ext = self.project_ext  # configure the treeView scan extension

        dockWidget.setWidget(self.wproject)
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dockWidget)

        dockWidget = QtGui.QDockWidget(log_dock_name, self)
        # dockWidget.setAllowedAreas(QtCore.Qt.BottomDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.wlog = LogWidget()
        dockWidget.setWidget(self.wlog)
        self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, dockWidget)

        dockWidget = QtGui.QDockWidget(files_dock_name, self)
        # dockWidget.setAllowedAreas(QtCore.Qt.BottomDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.wfiles = FilesWidget()
        dockWidget.setWidget(self.wfiles)
        # self.addDockWidget(QtCore.Qt.RightDockWidgetArea, dockWidget)
        self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, dockWidget)

        logging.debug("MainWindow::create actions")
        self.create_actions()
        logging.debug("MainWindow::create menu")
        self.create_menu()
        self.statusBar().showMessage("Ready")

        try:
            version = "%s v.%s" % (self.wapp.__project__, self.wapp.__version__)
            self.statusBar().addPermanentWidget(QtGui.QLabel(version))
        except:
            pass

        try:
            self.setWindowIcon((QtGui.QIcon(os.path.join(_module_path(), "static", "icon.png"))))
            self.led_red_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-red.png"))
            self.led_green_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-green.png"))
            self.led_grey_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-grey.png"))
            self.led_blue_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-blue.png"))

            self.processWidget = QtGui.QLabel()
            self.processWidget.setPixmap(self.led_grey_pixmap)
            self.statusBar().addPermanentWidget(self.processWidget)
            # use_LCD
            self.statusbar_timer = QtGui.QLCDNumber()
            self.statusBar().addPermanentWidget(self.statusbar_timer)
            # use_ToolLED
            # self.toolLED=QtGui.QLabel()
            # self.toolLED.setPixmap(self.led_grey_pixmap)
            # self.statusBar().addPermanentWidget(self.toolLED)
        except:
            pass  # should do something
Esempio n. 2
0
class MainWindow(QtGui.QMainWindow):
    def __init__(self, app_widget, parent=None):
        super(MainWindow, self).__init__()
        self.wapp = app_widget
        # self.wproject.parent_type='file'      #configure the treeViewItem scan
        self.project_ext = ["*.*"]  # configure the treeView scan extension
        # self.init_ui()
        self.config = Config()
        self.parent = parent

    def init_ui(self):
        logging.debug("MainWindow::init_ui")
        self.setCentralWidget(self.wapp)
        # self.setWindowTitle(title)

        dockWidget = QtGui.QDockWidget(project_dock_name, self)
        # dockWidget.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.wproject = TreeWidget()
        self.wproject.parent_type = "file"  # configure the treeViewItem scan
        self.wproject.ext = self.project_ext  # configure the treeView scan extension

        dockWidget.setWidget(self.wproject)
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dockWidget)

        dockWidget = QtGui.QDockWidget(log_dock_name, self)
        # dockWidget.setAllowedAreas(QtCore.Qt.BottomDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.wlog = LogWidget()
        dockWidget.setWidget(self.wlog)
        self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, dockWidget)

        dockWidget = QtGui.QDockWidget(files_dock_name, self)
        # dockWidget.setAllowedAreas(QtCore.Qt.BottomDockWidgetArea | QtCore.Qt.RightDockWidgetArea)
        self.wfiles = FilesWidget()
        dockWidget.setWidget(self.wfiles)
        # self.addDockWidget(QtCore.Qt.RightDockWidgetArea, dockWidget)
        self.addDockWidget(QtCore.Qt.BottomDockWidgetArea, dockWidget)

        logging.debug("MainWindow::create actions")
        self.create_actions()
        logging.debug("MainWindow::create menu")
        self.create_menu()
        self.statusBar().showMessage("Ready")

        try:
            version = "%s v.%s" % (self.wapp.__project__, self.wapp.__version__)
            self.statusBar().addPermanentWidget(QtGui.QLabel(version))
        except:
            pass

        try:
            self.setWindowIcon((QtGui.QIcon(os.path.join(_module_path(), "static", "icon.png"))))
            self.led_red_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-red.png"))
            self.led_green_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-green.png"))
            self.led_grey_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-grey.png"))
            self.led_blue_pixmap = QtGui.QPixmap(os.path.join(_module_path(), "static", "led-blue.png"))

            self.processWidget = QtGui.QLabel()
            self.processWidget.setPixmap(self.led_grey_pixmap)
            self.statusBar().addPermanentWidget(self.processWidget)
            # use_LCD
            self.statusbar_timer = QtGui.QLCDNumber()
            self.statusBar().addPermanentWidget(self.statusbar_timer)
            # use_ToolLED
            # self.toolLED=QtGui.QLabel()
            # self.toolLED.setPixmap(self.led_grey_pixmap)
            # self.statusBar().addPermanentWidget(self.toolLED)
        except:
            pass  # should do something
        # self.show()

    def create_actions(self):
        self.addProjectAct = QtGui.QAction(QtGui.QIcon("add.png"), "&Add", self)
        self.addProjectAct.triggered.connect(self.addProject)
        self.deleteProjectAct = QtGui.QAction(QtGui.QIcon("delete.png"), "&Delete", self)  # delete selected if any
        self.deleteProjectAct.triggered.connect(self.deleteProject)

        # self.addProjectAct.triggered.connect(self.wproject.add_item)
        self.connect(
            self.wproject.treeWidget, QtCore.SIGNAL("customContextMenuRequested(const QPoint &)"), self.menuContextTree
        )
        self.connect(self.wproject.treeWidget, QtCore.SIGNAL("itemSelectionChanged()"), self.setProjectFromTreeView)

    def create_menu(self):
        # self.projectMenu = self.menuBar().addMenu("&Project")
        # self.projectMenu.addAction(self.addProjectAct)
        # self.projectMenu.addAction(self.deleteProjectAct)
        # self.viewMenu=self.menuBar().addMenu("&About")
        workspaceGroup = QtGui.QActionGroup(self)
        import functools

        for item in self.config.workspace:
            name, value = item
            act = QtGui.QAction(name, self, checkable=True)
            act.triggered.connect(functools.partial(self.setProject, name, value))  # not!
            self.wproject.add_item(value, name=name)
            # workspaceGroup.addAction(act)
            # self.projectMenu.addAction(act)

    """
  def update_ui(self):
    for item in range(self.wproject.treeWidget.topLevelItemCount()):
      #print self.wproject.treeWidget.topLevelItemCount()
      logging.info('remove item %s' %item)
      self.wproject.treeWidget.takeTopLevelItem(item)
    #self.wproject=TreeWidget()
    #self.wproject.parent_type='file'      #configure the treeViewItem scan
    #self.wproject.ext=['*.*']   
    workspaceGroup = QtGui.QActionGroup(self)
    import functools
    for item in self.wapp.config.workspace:
      name, value = item
      act = QtGui.QAction(name, self, checkable=True)
      act.triggered.connect(functools.partial(self.setProject, name, value)) #not!
      self.wproject.add_item(value,name=name)
      workspaceGroup.addAction(act)
    self.setCentralWidget(self.wapp)

  def setAppWidget(self,widget):
    logging.debug('MainWindow::setAppWidget %s' %repr(widget))
    self.wapp=widget
    self.update_ui()
  """

    def setLog(self, logfilepath):
        logging.debug("AppMainWindow::setLog %s" % logfilepath)
        self.wlog.set_path(logfilepath)

    def setFileView(self, path):
        logging.debug("AppMainWindow::setFileView %s" % path)
        self.wfiles.set_path(path)

    # --------  Project Management
    def addProject(self):
        logging.debug("MainWindow::addProject")
        dialog = QtGui.QFileDialog(self)
        dialog.setFileMode(QtGui.QFileDialog.DirectoryOnly)
        dirname = dialog.getExistingDirectory(self, "Select project folder!", os.path.abspath(os.getcwd()))
        # if not os.path.isfile(os.path.join(dirname, configfilename)):
        #  QtGui.QMessageBox.information(self, title, unicode('%s not found. Create one.' %configfilename))
        # self.wapp.createNewAppConf(dirname)
        _name, _bool = QtGui.QInputDialog.getText(self, "New Workspace", "label/name")

        # update widget
        if _bool == True:
            self.wproject.add_item(dirname, name=_name)
            self.config.create(_name, dirname)  # addWorkspace

    def setProjectFromTreeView(self):
        # print self.wproject.treeWidget.currentIndex()
        i = self.wproject.treeWidget.currentIndex().row()
        logging.debug("MainWindow::setProjectFromTreeView index %s" % str(i))
        _name, path = self.config.workspace[i]
        self.setProject(_name, path)

    def setProject(self, name, path):
        logging.debug("MainWindow::setProject : %s" % name)
        if self.parent != None:
            print self.parent
            if hasattr(self.parent, setProject):  # exposed method!
                print "call parent"
                self.parent.setProject(name, path)

        # self.wapp.setWorkspace(name,path)
        # self.setWorkspace(name,path)  #WARNING

        # if on per-project based
        # logfiles=os.path.join(path,logfilename)
        # self.wlog.set_path(logfiles)
        # report_path=os.path.join(self.currentWorkspace,report_path)
        # self.wfiles.set_path(report_path)

    def deleteProject(self):
        logging.debug("MainWindow::delete TreeWidgetItem %s" % self.wproject.treeWidget.currentIndex().row())
        i = self.wproject.treeWidget.currentIndex().row()
        logging.debug("delete item  %s" % i)
        self.wproject.treeWidget.takeTopLevelItem(i)
        del self.wproject.items[i]

        print type(self.config.workspace)
        logging.info("MainWindow:: delete from list %s" % repr(self.config.workspace[i]))
        del self.config.workspace[i]
        self.config.write()

    def menuContextTree(self, point):  # projectContextMenuHandler
        item = self.wproject.treeWidget.itemAt(point)
        logging.debug("%s " % item)
        logging.debug(self.wproject.treeWidget.currentIndex())
        menu = QtGui.QMenu()
        addAction = menu.addAction(self.addProjectAct)
        deleteAction = menu.addAction(self.deleteProjectAct)
        menu.exec_(QtGui.QCursor.pos())
        # self.connnect(self.treeWidget, ,addAction)

    # --------  TOOL LED
    def startToolProcess(self):
        try:
            self.toolLED.setPixmap(self.led_blue_pixmap)
        except:
            pass

    def endToolProcess(self):
        try:
            self.toolLED.setPixmap(self.led_grey_pixmap)
        except:
            pass

    # -------- process Timer & LED
    def startProcessTimer(self):
        self.timer = QtCore.QTimer(self)
        self.connect(self.timer, QtCore.SIGNAL("timeout()"), self.updateProcessTimer)
        self.ptime = 0
        self.timer.start(1000)
        try:
            self.processWidget.setPixmap(self.led_green_pixmap)
        except:
            pass
        # if hasattr(self.parent,onStartProcess):
        # parent.onStartProcess()

    def stopProcessTimer(self):
        self.timer.stop()
        try:
            self.processWidget.setPixmap(self.led_grey_pixmap)
        except:
            pass

    def updateProcessTimer(self):
        self.ptime += 1
        self.statusbar_timer.display(self.ptime)