Example #1
0
 def add_map(self):
     (level,ok) = QInputDialog.getInt(self,
                                      QCA.translate('AdminHomeMap' ,'Agregar plano'),
                                      QCA.translate('AdminHomeMap' ,'Nivel:'),
                                      0,-10,100)
     if ok : 
         
         overwrite = True 
         if self.home_map_scene.has_map(level) :
             ret = QMessageBox.question(self,
                                        QCA.translate('AdminHomeMap' ,'Mapa existente'),
                                        QCA.translate('AdminHomeMap' ,'El mapa ya existe desea sobrescribirlo'),
                                        QMessageBox.Yes| QMessageBox.No,
                                        QMessageBox.No)
             overwrite = (ret == QMessageBox.Yes)
         
         if overwrite :
             file = QFileDialog.getOpenFileName(self, 
                                                QCA.translate('AdminHomeMap', "Seleccione la imagen del mapa"),
                                                QDir.home().absolutePath(),
                                                QCA.translate('AdminHomeMap',
                                                              "Imagenes (*.bmp *.gif *.jpg *.jpeg *.png *.pbm *.pgm *.ppm *.xbm *.xpm)"))       
             if file:
                 self.home_map_scene.set_map(QPixmap(file),level)
                 self.home_map_view.update()               
Example #2
0
 def _getValue(self, title, label, valueType=QVariant.String, defaultValue='', minValue=0, maxValue=0, decimals=0):
     if valueType == QVariant.Double:
         return QInputDialog.getDouble(None, title, label, defaultValue, minValue, maxValue, decimals)
     elif valueType == QVariant.Int:
         return QInputDialog.getInt(None, title, label, defaultValue, minValue, maxValue)
     else:
         return QInputDialog.getText(None, title, label, text=defaultValue)
Example #3
0
 def setSize(self):
     oldsize = int(self.strip.config['nleds'])
     maxsize = int(self.strip.config['nleds_max'])
     newsize = int(QInputDialog.getInt(
         self, "Set Size", "Enter Size (0-%d):" % maxsize, oldsize,
         0, maxsize)[0])
     self.strip.setSize(newsize)
 def _getValue(self, title, label, valueType=QVariant.String, defaultValue='', minValue=0, maxValue=0, decimals=0):
     if valueType == QVariant.Double:
         return QInputDialog.getDouble(None, title, label, defaultValue, minValue, maxValue, decimals)
     elif valueType == QVariant.Int:
         return QInputDialog.getInt(None, title, label, defaultValue, minValue, maxValue)
     else:
         return QInputDialog.getText(None, title, label, text=defaultValue)
Example #5
0
 def unsupervisedSettings(self):
     (number, ok) = QInputDialog.getInt(
         None,
         str(self.currentUnsupervisedDecomposer.shortname + " parameters"),
         "Number of components", 3, 1, 10)
     if ok:
         self.currentUnsupervisedDecomposer.setNumberOfComponents(number)
Example #6
0
 def goto(self, number=None):
     """ Ask event number in dialog and navigate and to event.
     """
     logging.debug(__name__ + ": goto")
     if self._dataAccessor.numberOfEvents():
         max = self._dataAccessor.numberOfEvents()
     else:
         max = sys.maxsize
     if number != None:
         ok = (number >= 1, number <= max)
     else:
         if hasattr(QInputDialog, "getInteger"):
             # Qt 4.3
             (number, ok) = QInputDialog.getInteger(
                 self.plugin().application().mainWindow(),
                 "Goto...", "Enter event number:",
                 self._dataAccessor.eventNumber(), 1, max)
         else:
             # Qt 4.5
             (number, ok) = QInputDialog.getInt(
                 self.plugin().application().mainWindow(),
                 "Goto...", "Enter event number:",
                 self._dataAccessor.eventNumber(), 1, max)
     if ok:
         self.cancel()
         currentEvent = self.dataAccessor().eventNumber()
         if currentEvent != number:
             self.navigate(number)
Example #7
0
 def insertRowsAfter(self, textCursor, table, cell, rowIndex, columnIndex):
     rows, ok = QInputDialog.getInt(self, "Insert Rows", 'Enter Number of Rows', value=1)
     if ok and rows > 0:
         if (rowIndex + 1) < table.rows():
             table.insertRows(rowIndex + 1, rows)
         else:
             table.appendRows(rows)
    def settings(cls):
        (number, ok) = QInputDialog.getInt(None, "Random Forest parameters",
                                           "Number of trees", cls.treeCount,
                                           20, 255)
        if ok:
            cls.treeCount = number

        print "setting number of trees to", cls.treeCount
Example #9
0
 def setLimit(self):
     """
     Asks for the users limit.
     """
     (value, ok) = QInputDialog.getInt(None, QtCore.QCoreApplication.translate("LDAPTreeItem","Limit"),QtCore.QCoreApplication.translate("LDAPTreeItem","Enter the limit (0 = none):"), self.limit)
     if ok == True:
         self.limit = value
     return ok
Example #10
0
 def ir_a_linea_dialogo(self):
     weditor = self.devolver_editor()
     if weditor is not None:
         maximo = weditor.lineas
         linea, ok = QInputDialog.getInt(self, self.tr("Ir a línea"),
                                      self.tr("Línea:"), min=1, max=maximo)
         if ok:
             weditor.setCursorPosition(linea - 1, 0)
Example #11
0
 def insertColumnsAfter(self, textCursor, table, cell, rowIndex, columnIndex):
     cols, ok = QInputDialog.getInt(self, "Insert Columns", 'Enter Number of Columns', value=1)
     if ok and cols > 0:
         if (columnIndex + 1) < table.columns():
             table.insertColumns(columnIndex+1, cols)
         else:        
             #table.insertColumns(columnIndex+1, cols)  It works, still would like to do it the other way
             table.appendColumns(cols)
Example #12
0
File: qtutil.py Project: eteq/glue
def edit_layer_point_size(layer):
    """ Interactively edit a layer's point size """
    dialog = QInputDialog()
    size, isok = dialog.getInt(None, 'Point Size', 'Point Size',
                               value=layer.style.markersize,
                               min=1, max=1000, step=1)
    if isok and size != layer.style.markersize:
        layer.style.markersize = size
Example #13
0
 def validate(self):
     signalChanged = False
     if self.siteCode() == '':
         value, ok = QInputDialog.getText(None, 'Site Code',
                                          'Please enter a valid Site Code')
         if ok and value.strip():
             self.setSiteCode(value)
             signalChanged = True
     if self.classCode() == '':
         self.setClassCode(self._planWidget.classCode())
     if self.itemId() == '':
         value = 0
         ok = False
         value, ok = QInputDialog.getInt(None, 'Item ID',
                                         'Please enter a valid Item ID', 1,
                                         1, 99999)
         if ok and value > 0:
             self.setItemId(str(value))
             signalChanged = True
     if self.sourceCode() == '':
         self.setSourceCode(self._planWidget.sourceCode())
     if self.sourceClass() == '':
         self.setSourceClass(self._planWidget.sourceClass())
     if self.sourceCode() != 'svy' and self.sourceId() == '':
         value, ok = QInputDialog.getInt(
             None, 'Source ID', 'Please enter a valid Source ID Number', 1,
             1, 99999)
         if ok and value > 0:
             self.setSourceId(str(value))
             signalChanged = True
     if (self.sourceCode() == 'svy' and self.sourceFile() == ''):
         value, ok = QInputDialog.getText(
             None, 'Source File', "Please enter the source file name")
         if ok and value.strip():
             self.setSourceFile(value)
             signalChanged = True
     if self.editor() == '':
         value, ok = QInputDialog.getText(
             None, 'Editor',
             "Please enter your full name (e.g. 'Dorothy Garrod')")
         if ok and value.strip():
             self.setEditor(value)
             signalChanged = True
     if signalChanged:
         self.metadataChanged.emit()
	def crear_conexion(self):
		tipo = QInputDialog.getItem(self, "Tipo de usuario", "usuario", ["" ,self._SERVIDOR, self._CLIENTE])
		self.rol = str(tipo[0])
		self.setWindowTitle("Protocolo de transmision de datos  --" + self.rol)
		if self.rol == self._SERVIDOR:
			port = QInputDialog.getInt(self, "ingrese puerto", "Puerto", 56032)
			nom = self.transmisor.crear_servidor(port[0])
			msg = QMessageBox.information(self, "Servidor", "El nombre del servidor es: " + nom)
			del msg
			if self.transmisor.conectar_servidor():
				resp = QMessageBox.information(self, "Conectado", "Se ha establecido la conexion con el cliente")
				del resp
		elif self.rol == self._CLIENTE:
			host = QInputDialog.getText(self, "ingrese host", "Host")
			port = QInputDialog.getInt(self, "ingrese puerto", "Puerto", 56032)
			self.transmisor.conectar_cliente((str(host[0]), port[0]))
		else:
			self.destroy()
Example #15
0
 def depthPlot(self):
     if self.dodgyFeatures:
         offsec, ok = QInputDialog.getInt(self, "Depth Plot", "Time Offset (seconds):", 0)
         if ok:
             self.imageDirectoryObj.depth_plot(self.db_path,offsec)
         else:
             return False
     else:
         self.imageDirectoryObj.depth_plot(self.db_path)
Example #16
0
 def depthPlot(self):
     if self.dodgyFeatures:
         offsec, ok = QInputDialog.getInt(self, "Depth Plot",
                                          "Time Offset (seconds):", 0)
         if ok:
             self.imageDirectoryObj.depth_plot(self.db_path, offsec)
         else:
             return False
     else:
         self.imageDirectoryObj.depth_plot(self.db_path)
Example #17
0
 def zoomDialog(self):
     if hasattr(QInputDialog, "getInteger"):
         # Qt 4.3
         (zoom, ok) = QInputDialog.getInteger(self.tab(), "Zoom...", "Input zoom factor in percent:", self.zoom(), 0)
     else:
         # Qt 4.5
         (zoom, ok) = QInputDialog.getInt(self.tab(), "Zoom...", "Input zoom factor in percent:", self.zoom(), 0)
     if ok:
         self.setZoom(zoom)
         self._userZoomLevel = zoom
Example #18
0
	def _comenzar(self):
		ok = 0
		eleccion, ok1 = QInputDialog.getItem(self, "Algoritmos", "Seleccione un algoritmo", self.algoritmos.keys())
		if ok1:
			self.contenedor = self.algoritmos[str(eleccion)]()
			self.cant, ok = QInputDialog.getInt(self, "Duracion", "Indique la duracion de la simulacion", min=0, max=60)
		if ok and ok1:
			self.setWindowTitle(self.windowTitle() + " --" +str(eleccion))
			self.temporizador.start(1000)
			self.iniciar.setEnabled(False)
			self.bloquear.setEnabled(True)
		self._inicializarDatos()
Example #19
0
 def setLimit(self):
     """
     Asks for the users limit.
     """
     (value, ok) = QInputDialog.getInt(
         None, QtCore.QCoreApplication.translate("LDAPTreeItem", "Limit"),
         QtCore.QCoreApplication.translate("LDAPTreeItem",
                                           "Enter the limit (0 = none):"),
         self.limit)
     if ok == True:
         self.limit = value
     return ok
 def expandToDepthDialog(self):
     """ Show dialog and expand center view to depth.
     """
     if hasattr(QInputDialog, "getInteger"):
         # Qt 4.3
         (depth, ok) = QInputDialog.getInteger(self.tab(), "Expand to depth...", "Input depth:", self._treeDepth, 0)
     else:
         # Qt 4.5
         (depth, ok) = QInputDialog.getInt(self.tab(), "Expand to depth...", "Input depth:", self._treeDepth, 0)
     if ok:
         self._treeDepth=depth
         if self.tab().treeView().selection():
             self.onTreeViewSelected(self.tab().treeView().selection())
Example #21
0
 def mouseReleaseEvent(self, e):
     if self.currentTerritory:
         if self.game.state == State.InitialPlacement:
             self.territoryClaimed.emit(self.currentTerritory.name)
             return
         m = e.modifiers()
         if m & Qt.ShiftModifier:
             n = 3
         elif m & Qt.AltModifier:
             n = 10
         else:
             n = 1
         if self.game.state in (State.InitialDraft, State.Draft):
             if e.button() == Qt.RightButton:
                 n = self.game.remainingTroops
             self.drafted.emit(self.currentTerritory.name, n)
         elif self.game.state in (State.Attack, State.Fortify) and self.game.yourTurn():
             if not self.source and self.currentTerritory.owner == self.game.clientPlayer:
                 self.cancelSelection()
                 self.source = self.currentTerritory
                 mask = self.coloredMask(self.currentTerritory, QColor(170, 170, 0, 200))
                 self.sourceAnimation = BlinkingAnimation(mask, 1000)
                 self.sourceAnimation.updated.connect(self.update)
                 self.sourceAnimation.finished.connect(self.removeAnimation)
                 self.animations.append(self.sourceAnimation)
                 self.sourceAnimation.start()
             elif self.source:
                 target = self.currentTerritory
                 if self.game.state == State.Attack and target.owner != self.source.owner:
                     if e.button() == Qt.RightButton:
                         n = self.source.troopCount - 1
                     self.attacked.emit(self.source.name, target.name, n)
                 elif self.game.state == State.Fortify and target.owner == self.source.owner:
                     if e.button() == Qt.RightButton:
                         n = self.source.troopCount - 1
                     else:
                         (n, ok) = QInputDialog.getInt(self, "Fortify", "Number of troops to move", 1, 1, self.source.troopCount - 1)
                         if not ok:
                             return
                     self.fortified.emit(self.source.name, target.name, n)
                 elif target.owner == self.source.owner:
                     self.cancelSelection()
                     self.source = self.currentTerritory
                     mask = self.coloredMask(self.currentTerritory, QColor(170, 170, 0, 200))
                     self.sourceAnimation = BlinkingAnimation(mask, 1000)
                     self.sourceAnimation.updated.connect(self.update)
                     self.sourceAnimation.finished.connect(self.removeAnimation)
                     self.animations.append(self.sourceAnimation)
                     self.sourceAnimation.start()
     else:
         self.cancelSelection()
Example #22
0
    def jump_to_line(self, lineno=None):
        """
        Jump to a specific line number or ask to the user for the line
        """
        if lineno is not None:
            self.emit(SIGNAL("addBackItemNavigation()"))
            self.go_to_line(lineno)
            return

        maximum = self.blockCount()
        line = QInputDialog.getInt(self, self.tr("Jump to Line"), self.tr("Line:"), 1, 1, maximum, 1)
        if line[1]:
            self.emit(SIGNAL("addBackItemNavigation()"))
            self.go_to_line(line[0] - 1)
Example #23
0
 def actionTimeShiftDepth(self):
     dialogtxt = "Warning: Only use this if you know what you're doing."
     seconds, ok = QInputDialog.getInt(self,'Offset in Seconds', dialogtxt)
     if ok:
         conf_msg = "Are you sure you want to shift the timestamp on your \
                     depth records by %i seconds?" % int(seconds)
         reply = QMessageBox.warning(None,"Confirm",conf_msg,QMessageBox.Yes,QMessageBox.No)
         if reply==QMessageBox.Yes:
             self.imageDirectoryObj.dive_record_set( self.db_path ).shift_depth_records( int( seconds ) )
             result_str = "Great Success: photos time shifted. ...I think..."
             self.statusBar().showMessage( result_str, 8000)
             return True
         else:
             return False
Example #24
0
 def expandToDepthDialog(self):
     """ Show dialog and call expandToDepth() function of tree view.
     """
     if hasattr(QInputDialog, "getInteger"):
         # Qt 4.3
         (depth, ok) = QInputDialog.getInteger(self, "Expand to depth...", "Input depth:", self._treeDepth, 0)
     else:
         # Qt 4.5
         (depth, ok) = QInputDialog.getInt(self, "Expand to depth...", "Input depth:", self._treeDepth, 0)
     if ok:
         self._treeDepth=depth
         self.collapseAll(False)
         if self._treeDepth>0:
             self.expandToDepth(self._treeDepth-1)
Example #25
0
 def zoomDialog(self):
     if hasattr(QInputDialog, "getInteger"):
         # Qt 4.3
         (zoom,
          ok) = QInputDialog.getInteger(self.tab(), "Zoom...",
                                        "Input zoom factor in percent:",
                                        self.zoom(), 0)
     else:
         # Qt 4.5
         (zoom, ok) = QInputDialog.getInt(self.tab(), "Zoom...",
                                          "Input zoom factor in percent:",
                                          self.zoom(), 0)
     if ok:
         self.setZoom(zoom)
         self._userZoomLevel = zoom
Example #26
0
    def jump_to_line(self, lineno=None):
        """
        Jump to a specific line number or ask to the user for the line
        """
        if lineno is not None:
            self.emit(SIGNAL("addBackItemNavigation()"))
            self.go_to_line(lineno)
            return

        maximum = self.blockCount()
        line = QInputDialog.getInt(self, self.tr("Jump to Line"),
                                   self.tr("Line:"), 1, 1, maximum, 1)
        if line[1]:
            self.emit(SIGNAL("addBackItemNavigation()"))
            self.go_to_line(line[0] - 1)
Example #27
0
 def addXMultiple(self):
   '''
     Convenience function to add multiple subsequent datasets for different detector angles.
   '''
   items, OK=QInputDialog.getInt(self, u'Add multiple datasets',
                             u'Enter the number of subsequent datasets to be added:',
                             value=1, min=0, max=304, step=1)
   if not OK or items==0:
     return
   self.addX()
   if items==1:
     return
   self._x_items_to_go=items-1
   self.parent_window.initiateReflectivityPlot.connect(self._addXMultiple)
   self.parent_window.nextFile()
Example #28
0
 def actionTimeShiftDepth(self):
     dialogtxt = "Warning: Only use this if you know what you're doing."
     seconds, ok = QInputDialog.getInt(self, 'Offset in Seconds', dialogtxt)
     if ok:
         conf_msg = "Are you sure you want to shift the timestamp on your \
                     depth records by %i seconds?" % int(seconds)
         reply = QMessageBox.warning(None, "Confirm", conf_msg,
                                     QMessageBox.Yes, QMessageBox.No)
         if reply == QMessageBox.Yes:
             self.imageDirectoryObj.dive_record_set(
                 self.db_path).shift_depth_records(int(seconds))
             result_str = "Great Success: photos time shifted. ...I think..."
             self.statusBar().showMessage(result_str, 8000)
             return True
         else:
             return False
Example #29
0
 def expandToDepthDialog(self):
     """ Show dialog and expand center view to depth.
     """
     if hasattr(QInputDialog, "getInteger"):
         # Qt 4.3
         (depth,
          ok) = QInputDialog.getInteger(self.tab(), "Expand to depth...",
                                        "Input depth:", self._treeDepth, 0)
     else:
         # Qt 4.5
         (depth, ok) = QInputDialog.getInt(self.tab(), "Expand to depth...",
                                           "Input depth:", self._treeDepth,
                                           0)
     if ok:
         self._treeDepth = depth
         if self.tab().treeView().selection():
             self.onTreeViewSelected(self.tab().treeView().selection())
Example #30
0
 def expandToDepthDialog(self):
     """ Show dialog and call expandToDepth() function of tree view.
     """
     if hasattr(QInputDialog, "getInteger"):
         # Qt 4.3
         (depth, ok) = QInputDialog.getInteger(self, "Expand to depth...",
                                               "Input depth:",
                                               self._treeDepth, 0)
     else:
         # Qt 4.5
         (depth, ok) = QInputDialog.getInt(self, "Expand to depth...",
                                           "Input depth:", self._treeDepth,
                                           0)
     if ok:
         self._treeDepth = depth
         self.collapseAll(False)
         if self._treeDepth > 0:
             self.expandToDepth(self._treeDepth - 1)
Example #31
0
    def onAddConnector(self, nodeItem):
        name, ok = QInputDialog.getItem(self, 'Add connector', 'Select the type of connector', ['in', 'out'])
        if not ok:
            return
        name = str(name)
        if len(name) == 0:
            return

        numPorts, ok = QInputDialog.getInt(self, 'Add connector', 'Select the number of ports', value=1)
        if not ok or numPorts <= 0:
            return

        ports = ['%s_%d' % (name, i) for i in xrange(numPorts)]

        if name == 'in':
            conn = InputConnectorItem(name, ports)
        else:
            conn = OutputConnectorItem(name, ports)

        nodeItem.addConnector(conn)
def kmeans(layer, working_directory, nb_class=None):
    """
    WARNING: nb_valid_pixels à calculer ?
    """
    internal_working_directory = os.path.join(working_directory, "Internal")
    if not os.path.exists(internal_working_directory):
        os.makedirs(internal_working_directory)

    logger.debug("enntree dans le kmeans")
    bands = []
    if nb_class is None:
        testqt, ok = QInputDialog.getInt(None, "Kmeans", "Nombre de classes", 5)
        if ok:
            nb_class = testqt
    # mask = OTBApplications.bandmath([layer.get_source()], "if(im1b1>0,1,0)", working_directory, "mask")
    output = OTBApplications.kmeans_cli(layer.get_source(), nb_class, internal_working_directory)
    image_ref = recompose_image(layer, internal_working_directory)
    # if not os.path.isfile(output_colored):
    output_colored = OTBApplications.color_mapping_cli_ref_image(output, image_ref, working_directory)
    return output_colored
 def goto(self, number=None):
     """ Ask event number in dialog and navigate and to event.
     """
     logging.debug(__name__ + ": goto")
     if self._dataAccessor.numberOfEvents():
         max = self._dataAccessor.numberOfEvents()
     else:
         max = sys.maxsize
     if number!=None:
         ok=(number>=1, number<=max)
     else:
         if hasattr(QInputDialog, "getInteger"):
             # Qt 4.3
             (number, ok) = QInputDialog.getInteger(self.plugin().application().mainWindow(), "Goto...", "Enter event number:", self._dataAccessor.eventNumber(), 1, max)
         else:
             # Qt 4.5
             (number, ok) = QInputDialog.getInt(self.plugin().application().mainWindow(), "Goto...", "Enter event number:", self._dataAccessor.eventNumber(), 1, max)
     if ok:
         self.cancel()
         currentEvent=self.dataAccessor().eventNumber()
         if currentEvent!=number:
             self.navigate(number)
Example #34
0
def kmeans(layer, working_directory, nb_class=None):
    """
    WARNING: nb_valid_pixels à calculer ?
    """
    internal_working_directory = os.path.join(working_directory, "Internal")
    if not os.path.exists(internal_working_directory):
        os.makedirs(internal_working_directory)

    logger.debug("enntree dans le kmeans")
    bands = []
    if nb_class is None:
        testqt, ok = QInputDialog.getInt(None, "Kmeans", "Nombre de classes",
                                         5)
        if ok:
            nb_class = testqt
    # mask = OTBApplications.bandmath([layer.get_source()], "if(im1b1>0,1,0)", working_directory, "mask")
    output = OTBApplications.kmeans_cli(layer.get_source(), nb_class,
                                        internal_working_directory)
    image_ref = recompose_image(layer, internal_working_directory)
    # if not os.path.isfile(output_colored):
    output_colored = OTBApplications.color_mapping_cli_ref_image(
        output, image_ref, working_directory)
    return output_colored
Example #35
0
 def insertRowsBefore(self, textCursor, table, cell, rowIndex, columnIndex):
     rows, ok = QInputDialog.getInt(self, "Insert Rows", 'Enter Number of Rows', value=1)
     if ok and rows > 0:
             table.insertRows(rowIndex, rows)
Example #36
0
 def insertColumnsBefore(self, textCursor, table, cell, rowIndex, columnIndex):
     cols, ok = QInputDialog.getInt(self, "Insert Columns", 'Enter Number of Columns', value=1)
     if ok and cols > 0:
             table.insertColumns(columnIndex, cols)
Example #37
0
 def deleteColumns(self, textCursor, table, cell, rowIndex, columnIndex):
     cols, ok = QInputDialog.getInt(self, "Delete Columns", 'Enter Number of Columns to be deleted, starting from the current column', value=1)
     if ok and cols > 0:
         table.removeColumns(columnIndex, cols)
 def set_new_sign_ord(self):
     num,ok = QInputDialog.getInt(self.app,u"Ввести код иероглифа",u"Введите код")
     if ok:
         print num
         self.sign_picture = SignPictureSimple(unichr(num), self.sign_picture.fontName)
         self.refresh_setting_to_new_picture()
Example #39
0
 def deleteRows(self, textCursor, table, cell, rowIndex, columnIndex):
     rows, ok = QInputDialog.getInt(self, "Delete Rows", 'Enter Number of Rows to be deleted, starting from the current row', value=1)
     if ok and rows > 0:
         table.removeRows(rowIndex, rows)
Example #40
0
def intBox(parent, title="IntBox", msg="This is a sample int dialog.", default=0):
    """Makes a box for getting ints"""
    return QInputDialog.getInt(parent, title, msg, default)
Example #41
0
def updateField():
    maCouche = iface.activeLayer()
    layerName = maCouche.name()
    formTitle = layerName + u" - Attributs d'entités"
    layers = QgsMapLayerRegistry.instance().mapLayers(
    )  # liste des couches du projet

    for w in iface.mainWindow().findChildren(QDialog):
        if w.windowTitle() == formTitle and w.isActiveWindow():
            w.reject()

    vYear = u"year"
    vStatus = u"fk_status"
    year = datetime.now().year
    for feature in maCouche.getFeatures(QgsFeatureRequest(int(featureId))):
        msgBox = QMessageBox()
        if feature[vStatus] == 1301:
            text_service = u"La conduite ID =" + str(
                featureId) + u" est déjà en service, depuis " + str(
                    feature[vYear])
            msgBox.setText(text_service)
            msgBox.exec_()
        else:
            if not maCouche.isEditable():
                maCouche.startEditing()
            feature[vStatus] = 1301
            input_rep = QInputDialog()
            year, ok = input_rep.getInt(
                None, u"Annee de service ",
                u"indiquez l'ann\xe9e de mise en service (4 chiffres)",
                datetime.now().year, 1860,
                datetime.now().year, 1)
            if ok:
                if not feature[vYear] or feature[vYear] == 0:
                    #print(feature[vYear])
                    feature[vYear] = year
                elif feature[vYear] <> year:
                    reply = QMessageBox.question(
                        iface.mainWindow(),
                        u"Différence entre l'année de pose et l'année de mise en service",
                        u"Une année de pose a déjà été saisie : " +
                        str(feature[vYear]) + u" sur la conduite (ID : " +
                        str(feature.id()) +
                        u") , êtes-vous sûr de vouloir la modifier en " +
                        str(year) + u"?", QMessageBox.Yes | QMessageBox.No,
                        QMessageBox.No)
                    if reply == QMessageBox.Yes:
                        feature[vYear] = year
                    else:
                        year = feature[vYear]
                else:
                    #print(feature[vYear])
                    pass

                if iface.openFeatureForm(maCouche, feature):
                    maCouche.updateFeature(feature)
                    num_e = 0
                    num_v = 0
                    num_h = 0
                    num_i = 0
                    for i in range(0, len(layerIds)):
                        if layerIds[i] not in layers:
                            text_layer = u"La couche avec ID = " + str(
                                layerIds[i]
                            ) + u" n'existe plus ou pas dans le projet, merci de vérifier la structure du projet sinon elle ne sera pas prise en compte dans la mise en service"
                            msgBox.setText(text_layer)
                            msgBox.exec_()
                    for layer in layers.values():
                        uri = QgsDataSourceURI(layer.source())
                        name = uri.schema() + "." + uri.table()
                        #if name in ["qwat_od.valve", "qwat_od.part" , "qwat_od.hydrant", "qwat_od.subscriber"]:
                        if layer.id() in layerIds:
                            num_elements = 0
                            if not layer.isEditable():
                                layer.startEditing()
                            req = QgsFeatureRequest(
                                feature.geometry().boundingBox()
                            ).setFilterExpression(' "fk_status" = \'103\' ')
                            for feat in layer.getFeatures(req):
                                if feat.geometry().intersects(
                                        feature.geometry()):
                                    num = 0
                                    for f in maCouche.getFeatures(
                                            QgsFeatureRequest(
                                                feat.geometry().boundingBox()).
                                            setFilterExpression(
                                                ' "fk_status" != \'1301\' ')):
                                        if f.geometry().intersects(
                                                feat.geometry(
                                                )) and f.id() != featureId:
                                            num += 1
                                    if num == 0:
                                        if feat[vStatus] != 1301:
                                            feat[vStatus] = 1301
                                            if not feat[vYear] or feat[
                                                    vYear] == 0:
                                                feat[vYear] = year
                                            elif feat[vYear] <> year:
                                                reply_obj = QMessageBox.question(
                                                    iface.mainWindow(),
                                                    u"Différence entre l'année de pose et l'année de mise en service",
                                                    u"Une année de pose a déjà été saisie : "
                                                    + str(feat[vYear]) +
                                                    u" sur l'objet '" +
                                                    layer.name() +
                                                    u"' (ID : " +
                                                    str(feat.id()) +
                                                    u"), êtes-vous sûr de vouloir la modifier en "
                                                    + str(year) + u"?",
                                                    QMessageBox.Yes
                                                    | QMessageBox.No,
                                                    QMessageBox.No)
                                                if reply_obj == QMessageBox.Yes:
                                                    feat[vYear] = year
                                                else:
                                                    pass
                                            layer.updateFeature(feat)
                                            num_elements += 1
                            if name == "qwat_od.valve":
                                num_v = num_elements
                            if name == "qwat_od.part":
                                num_e = num_elements
                            if name == "qwat_od.hydrant":
                                num_h = num_elements
                            if name == "qwat_od.subscriber":
                                num_i = num_elements

                    text = u"La conduite ID =" + str(
                        featureId
                    ) + u" a \xe9t\xe9 mise en service avec l'ann\xe9e : " + str(
                        feature[vYear])
                    if num_v > 0 or num_e > 0 or num_h > 0 or num_i > 0:
                        text += u"\n ainsi que :"
                        if num_v > 0:
                            text += u"\n - " + str(num_v) + u" vannes"
                        if num_e > 0:
                            text += u"\n - " + str(
                                num_e) + u" \xe9l\xe9ments de montage"
                        if num_h > 0:
                            text += u"\n - " + str(num_h) + u" hydrants"
                        if num_i > 0:
                            text += u"\n - " + str(num_i) + u" introductions"
                    msgBox.setText(text)
                    msgBox.exec_()
                else:
                    pass
            else:
                pass
 def unsupervisedSettings(self):
     (number, ok) = QInputDialog.getInt(None, str(self.currentUnsupervisedDecomposer.shortname + " parameters"), "Number of components", 3, 1, 10)
     if ok:
         self.currentUnsupervisedDecomposer.setNumberOfComponents(number)
Example #43
0
 def address_prompt(self, message="", level="Warning"):
     message = "{}. Change port".format(message)
     return QInputDialog.getInt(QInputDialog(), level, message, self.port, 1024, 65535)
 def settings(cls):
     (number, ok) = QInputDialog.getInt(None, "Random Forest parameters", "Number of trees", cls.treeCount, 20, 255)
     if ok:
         cls.treeCount = number
     
     print "setting number of trees to", cls.treeCount
Example #45
0
    def show_plot(self):
        """
        La funcíón show_plot es la encargada de mostar la gráfica de los datos, para realizar dicha tarea, primero
        se muestran las columnas disponibles para la comparación (lo que llamarémos ejes), cada eje corresponde a una
        columna del archivo, además permite al usuario seleccionar dos de dichos ejes para realizar la comparación,
        separa los datos en listas y por último grafica dicha información,
        """
        #Definimos variables locales
        primereje = []
        segundoeje = []
        op = 0
        e = "eje "
        n = 0
        text_eje_x = "     "
        text_eje_y = "     "

        #Deshabilitamos el botón btn_plot_data y habilitamos el botón btn_save_figure
        self.btn_plot_data.setEnabled(False)
        self.btn_save_figure.setEnabled(True)

        #Contamos el número de ejes
        temp_list = self.lstlst[1]

        #Agregamos los ejes dispobibles a la lista a
        for i in range(1, len(temp_list) + 1):
            op += 1
            self.a.append(e + str(op))
        text = (
            "                                            EJES DISPONIBLES\n"
            "----------------------------------------------------------------------------------------------------------\n"
        )

        #Mostramos los ejes disponibles en un área de texto
        for i in self.a:
            n = n + 1
            text += (str(n) + ".  " + i + " \t\t ")
            self.area_text.setText(text)

        #Solicitamos al usuario que ingrese el primer eje a graficar (La solicitud se realiza mientras
        #los datos ingresados sean erroneos)
        while (True):

            #Solicitamos el primer eje a graficar, la variable global number_axe_1 contiene el número del eje,
            #la variable ok contiene información sobre el éxito de la solicitud
            self.number_axe_1, ok = QInputDialog.getInt(
                self, "Select Axe",
                "Ingrese el número del primer eje a graficar")

            #Definimos las instrucciones correspondientes al éxito de la solicitud
            if ok:

                #Verificamos que el número ingresado corresponda a un índice de eje, en caso de que sea cierto
                #salimos del ciclo while
                if self.number_axe_1 in range(1, len(self.a) + 1):
                    break

                #Procesamos el posible error de que el dato ingresado sea erroneo
                else:
                    QMessageBox.warning(
                        self, "Select Axe Error",
                        "Ha ocurrido un error, verifique los datos ingresados!!!"
                    )

            #Procesamos un posible error en caso de que la solicitud no se realice con éxito
            else:
                QMessageBox.warning(
                    self, "Select Axe Error",
                    "Ha ocurrido un error, verifique los datos ingresados!!!")

        #Solicitamos al usuario que ingrese el segundo eje a graficar (La solicitud se realiza mientras
        #los datos ingresados sean erroneos)
        while (True):

            #Solicitamos el segundo eje a graficar, la variable global number_axe_2 contiene el número del eje,
            #la variable ok contiene información sobre el éxito de la solicitud
            self.number_axe_2, ok = QInputDialog.getInt(
                self, "Select Axe",
                "Ingrese el número del segundo eje a graficar")

            #Definimos las instrucciones correspondientes al éxito de la solicitud
            if ok:

                #Verificamos que el número ingresado corresponda a un índice de eje
                if self.number_axe_2 in range(1, len(self.a) + 1):

                    #Comprobamos que el número ingresado para el segundo eje sea diferente del número ingresado
                    #para el primer eje, si la condición se cumple salimos del while
                    if (self.number_axe_1 != self.number_axe_2):
                        break

                    #Procesamos el posible error de que el dato ingresado sea igual al primero
                    else:
                        QMessageBox.warning(
                            self, "Select Axe Error",
                            "Ha ocurrido un error, Debe seleccionar un eje diferente!!"
                        )

                #Procesamos el posible error de que el dato ingresado sea erroneo
                else:
                    QMessageBox.warning(
                        self, "Select Axe Error",
                        "Ha ocurrido un error, verifique los datos ingresados!!!"
                    )

            #Procesamos un posible error en caso de que la solicitud no se realice con éxito
            else:
                QMessageBox.warning(
                    self, "Select Axe Error",
                    "Ha ocurrido un error, verifique los datos ingresados!!!")

        #Agregamos los datos de los ejes a comparar en dos listas
        for i in self.lstlst:
            primereje.append(i[self.number_axe_1 - 1])
            segundoeje.append(i[self.number_axe_2 - 1])

        #Agregamos los datos de los ejes a comparar en dos cadenas
        for i in range(len(primereje)):
            text_eje_x += (primereje[i]) + "\n     "
        for i in range(len(segundoeje)):
            text_eje_y += (segundoeje[i]) + "\n     "

        #Mostramos en las áreas de texto data_eje_x y data_eje_y las cadenas que contienen los datos
        self.data_eje_x.setText(text_eje_x)
        self.data_eje_y.setText(text_eje_y)

        #Preparamos la figura para mostrar la gráfica
        self.figure.clf()
        ax = self.figure.add_subplot(111)

        #Mostramos la gráfica de los datos
        ax.plot(primereje, segundoeje, 'r.-')

        #Agregamos un título a la gráfica
        ax.set_title(self.a[self.number_axe_2 - 1] + " vs " +
                     self.a[self.number_axe_1 - 1])

        #Mostramos los datos
        self.canvas.draw()
Example #46
0
    def select_file(self):
        """
        La función select_files permite seleccionar de la lista de archivos disponibles un archivo,
        además se encarga de crear las estructuras de datos necesarias para almacenarlas en memoria local
        y de corregir posibles errores en los datos
        """
        #Definimos variables locales
        error = []
        indiceserror = []
        filaserror = []

        #Deshabilitamos el botón btn_select_file y habilitamos el botón btn_plot_data
        self.btn_select_file.setEnabled(False)
        self.btn_plot_data.setEnabled(True)

        #Solicitamos al usuario que ingrese el índice del archivo a ser cargado, la variable number_file almacena
        #dicho índice, mientras la variable ok almacena el estado de la solicitud
        number_file, ok = QInputDialog.getInt(
            self, "Select File", "Ingrese el número del archivo a procesar")

        #Verificamos que la variable ok contenga un dato exitoso, esto es, verdadero
        if ok:

            #Verificamos que el número ingresado por el usuario corresponda al índice de un archivo
            if number_file in range(1, len(self.lista) + 1):

                #Guardamos en la variable file el nombre del archivo
                file = self.lista[number_file - 1]

                #Abrimos el archivo
                openf = open(file)

                #Mostramos en el campo de texto file_loaded_text el nombre del archivo cargado
                self.file_loaded.setText("Se ha abierto el archivo " +
                                         openf.name)

                #Creamos la variable route que contiene la ruta absoluta del archivo
                route = self.cwd + "/" + openf.name

                #Mostramos en el campo de texto dir_file_loaded la ruta
                self.dir_file_loaded.setText(route)

                #Procesamos el archivo cargado eliminando comas y puntoycomas que se encuentren en los archivos
                for line in openf:

                    #Realizamos los procedimientos necesarios en caso de que el archivo sea txt
                    if ".txt" in file:
                        if "," in line:
                            temp_list = line.split(",")
                        if ";" in line:
                            temp_list = line.split(";")

                        #Agregamos los datos a la lista lstlst
                        self.lstlst.append(temp_list)

                    # Realizamos los procedimientos necesarios en caso de que el archivo sea csv
                    if ".csv" in file:
                        temp_list = line.split(";")

                        # Agregamos los datos a la lista lstlst
                        self.lstlst.append(temp_list)

                #Procesamos la lista lstlst eliminando posibles errores
                for i in self.lstlst:
                    for j in i:

                        #Intentamos convertir los datos de la lista en números reales
                        try:
                            j = float(j)

                        #Capturamos cualquier posible error en el proceso de conversión y obtenemos el índice del error
                        except ValueError:
                            error.append(j)
                            indiceserror.append(i.index(j))
                            filaserror.append(self.lstlst.index(i))

                #Eliminamos de lstlst los datos que contengan errores
                for i in range(0, len(error)):
                    self.lstlst[filaserror[i]].remove(error[i])
                    self.lstlst[filaserror[i]].insert(indiceserror[i], None)

            #Mostramos una alerta en caso de que el usuario ingrese un número que no corresponde aun índice
            else:
                QMessageBox.warning(
                    self, "Select File Error",
                    "Ha ocurrido un error, verifique los datos ingresados!!!")

                #Habilitamos el botón btn_select_file y deshabilitamos el botón btn_plot_data
                self.btn_select_file.setEnabled(True)
                self.btn_plot_data.setEnabled(False)

        #Procesamos un posible error en la entrada de datos, esto es, ok es falso
        else:
            QMessageBox.warning(
                self, "Select File Error",
                "Ha ocurrido un error, verifique los datos ingresados!!!")

            #Habilitamos el botón btn_select_file y deshabilitamos el botón btn_plot_data
            self.btn_select_file.setEnabled(True)
            self.btn_plot_data.setEnabled(False)
Example #47
0
 def address_prompt(self, message="", level="Warning"):
     message = "{}. Change port".format(message)
     return QInputDialog.getInt(QInputDialog(), level, message, self.port,
                                1024, 65535)
Example #48
0
def updateField():
    maCouche = iface.activeLayer()
    layerName = maCouche.name()
    formTitle = layerName + u" - Attributs d'entités"
    layers = QgsMapLayerRegistry.instance().mapLayers() # liste des couches du projet

    for w in iface.mainWindow().findChildren(QDialog):
        if w.windowTitle() == formTitle and w.isActiveWindow():
            w.reject()

    vYear = u"year_end"
    vStatus = u"fk_status"
    for feature in maCouche.getFeatures(QgsFeatureRequest(int(featureId))):
        msgBox = QMessageBox()
        if feature[vStatus] != 1301:
            if feature[vStatus] == 13002:
                text_arch = u"La conduite ID ="+str(featureId) + u" a déjà été archivée en " + str(feature[vYear])
            else:
                text_arch = u"La conduite ID ="+str(featureId) + u" ne peut être archivée si elle n'est pas en service"
            msgBox.setText(text_arch)
            msgBox.exec_()
        if feature[vStatus] == 1301:
            input_rep = QInputDialog()
            year_end, ok = input_rep.getInt(None, u"Annee d'archivage ", u"indiquez l'ann\xe9e d'archive (4 chiffres)", datetime.now().year, 1800,2999, 1)
            if ok:
                if not maCouche.isEditable():
                    maCouche.startEditing()
                feature[vStatus] = 13002
                feature[vYear] = year_end
                if iface.openFeatureForm(maCouche, feature):
                    maCouche.updateFeature(feature)
                    num_e = 0
                    num_v = 0
                    num_h = 0
                    num_i = 0
                    num_a = 0
                    for i in range(0,len(layerIds)):
                        if layerIds[i] not in layers:
                            text_layer = u"La couche avec ID = "+ str(layerIds[i]) + u" n'existe plus ou pas dans le projet, merci de vérifier la structure du projet sinon elle ne sera pas prise en compte dans l'archivage"
                            msgBox.setText(text_layer)
                            msgBox.exec_()
                    for layer in layers.values():
                        uri = QgsDataSourceURI(layer.source())
                        name = uri.schema() + "." + uri.table()
                        #if name in ["qwat_od.valve", "qwat_od.part" , "qwat_od.hydrant"]:
                        #if layer.name() == u"vannes" or layer.name() == u"\xe9l\xe9ments de montage" or layer.name() == u"hydrants" or layer.name() == u"introduction":
                        if layer.id() in layerIds:
                            # print unicode(layer.name())
                            num_elements = 0
                            if not layer.isEditable():
                                layer.startEditing()
                            req = QgsFeatureRequest(feature.geometry().boundingBox()).setFilterExpression(' "fk_status" = \'1301\' ')
                            for feat in layer.getFeatures(req):
                                if feat.geometry().intersects(feature.geometry()):
                                    num = 0
                                    for f in maCouche.getFeatures(QgsFeatureRequest(feat.geometry().boundingBox()).setFilterExpression(' "fk_status" != \'13002\' ')):
                                        if f.geometry().intersects(feat.geometry())  and f.id() != featureId:
                                            num += 1
                                    # print("int",feat.id(),num)
                                    if num == 0:
                                        if feat[vStatus] != 13002:
                                            feat[vStatus] = 13002
                                            feat[vYear] = year_end
                                            layer.updateFeature(feat)
                                            num_elements += 1
                            #if layer.name() == u"vannes":
                            if name == "qwat_od.valve":
                                num_v = num_elements
                            #if layer.name() == u"\xe9l\xe9ments de montage":
                            if name == "qwat_od.part" :
                                num_e = num_elements
                            #if layer.name() == u"hydrants":
                            if name == "qwat_od.hydrant":
                                num_h = num_elements
                            #if layer.name() == u"introduction":
                            if name == "qwat_od.subscriber":
                                num_i = num_elements
                            if name == "qwat_od.usr_prc_point":
                                num_a = num_elements

                    text = u"La conduite ID ="+str(featureId)+ u" a \xe9t\xe9 archiv\xe9e en " + str(year_end)
                    if num_v > 0 or num_e > 0 or num_h > 0 or num_i > 0:
                        text += u"\n ainsi que :"
                        if num_v > 0:
                            text += u"\n - " + str(num_v) + u" vannes"
                        if num_e > 0:
                            text += u"\n - " + str(num_e) + u" \xe9l\xe9ments de montage"
                        if num_h > 0:
                            text += u"\n - " + str(num_h) + u" hydrants"
                        if num_i > 0:
                            text += u"\n - " + str(num_i) + u" introductions"
                        if num_a > 0:
                            text += u"\n - " + str(num_a) + u" \xe9l\xe9ments de protection cathodique"
                    msgBox.setText(text)
                    msgBox.exec_()
                else:
                    pass
            else:
                pass
        else:
            pass