class tabControl(QWidget): ''' classdocs ''' def __init__(self, parent): ''' Constructor ''' QWidget.__init__(self, parent) self.resize(349, 400) verticalLayout = QVBoxLayout(self) verticalLayout.setObjectName("verticalLayout") self.plainTextEdit = QPlainTextEdit(self) self.plainTextEdit.setObjectName("plainTextEdit") font = QFont() font.setPointSize(10) font.setBold(True) font.setWeight(75) self.plainTextEdit.setFont(font) # self.plainTextEdit.setReadOnly(True); verticalLayout.addWidget(self.plainTextEdit)
class Ui_Form (QWidget): ''' Ui class. Generated with pyuic4. ''' def __init__ (self, parent=None): QWidget.__init__(self, parent) self.timer = QTimer (self) self.image = QImage (720, 450, QImage.Format_RGB888) self.__engine = REngineThread () self.__model = Model () self.__fsm = DebugStateMachine (self) def wireEngineUp (self): ''' this method connects the REngine's signals. ''' self.connect (self.__engine, SIGNAL ("update (float)"), self.updateImage) self.connect (self.__engine, SIGNAL ("thread_completed()"), self.__fsm.finaliseRender) self.connect (self.__engine, SIGNAL ("inters_created (PyQt_PyObject, PyQt_PyObject)"), self.widget.addIntersection) self.connect (self.__engine, SIGNAL ("vector_created (PyQt_PyObject, PyQt_PyObject, QString)"), self.widget.addArrow) self.connect (self.__engine, SIGNAL ("line_created (PyQt_PyObject, PyQt_PyObject, QString)"), self.widget.addLine) def wireOGLViewerUp (self): ''' this method connects the REngine's signals. ''' self.widget.setModel (self.__model) QObject.connect (self.widget, SIGNAL ("MatrixChanged (PyQt_PyObject)"), self.displayGLMatrix) # call the function run regularly when the focus is on it. (60 FPS if interval = 20) QObject.connect (self.timer, SIGNAL ('timeout()'), self.widget.run) def freezeGLFrameRate (self): self.timer.stop () def speedUpGLFrameRate (self): self.timer.start () self.timer.setInterval (20) def setupUi (self, Form): font = QFont () font.setPointSize (9) font.setBold (False) font.setWeight (50) sizePolicy = QSizePolicy (QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch (0) sizePolicy.setVerticalStretch (0) Form.setObjectName (_fromUtf8("Form")) Form.resize (971, 930) self.plainTextEdit = QPlainTextEdit (Form) self.plainTextEdit.setGeometry (QRect (740, 280, 221, 611)) self.plainTextEdit.setObjectName (_fromUtf8 ("plainTextEdit")) self.plainTextEdit.setFont (font) self.widget = OGLViewer (Form) self.widget.setUi_Form (self) self.widget.setGeometry (QRect (10, 10, 720, 450)) sizePolicy.setHeightForWidth (self.widget.sizePolicy().hasHeightForWidth()) self.widget.setSizePolicy (sizePolicy) self.widget.setObjectName (_fromUtf8 ("widget")) self.wireOGLViewerUp () self.wireEngineUp () self.label_view = QLabel (Form) self.label_view.setGeometry (QRect (10, 470, 720, 450)) sizePolicy.setHeightForWidth (self.label_view.sizePolicy().hasHeightForWidth()) self.label_view.setSizePolicy (sizePolicy) self.label_view.setObjectName (_fromUtf8 ("label_view")) self.initLabel () self.pixmap_item = self.label_view.setPixmap (QPixmap.fromImage (self.image)) # buttons definitions self.renderBtn = QPushButton (Form) self.pauseBtn = QPushButton (Form) self.stopBtn = QPushButton (Form) self.upBtn = QPushButton (Form) self.downBtn = QPushButton (Form) self.moreDownBtn = QPushButton (Form) self.moreUpBtn = QPushButton (Form) self.rightBtn = QPushButton (Form) self.moreRightBtn = QPushButton (Form) self.leftBtn = QPushButton (Form) self.furtherLeft = QPushButton (Form) self.grid_switch = QPushButton (Form) buttons_properties_list = [[self.renderBtn, True, QRect (740, 140, 61, 21), "render"], [self.pauseBtn, False, QRect (740, 120, 61, 21), "pause"], [self.stopBtn, False, QRect (740, 100, 61, 21), "stop"], [self.upBtn, False, QRect (820, 120, 21, 21), "one_row_up"], [self.downBtn, False, QRect (820, 140, 21, 21), "one_row_down"], [self.moreDownBtn, False, QRect (820, 160, 21, 21), "ten_rows_down"], [self.moreUpBtn, False, QRect (820, 100, 21, 21), "ten_rows_up"], [self.rightBtn, False, QRect (780, 180, 21, 21), "one_column_right"], [self.moreRightBtn, False, QRect (800, 180, 21, 21), "ten_columns_right"], [self.leftBtn, False, QRect (760, 180, 21, 21), "one_column_left"], [self.furtherLeft, False, QRect (740, 180, 21, 21), "ten_columns_left"], [self.grid_switch, False, QRect (870, 230, 91, 31), "grid_switch"]] for button in buttons_properties_list: button[0].setEnabled (button[1]) button[0].setGeometry (button[2]) button[0].setFont (font) button[0].setObjectName (_fromUtf8 (button[3])) # other UI elements self.progressBar = QProgressBar (Form) self.progressBar.setGeometry (QRect (740, 901, 221, 20)) self.progressBar.setProperty ("value", 0) self.progressBar.setObjectName (_fromUtf8("progressBar")) self.progressBar.setMinimum (0) self.progressBar.setMaximum (100) self.slider_label = QLabel (Form) self.slider_label.setGeometry (QRect(900, 260, 61, 16)) self.slider_label.setFont(font) self.slider_label.setObjectName (_fromUtf8("slider_label")) self.slider_label.setEnabled (True) self.arrowSizeSlider = QSlider (Form) self.arrowSizeSlider.setGeometry (QRect (740, 258, 151, 22)) self.arrowSizeSlider.setMinimum (2) self.arrowSizeSlider.setMaximum (40) self.arrowSizeSlider.setSingleStep (1) self.arrowSizeSlider.setProperty ("value", 4) self.arrowSizeSlider.setOrientation (Qt.Horizontal) self.arrowSizeSlider.setObjectName (_fromUtf8("arrowSizeSlider")) self.retranslateUi (Form) QMetaObject.connectSlotsByName (Form) def retranslateUi (self, Form): Form.setWindowTitle (_translate ("Form", "RayTracing Debugging Tool", None)) self.renderBtn.setText (_translate ("Form", "Render", None)) self.pauseBtn.setText (_translate ("Form", "Pause", None)) self.stopBtn.setText (_translate ("Form", "Stop", None)) self.upBtn.setText (_translate ("Form", "^", None)) self.downBtn.setText (_translate ("Form", "v", None)) self.moreDownBtn.setText (_translate ("Form", "+", None)) self.moreUpBtn.setText (_translate ("Form", "-", None)) self.rightBtn.setText (_translate ("Form", ">", None)) self.moreRightBtn.setText (_translate ("Form", "+", None)) self.leftBtn.setText (_translate ("Form", "<", None)) self.furtherLeft.setText (_translate ("Form", "-", None)) self.grid_switch.setText (_translate ("Form", "Grid on/off", None)) self.slider_label.setText (_translate ("Form", "Arrows size", None)) self.connect (self.renderBtn, SIGNAL ("clicked()"), self.__fsm.startRendering) self.connect (self.pauseBtn, SIGNAL ("clicked()"), self.__fsm.pauseRendering) self.connect (self.stopBtn, SIGNAL ("clicked()"), self.__fsm.stopRendering) self.connect (self.arrowSizeSlider, SIGNAL ("sliderMoved(int)"), self.resizeArrows) def initLabel (self): color = QColor (250, 250, 250) self.image.fill (color) ''' # test init for i in range (0, 200, 20): for x in range (i, i+20): for y in range (i, i+20): self.image.setPixel (x,y, qRgb (0, 0, 0)) ''' def enableUIButtons (self, boolean_dict): ''' method used by the debug state machine to manage the greyed-out state of buttons. ''' b_dict = dict (boolean_dict) self.renderBtn.setEnabled (b_dict['renderBtn']) self.pauseBtn.setEnabled (b_dict['pauseBtn']) self.stopBtn.setEnabled (b_dict['stopBtn']) self.upBtn.setEnabled (b_dict['upBtn']) self.downBtn.setEnabled (b_dict['downBtn']) self.moreDownBtn.setEnabled (b_dict['moreDownBtn']) self.moreUpBtn.setEnabled (b_dict['moreUpBtn']) self.rightBtn.setEnabled (b_dict['rightBtn']) self.moreRightBtn.setEnabled (b_dict['moreRightBtn']) self.leftBtn.setEnabled (b_dict['leftBtn']) self.furtherLeft.setEnabled (b_dict['furtherLeft']) if b_dict['progressBar'] == 'completed': self.progressBar.setValue (100) elif b_dict['progressBar'] == 'reset': self.progressBar.reset () def addScreenshot (self): ''' it grabs a screenshot of OpenGL viewer and add it into the QImage instance. ''' self.image = self.widget.grabFrameBuffer () self.pixmap_item = self.label_view.setPixmap (QPixmap.fromImage (self.image)) def prepAndStartEngineUp (self): ''' it preps the engine and start it up. ''' self.__engine.setImage (self.image) self.__engine.setCameraNormalMatrix (self.widget.getNormalMatrix(), self.widget.getFovy ()) self.__engine.setModel (self.__model) self.__engine.start () def addCamera (self): self.widget.addCamera () def setIsStoppedFlag (self, boo): self.__engine.setIsStoppedFlag (boo) def setIsPausedFlag (self, boo): self.__engine.setIsPausedFlag (boo) def changeRenderBtnName (self, title): self.renderBtn.setText (_translate ("Form", title, None)) # listeners - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - def resizeArrows (self, e): self.widget.changeArrowsSize (e*0.5) def updateImage (self, e): self.pixmap_item = self.label_view.setPixmap (QPixmap.fromImage (self.image)) self.progressBar.setValue (int(100*e)) def displayGLMatrix (self, e): ''' this method is registered to the MatrixChanged event fired from the OGLViewer component. It prints the model matrix. Only for debugging purposes. ''' pass
class previewDlg(QMainWindow): ''' classdocs ''' def __init__(self, parent, comp, basePMCheck, model): ''' Constructor ''' QMainWindow.__init__(self, parent) self.basePMCheck = basePMCheck # self.ui = Ui_Previewself.grbPageProperty() # self.ui.setupUi(self) self.resize(1000, 700) self.setWindowTitle("Preview Dialog") self.view = QgsComposerView(self) viewLayout = QGridLayout() viewLayout.setSpacing(0) viewLayout.setMargin(0) mHorizontalRuler = QgsComposerRuler(QgsComposerRuler.Horizontal) mVerticalRuler = QgsComposerRuler(QgsComposerRuler.Vertical) mRulerLayoutFix = QWidget() mRulerLayoutFix.setAttribute(Qt.WA_NoMousePropagation) mRulerLayoutFix.setBackgroundRole(QPalette.Window) mRulerLayoutFix.setFixedSize(mVerticalRuler.rulerSize(), mHorizontalRuler.rulerSize()) viewLayout.addWidget(mRulerLayoutFix, 0, 0) viewLayout.addWidget(mHorizontalRuler, 0, 1) viewLayout.addWidget(mVerticalRuler, 1, 0) self.view.setContentsMargins(0, 0, 0, 0) self.view.setHorizontalRuler(mHorizontalRuler) self.view.setVerticalRuler(mVerticalRuler) viewLayout.addWidget(self.view, 1, 1) # self.scene = comp self.view.setZoomLevel(1.0) self.view.setComposition(comp) self.scene = self.view.composition() layout = QVBoxLayout() hLayout = QHBoxLayout() hLayout.addLayout(viewLayout) self.mapItem = self.scene.getComposerMapById(0) self.view.scale(2.8, 2.8) self.view.setPreviewModeEnabled(True) self.toolBarAction = self.addToolBar("composer action") self.actionMapRefresh = QAction(self) self.actionMapRefresh.setObjectName("actionMapRefresh") icon3 = QIcon("Resource/Refresh.png") self.actionMapRefresh.setIcon(icon3) self.actionMapRefresh.setToolTip("Refresh") # self.textItemAction.setCheckable(True) self.connect(self.actionMapRefresh, SIGNAL("triggered()"), self.actionMapRefresh_triggered) self.toolBarAction.addAction(self.actionMapRefresh) # # self.templeteCreateAction = QAction(self) # # self.templeteCreateAction.setObjectName("createTempleteAction") # # icon4 = QIcon("Resource\\templetepointer.png") # # self.templeteCreateAction.setIcon(icon4) # # self.templeteCreateAction.setToolTip("Create Templete") # # self.templeteCreateAction.setCheckable(True) # # self.connect(self.templeteCreateAction, SIGNAL("triggered()"), self.createTempleteAction) # # self.toolBar.addAction(self.templeteCreateAction) # layout.insertWidget(0, self.toolBar) # self.scene.selectedItemChanged.connect(self.selectedItemDisplay) self.view.selectedItemChanged.connect(self.selectedItemDisplay) self.view.cursorPosChanged.connect(self.cursorPosChangedEvent) # self.connect(self.view, SIGNAL("selectedItemChanged(QgsComposerItem)"),self, SLOT("selectedItemDisplay(QgsComposerItem)")) # self.scene.composerLabelAdded.connect(self.composerLabelAddedEvent) self.view.itemRemoved.connect(self.deleteItem) # self.connect( self.view, SIGNAL( "actionFinished()" ), self.setSelectionTool) #listen out for position updates from the QgsComposerView self.propertyWidget = QWidget(self) hLayout.addWidget(self.propertyWidget) self.propertyWidget.setObjectName("propertyWidget") self.propertyWidget.resize(222, 302) self.vLayout_3 = QVBoxLayout(self.propertyWidget) self.vLayout_3.setObjectName("vLayout_3") self.groupBox = QGroupBox(self.propertyWidget) self.groupBox.setObjectName("groupBox") self.horizontalLayout_2 = QHBoxLayout(self.groupBox) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.frame = QFrame(self.groupBox) self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayout = QVBoxLayout(self.frame) self.verticalLayout.setObjectName("verticalLayout") self.label = QLabel(self.frame) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.labelText = QPlainTextEdit(self.frame) self.labelText.setObjectName("labelText") self.verticalLayout.addWidget(self.labelText) self.btnLabelFont = QPushButton(self.frame) self.btnLabelFont.setObjectName("btnLabelFont") self.verticalLayout.addWidget(self.btnLabelFont) self.btnLabelColor = QPushButton(self.frame) self.btnLabelColor.setObjectName("btnLabelColor") self.verticalLayout.addWidget(self.btnLabelColor) self.frame_2 = QFrame(self.frame) self.frame_2.setFrameShape(QFrame.StyledPanel) self.frame_2.setFrameShadow(QFrame.Raised) self.frame_2.setObjectName("frame_2") self.horizontalLayout = QHBoxLayout(self.frame_2) self.horizontalLayout.setObjectName("horizontalLayout") self.label_2 = QLabel(self.frame_2) self.label_2.setObjectName("label_2") self.horizontalLayout.addWidget(self.label_2) self.spinLabelRotation = QSpinBox(self.frame_2) self.spinLabelRotation.setObjectName("spinLabelRotation") self.spinLabelRotation.setMinimum(-360) self.spinLabelRotation.setMaximum(360) self.horizontalLayout.addWidget(self.spinLabelRotation) self.verticalLayout.addWidget(self.frame_2) self.chbBackgroundEnable = QCheckBox(self.frame) self.chbBackgroundEnable.setChecked(True) self.chbBackgroundEnable.setObjectName("chbBackgroundEnable") self.verticalLayout.addWidget(self.chbBackgroundEnable) self.horizontalLayout_2.addWidget(self.frame) self.vLayout_3.addWidget(self.groupBox) self.resolutionFrame = QFrame(self.frame) self.resolutionFrame.setFrameShape(QFrame.StyledPanel) self.resolutionFrame.setFrameShadow(QFrame.Raised) self.resolutionFrame.setObjectName("resolutionFrame") self.horizontalLayout4 = QHBoxLayout(self.resolutionFrame) self.horizontalLayout4.setObjectName("horizontalLayout4") self.label_resolution = QLabel(self.resolutionFrame) self.label_resolution.setObjectName("label_resolution") self.label_resolution.setText("Print Resolution (dpi):") self.horizontalLayout4.addWidget(self.label_resolution) self.spinResolution = QSpinBox(self.resolutionFrame) self.spinResolution.setObjectName("spinResolution") self.spinResolution.setMinimum(0) self.spinResolution.setMaximum(1000) self.spinResolution.setValue(300) self.horizontalLayout4.addWidget(self.spinResolution) # self.verticalLayout.addWidget(self.frame_2) self.vLayout_3.addWidget(self.resolutionFrame) self.gbTable = GroupBox(self.propertyWidget) self.gbTable.Caption = "Table" self.vLayout_3.addWidget(self.gbTable) self.mTableView = QTableView(self.gbTable) self.gbTable.Add = self.mTableView hHeder = self.mTableView.horizontalHeader() hHeder.setVisible(False) vHeder = self.mTableView.verticalHeader() vHeder.setVisible(False) # self.mTableView.setFixedHeight(70) # self.mTableView.setFixedWidth(comp.paperWidth() - 40) # self.stdItemModel = QStandardItemModel() # self. self.spaceItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.vLayout_3.addItem(self.spaceItem) self.groupBox.setTitle("Label Property") self.label.setText("Label Text:") self.btnLabelFont.setText("Label Font") self.btnLabelColor.setText("Label Color") self.label_2.setText("Label Rotation:") self.chbBackgroundEnable.setText("Background Enable") self.groupBox.setEnabled(False) self.connect(self.btnLabelFont, SIGNAL("clicked()"), self.btnLabelFontClick) self.connect(self.btnLabelColor, SIGNAL("clicked()"), self.btnLabelColorClick) self.connect(self.chbBackgroundEnable, SIGNAL("clicked()"), self.chbBackgroundEnableClick) self.labelText.textChanged.connect(self.labelTextChanged) self.spinLabelRotation.valueChanged.connect( self.spinLabelRotationValueChanged) layout.addLayout(hLayout) # self.btnBack = QPushButton() self.btnBack.setText("back") footerLayout = QHBoxLayout() footerLayout.addWidget(self.btnBack) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") footerLayout.addWidget(self.buttonBox) layout.addLayout(footerLayout) self.setLayout(layout) deleteItemKey = QShortcut(QKeySequence(Qt.Key_Delete), self) deleteItemKey.activated.connect(self.deleteItem) # self.btnBack.clicked.connect(self.back) self.connect(self.buttonBox, SIGNAL("accepted()"), self.acceptMethod) self.connect(self.buttonBox, SIGNAL("rejected()"), self.reject) self.btnCancel = self.buttonBox.button(QDialogButtonBox.Cancel) self.view.setCurrentTool(QgsComposerView.Select) self.btnLabelColor.setVisible(False) # self.btnBack.setVisible(False) self.chbBackgroundEnable.setVisible(False) # self.view.emit(SIGNAL("actionFinished")) # if self.scene.plotStyle() != QgsComposition.Preview: # self.scene.setPlotStyle(QgsComposition.Preview) # self.mapItem.setPreviewMode(QgsComposerMap.Render) # self.mapItem.updateCachedImage() # self.mapItem.setSelected(True) self.mComposition = comp self.composerMapItem = self.mComposition.composerMapItems()[0] self.composerMapItem.setUpdatesEnabled(True) self.mStdModel = model self.mTableView.setModel(self.mStdModel) self.mTableView.setSpan(0, 0, 1, 6) self.mTableView.setSpan(1, 0, 1, 2) self.mTableView.setSpan(2, 0, 2, 1) self.mTableView.setSpan(4, 0, 1, 2) self.mTableView.setSpan(5, 0, 1, 2) self.mTableView.setSpan(6, 0, 1, 2) self.mTableView.setSpan(0, 6, 1, 8) self.mTableView.setSpan(1, 7, 1, 4) self.mTableView.setSpan(1, 11, 1, 3) self.mTableView.setSpan(2, 7, 1, 4) self.mTableView.setSpan(2, 11, 1, 3) def acceptMethod(self): # self.mStdModel.setItem(0, QStandardItem("nnnnnnnn")) filePath = QFileDialog.getSaveFileName( self, "Save PDF File", QCoreApplication.applicationDirPath(), "pdf files(*.pdf )") if filePath == "": return self.mComposition.clearSelection() self.mComposition.setPrintResolution(self.spinResolution.value()) resultPdf = self.mComposition.exportAsPDF(filePath) if resultPdf: message = QMessageBox.information(self, "Result", "Successful export PDF") else: message = QMessageBox.information(self, "Result", "Don't export PDF") def rePresent(self, comp, model): self.mComposition = comp self.mStdModel = model self.view.setComposition(comp) self.scene = self.view.composition() def back(self): self.done(2) def spinLabelRotationValueChanged(self, rotationValue): self.selectedLabelItem.setItemRotation(rotationValue) def cursorPosChangedEvent(self, scenePointF): self.scenePoint = scenePointF # i = 100 def labelTextChanged(self): self.selectedLabelItem.beginCommand( "Label text changed", QgsComposerMergeCommand.ComposerLabelSetText) self.selectedLabelItem.blockSignals(True) self.selectedLabelItem.setText(self.labelText.toPlainText()) self.selectedLabelItem.update() self.selectedLabelItem.blockSignals(False) self.selectedLabelItem.endCommand() def chbBackgroundEnableClick(self): if self.chbBackgroundEnable.isChecked(): self.selectedLabelItem.setBackgroundEnabled(True) self.mapItem.updateCachedImage() else: self.selectedLabelItem.setBackgroundEnabled(False) self.mapItem.updateCachedImage() def btnLabelFontClick(self): dlgFont = QFontDialog(self) dlgFont.setCurrentFont(self.selectedLabelItem.font()) result = dlgFont.exec_() if result == 1: self.labelFont = dlgFont.selectedFont() else: self.labelFont = QFont() self.selectedLabelItem.setFont(self.labelFont) def btnLabelColorClick(self): dlgColor = QColorDialog(self) dlgColor.setCurrentColor(self.selectedLabelItem.fontColor()) result = dlgColor.exec_() if result == 1: self.labelColor = dlgColor.selectedColor() self.selectedLabelItem.setFontColor(self.labelColor) def createTempleteAction(self): if self.templeteCreateAction.isChecked() and self.basePMCheck: font = QFont("Arial", 13) font.setItalic(True) self.compLabel1 = QgsComposerLabel(self.scene) self.compLabel1.setFont(font) self.compLabel1.setText("South China Sea") self.compLabel1.setBackgroundEnabled(False) self.compLabel1.setItemPosition(156, 100) self.compLabel1.adjustSizeToText() self.compLabel1.setItemRotation(60) # mapitem = self.scene.composerMapItems() # mapitem[0].addItem(self.compLabel1) self.scene.addItem(self.compLabel1) self.compLabel2 = QgsComposerLabel(self.scene) self.compLabel2.setFont(font) self.compLabel2.setText("Straits Of Malacca") self.compLabel2.setBackgroundEnabled(False) self.compLabel2.setItemPosition(35, 100) self.compLabel2.adjustSizeToText() self.compLabel2.setItemRotation(60) self.scene.addItem(self.compLabel2) font.setItalic(False) self.compLabel3 = QgsComposerLabel(self.scene) self.compLabel3.setFont(font) self.compLabel3.setBackgroundEnabled(False) self.compLabel3.setText("THAILAND") self.compLabel3.setItemPosition(68, 60) self.compLabel3.adjustSizeToText() # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel3) # self.templeteCreateAction.setChecked(False) self.compLabel4 = QgsComposerLabel(self.scene) self.compLabel4.setFont(font) self.compLabel4.setBackgroundEnabled(False) self.compLabel4.setText("SINGAPORE") self.compLabel4.setItemPosition(141, 218) self.compLabel4.adjustSizeToText() # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel4) self.templeteCreateAction.setChecked(False) self.compLabel4.setSelected(True) elif self.templeteCreateAction.isChecked( ) and self.basePMCheck == False: font = QFont("Arial", 14) font.setItalic(True) self.compLabel5 = QgsComposerLabel(self.scene) self.compLabel5.setFont(font) self.compLabel5.setText("South China Sea") self.compLabel5.setBackgroundEnabled(False) self.compLabel5.setItemPosition(108, 86) self.compLabel5.adjustSizeToText() self.compLabel5.setItemRotation(-45) # mapitem = self.scene.composerMapItems() # mapitem[0].addItem(self.compLabel1) self.scene.addItem(self.compLabel5) self.compLabel6 = QgsComposerLabel(self.scene) self.compLabel6.setFont(font) self.compLabel6.setText("Sulu Sea") self.compLabel6.setBackgroundEnabled(False) self.compLabel6.setItemPosition(236, 38) self.compLabel6.adjustSizeToText() self.compLabel6.setItemRotation(45) self.scene.addItem(self.compLabel6) font.setItalic(False) self.compLabel7 = QgsComposerLabel(self.scene) self.compLabel7.setFont(font) self.compLabel7.setBackgroundEnabled(False) self.compLabel7.setText("Celebes Sea") self.compLabel7.setItemPosition(242, 112) self.compLabel7.adjustSizeToText() self.compLabel7.setItemRotation(-45) # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel7) # self.templeteCreateAction.setChecked(False) self.compLabel8 = QgsComposerLabel(self.scene) self.compLabel8.setFont(font) self.compLabel8.setBackgroundEnabled(False) self.compLabel8.setText("INDONESIA\n(Kalimantan)") self.compLabel8.setItemPosition(172, 148, 32, 16) # self.compLabel8.setHAlign(Qt.AlignHCenter) # self.compLabel8.setVAlign(Qt.AlignVCenter) # self.compLabel8.setFrameEnabled(False) # self.compLabel8.setItemPosition() # self.compLabel8.adjustSizeToText() # self.compLabl3.setItemRotation(0.5) self.scene.addItem(self.compLabel8) self.compLabel9 = QgsComposerLabel(self.scene) self.compLabel9.setFont(font) self.compLabel9.setBackgroundEnabled(False) self.compLabel9.setText("BRUNEI") self.compLabel9.setItemPosition(136, 83) self.compLabel9.adjustSizeToText() # self.compLabl3.setItemRotation(0.5) self.scene.addItem(self.compLabel9) self.templeteCreateAction.setChecked(False) pass def actionMapRefresh_triggered(self): self.view.setCurrentTool(QgsComposerView.AddRectangle) def setSelectionTool(self): self.view.deleteSelectedItems() font = QFont("Arial", 14) newLabelItem = QgsComposerLabel(self.scene) newLabelItem.setText("QGIS") newLabelItem.setFont(font) newLabelItem.setItemPosition(self.scenePoint.x(), self.scenePoint.y()) newLabelItem.adjustSizeToText() self.scene.addItem(newLabelItem) # selectItemPoint = self.scene.composerItemAt(self.scenePoint) newLabelItem.setSelected(True) self.groupBox.setEnabled(True) self.selectedLabelItem = newLabelItem # txt = self.selectedLabelItem.text() # textDoc = QTextDocument(txt) self.labelText.setPlainText(self.selectedLabelItem.text()) # self.scene.setSelectedItem(self.newLabelItem) self.view.setCurrentTool(QgsComposerView.Select) # self.selectedLabelItem = self.view.currentTool() self.textItemAction.setChecked(False) def selectedItemDisplay(self, item): if self.scene.plotStyle() != QgsComposition.Preview: self.scene.setPlotStyle(QgsComposition.Preview) self.mapItem.setPreviewMode(QgsComposerMap.Render) self.mapItem.updateCachedImage() item._class_ = QgsComposerLabel # selectedItems = self.scene.selectedComposerItems(True) # if isinstance(item, QgsComposerItem): # self.selectedLabelItem = item # if isinstance(item, QGraphicsRectItem): # self.selectedLabelItem = item if isinstance(item, QgsComposerLabel): self.selectedLabelItem = item self.groupBox.setEnabled(True) self.labelText.setPlainText(self.selectedLabelItem.text()) self.spinLabelRotation.setValue(self.selectedLabelItem.rotation()) else: self.groupBox.setEnabled(False) # print "debug" itemName = self.view.currentTool() if itemName == 5: item.setText("label") pass def deleteItem(self): self.view.deleteSelectedItems()
class Ui_ProjectorEditForm(object): """ The :class:`~openlp.core.lib.ui.projector.editform.Ui_ProjectorEditForm` class defines the user interface for the ProjectorEditForm dialog. """ def setupUi(self, edit_projector_dialog): """ Create the interface layout. """ edit_projector_dialog.setObjectName('edit_projector_dialog') edit_projector_dialog.setWindowIcon( build_icon(u':/icon/openlp-logo-32x32.png')) edit_projector_dialog.setMinimumWidth(400) edit_projector_dialog.setModal(True) # Define the basic layout self.dialog_layout = QGridLayout(edit_projector_dialog) self.dialog_layout.setObjectName('dialog_layout') self.dialog_layout.setSpacing(8) self.dialog_layout.setContentsMargins(8, 8, 8, 8) # IP Address self.ip_label = QLabel(edit_projector_dialog) self.ip_label.setObjectName('projector_edit_ip_label') self.ip_text = QLineEdit(edit_projector_dialog) self.ip_text.setObjectName('projector_edit_ip_text') self.dialog_layout.addWidget(self.ip_label, 0, 0) self.dialog_layout.addWidget(self.ip_text, 0, 1) # Port number self.port_label = QLabel(edit_projector_dialog) self.port_label.setObjectName('projector_edit_ip_label') self.port_text = QLineEdit(edit_projector_dialog) self.port_text.setObjectName('projector_edit_port_text') self.dialog_layout.addWidget(self.port_label, 1, 0) self.dialog_layout.addWidget(self.port_text, 1, 1) # PIN self.pin_label = QLabel(edit_projector_dialog) self.pin_label.setObjectName('projector_edit_pin_label') self.pin_text = QLineEdit(edit_projector_dialog) self.pin_label.setObjectName('projector_edit_pin_text') self.dialog_layout.addWidget(self.pin_label, 2, 0) self.dialog_layout.addWidget(self.pin_text, 2, 1) # Name self.name_label = QLabel(edit_projector_dialog) self.name_label.setObjectName('projector_edit_name_label') self.name_text = QLineEdit(edit_projector_dialog) self.name_text.setObjectName('projector_edit_name_text') self.dialog_layout.addWidget(self.name_label, 3, 0) self.dialog_layout.addWidget(self.name_text, 3, 1) # Location self.location_label = QLabel(edit_projector_dialog) self.location_label.setObjectName('projector_edit_location_label') self.location_text = QLineEdit(edit_projector_dialog) self.location_text.setObjectName('projector_edit_location_text') self.dialog_layout.addWidget(self.location_label, 4, 0) self.dialog_layout.addWidget(self.location_text, 4, 1) # Notes self.notes_label = QLabel(edit_projector_dialog) self.notes_label.setObjectName('projector_edit_notes_label') self.notes_text = QPlainTextEdit(edit_projector_dialog) self.notes_text.setObjectName('projector_edit_notes_text') self.dialog_layout.addWidget(self.notes_label, 5, 0, alignment=QtCore.Qt.AlignTop) self.dialog_layout.addWidget(self.notes_text, 5, 1) # Time for the buttons self.button_box = QDialogButtonBox(QDialogButtonBox.Help | QDialogButtonBox.Save | QDialogButtonBox.Cancel) self.dialog_layout.addWidget(self.button_box, 8, 0, 1, 2) def retranslateUi(self, edit_projector_dialog): if self.new_projector: title = translate('OpenLP.ProjectorEditForm', 'Add New Projector') self.projector.port = PJLINK_PORT else: title = translate('OpenLP.ProjectorEditForm', 'Edit Projector') edit_projector_dialog.setWindowTitle(title) self.ip_label.setText( translate('OpenLP.ProjectorEditForm', 'IP Address')) self.ip_text.setText(self.projector.ip) self.ip_text.setFocus() self.port_label.setText( translate('OpenLP.ProjectorEditForm', 'Port Number')) self.port_text.setText(str(self.projector.port)) self.pin_label.setText(translate('OpenLP.ProjectorEditForm', 'PIN')) self.pin_text.setText(self.projector.pin) self.name_label.setText(translate('OpenLP.ProjectorEditForm', 'Name')) self.name_text.setText(self.projector.name) self.location_label.setText( translate('OpenLP.ProjectorEditForm', 'Location')) self.location_text.setText(self.projector.location) self.notes_label.setText(translate('OpenLP.ProjectorEditForm', 'Notes')) self.notes_text.clear() self.notes_text.insertPlainText(self.projector.notes)
class Ui_ProjectorEditForm(object): """ The :class:`~openlp.core.lib.ui.projector.editform.Ui_ProjectorEditForm` class defines the user interface for the ProjectorEditForm dialog. """ def setupUi(self, edit_projector_dialog): """ Create the interface layout. """ edit_projector_dialog.setObjectName('edit_projector_dialog') edit_projector_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo-32x32.png')) edit_projector_dialog.setMinimumWidth(400) edit_projector_dialog.setModal(True) # Define the basic layout self.dialog_layout = QGridLayout(edit_projector_dialog) self.dialog_layout.setObjectName('dialog_layout') self.dialog_layout.setSpacing(8) self.dialog_layout.setContentsMargins(8, 8, 8, 8) # IP Address self.ip_label = QLabel(edit_projector_dialog) self.ip_label.setObjectName('projector_edit_ip_label') self.ip_text = QLineEdit(edit_projector_dialog) self.ip_text.setObjectName('projector_edit_ip_text') self.dialog_layout.addWidget(self.ip_label, 0, 0) self.dialog_layout.addWidget(self.ip_text, 0, 1) # Port number self.port_label = QLabel(edit_projector_dialog) self.port_label.setObjectName('projector_edit_ip_label') self.port_text = QLineEdit(edit_projector_dialog) self.port_text.setObjectName('projector_edit_port_text') self.dialog_layout.addWidget(self.port_label, 1, 0) self.dialog_layout.addWidget(self.port_text, 1, 1) # PIN self.pin_label = QLabel(edit_projector_dialog) self.pin_label.setObjectName('projector_edit_pin_label') self.pin_text = QLineEdit(edit_projector_dialog) self.pin_label.setObjectName('projector_edit_pin_text') self.dialog_layout.addWidget(self.pin_label, 2, 0) self.dialog_layout.addWidget(self.pin_text, 2, 1) # Name self.name_label = QLabel(edit_projector_dialog) self.name_label.setObjectName('projector_edit_name_label') self.name_text = QLineEdit(edit_projector_dialog) self.name_text.setObjectName('projector_edit_name_text') self.dialog_layout.addWidget(self.name_label, 3, 0) self.dialog_layout.addWidget(self.name_text, 3, 1) # Location self.location_label = QLabel(edit_projector_dialog) self.location_label.setObjectName('projector_edit_location_label') self.location_text = QLineEdit(edit_projector_dialog) self.location_text.setObjectName('projector_edit_location_text') self.dialog_layout.addWidget(self.location_label, 4, 0) self.dialog_layout.addWidget(self.location_text, 4, 1) # Notes self.notes_label = QLabel(edit_projector_dialog) self.notes_label.setObjectName('projector_edit_notes_label') self.notes_text = QPlainTextEdit(edit_projector_dialog) self.notes_text.setObjectName('projector_edit_notes_text') self.dialog_layout.addWidget(self.notes_label, 5, 0, alignment=QtCore.Qt.AlignTop) self.dialog_layout.addWidget(self.notes_text, 5, 1) # Time for the buttons self.button_box = QDialogButtonBox(QDialogButtonBox.Help | QDialogButtonBox.Save | QDialogButtonBox.Cancel) self.dialog_layout.addWidget(self.button_box, 8, 0, 1, 2) def retranslateUi(self, edit_projector_dialog): if self.new_projector: title = translate('OpenLP.ProjectorEditForm', 'Add New Projector') self.projector.port = PJLINK_PORT else: title = translate('OpenLP.ProjectorEditForm', 'Edit Projector') edit_projector_dialog.setWindowTitle(title) self.ip_label.setText(translate('OpenLP.ProjectorEditForm', 'IP Address')) self.ip_text.setText(self.projector.ip) self.ip_text.setFocus() self.port_label.setText(translate('OpenLP.ProjectorEditForm', 'Port Number')) self.port_text.setText(str(self.projector.port)) self.pin_label.setText(translate('OpenLP.ProjectorEditForm', 'PIN')) self.pin_text.setText(self.projector.pin) self.name_label.setText(translate('OpenLP.ProjectorEditForm', 'Name')) self.name_text.setText(self.projector.name) self.location_label.setText(translate('OpenLP.ProjectorEditForm', 'Location')) self.location_text.setText(self.projector.location) self.notes_label.setText(translate('OpenLP.ProjectorEditForm', 'Notes')) self.notes_text.clear() self.notes_text.insertPlainText(self.projector.notes)
class DlgAnular( QDialog ): def __init__( self , numero, parent = None ): super( DlgAnular, self ).__init__( parent ) self.cboConceptos = QComboBox( self ) self.cboConceptos.setObjectName( "cboConceptos" ) self.txtObservaciones = QPlainTextEdit( self ) self.txtObservaciones.setObjectName( "txtObservaciones" ) self.setupUi() #QtCore.QMetaObject.connectSlotsByName(self) self.conceptosmodel = QSqlQueryModel() self.conceptosmodel.setQuery( """ SELECT idconcepto,descripcion FROM conceptos c WHERE idtipodoc = %d ; """ % constantes.IDANULACION ) self.cboConceptos.setModel( self.conceptosmodel ) self.cboConceptos.setCurrentIndex( -1 ) self.cboConceptos.setModelColumn( 1 ) self.numero = numero self.lblnfactura2.setText( str( self.numero ) ) def setupUi( self ): self.setObjectName( "frmAnulaciones" ) self.setWindowTitle( "Seleccione la factura a anular" ) self.resize( 485, 300 ) gridLayout = QGridLayout( self ) gridLayout.setObjectName( "gridLayout" ) lblnfactura = QLabel( self ) lblnfactura.setObjectName( "lblnfactura" ) lblnfactura.setText( "# Factura" ) gridLayout.addWidget( lblnfactura, 0, 0, 1, 1 ) self.lblnfactura2 = QLabel( self ) self.lblnfactura2.setFrameShape( QFrame.Box ) self.lblnfactura2.setText( "" ) self.lblnfactura2.setObjectName( "lblnfactura2" ) gridLayout.addWidget( self.lblnfactura2, 0, 1, 1, 1 ) lblconcepto = QLabel( self ) lblconcepto.setObjectName( "lblconcepto" ) lblconcepto.setText( "Concepto" ) gridLayout.addWidget( lblconcepto, 1, 0, 1, 1 ) gridLayout.addWidget( self.cboConceptos, 1, 1, 1, 1 ) lblobservaciones = QLabel( self ) lblobservaciones.setObjectName( "lblobservaciones" ) lblobservaciones.setText( "Observaciones" ) gridLayout.addWidget( lblobservaciones, 2, 0, 1, 1 ) gridLayout.addWidget( self.txtObservaciones, 3, 1, 1, 1 ) buttonBox = QDialogButtonBox( self ) buttonBox.setOrientation( Qt.Horizontal ) buttonBox.setStandardButtons( QDialogButtonBox.Cancel | QDialogButtonBox.Ok ) buttonBox.setObjectName( "buttonBox" ) gridLayout.addWidget( buttonBox, 4, 0, 1, 2 ) buttonBox.accepted.connect( self.accept ) buttonBox.rejected.connect( self.reject )
def _update_client_tab(self): print '[_update_client_tab]' self.pre_selected_client_name = self.cur_selected_client_name self._widget.tabWidget.clear() for k in self._graph._client_info_list.values(): main_widget=QWidget() ver_layout=QVBoxLayout(main_widget) ver_layout.setContentsMargins (9,9,9,9) ver_layout.setSizeConstraint (ver_layout.SetDefaultConstraint) #button layout sub_widget=QWidget() sub_widget.setAccessibleName('sub_widget') btn_grid_layout=QGridLayout(sub_widget) btn_grid_layout.setContentsMargins (9,9,9,9) btn_grid_layout.setColumnStretch (1, 0) btn_grid_layout.setRowStretch (2, 0) invite_btn=QPushButton("Invite") platform_info_btn=QPushButton("Get Platform Info") status_btn=QPushButton("Get Status") start_app_btn=QPushButton("Start App") stop_app_btn=QPushButton("Stop App") invite_btn.clicked.connect(lambda: self._start_service(self._widget.tabWidget.tabText(self._widget.tabWidget.currentIndex()),"invite")) platform_info_btn.clicked.connect(lambda: self._start_service(self._widget.tabWidget.tabText(self._widget.tabWidget.currentIndex()),"platform_info")) status_btn.clicked.connect(lambda: self._start_service(self._widget.tabWidget.tabText(self._widget.tabWidget.currentIndex()),"status")) start_app_btn.clicked.connect(lambda: self._start_service(self._widget.tabWidget.tabText(self._widget.tabWidget.currentIndex()),"start_app")) stop_app_btn.clicked.connect(lambda: self._start_service(self._widget.tabWidget.tabText(self._widget.tabWidget.currentIndex()),"stop_app")) btn_grid_layout.addWidget(invite_btn) btn_grid_layout.addWidget(platform_info_btn) btn_grid_layout.addWidget(status_btn) btn_grid_layout.addWidget(start_app_btn) btn_grid_layout.addWidget(stop_app_btn) ver_layout.addWidget(sub_widget) #client information layout context_label = QLabel() context_label.setText("Client information") ver_layout.addWidget(context_label) app_context_widget=QPlainTextEdit() app_context_widget.setObjectName(k["name"]+'_'+'app_context_widget') app_context_widget.setAccessibleName('app_context_widget') app_context_widget.appendHtml(k["app_context"]) app_context_widget.setReadOnly(True) cursor = app_context_widget.textCursor() cursor.movePosition(QTextCursor.Start,QTextCursor.MoveAnchor,0) app_context_widget.setTextCursor(cursor) ver_layout.addWidget(app_context_widget) #service layout context_label = QLabel() context_label.setText("Service result") ver_layout.addWidget(context_label) services_text_widget=QPlainTextEdit() services_text_widget.setObjectName(k["name"]+'_'+'services_text_widget') services_text_widget.setReadOnly(True) cursor = services_text_widget.textCursor() cursor.movePosition(QTextCursor.Start,QTextCursor.MoveAnchor,0) services_text_widget.setTextCursor(cursor) ver_layout.addWidget(services_text_widget) # new icon path="" if k["is_new"]==True: path=os.path.join(os.path.dirname(os.path.abspath(__file__)),"../../resources/images/new.gif") #add tab self._widget.tabWidget.addTab(main_widget,QIcon(path), k["name"]); #set previous selected tab for k in range(self._widget.tabWidget.count()): tab_text=self._widget.tabWidget.tabText(k) if tab_text == self.pre_selected_client_name: self._widget.tabWidget.setCurrentIndex(k)
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(300, 270) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.buttonSave = QPushButton(self.centralwidget) self.buttonSave.setGeometry(QRect(120, 235, 71, 32)) self.buttonSave.setObjectName(_fromUtf8("buttonSave")) self.inputFolder = QLineEdit(self.centralwidget) self.inputFolder.setGeometry(QRect(130, 10, 131, 23)) self.inputFolder.setObjectName(_fromUtf8("inputFolder")) self.buttonSelectFolder = QToolButton(self.centralwidget) self.buttonSelectFolder.setGeometry(QRect(263, 10, 27, 23)) self.buttonSelectFolder.setToolButtonStyle(Qt.ToolButtonIconOnly) self.buttonSelectFolder.setAutoRaise(False) self.buttonSelectFolder.setArrowType(Qt.NoArrow) self.buttonSelectFolder.setObjectName(_fromUtf8("buttonSelectFolder")) self.labelFolder = QLabel(self.centralwidget) self.labelFolder.setGeometry(QRect(10, 13, 101, 16)) self.labelFolder.setObjectName(_fromUtf8("labelFolder")) self.inputLogin = QLineEdit(self.centralwidget) self.inputLogin.setGeometry(QRect(130, 40, 161, 23)) self.inputLogin.setObjectName(_fromUtf8("inputLogin")) self.inputPassword = QLineEdit(self.centralwidget) self.inputPassword.setGeometry(QRect(130, 70, 161, 23)) self.inputPassword.setObjectName(_fromUtf8("inputPassword")) self.labelLogin = QLabel(self.centralwidget) self.labelLogin.setGeometry(QRect(10, 42, 62, 16)) self.labelLogin.setObjectName(_fromUtf8("labelLogin")) self.labelPassword = QLabel(self.centralwidget) self.labelPassword.setGeometry(QRect(10, 72, 62, 16)) self.labelPassword.setObjectName(_fromUtf8("labelPassword")) self.output = QPlainTextEdit(self.centralwidget) self.output.setEnabled(True) self.output.setGeometry(QRect(10, 100, 281, 131)) self.output.viewport().setProperty("cursor", QCursor(Qt.IBeamCursor)) self.output.setReadOnly(True) self.output.setObjectName(_fromUtf8("output")) font = QApplication.font() font.setPointSize(11) self.output.setFont(font) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) self.connectSignals() QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QApplication.translate("MainWindow", "TDS Dropbox setup", None, QApplication.UnicodeUTF8)) self.buttonSave.setText(QApplication.translate("MainWindow", "Save", None, QApplication.UnicodeUTF8)) self.buttonSelectFolder.setText(QApplication.translate("MainWindow", "...", None, QApplication.UnicodeUTF8)) self.labelFolder.setText(QApplication.translate("MainWindow", "Folder to sync", None, QApplication.UnicodeUTF8)) self.labelLogin.setText(QApplication.translate("MainWindow", "Login", None, QApplication.UnicodeUTF8)) self.labelPassword.setText(QApplication.translate("MainWindow", "Password", None, QApplication.UnicodeUTF8)) def connectSignals(self): QObject.connect(self.buttonSelectFolder, SIGNAL("clicked()"), self.selectFolder) QObject.connect(self.centralwidget, SIGNAL("folderIsSet(PyQt_PyObject)"), self.setFolder) QObject.connect(self.buttonSave, SIGNAL("clicked()"), self.validateData) def selectFolder(self): folder = QFileDialog.getExistingDirectory(self.centralwidget, "Choose folder to sync", os.getenv("HOME")) QObject.emit(self.centralwidget, SIGNAL("folderIsSet(PyQt_PyObject)"), folder) def setFolder(self, folder): self.inputFolder.setText(folder) def validateData(self): validate = True if (len(self.inputFolder.text()) == 0): self.error("You haven't choose the dir to sync!") validate = False if (len(self.inputLogin.text()) == 0): self.error("You havent enter the login!") validate = False if (len(self.inputPassword.text()) == 0): self.error("You haven't enter the password!") validate = False if (validate): self.lockGui() self.out("setup start") self.setupSync({"folder": self.inputFolder.text(), "login": self.inputLogin.text(), "password": self.inputPassword.text()}) self.unlockGui() def lockGui(self): self.inputFolder.setReadOnly(True) self.inputLogin.setReadOnly(True) self.inputPassword.setReadOnly(True) self.buttonSave.setDisabled(True) self.buttonSelectFolder.setDisabled(True) def unlockGui(self): self.inputFolder.setReadOnly(False) self.inputLogin.setReadOnly(False) self.inputPassword.setReadOnly(False) self.buttonSave.setDisabled(False) self.buttonSelectFolder.setDisabled(False) def setupSync(self, data): p = Popen(["./letssync.sh", "-u%(login)s" % data, "-p%(password)s" % data, "%(folder)s" % data]) if (p.wait() != 0): self.error("an error occuring during setup!") else: self.out("setup complete!") def error(self, message): self.out("ERROR: {}".format(message)) def out(self, message): self.output.appendPlainText("{0} :: {1}".format(datetime.now().strftime("%H:%M"), message))
class PrjDlg(QDialog): """ A dialog for adding new project. """ def __init__(self, mc, iw): """ Constructor. :param mc: A reference to the main class. :type mc: object :param iw: A reference to the insert window. :type iw: QMainWindow """ super(QDialog, self).__init__() self.mc = mc self.iw = iw self._setup_self() def _setup_self(self): """ Sets up self. """ self.setObjectName(u'PrjDlg') self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.setWindowTitle(u'Add Project') self.grid_lyt = QGridLayout(self) self.grid_lyt.setObjectName(u'grid_lyt') self.grid_lyt.setColumnMinimumWidth(1, 300) self._build_wdgs() def _build_wdgs(self): """ Builds own widgets. """ self.org_lbl = QLabel(self) self.org_lbl.setObjectName(u'org_lbl') self.org_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.org_lbl.setText(u'organization') self.grid_lyt.addWidget(self.org_lbl, 0, 0, 1, 1) self.org_cb = QComboBox(self) self.org_cb.setObjectName(u'org_cb') self.grid_lyt.addWidget(self.org_cb, 0, 1, 1, 1) self.no_lbl = QLabel(self) self.no_lbl.setObjectName(u'no_lbl') self.no_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.no_lbl.setText(u'projectNumber') self.grid_lyt.addWidget(self.no_lbl, 1, 0, 1, 1) self.no_le = QLineEdit(self) self.no_le.setObjectName(u'no_le') self.grid_lyt.addWidget(self.no_le, 1, 1, 1, 1) self.name_lbl = QLabel(self) self.name_lbl.setObjectName(u'name_lbl') self.name_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.name_lbl.setText(u'projectName') self.grid_lyt.addWidget(self.name_lbl, 2, 0, 1, 1) self.name_le = QLineEdit(self) self.name_le.setObjectName(u'name_le') self.grid_lyt.addWidget(self.name_le, 2, 1, 1, 1) self.styr_lbl = QLabel(self) self.styr_lbl.setObjectName(u'styr_lbl') self.styr_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.styr_lbl.setText(u'startYear') self.grid_lyt.addWidget(self.styr_lbl, 3, 0, 1, 1) self.styr_mde = de.MtyDe(self) self.styr_mde.setObjectName(u'styr_mde') self.styr_mde.setDisplayFormat('yyyy') self.grid_lyt.addWidget(self.styr_mde, 3, 1, 1, 1) self.endyr_lbl = QLabel(self) self.endyr_lbl.setObjectName(u'endyr_lbl') self.endyr_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.endyr_lbl.setText(u'endYear') self.grid_lyt.addWidget(self.endyr_lbl, 4, 0, 1, 1) self.endyr_mde = de.MtyDe(self) self.endyr_mde.setObjectName(u'endyr_mde') self.endyr_mde.setDisplayFormat('yyyy') self.grid_lyt.addWidget(self.endyr_mde, 4, 1, 1, 1) self.ldr_lbl = QLabel(self) self.ldr_lbl.setObjectName(u'ldr_lbl') self.ldr_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.ldr_lbl.setText(u'projectLeader') self.grid_lyt.addWidget(self.ldr_lbl, 5, 0, 1, 1) self.ldr_le = QLineEdit(self) self.ldr_le.setObjectName(u'ldr_le') self.grid_lyt.addWidget(self.ldr_le, 5, 1, 1, 1) self.mbr_lbl = QLabel(self) self.mbr_lbl.setObjectName(u'mbr_lbl') self.mbr_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.mbr_lbl.setText(u'projectMembers') self.grid_lyt.addWidget(self.mbr_lbl, 6, 0, 1, 1) self.mbr_pte = QPlainTextEdit(self) self.mbr_pte.setObjectName(u'mbr_pte') self.grid_lyt.addWidget(self.mbr_pte, 6, 1, 1, 1) self.fncr_lbl = QLabel(self) self.fncr_lbl.setObjectName(u'fncr_lbl') self.fncr_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.fncr_lbl.setText(u'financer') self.grid_lyt.addWidget(self.fncr_lbl, 7, 0, 1, 1) self.fncr_le = QLineEdit(self) self.fncr_le.setObjectName(u'fncr_le') self.grid_lyt.addWidget(self.fncr_le, 7, 1, 1, 1) self.rmk_lbl = QLabel(self) self.rmk_lbl.setObjectName(u'rmk_lbl') self.rmk_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.rmk_lbl.setText(u'remarks') self.grid_lyt.addWidget(self.rmk_lbl, 8, 0, 1, 1) self.rmk_pte = QPlainTextEdit(self) self.rmk_pte.setObjectName(u'rmk_pte') self.grid_lyt.addWidget(self.rmk_pte, 8, 1, 1, 1) self.mand_wdgs = [ self.org_cb, self.no_le, self.name_le, self.styr_mde, self.ldr_le, self.fncr_le ] self.iw.set_mand_wdgs(self.mand_wdgs) # temporary workaround self.no_le.setValidator( vald.LenIntVald(self.no_le, -2147483648, 2147483647)) self._fetch_prj_data() # to keep order self.input_wdgs = [ self.org_cb, self.no_le, self.name_le, self.styr_mde, self.endyr_mde, self.ldr_le, self.mbr_pte, self.fncr_le, self.rmk_pte ] self.btn_lyt = QHBoxLayout() self.grid_lyt.addLayout(self.btn_lyt, 9, 1, 1, 1) self.sv_btn = QPushButton(self) self.sv_btn.setObjectName(u'sv_btn') self.sv_btn.setText(u'Save') self.sv_btn.clicked.connect(self._save_prj) self.btn_lyt.addWidget(self.sv_btn) self.cl_btn = QPushButton(self) self.cl_btn.setObjectName(u'ok_btn') self.cl_btn.setText(u'Close') self.cl_btn.clicked.connect(self.close) self.btn_lyt.addWidget(self.cl_btn) def _fetch_prj_data(self): """ Fetches data from the NOFA database and populates widgets. """ self.iw.pop_cb(self._prj_cb_dict) @property def _prj_cb_dict(self): """ Returns a project combo box dictionary. :returns: | A project combo box dictionary: | - key - combo_box_name | - value - [<fill method>, [<arguments>], <default value>] :rtype: dict """ dtst_cb_dict = { self.org_cb: [db.get_inst_list, [self.mc.con], self.iw.sel_str] } return dtst_cb_dict def _save_prj(self): """ Saves a project into the database. """ try: self.iw.chck_mand_wdgs(self.mand_wdgs, exc.MandNotFldExc) prj_list = self.iw.get_wdg_list(self.input_wdgs) # temporary fix for i in range(3, 5): try: prj_list[i] = prj_list[i].year except: pass id = db.ins_prj(self.mc.con, prj_list) db.ins_prj_log(self.mc.con, id, self.mc.con_info[self.mc.usr_str]) self.iw.pop_prj_cb() self.iw.upd_prj(db.get_prj_str(prj_list[2], prj_list[0])) QMessageBox.information(self, u'Saved', u'Project saved.') except exc.MandNotFldExc as e: e.wdg.setFocus() QMessageBox.warning(self, u'Mandatory Fields', u'Fill/select all mandatory fields.')
class DtstDlg(QDialog): """ A dialog for adding new dataset. """ def __init__(self, mc, iw): """ Constructor. :param mc: A reference to the main class. :type mc: object :param iw: A reference to the insert window. :type iw: QMainWindow """ super(QDialog, self).__init__() self.mc = mc self.iw = iw self._setup_self() def _setup_self(self): """ Sets up self. """ self.setObjectName(u'DtstDlg') self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.setWindowTitle(u'Add Dataset') self.grid_lyt = QGridLayout(self) self.grid_lyt.setObjectName(u'grid_lyt') self.grid_lyt.setColumnMinimumWidth(1, 300) self._build_wdgs() def _build_wdgs(self): """ Builds own widgets. """ self.name_lbl = QLabel(self) self.name_lbl.setObjectName(u'name_lbl') self.name_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.name_lbl.setText(u'datasetName') self.grid_lyt.addWidget(self.name_lbl, 0, 0, 1, 1) self.name_le = QLineEdit(self) self.name_le.setObjectName(u'name_le') self.grid_lyt.addWidget(self.name_le, 0, 1, 1, 1) self.id_lbl = QLabel(self) self.id_lbl.setObjectName(u'id_lbl') self.id_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.id_lbl.setText(u'datasetId') self.grid_lyt.addWidget(self.id_lbl, 1, 0, 1, 1) self.id_le = QLineEdit(self) self.id_le.setObjectName(u'id_le') self.grid_lyt.addWidget(self.id_le, 1, 1, 1, 1) self.inst_lbl = QLabel(self) self.inst_lbl.setObjectName(u'inst_lbl') self.inst_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.inst_lbl.setText(u'ownerInstitutionCode') self.grid_lyt.addWidget(self.inst_lbl, 2, 0, 1, 1) self.inst_cb = QComboBox(self) self.inst_cb.setObjectName(u'inst_cb') self.grid_lyt.addWidget(self.inst_cb, 2, 1, 1, 1) self.rght_lbl = QLabel(self) self.rght_lbl.setObjectName(u'rght_lbl') self.rght_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.rght_lbl.setText(u'rightsHolder') self.grid_lyt.addWidget(self.rght_lbl, 3, 0, 1, 1) self.rght_cb = QComboBox(self) self.rght_cb.setObjectName(u'rght_cb') self.grid_lyt.addWidget(self.rght_cb, 3, 1, 1, 1) self.lic_lbl = QLabel(self) self.lic_lbl.setObjectName(u'lic_lbl') self.lic_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.lic_lbl.setText(u'license') self.grid_lyt.addWidget(self.lic_lbl, 4, 0, 1, 1) self.lic_cb = QComboBox(self) self.lic_cb.setObjectName(u'lic_cb') self.grid_lyt.addWidget(self.lic_cb, 4, 1, 1, 1) self.acs_lbl = QLabel(self) self.acs_lbl.setObjectName(u'acs_lbl') self.acs_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.acs_lbl.setText(u'accessRights') self.grid_lyt.addWidget(self.acs_lbl, 5, 0, 1, 1) self.acs_cb = QComboBox(self) self.acs_cb.setObjectName(u'acs_cb') self.grid_lyt.addWidget(self.acs_cb, 5, 1, 1, 1) self.cit_lbl = QLabel(self) self.cit_lbl.setObjectName(u'cit_lbl') self.cit_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.cit_lbl.setText(u'bibliographicCitation') self.grid_lyt.addWidget(self.cit_lbl, 6, 0, 1, 1) self.cit_pte = QPlainTextEdit(self) self.cit_pte.setObjectName(u'cit_pte') self.grid_lyt.addWidget(self.cit_pte, 6, 1, 1, 1) self.cmnt_lbl = QLabel(self) self.cmnt_lbl.setObjectName(u'cmnt_lbl') self.cmnt_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.cmnt_lbl.setText(u'datasetComment') self.grid_lyt.addWidget(self.cmnt_lbl, 7, 0, 1, 1) self.cmnt_pte = QPlainTextEdit(self) self.cmnt_pte.setObjectName(u'cmnt_pte') self.grid_lyt.addWidget(self.cmnt_pte, 7, 1, 1, 1) self.info_lbl = QLabel(self) self.info_lbl.setObjectName(u'info_lbl') self.info_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.info_lbl.setText(u'informationWithheld') self.grid_lyt.addWidget(self.info_lbl, 8, 0, 1, 1) self.info_pte = QPlainTextEdit(self) self.info_pte.setObjectName(u'info_pte') self.grid_lyt.addWidget(self.info_pte, 8, 1, 1, 1) self.dtgen_lbl = QLabel(self) self.dtgen_lbl.setObjectName(u'dtgen_lbl') self.dtgen_lbl.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.dtgen_lbl.setText(u'dataGeneralizations') self.grid_lyt.addWidget(self.dtgen_lbl, 9, 0, 1, 1) self.dtgen_pte = QPlainTextEdit(self) self.dtgen_pte.setObjectName(u'dtgen_pte') self.grid_lyt.addWidget(self.dtgen_pte, 9, 1, 1, 1) self.mand_wdgs = [ self.name_le, self.id_le, self.inst_cb, self.rght_cb, self.acs_cb ] self.iw.set_mand_wdgs(self.mand_wdgs) self._fetch_dtst_data() # to keep order self.input_wdgs = [ self.name_le, self.id_le, self.inst_cb, self.rght_cb, self.lic_cb, self.acs_cb, self.cit_pte, self.cmnt_pte, self.info_pte, self.dtgen_pte ] self.btn_lyt = QHBoxLayout() self.grid_lyt.addLayout(self.btn_lyt, 10, 1, 1, 1) self.sv_btn = QPushButton(self) self.sv_btn.setObjectName(u'sv_btn') self.sv_btn.setText(u'Save') self.sv_btn.clicked.connect(self._save_dtst) self.btn_lyt.addWidget(self.sv_btn) self.cl_btn = QPushButton(self) self.cl_btn.setObjectName(u'ok_btn') self.cl_btn.setText(u'Close') self.cl_btn.clicked.connect(self.close) self.btn_lyt.addWidget(self.cl_btn) def _fetch_dtst_data(self): """ Fetches data from the NOFA database and populates widgets. """ self.iw.pop_cb(self._dtst_cb_dict) @property def _dtst_cb_dict(self): """ Returns a dataset combo box dictionary. :returns: | A dataset combo box dictionary: | - key -- <combo box name> | - value -- [<fill method>, [<arguments>], <default value>] :rtype: dict """ dtst_cb_dict = { self.inst_cb: [db.get_inst_list, [self.mc.con], self.iw.sel_str], self.rght_cb: [db.get_inst_list, [self.mc.con], self.iw.sel_str], self.lic_cb: [self._get_lic_list, [], self.iw.mty_str], self.acs_cb: [db.get_acs_list, [self.mc.con], self.iw.sel_str] } return dtst_cb_dict def _get_lic_list(self): """ Returns a list of licenses. :returns: A list of licenses. :rtype: list """ lic_list = ['NLOD', 'CC-0', 'CC-BY 4.0'] lic_list.sort() return lic_list def _save_dtst(self): """ Saves a dataset into the database. """ try: self.iw.chck_mand_wdgs(self.mand_wdgs, exc.MandNotFldExc) dtst_list = self.iw.get_wdg_list(self.input_wdgs) id = dtst_list[1] dtst_cnt = db.get_dtst_cnt(self.mc.con, id) if dtst_cnt != 0: QMessageBox.warning( self, u'datasetID', u'datasetID "{}" is already in the table. ' u'Enter different datasetID.'.format(id)) return db.ins_dtst(self.mc.con, dtst_list) db.ins_dtst_log(self.mc.con, id, self.mc.con_info[self.mc.usr_str]) self.iw.pop_dtst_cb() self.iw.upd_dtst(db.get_dtst_str(id, dtst_list[0])) QMessageBox.information(self, u'Saved', u'Dataset saved.') except exc.MandNotFldExc as e: e.wdg.setFocus() QMessageBox.warning(self, u'Mandatory Fields', u'Fill/select all mandatory fields.')