diff --git a/Python/Login.py b/Python/Login.py index 8475e31..cf2404f 100644 --- a/Python/Login.py +++ b/Python/Login.py @@ -34,12 +34,17 @@ def __init__(self, parent = None): self.selectedProject = None self.projectDict = dict() + self.projectIndex = 0 + project_users = [] + self.setupUi() # __init__ - def setupUi( self ): + def setupUi( self ): self.resize(350, 300) + self.setMaximumWidth(350) + self.setMaximumHeight(300) self.setWindowTitle(QT_TRANSLATE_NOOP("Login", "PipeCAD Login")) aCurrentPath = os.path.dirname(os.path.abspath(__file__)) @@ -49,44 +54,38 @@ def setupUi( self ): self.groupButtonsProject = QButtonGroup() - # self.btnProjectLeft = QPushButton( "", self) - # self.btnProjectLeft.setMinimumSize( 30 , 40 ) - # self.btnProjectLeft.setMaximumSize( 30 , 40 ) - # #Previous icons created by Pixel perfect - Flaticon - # self.btnProjectLeft.setIcon( QIcon('Lib/PipeCad/icons/login/128x128_arrow_left.png') ) - # self.btnProjectLeft.setIconSize( QSize( 30 , 40 ) ) - # self.btnProjectLeft.setAutoDefault(False) - # self.hBoxLayoutProjects.addWidget(self.btnProjectLeft) - - self.projectDict.clear() - - for aProject in (PipeCad.Projects): - self.btnProject = QPushButton( "", self) - self.btnProject.setMinimumSize( 256 , 104 ) - self.btnProject.setMaximumSize( 256 , 104 ) - #Icon downloaded from Factory icons created by vectorsmarket15 - Flaticon - self.btnProject.setIcon( QIcon(aCurrentPath + '/icons/login/128x128_select_project.png') ) - self.btnProject.setIconSize( QSize(96,96) ) - self.btnProject.setStyleSheet("QPushButton { text-align: left; }") - self.btnProject.setText(QT_TRANSLATE_NOOP("Login", "Project: %s \nCode: %s \nNumber: %s \nDescription: \n%s") % (aProject.Name, aProject.Code, aProject.Number, aProject.Description)) - self.btnProject.setObjectName( aProject.Code ) - self.groupButtonsProject.addButton( self.btnProject ) - self.btnProject.setAutoDefault(False) - #self.btnProject.clicked.connect( self.selectProject ) - self.hBoxLayoutProjects.addWidget( self.btnProject ) - - self.projectDict[aProject.Code] = aProject - # for + self.btnProjectPrevious = QPushButton( "", self) + self.btnProjectPrevious.setMinimumSize( 32 , 32 ) + self.btnProjectPrevious.setMaximumSize( 32 , 32 ) + #Previous icons created by Pixel perfect - Flaticon + self.btnProjectPrevious.setIcon( QIcon('Lib/PipeCad/icons/common/32x32_arrow_left.png') ) + self.btnProjectPrevious.setIconSize( QSize( 32 , 32 ) ) + self.btnProjectPrevious.setStyleSheet("border:none;") + self.hBoxLayoutProjects.addWidget(self.btnProjectPrevious) + + aProject = PipeCad.Projects[self.projectIndex] + self.btnProject = QPushButton( "", self) + self.btnProject.setMinimumSize( 256 , 104 ) + self.btnProject.setMaximumSize( 256 , 104 ) + #Icon downloaded from Factory icons created by vectorsmarket15 - Flaticon + self.btnProject.setIcon( QIcon(aCurrentPath + '/icons/login/128x128_select_project.png') ) + self.btnProject.setIconSize( QSize(96,96) ) + self.btnProject.setStyleSheet("QPushButton { text-align: left; }") + self.btnProject.setText(QT_TRANSLATE_NOOP("Login", "Project: %s \nCode: %s \nNumber: %s \nDescription: \n%s") % (aProject.Name, aProject.Code, aProject.Number, aProject.Description)) + self.btnProject.setObjectName( aProject.Code ) + self.btnProject.setAutoDefault(False) + + self.hBoxLayoutProjects.addWidget(self.btnProject) - # self.btnProjectRight = QPushButton( "", self) - # self.btnProjectRight.setMinimumSize( 30 , 40 ) - # self.btnProjectRight.setMaximumSize( 30 , 40 ) - # #Previous icons created by Pixel perfect - Flaticon - # self.btnProjectRight.setIcon( QIcon('Lib/PipeCad/icons/login/128x128_arrow_right.png') ) - # self.btnProjectRight.setIconSize( QSize( 30 , 40 ) ) - # self.btnProjectRight.setAutoDefault(False) - # self.hBoxLayoutProjects.addWidget(self.btnProjectRight) - + self.btnProjectNext = QPushButton( "", self) + self.btnProjectNext.setMinimumSize( 32 , 32 ) + self.btnProjectNext.setMaximumSize( 32 , 32 ) + #Previous icons created by Pixel perfect - Flaticon + self.btnProjectNext.setIcon( QIcon('Lib/PipeCad/icons/common/32x32_arrow_right.png') ) + self.btnProjectNext.setIconSize( QSize( 32 , 32 ) ) + self.btnProjectNext.setStyleSheet("border:none;") + self.hBoxLayoutProjects.addWidget(self.btnProjectNext) + aFont = QFont("Times", 12) self.buttonCreate = QPushButton(QT_TRANSLATE_NOOP("Login", "Create New Project")) @@ -100,7 +99,7 @@ def setupUi( self ): self.lineEditPassword = QLineEdit( self ) self.lineEditPassword.setEchoMode(QLineEdit.Password) - PipeCad.SetIndicator(self.lineEditPassword) + PipeCad.SetIndicator( self.lineEditPassword ) self.buttonChange = QPushButton(QT_TRANSLATE_NOOP("Login", "Change")) @@ -171,24 +170,56 @@ def setupUi( self ): self.labelSoftwareVersion.setAlignment(Qt.AlignRight) self.verticalLayout.addWidget(self.labelSoftwareVersion) + self.btnProjectPrevious.clicked.connect( self.setProjectPrevious ) + self.btnProjectNext.clicked.connect( self.setProjectNext ) self.comboBoxUser.currentIndexChanged.connect( self.selectUser ) self.buttonChange.clicked.connect( self.changePassword ) self.groupButtonsModule.buttonClicked.connect( self.accept ) self.buttonCreate.clicked.connect( self.createProject ) - self.groupButtonsProject.buttonClicked.connect( self.selectProject ) + #self.groupButtonsProject.buttonClicked.connect( self.selectProject ) # Deactive widgets before selecting project - self.comboBoxUser.setEnabled(False) - self.lineEditPassword.setEnabled(False) - self.buttonChange.setEnabled(False) - self.comboBoxMdb.setEnabled(False) - self.checkBox.setEnabled(False) self.btnDesign.setEnabled(False) self.btnParagon.setEnabled(False) self.btnAdmin.setEnabled(False) + self.btnProjectPrevious.setEnabled(False) + + self.selectProject() + # setupUi + + def setProjectNext( self ): + + self.projectIndex = self.projectIndex + 1 + + self.selectProject() + + def setProjectPrevious( self ): + + self.projectIndex = self.projectIndex - 1 + + self.selectProject() + + def selectProject( self ): + + if len( PipeCad.Projects ) == 0 or len( PipeCad.Projects ) == 1: + self.btnProjectPrevious.setEnabled(False) + self.btnProjectNext.setEnabled(False) + + else: + if self.projectIndex == 0: + self.btnProjectPrevious.setEnabled(False) + self.btnProjectNext.setEnabled(True) + elif self.projectIndex > 0 and self.projectIndex < ( len( PipeCad.Projects ) - 1 ): + self.btnProjectPrevious.setEnabled(True) + self.btnProjectNext.setEnabled(True) + elif self.projectIndex == ( len( PipeCad.Projects ) - 1 ): + self.btnProjectPrevious.setEnabled(True) + self.btnProjectNext.setEnabled(False) + + aProject = PipeCad.Projects[self.projectIndex] + self.btnProject.setText(QT_TRANSLATE_NOOP("Login", "Project: %s \nCode: %s \nNumber: %s \nDescription: \n%s") % (aProject.Name, aProject.Code, aProject.Number, aProject.Description)) - def selectProject( self, theButton ): self.comboBoxUser.setEnabled(True) self.lineEditPassword.setEnabled(True) self.buttonChange.setEnabled(True) @@ -197,9 +228,8 @@ def selectProject( self, theButton ): self.comboBoxUser.clear() self.comboBoxMdb.clear() - aProjectCode = theButton.objectName - self.selectedProject = self.projectDict.get(aProjectCode) - + self.selectedProject = PipeCad.Projects[self.projectIndex] + if self.selectedProject is None: return # if @@ -210,7 +240,7 @@ def selectProject( self, theButton ): self.comboBoxUser.addItem(aUser.Name) # for - if len(self.selectedProject.MdbList) == 0: + if len( self.selectedProject.MdbList ) == 0: self.comboBoxMdb.setEnabled(False) self.btnDesign.setEnabled(False) self.btnParagon.setEnabled(False) @@ -235,13 +265,13 @@ def selectUser(self): # if # selectUser - def accept(self, theButton): + def accept( self, theButton ): if self.selectedProject is None: return # if - aSession = self.selectedProject.CreateSession( self.comboBoxMdb.currentText, self.comboBoxUser.currentText, self.lineEditPassword.text, str(theButton.objectName) ) + aSession = self.selectedProject.CreateSession( self.comboBoxMdb.currentText, self.comboBoxUser.currentText, self.lineEditPassword.text, str(theButton.objectName) ) if aSession is None: return # if diff --git a/Python/icons/common/32x32_arrow_left.png b/Python/icons/common/32x32_arrow_left.png new file mode 100644 index 0000000..7d693c9 Binary files /dev/null and b/Python/icons/common/32x32_arrow_left.png differ diff --git a/Python/icons/common/32x32_arrow_right.png b/Python/icons/common/32x32_arrow_right.png new file mode 100644 index 0000000..a10ff13 Binary files /dev/null and b/Python/icons/common/32x32_arrow_right.png differ diff --git a/Python/icons/common/32x32_explorer.png b/Python/icons/common/32x32_explorer.png index c323259..1398413 100644 Binary files a/Python/icons/common/32x32_explorer.png and b/Python/icons/common/32x32_explorer.png differ diff --git a/Python/icons/login/128x128_arrow_left.png b/Python/icons/login/128x128_arrow_left.png deleted file mode 100644 index 9a71a92..0000000 Binary files a/Python/icons/login/128x128_arrow_left.png and /dev/null differ diff --git a/Python/icons/login/128x128_arrow_right.png b/Python/icons/login/128x128_arrow_right.png deleted file mode 100644 index b21e3f5..0000000 Binary files a/Python/icons/login/128x128_arrow_right.png and /dev/null differ diff --git a/Python/icons/login/128x128_select_admin.png b/Python/icons/login/128x128_select_admin.png index 2f2a51b..6fce1cd 100644 Binary files a/Python/icons/login/128x128_select_admin.png and b/Python/icons/login/128x128_select_admin.png differ diff --git a/Python/icons/login/128x128_select_design.png b/Python/icons/login/128x128_select_design.png index afa4a78..3e3983b 100644 Binary files a/Python/icons/login/128x128_select_design.png and b/Python/icons/login/128x128_select_design.png differ diff --git a/Python/icons/login/128x128_select_paragon.png b/Python/icons/login/128x128_select_paragon.png index bfdac7a..7b75a9c 100644 Binary files a/Python/icons/login/128x128_select_paragon.png and b/Python/icons/login/128x128_select_paragon.png differ diff --git a/Python/icons/login/128x128_select_project.png b/Python/icons/login/128x128_select_project.png index 1771fda..3391b71 100644 Binary files a/Python/icons/login/128x128_select_project.png and b/Python/icons/login/128x128_select_project.png differ