forked from geosim/QAD
-
Notifications
You must be signed in to change notification settings - Fork 0
/
qad_dimstyle_new_dlg.py
101 lines (82 loc) · 4.02 KB
/
qad_dimstyle_new_dlg.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# -*- coding: utf-8 -*-
"""
/***************************************************************************
QAD Quantum Aided Design plugin
classe per gestire la dialog per DIMSTYLE
-------------------
begin : 2015-05-19
copyright : iiiii
email : hhhhh
developers : bbbbb aaaaa ggggg
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
"""
# Import the PyQt and QGIS libraries
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
from qgis.core import QgsApplication
from qgis.utils import *
import qad_dimstyle_new_ui
from qad_dimstyle_details_dlg import QadDIMSTYLE_DETAILS_Dialog
from qad_variables import *
from qad_dim import *
from qad_msg import QadMsg, qadShowPluginHelp
import qad_utils
#######################################################################################
# Classe che gestisce l'interfaccia grafica della funzione di creazione nuovo stile
class QadDIMSTYLE_NEW_Dialog(QDialog, QObject, qad_dimstyle_new_ui.Ui_DimStyle_New_Dialog):
def __init__(self, plugIn, fromDimStyleName = None):
self.plugIn = plugIn
self.iface = self.plugIn.iface.mainWindow()
QDialog.__init__(self, self.iface)
self.newDimStyle = QadDimStyle()
self.newDimStyleNameChanged = False
self.setupUi(self)
self.dimNameList = []
for dimStyle in QadDimStyles.dimStyleList: # lista degli stili di quotatura caricati
self.DimStyleNameFrom.addItem(dimStyle.name, dimStyle)
self.dimNameList.append(dimStyle.name)
# sort
self.DimStyleNameFrom.model().sort(0)
# seleziono un elemento della lista
if fromDimStyleName is not None:
index = self.DimStyleNameFrom.findText(fromDimStyleName)
self.DimStyleNameFrom.setCurrentIndex(index)
self.DimStyleNameFromChanged(index)
def DimStyleNameFromChanged(self, index):
# leggo l'elemento selezionato
dimStyle = self.DimStyleNameFrom.itemData(index)
if dimStyle is not None:
self.newDimStyle.set(dimStyle)
if self.newDimStyleNameChanged == False:
newName = qad_utils.checkUniqueNewName(dimStyle.name, self.dimNameList, QadMsg.translate("QAD", "Copy of "))
if newName is not None:
self.newDimStyleName.setText(newName)
def newStyleNameChanged(self, text):
self.newDimStyleNameChanged = True
def ButtonBOX_continue(self):
if self.newDimStyleName.text() in self.dimNameList:
QMessageBox.critical(self, QadMsg.translate("QAD", "QAD"), \
QadMsg.translate("DimStyle_Dialog", "Dimension style name already existing. Specify a different name."))
return False
self.newDimStyle.name = self.newDimStyleName.text()
self.newDimStyle.description = self.newDimStyleDescr.text()
Form = QadDIMSTYLE_DETAILS_Dialog(self.plugIn, self.newDimStyle)
title = QadMsg.translate("DimStyle_Dialog", "New dimension style: ") + self.newDimStyle.name
Form.setWindowTitle(title)
if Form.exec_() == QDialog.Accepted:
self.dimStyle = Form.dimStyle
QDialog.accept(self)
else:
self.dimStyle = None
QDialog.reject(self)
def ButtonHELP_Pressed(self):
qadShowPluginHelp(QadMsg.translate("Help", "Dimensioning"))