Ejemplo n.º 1
0
 def fromFile(cls, filename):
     QDir.setCurrent(os.path.dirname(filename))
     fileinfo = QFileInfo(filename)
     QgsProject.instance().read(fileinfo)
     xml = open(filename).read()
     doc = QDomDocument()
     doc.setContent(xml)
     return cls(doc)
Ejemplo n.º 2
0
 def fromFile(cls, filename):
     QDir.setCurrent(os.path.dirname(filename))
     fileinfo = QFileInfo(filename)
     QgsProject.instance().read(fileinfo)
     xml = open(filename).read()
     doc = QDomDocument()
     doc.setContent(xml)
     return cls(doc)
Ejemplo n.º 3
0
 def loadqgisproject(self, project, projectfile):
     QDir.setCurrent(os.path.dirname(project.projectfile))
     fileinfo = QFileInfo(project.projectfile)
     # No idea why we have to set this each time.  Maybe QGIS deletes it for
     # some reason.
     self.badLayerHandler = BadLayerHandler(callback=self.missing_layers)
     QgsProject.instance().setBadLayerHandler(self.badLayerHandler)
     QgsProject.instance().read(fileinfo)
Ejemplo n.º 4
0
    def loadqgisproject(self, project, projectfile):
        QDir.setCurrent(os.path.dirname(project.projectfile))
        fileinfo = QFileInfo(project.projectfile)

        # No idea why we have to set this each time.  Maybe QGIS deletes it for
        # some reason.
        self.badLayerHandler = BadLayerHandler(callback=self.missing_layers)
        QgsProject.instance().setBadLayerHandler(self.badLayerHandler)
        QgsProject.instance().read(fileinfo)
Ejemplo n.º 5
0
    def __init__(self, parent, uifile=''):
        super(XConfigWidget, self).__init__(parent)

        # load the ui if specified
        if (uifile):
            curr_dir = QDir.currentPath()
            QDir.setCurrent(os.path.dirname(uifile))
            uic.loadUi(uifile, self)
            QDir.setCurrent(curr_dir)

        self._plugin = None
Ejemplo n.º 6
0
 def __init__( self, parent, uifile = '' ):
     super(XConfigWidget, self).__init__(parent)
     
     # load the ui if specified
     if ( uifile ):
         curr_dir = QDir.currentPath()
         QDir.setCurrent(os.path.dirname(uifile))
         uic.loadUi(uifile, self)
         QDir.setCurrent(curr_dir)
     
     self._plugin  = None
Ejemplo n.º 7
0
def read_project(projectfile):
    """
    Read the given project file and extract the layers from it.
    @param projectfile: The project file to load
    @return: A tuple with the project parser instance, all project layers, visible layers, settings
    """
    QDir.setCurrent(os.path.dirname(projectfile))
    parser = projectparser.ProjectParser.fromFile(projectfile)
    layers = parser.maplayers()
    projectlayers = list(parser.visiblelayers())
    settings = parser.settings()
    return parser, layers, projectlayers, settings
Ejemplo n.º 8
0
 def on_pushButton_clicked(self):
     """
     Slot documentation goes here.
     """
     ProgBarValue =0
     FolderDir = PyQt4.QtGui.QFileDialog.getExistingDirectory(self, self.tr("Please Select the CSV file Folder."), "" ,PyQt4.QtGui.QFileDialog.ShowDirsOnly)
     self.lineEdit.setText(FolderDir)
     
     JuFolder = QDir(FolderDir)
     JuFolder.setCurrent(FolderDir)
     for fileName in glob.glob( '*.csv'):
         ProgBarValue = ProgBarValue +1
             
     if ProgBarValue == 0:
         PyQt4.QtGui.QMessageBox.warning(self, "No CSV Files", "This folder contains no CSV files, please select again." ,1, 0)
Ejemplo n.º 9
0
def main(load_file, image_size, passes, render_types):
    global IMAGE_SIZE
    global RENDER_PASSES
    global RENDER_TYPES

    IMAGE_SIZE = QSize(image_size[0], image_size[1])
    RENDER_PASSES = passes
    RENDER_TYPES = render_types

    if load_file.endswith('qgs'):
        QgsProject.instance().readProject.connect(read_project)
        QDir.setCurrent(os.path.dirname(load_file))
        file_info = QFileInfo(load_file)
        # noinspection PyUnresolvedReferences
        QgsProject.instance().read(file_info)
Ejemplo n.º 10
0
    def loadProject(self, project):
        """
        Load a project into the application .
        """
        roam.utils.log(project)
        roam.utils.log(project.name)
        roam.utils.log(project.projectfile)
        roam.utils.log(project.valid)

        (passed, message) = project.onProjectLoad()

        if not passed:
            self.bar.pushMessage("Project load rejected",
                                 "Sorry this project couldn't"
                                 "be loaded.  Click for me details.",
                                 QgsMessageBar.WARNING,
                                 extrainfo=message)
            return

        self.actionMap.trigger()

        self.closeProject()

        self.canvas.refresh()
        self.canvas.repaint()

        RoamEvents.selectioncleared.emit()

        # No idea why we have to set this each time.  Maybe QGIS deletes it for
        # some reason.
        self.badLayerHandler = BadLayerHandler(callback=self.missingLayers)
        QgsProject.instance().setBadLayerHandler(self.badLayerHandler)

        self.stackedWidget.setCurrentIndex(3)
        self.projectloading_label.setText("Project {} Loading".format(
            project.name))
        pixmap = QPixmap(project.splash)
        w = self.projectimage.width()
        h = self.projectimage.height()
        self.projectimage.setPixmap(pixmap.scaled(w, h, Qt.KeepAspectRatio))
        QApplication.processEvents()

        QDir.setCurrent(os.path.dirname(project.projectfile))
        fileinfo = QFileInfo(project.projectfile)
        QgsProject.instance().read(fileinfo)
Ejemplo n.º 11
0
 def __add_layer_definition_file(self, file_name, root_group):
     """
     shamelessly copied from
     https://github.com/qgis/QGIS/blob/master/src/core/qgslayerdefinition.cpp
     """
     qfile = QFile(file_name)
     if not qfile.open(QIODevice.ReadOnly):
         return None
     doc = QDomDocument()
     if not doc.setContent(qfile):
         return None
     file_info = QFileInfo(qfile)
     QDir.setCurrent(file_info.absoluteDir().path())
     root = QgsLayerTreeGroup()
     ids = doc.elementsByTagName('id')
     for i in xrange(0, ids.size()):
         id_node = ids.at(i)
         id_elem = id_node.toElement()
         old_id = id_elem.text()
         layer_name = old_id[:-17]
         date_time = QDateTime.currentDateTime()
         new_id = layer_name + date_time.toString('yyyyMMddhhmmsszzz')
         id_elem.firstChild().setNodeValue(new_id)
         tree_layer_nodes = doc.elementsByTagName('layer-tree-layer')
         for j in xrange(0, tree_layer_nodes.count()):
             layer_node = tree_layer_nodes.at(j)
             layer_elem = layer_node.toElement()
             if old_id == layer_elem.attribute('id'):
                 layer_node.toElement().setAttribute('id', new_id)
     layer_tree_elem = doc.documentElement().firstChildElement(
         'layer-tree-group')
     load_in_legend = True
     if not layer_tree_elem.isNull():
         root.readChildrenFromXML(layer_tree_elem)
         load_in_legend = False
     layers = QgsMapLayer.fromLayerDefinition(doc)
     QgsMapLayerRegistry.instance().addMapLayers(layers, load_in_legend)
     nodes = root.children()
     for node in nodes:
         root.takeChild(node)
     del root
     root_group.insertChildNodes(-1, nodes)
     return None
Ejemplo n.º 12
0
 def __add_layer_definition_file(self, file_name, root_group):
     """
     shamelessly copied from
     https://github.com/qgis/QGIS/blob/master/src/core/qgslayerdefinition.cpp
     """
     qfile = QFile(file_name)
     if not qfile.open(QIODevice.ReadOnly):
         return None
     doc = QDomDocument()
     if not doc.setContent(qfile):
         return None
     file_info = QFileInfo(qfile)
     QDir.setCurrent(file_info.absoluteDir().path())
     root = QgsLayerTreeGroup()
     ids = doc.elementsByTagName('id')
     for i in xrange(0, ids.size()):
         id_node = ids.at(i)
         id_elem = id_node.toElement()
         old_id = id_elem.text()
         layer_name = old_id[:-17]
         date_time = QDateTime.currentDateTime()
         new_id = layer_name + date_time.toString('yyyyMMddhhmmsszzz')
         id_elem.firstChild().setNodeValue(new_id)
         tree_layer_nodes = doc.elementsByTagName('layer-tree-layer')
         for j in xrange(0, tree_layer_nodes.count()):
             layer_node = tree_layer_nodes.at(j)
             layer_elem = layer_node.toElement()
             if old_id == layer_elem.attribute('id'):
                 layer_node.toElement().setAttribute('id', new_id)
     layer_tree_elem = doc.documentElement().firstChildElement('layer-tree-group')
     load_in_legend = True
     if not layer_tree_elem.isNull():
         root.readChildrenFromXML(layer_tree_elem)
         load_in_legend = False
     layers = QgsMapLayer.fromLayerDefinition(doc)
     QgsMapLayerRegistry.instance().addMapLayers(layers, load_in_legend)
     nodes = root.children()
     for node in nodes:
         root.takeChild(node)
     del root
     root_group.insertChildNodes(-1, nodes)
     return None
Ejemplo n.º 13
0
    def loadProject(self, project):
        """
        Load a project into the application .
        """
        roam.utils.log(project)
        roam.utils.log(project.name)
        roam.utils.log(project.projectfile)
        roam.utils.log(project.valid)

        (passed, message) = project.onProjectLoad()

        if not passed:
            self.bar.pushMessage("Project load rejected", "Sorry this project couldn't"
                                                          "be loaded.  Click for me details.",
                                 QgsMessageBar.WARNING, extrainfo=message)
            return

        self.actionMap.trigger()

        self.closeProject()

        self.canvas.refresh()
        self.canvas.repaint()

        self.infodock.clearResults()

        # No idea why we have to set this each time.  Maybe QGIS deletes it for
        # some reason.
        self.badLayerHandler = BadLayerHandler(callback=self.missingLayers)
        QgsProject.instance().setBadLayerHandler(self.badLayerHandler)

        self.stackedWidget.setCurrentIndex(3)
        self.projectloading_label.setText("Project {} Loading".format(project.name))
        pixmap = QPixmap(project.splash)
        w = self.projectimage.width()
        h = self.projectimage.height()
        self.projectimage.setPixmap(pixmap.scaled(w,h, Qt.KeepAspectRatio))
        QApplication.processEvents()

        QDir.setCurrent(os.path.dirname(project.projectfile))
        fileinfo = QFileInfo(project.projectfile)
        QgsProject.instance().read(fileinfo)
Ejemplo n.º 14
0
 def from_file(cls, filename, canvas, relative_base=None):
     """
     Load a project file from a path.
     :param filename: The path to the project file.
     :param canvas: (optional) Passing a canvas will auto add layers to the canvas when the load is
     loaded.
     :param relative_base_path: (optional) Relative base path for the project file to load layers from
     :return: A Project object which wraps QgsProject.instance()
     """
     QgsProject.instance().clear()
     bridge = None
     if canvas:
         bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), canvas)
     if relative_base is None:
         relative_base = os.path.dirname(filename)
     QDir.setCurrent(relative_base)
     QgsProject.instance().read(QFileInfo(filename))
     if bridge:
         bridge.setCanvasLayers()
     return cls(bridge)
Ejemplo n.º 15
0
    def downloadFile(self):

        url = QUrl(self.url_text.text())
        if self.txt_location.text() == "":
            QDir.setCurrent("$HOME/Downloads")
        else:
            QDir.setCurrent(self.loc)

        self.statusbar.showMessage("Downloading")

        fileInfo = QFileInfo(url.path())
        fileName = fileInfo.fileName()

        if QFile.exists(fileName):
            QFile.remove(fileName)

        self.outFile = QFile(fileName)
        if not self.outFile.open(QIODevice.WriteOnly):
            QMessageBox.information(
                self, 'Error', 'Unable to save the file %s: %s.' %
                (fileName, self.outFile.errorString()))
            self.outFile = None
            return

        mode = QHttp.ConnectionModeHttp
        port = url.port()
        if port == -1:
            port = 0
        self.http.setHost(url.host(), mode, port)
        self.httpRequestAborted = False

        path = QUrl.toPercentEncoding(url.path(), "!$&'()*+,;=:@/")
        if path:
            path = str(path)
        else:
            path = '$HOME/Downloads'

        # Download the file.
        self.httpGetId = self.http.get(path, self.outFile)
Ejemplo n.º 16
0
    def downloadFile(self):
        
        url = QUrl(self.url_text.text())
        if self.txt_location.text()=="":
            QDir.setCurrent("$HOME/Downloads")
        else:
            QDir.setCurrent(self.loc)

        self.statusbar.showMessage("Downloading")
        
        fileInfo = QFileInfo(url.path())
        fileName = fileInfo.fileName()

        if QFile.exists(fileName):
            QFile.remove(fileName)

        self.outFile = QFile(fileName)
        if not self.outFile.open(QIODevice.WriteOnly):
            QMessageBox.information(self, 'Error',
                    'Unable to save the file %s: %s.' % (fileName, self.outFile.errorString()))
            self.outFile = None
            return

        mode = QHttp.ConnectionModeHttp
        port = url.port()
        if port == -1:
            port = 0
        self.http.setHost(url.host(), mode, port)
        self.httpRequestAborted = False

        path = QUrl.toPercentEncoding(url.path(), "!$&'()*+,;=:@/")
        if path:
            path = str(path)
        else:
            path = '$HOME/Downloads'

        # Download the file.
        self.httpGetId = self.http.get(path, self.outFile)
Ejemplo n.º 17
0
    def loadProject(self, project):
        """
        Load a project into the application .
        """
        roam.utils.log(project)
        roam.utils.log(project.name)
        roam.utils.log(project.projectfile)
        roam.utils.log(project.valid)

        (passed, message) = project.onProjectLoad()

        if not passed:
            QMessageBox.warning(self.mainwindow, "Project Load Rejected",
                                "Project couldn't be loaded because {}".format(message))
            return

        self.actionMap.trigger()
        self.closeProject()
        self.canvas.freeze()
        self.infodock.clearResults()

        # No idea why we have to set this each time.  Maybe QGIS deletes it for
        # some reason.
        self.badLayerHandler = BadLayerHandler(callback=self.missingLayers)
        QgsProject.instance().setBadLayerHandler(self.badLayerHandler)

        self.stackedWidget.setCurrentIndex(3)
        self.projectloading_label.setText("Project {} Loading".format(project.name))
        self.projectimage.setPixmap(QPixmap(project.splash))
        QApplication.processEvents()

        QDir.setCurrent(os.path.dirname(project.projectfile))
        fileinfo = QFileInfo(project.projectfile)
        QgsProject.instance().read(fileinfo)
        print project.projectfile
        print QgsProject.instance().error()
Ejemplo n.º 18
0
 def loadqgisproject(self, project, projectfile):
     QDir.setCurrent(os.path.dirname(project.projectfile))
     fileinfo = QFileInfo(project.projectfile)
     QgsProject.instance().read(fileinfo)
Ejemplo n.º 19
0
 def loadqgisproject(self, project, projectfile):
     QDir.setCurrent(os.path.dirname(project.projectfile))
     fileinfo = QFileInfo(project.projectfile)
     self.projectLocationLabel.setText("Project File: {}".format(
         os.path.basename(project.projectfile)))
     QgsProject.instance().read(fileinfo)
Ejemplo n.º 20
0
 def loadqgisproject(self, project, projectfile):
     QDir.setCurrent(os.path.dirname(project.projectfile))
     fileinfo = QFileInfo(project.projectfile)
     QgsProject.instance().read(fileinfo)
Ejemplo n.º 21
0
    def on_pushButton_2_clicked(self):
        """
        Slot documentation goes here.
        """
        PF = ''
        Result = []
        ProgBarValue = 0
        # TODO: not implemented yet
        if self.StationBox.count() == 0:
            PyQt4.QtGui.QMessageBox.warning(self, "Not select Station or Model yet",
                                "Please select correct Station name and Model Name."
                                   ,1, 0)
        if self.lineEdit_2.text() == '':
            PyQt4.QtGui.QMessageBox.warning(self, "Missing file name",
                                "Please input the file name."
                                 ,1, 0)
        else:                      
            FileName = self.lineEdit_2.text()
            FolderDir = self.lineEdit.text()
            CurrentFolder = QDir(FolderDir)
            ResultFolder = QDir(FolderDir + "\\Result\\" )
            ResultFolder2 = FolderDir + "\\Result\\"
            CurrentFile = QFile(FileName+".xls")

            # Generate the title according to the configuration file
            print TitleIndex
            for item in TitleIndex:
                if item != "Null":
                    sheet1.write(0,TitleIndex.index(item)+3,item,TitleFormat)
                    sheet1.col(TitleIndex.index(item)+3).width = 4000

            ResultFolder.setCurrent(FolderDir)
            for fileName in glob.glob( '*.csv'):
                ProgBarValue = ProgBarValue +1
                
            if ProgBarValue == 0:
                    PyQt4.QtGui.QMessageBox.warning(self, "No CSV Files",
                                "This folder contains no CSV files, please select again."
                                 ,1, 0)
                                 
            for fileName in glob.glob( '*.csv'):
                Num = glob.glob( '*.csv').index(fileName)+1
                print glob.glob( '*.csv').index(fileName), ":", fileName
                self.progressBar.setValue(round(float(Num)/float(ProgBarValue)*100))
                
                # Open CSV file and use ',' to seperate the column
                reader = csv.reader(open(fileName), delimiter=",")
                # First Column to Save File name instead of Serial No. or Test Time
                sheet1.row(Num).write(0, fileName, NormalFormat)

                for row in reader: # search every row in the csv file
                    if row != [] and row[0] == 'Part Number' :
                        PartNumber = row[1]
                        sheet1.row(Num).write(1, PartNumber, NormalFormat)
                    if row != [] and ( row[0] == 'OVERALL RESULT' or row[0] == 'DUT P/F' or row[0] == 'Overall Result' ) :
                        PF = row[1]
                        if (PF.find('F')>0) or (PF.find('f')>0):
                            sheet1.row(Num).write(2, PF, FailFormat)
                        else:
                            sheet1.row(Num).write(2, PF, PassFormat)
                    
                    for item in CellIndex:
                        if item != "Null":
                            if reader.line_num == (StrConversionY(item)):
                                if(row != [] and len(row)>= StrConversionX(item)):
                                    #Result.append(row[StrConversionX(item)-1])
                                    TempResult = row[StrConversionX(item)-1]
                                    if (TempResult.find('F')>0) or (TempResult.find('f')>0):
                                        sheet1.row(Num).write(CellIndex.index(item)+3, TempResult, FailFormat)
                                    else:
                                        if(str.isalpha(TempResult) or str.istitle(TempResult)): # if the contain is not numbers.
                                            sheet1.row(Num).write(CellIndex.index(item)+3, TempResult, NormalFormat)
                                        elif(str.isspace(TempResult)): # if the contain is not numbers.
                                            sheet1.row(Num).write(CellIndex.index(item)+3, TempResult, NormalFormat)
                                        else:
                                            if row[StrConversionX(item)].find('F')>0 :
                                                sheet1.row(Num).write(CellIndex.index(item)+3, float(TempResult), ItemFailFormat)
                                            else:
                                                sheet1.row(Num).write(CellIndex.index(item)+3, float(TempResult), NormalFormat)
                
                if Result==[] : continue
                #for i in range(0,len(Result)):
                #    if (Result[i].find('F')>0) or (Result[i].find('f')>0):
                #        sheet1.row(Num).write(i+3, Result[i], FailFormat)
                #    else:
                #        if(str.isalpha(Result[i])): # if the contain is not numbers.
                #            sheet1.row(Num).write(i+3, Result[i], NormalFormat)
                #        elif(str.isspace(Result[i])): # if the contain is not numbers.
                #            sheet1.row(Num).write(i+3, Result[i], NormalFormat)
                #        else:
                #            sheet1.row(Num).write(i+3, float(Result[i]), NormalFormat)

                #Result = []
                self.textEdit.append(fileName)
                
            ##################################################################    
            #Save to excel file, Save to the result folder in target directory
            if not(ResultFolder.exists()):
                CurrentFolder.mkdir(FolderDir+"\\Result\\")

            ResultFolder.setCurrent(ResultFolder2) # Set to the working folder!!
            if CurrentFile.exists():
                book.save(FileName+'-'+time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))+'.xls')
            else:
                book.save(FileName+'.xls')

            book.save(TemporaryFile())

            PyQt4.QtGui.QMessageBox.warning(self, "Done",
                                "Conversion Done!."
                                 ,1, 0)
            sys.exit(app.exec_())
Ejemplo n.º 22
0
 def loadqgisproject(self, project, projectfile):
     QDir.setCurrent(os.path.dirname(project.projectfile))
     fileinfo = QFileInfo(project.projectfile)
     self.projectLocationLabel.setText("Project File: {}".format(os.path.basename(project.projectfile)))
     QgsProject.instance().read(fileinfo)