Beispiel #1
0
   def __init__(self, plugIn):
      self.plugIn = plugIn
      self.iface = self.plugIn.iface.mainWindow()

      QDialog.__init__(self)
      # non passo il parent perchè altrimenti il font e la sua dimensione verrebbero ereditati dalla dialog scombinando tutto 
      #QDialog.__init__(self, self.iface)
      
      self.selectedDimStyle = None
      
      self.setupUi(self)
      self.retranslateUi(self) # aggiungo alcune traduzioni personalizzate
      self.dimStyleList.setContextMenuPolicy(Qt.CustomContextMenu)
      
      # aggiungo il canvans di preview della quota chiamato QadPreviewDim 
      # che eredita la posizione di previewDummy (che viene nascosto)      
      self.previewDummy.setHidden(True)
      self.previewDim = QadPreviewDim(self.previewDummy.parent(), self.plugIn)
      self.previewDim.setGeometry(self.previewDummy.geometry())
      self.previewDim.setObjectName("previewDim")
      
      self.init()
Beispiel #2
0
 def __init__(self, plugIn):
    self.plugIn = plugIn
    self.iface = self.plugIn.iface.mainWindow()
    QDialog.__init__(self, self.iface)
    
    self.selectedDimStyle = None
    
    self.setupUi(self)
    self.dimStyleList.setContextMenuPolicy(Qt.CustomContextMenu)
    
    # aggiungo il canvans di preview della quota chiamato QadPreviewDim 
    # che eredita la posizione di previewDummy (che viene nascosto)      
    self.previewDummy.setHidden(True)
    self.previewDim = QadPreviewDim(self.previewDummy.parent(), self.plugIn)
    self.previewDim.setGeometry(self.previewDummy.geometry())
    self.previewDim.setObjectName("previewDim")
    
    self.init()
Beispiel #3
0
class QadDIMSTYLEDialog(QDialog, QObject, qad_dimstyle_ui.Ui_DimStyle_Dialog):
   def __init__(self, plugIn):
      self.plugIn = plugIn
      self.iface = self.plugIn.iface.mainWindow()

      QDialog.__init__(self)
      # non passo il parent perchè altrimenti il font e la sua dimensione verrebbero ereditati dalla dialog scombinando tutto 
      #QDialog.__init__(self, self.iface)
      
      self.selectedDimStyle = None
      
      self.setupUi(self)
      self.retranslateUi(self) # aggiungo alcune traduzioni personalizzate
      self.dimStyleList.setContextMenuPolicy(Qt.CustomContextMenu)
      
      # aggiungo il canvans di preview della quota chiamato QadPreviewDim 
      # che eredita la posizione di previewDummy (che viene nascosto)      
      self.previewDummy.setHidden(True)
      self.previewDim = QadPreviewDim(self.previewDummy.parent(), self.plugIn)
      self.previewDim.setGeometry(self.previewDummy.geometry())
      self.previewDim.setObjectName("previewDim")
      
      self.init()


   def closeEvent(self, event):
      del self.previewDim # cancello il canvans di preview della quota chiamato QadPreviewDim 
      return QDialog.closeEvent(self, event)

   def init(self):
      # Inizializzazione dello stile corrente
      currDimStyleName = QadVariables.get(QadMsg.translate("Environment variables", "DIMSTYLE"))
      self.currentDimStyle.setText("" if currDimStyleName is None else currDimStyleName)
      
      # Inizializzazione della lista degli stili
      model = QStandardItemModel(self.dimStyleList)
      for dimStyle in QadDimStyles.dimStyleList: # lista degli stili di quotatura caricati
         # Create an item with a caption
         item = QStandardItem(dimStyle.name)
         item.setEditable(True)
         item.setData(dimStyle)
         model.appendRow(item)

      self.dimStyleList.setModel(model)
      # sort
      self.dimStyleList.model().sort(0)
      # collego l'evento "cambio di selezione" alla funzione dimStyleListCurrentChanged
      self.dimStyleList.selectionModel().selectionChanged.connect(self.dimStyleListCurrentChanged)
      
      self.dimStyleList.itemDelegate().closeEditor.connect(self.dimStyleListcloseEditor)
      
      # seleziono il primo elemento della lista
      index = self.dimStyleList.model().index(0,0)
      items = None
      if self.selectedDimStyle is not None:
         # seleziono l'elemento precedentemente selezionato
         items = self.dimStyleList.model().findItems(self.selectedDimStyle.name)
      elif len(currDimStyleName) > 0:
         items = self.dimStyleList.model().findItems(currDimStyleName)
         
      if (items is not None) and len(items) > 0:
         item = items[0]
         if item is not None:
            index = self.dimStyleList.model().indexFromItem(item)
         
      self.dimStyleList.selectionModel().setCurrentIndex(index, QItemSelectionModel.SelectCurrent)

   
   def retranslateUi(self, DimStyle_Dialog):
      qad_dimstyle_ui.Ui_DimStyle_Dialog.retranslateUi(self, self)
      # "none" viene tradotto in italiano in "nessuno" nel contesto "currentDimStyle"
      # "none" viene tradotto in italiano in "nessuna" nel contesto "descriptionSelectedStyle"
      # "none" viene tradotto in italiano in "nessuno" nel contesto "selectedStyle"
      self.currentDimStyle.setText(QadMsg.translate("DimStyle_Dialog", "none", "currentDimStyle"))
      self.descriptionSelectedStyle.setText(QadMsg.translate("DimStyle_Dialog", "none", "descriptionSelectedStyle"))
      self.selectedStyle.setText(QadMsg.translate("DimStyle_Dialog", "none", "selectedStyle"))
      
      
   def dimStyleListCurrentChanged(self, current, previous):
      # leggo l'elemento selezionato
      index = current.indexes()[0]
      item = self.dimStyleList.model().itemFromIndex(index)
      self.selectedDimStyle = item.data()
      self.selectedStyle.setText(self.selectedDimStyle.name)
      self.descriptionSelectedStyle.setText(self.selectedDimStyle.description)
      
      self.previewDim.drawDim(self.selectedDimStyle)


   def dimStyleListcloseEditor(self, editor, hint):
      self.renSelectedDimStyle(editor.text())

   def setCurrentStyle(self):
      if self.selectedDimStyle is None:
         return
      QadVariables.set(QadMsg.translate("Environment variables", "DIMSTYLE"), self.selectedDimStyle.name)
      QadVariables.save()
      self.currentDimStyle.setText(self.selectedDimStyle.name)

   def renSelectedDimStyle(self, newName):
      if self.selectedDimStyle is None:
         return
      if QadDimStyles.renameDimStyle(self.selectedDimStyle.name, newName) == False:
         QMessageBox.critical(self, QadMsg.translate("QAD", "QAD"), \
                              QadMsg.translate("DimStyle_Dialog", "Dimension style not renamed."))
      else:
         self.init()

   def updDescrSelectedDimStyle(self):
      if self.selectedDimStyle is None:
         return
      Title = QadMsg.translate("DimStyle_Dialog", "QAD - Editing dimension style description: ") + self.selectedDimStyle.name
      inputDlg = QInputDialog(self)
      inputDlg.setWindowTitle(Title)                 
      inputDlg.setInputMode(QInputDialog.TextInput) 
      inputDlg.setLabelText(QadMsg.translate("DimStyle_Dialog", "New description:"))
      inputDlg.setTextValue(self.selectedDimStyle.description)
      inputDlg.resize(600,100)                             
      if inputDlg.exec_():                         
         self.selectedDimStyle.description = inputDlg.textValue()      
         self.selectedDimStyle.save()
         self.init()
         
   def delSelectedDimStyle(self):
      if self.selectedDimStyle is None:
         return
      msg = QadMsg.translate("DimStyle_Dialog", "Remove dimension style {0} ?").format(self.selectedDimStyle.name)
      res = QMessageBox.question(self, QadMsg.translate("QAD", "QAD"), msg, \
                                 QMessageBox.Yes | QMessageBox.No)
      if res == QMessageBox.Yes:
         if QadDimStyles.removeDimStyle(self.selectedDimStyle.name, True) == False:
            QMessageBox.critical(self, QadMsg.translate("QAD", "QAD"), \
                                 QadMsg.translate("DimStyle_Dialog", "Dimension style not removed."))
         else:
            self.selectedDimStyle = None
            self.init()

   def createNewStyle(self):
      self.previewDim.eraseDim()

      Form = QadDIMSTYLE_NEW_Dialog(self.plugIn, self, self.selectedDimStyle.name if self.selectedDimStyle is not None else None)
      if Form.exec_() == QDialog.Accepted:
         Form.dimStyle.path = ""
         QadDimStyles.addDimStyle(Form.dimStyle, True)
         self.selectedDimStyle = QadDimStyles.findDimStyle(Form.dimStyle.name)
         # setto lo stile corrente
         QadVariables.set(QadMsg.translate("Environment variables", "DIMSTYLE"), self.selectedDimStyle.name)
         self.init()      
      
      self.previewDim.drawDim(self.selectedDimStyle)

   def modStyle(self):
      if self.selectedDimStyle is None:
         return
      self.previewDim.eraseDim()
      
      Form = QadDIMSTYLE_DETAILS_Dialog(self.plugIn, self, self.selectedDimStyle)
      title = QadMsg.translate("DimStyle_Dialog", "Modify dimension style: ") + self.selectedDimStyle.name
      Form.setWindowTitle(title)
      if Form.exec_() == QDialog.Accepted:
         self.selectedDimStyle.set(Form.dimStyle)
         self.selectedDimStyle.save()
         self.init()
      del Form # forzo la chiamata al distruttore per rimuovere il preview della quota
      
      self.previewDim.drawDim(self.selectedDimStyle)


   def temporaryModStyle(self):
      if self.selectedDimStyle is None:
         return
      self.previewDim.eraseDim()

      Form = QadDIMSTYLE_DETAILS_Dialog(self.plugIn, self, self.selectedDimStyle)
      title = QadMsg.translate("DimStyle_Dialog", "Set temporary overrides to dimension style: ") + self.selectedDimStyle.name
      Form.setWindowTitle(title)
      if Form.exec_() == QDialog.Accepted:
         self.selectedDimStyle.set(Form.dimStyle)
         self.init()
         
      self.previewDim.drawDim(self.selectedDimStyle)


   def showDiffBetweenStyles(self):
      if self.selectedDimStyle is None:
         return
      Form = QadDIMSTYLE_DIFF_Dialog(self.plugIn, self, self.selectedDimStyle.name)
      Form.exec_()


   #============================================================================
   # startEditingItem
   #============================================================================
   def startEditingItem(self):
      if self.selectedDimStyle is None:
         return

      items = self.dimStyleList.model().findItems(self.selectedDimStyle.name)
      if len(items) > 0:
         item = items[0]
         if item is not None:
            index = self.dimStyleList.model().indexFromItem(item)
            self.dimStyleList.edit(index)

            
   def ButtonBOX_Accepted(self):     
      self.close()
      return True


   def ButtonHELP_Pressed(self):
      qadShowPluginHelp(QadMsg.translate("Help", "Dimensioning"))


   #============================================================================
   # displayPopupMenu
   #============================================================================
   def displayPopupMenu(self, pos):
      if self.selectedDimStyle is None:
         return
      
      popupMenu = QMenu(self)
      action = QAction(QadMsg.translate("DimStyle_Dialog", "Set current"), popupMenu)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.setCurrentStyle)

      action = QAction(QadMsg.translate("DimStyle_Dialog", "Rename"), popupMenu)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.startEditingItem)

      action = QAction(QadMsg.translate("DimStyle_Dialog", "Modify description"), popupMenu)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.updDescrSelectedDimStyle)

      action = QAction(QadMsg.translate("DimStyle_Dialog", "Remove"), popupMenu)
      currDimStyleName = QadVariables.get(QadMsg.translate("Environment variables", "DIMSTYLE"))
      if self.selectedDimStyle.name == currDimStyleName:
         action.setDisabled(True)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.delSelectedDimStyle)

      popupMenu.popup(self.dimStyleList.mapToGlobal(pos))
Beispiel #4
0
class QadDIMSTYLEDialog(QDialog, QObject, qad_dimstyle_ui.Ui_DimStyle_Dialog):
   def __init__(self, plugIn):
      self.plugIn = plugIn
      self.iface = self.plugIn.iface.mainWindow()
      QDialog.__init__(self, self.iface)
      
      self.selectedDimStyle = None
      
      self.setupUi(self)
      self.dimStyleList.setContextMenuPolicy(Qt.CustomContextMenu)
      
      # aggiungo il canvans di preview della quota chiamato QadPreviewDim 
      # che eredita la posizione di previewDummy (che viene nascosto)      
      self.previewDummy.setHidden(True)
      self.previewDim = QadPreviewDim(self.previewDummy.parent(), self.plugIn)
      self.previewDim.setGeometry(self.previewDummy.geometry())
      self.previewDim.setObjectName("previewDim")
      
      self.init()


   def closeEvent(self, event):
      del self.previewDim # cancello il canvans di preview della quota chiamato QadPreviewDim 
      return QDialog.closeEvent(self, event)

   def init(self):
      # Inizializzazione dello stile corrente
      currDimStyleName = QadVariables.get(QadMsg.translate("Environment variables", "DIMSTYLE"))
      self.currentDimStyle.setText("" if currDimStyleName is None else currDimStyleName)
      
      # Inizializzazione della lista degli stili
      model = QStandardItemModel(self.dimStyleList)      
      for dimStyle in self.plugIn.dimStyles.dimStyleList: # lista degli stili di quotatura caricati
         # Create an item with a caption
         item = QStandardItem(dimStyle.name)
         item.setEditable(True)
         item.setData(dimStyle)
         model.appendRow(item)

      self.dimStyleList.setModel(model)
      # sort
      self.dimStyleList.model().sort(0)
      # collego l'evento "cambio di selezione" alla funzione dimStyleListCurrentChanged
      self.dimStyleList.selectionModel().selectionChanged.connect(self.dimStyleListCurrentChanged)
      
      self.dimStyleList.itemDelegate().closeEditor.connect(self.dimStyleListcloseEditor)
      
      # seleziono il primo elemento della lista
      index = self.dimStyleList.model().index(0,0)
      if self.selectedDimStyle is not None:
         # seleziono l'elemento precedentemente selezionato
         item = self.dimStyleList.model().findItems(self.selectedDimStyle.name)[0]
         index = self.dimStyleList.model().indexFromItem(item)
      elif len(currDimStyleName) > 0:
         item = self.dimStyleList.model().findItems(currDimStyleName)[0]
         if item is not None:
            index = self.dimStyleList.model().indexFromItem(item)
         
      self.dimStyleList.selectionModel().setCurrentIndex(index, QItemSelectionModel.SelectCurrent)
      
   def dimStyleListCurrentChanged(self, current, previous):
      # leggo l'elemento selezionato
      index = current.indexes()[0]
      item = self.dimStyleList.model().itemFromIndex(index)
      self.selectedDimStyle = item.data()
      self.selectedStyle.setText(self.selectedDimStyle.name)
      self.descriptionSelectedStyle.setText(self.selectedDimStyle.description)
      
      self.previewDim.drawDim(self.selectedDimStyle)

   def dimStyleListcloseEditor(self, editor, hint):
      self.renSelectedDimStyle(editor.text())

   def setCurrentStyle(self):
      if self.selectedDimStyle is None:
         return
      QadVariables.set(QadMsg.translate("Environment variables", "DIMSTYLE"), self.selectedDimStyle.name)
      QadVariables.save()
      self.currentDimStyle.setText(self.selectedDimStyle.name)

   def renSelectedDimStyle(self, newName):
      if self.selectedDimStyle is None:
         return
      if self.plugIn.dimStyles.renameDimStyle(self.selectedDimStyle.name, newName) == False:
         QMessageBox.critical(self, QadMsg.translate("QAD", "QAD"), \
                              QadMsg.translate("DimStyle_Dialog", "Lo stile di quotatura non è stato rinominato."))
      else:
         self.init()

   def updDescrSelectedDimStyle(self):
      if self.selectedDimStyle is None:
         return
      Title = QadMsg.translate("DimStyle_Dialog", "QAD - Modifica descrizione per lo stile di quota: ") + self.selectedDimStyle.name
      inputDlg = QInputDialog(self)
      inputDlg.setWindowTitle(Title)                 
      inputDlg.setInputMode(QInputDialog.TextInput) 
      inputDlg.setLabelText(QadMsg.translate("DimStyle_Dialog", "Nuova descrizione:"))
      inputDlg.setTextValue(self.selectedDimStyle.description)
      inputDlg.resize(600,100)                             
      if inputDlg.exec_():                         
         self.selectedDimStyle.description = inputDlg.textValue()      
         self.selectedDimStyle.save()
         self.init()
         
   def delSelectedDimStyle(self):
      if self.selectedDimStyle is None:
         return
      res = QMessageBox.question(self, QadMsg.translate("QAD", "QAD"), \
                                 QadMsg.translate("DimStyle_Dialog", "Eliminare lo stile di quotatura ") + self.selectedDimStyle.name + " ?", \
                                 QMessageBox.Yes | QMessageBox.No)
      if res == QMessageBox.Yes:
         if self.plugIn.dimStyles.removeDimStyle(self.selectedDimStyle.name, True) == False:
            QMessageBox.critical(self, QadMsg.translate("QAD", "QAD"), \
                                 QadMsg.translate("DimStyle_Dialog", "Lo stile di quotatura non è stato cancellato."))
         else:
            self.selectedDimStyle = None
            self.init()

   def createNewStyle(self):
      self.previewDim.eraseDim()

      Form = QadDIMSTYLE_NEW_Dialog(self.plugIn, self.selectedDimStyle.name if self.selectedDimStyle is not None else None)
      if Form.exec_() == QDialog.Accepted:
         Form.dimStyle.path = ""
         self.plugIn.dimStyles.addDimStyle(Form.dimStyle, True)
         self.selectedDimStyle = self.plugIn.dimStyles.findDimStyle(Form.dimStyle.name)
         # setto lo stile corrente
         QadVariables.set(QadMsg.translate("Environment variables", "DIMSTYLE"), self.selectedDimStyle.name)
         self.init()      
      
      self.previewDim.drawDim(self.selectedDimStyle)

   def modStyle(self):
      if self.selectedDimStyle is None:
         return
      self.previewDim.eraseDim()
      
      Form = QadDIMSTYLE_DETAILS_Dialog(self.plugIn, self.selectedDimStyle)
      title = QadMsg.translate("DimStyle_Dialog", "Modifica stile di quota: ") + self.selectedDimStyle.name
      Form.setWindowTitle(title)
      if Form.exec_() == QDialog.Accepted:
         self.selectedDimStyle.set(Form.dimStyle)
         self.selectedDimStyle.save()
         self.init()
         
      self.previewDim.drawDim(self.selectedDimStyle)


   def temporaryModStyle(self):
      if self.selectedDimStyle is None:
         return
      self.previewDim.eraseDim()

      Form = QadDIMSTYLE_DETAILS_Dialog(self.plugIn, self.selectedDimStyle)
      title = QadMsg.translate("DimStyle_Dialog", "Modifica locale allo stile corrente: ") + self.selectedDimStyle.name
      Form.setWindowTitle(title)
      if Form.exec_() == QDialog.Accepted:
         self.selectedDimStyle.set(Form.dimStyle)
         self.init()
         
      self.previewDim.drawDim(self.selectedDimStyle)


   def showDiffBetweenStyles(self):
      Form = QadDIMSTYLE_DIFF_Dialog(self.plugIn, self.selectedDimStyle.name)
      Form.exec_()

   def startEditingItem(self):
      if self.selectedDimStyle is None:
         return
      item = self.dimStyleList.model().findItems(self.selectedDimStyle.name)[0]
      index = self.dimStyleList.model().indexFromItem(item)
      self.dimStyleList.edit(index)
            
   def ButtonBOX_Accepted(self):     
      self.close()
      return True


   def ButtonHELP_Pressed(self):
      # per conoscere la sezione/pagina del file html usare internet explorer,
      # selezionare nella finestra di destra la voce di interesse e leggerne l'indirizzo dalla casella in alto.
      # Questo perché internet explorer inserisce tutti i caratteri di spaziatura e tab che gli altri browser non fanno.
      qad_utils.qadShowPluginHelp("7%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%C2%A0GESTIONE%20DEI%20PROGETTI")

   #============================================================================
   # displayPopupMenu
   #============================================================================
   def displayPopupMenu(self, pos):
      if self.selectedDimStyle is None:
         return
      
      popupMenu = QMenu(self)
      action = QAction(QadMsg.translate("DimStyle_Dialog", "Imposta corrente"), popupMenu)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.setCurrentStyle)

      action = QAction(QadMsg.translate("DimStyle_Dialog", "Rinomina"), popupMenu)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.startEditingItem)

      action = QAction(QadMsg.translate("DimStyle_Dialog", "Modifica descrizione"), popupMenu)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.updDescrSelectedDimStyle)

      action = QAction(QadMsg.translate("DimStyle_Dialog", "Elimina"), popupMenu)
      currDimStyleName = QadVariables.get(QadMsg.translate("Environment variables", "DIMSTYLE"))
      if self.selectedDimStyle.name == currDimStyleName:
         action.setDisabled(True)
      popupMenu.addAction(action)
      QObject.connect(action, SIGNAL("triggered()"), self.delSelectedDimStyle)

      popupMenu.popup(self.dimStyleList.mapToGlobal(pos))