def __init__(self, parent=None): QtGui.QMainWindow.__init__(self) # TODO - User customisable style QtGui.QApplication.setStyle(QtGui.QStyleFactory.create("Cleanlooks")) ## Set the title text format self.title_text = "Dawn" ## Sets up the settings and other global classes self.api = app.API.API() self.ut = None ## Set Window Properties self.setWindowTitle(self.title_text) self.setWindowIcon(Icon(Ico.Arduino)) self.setMinimumWidth(800) self.setMinimumHeight(600) self.setDockNestingEnabled(True) self.setDockOptions(QtGui.QMainWindow.ForceTabbedDocks | QtGui.QMainWindow.VerticalTabs) self.topToolBar = QtGui.QToolBar() self.topToolBar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) self.addToolBar(self.topToolBar) ############################################################## ## File Menu ############################################################## menuFile = self.menuBar().addMenu("File") menuSettings = menuFile.addAction(Icon(Ico.Settings), "Settings", self.on_settings_dialog) menuFile.addSeparator() # TODO: Connect this to something menuExit = menuFile.addAction(Icon(Ico.Exit), "Exit", self.on_exit) # self.topToolBar.addAction(menuSettings) ############################################################## ## View Menu ############################################################## menuView = self.menuBar().addMenu("View") self.groupViewActions = QtGui.QActionGroup(self) self.connect(self.groupViewActions, QtCore.SIGNAL("triggered (QAction *)"), self.on_action_view) views = [] views.append(["projects", Ico.Projects, "Projects"]) views.append(["api_browser", Ico.Function, "API Browser"]) views.append(["help", Ico.Help, "Help"]) views.append(["file_system_browser", Ico.FileSystemBrowser, "Files Browser"]) for ki, ico, caption in views: act = menuView.addAction(Icon(ico), caption) act.setProperty("ki", ki) self.topToolBar.addAction(act) self.groupViewActions.addAction(act) self.topToolBar.addSeparator() menuView.addAction("View Help in dock - TODO") menuView.addAction("View something else in dock") ############################################################## ## Projects Menu ############################################################## menuProjects = self.menuBar().addMenu("Projects") ## TODO populate this menu ############################################################## ## Hardware Menu ############################################################## menuHardware = self.menuBar().addMenu("Hardware") ## Boards self.actionGroupBoards = QtGui.QActionGroup(self) self.actionGroupBoards.setExclusive(True) self.connect(self.actionGroupBoards, QtCore.SIGNAL("triggered(QAction *)"), self.on_action_select_board) self.menuBoards = menuHardware.addMenu(Icon(Ico.Board), "-- No Board Selected --") # populates later act = menuHardware.addAction(Icon(Ico.Boards), "Boards", self.on_action_boards) self.topToolBar.addAction(act) menuHardware.addSeparator() ## Bootloaders self.actionGroupBootLoaders = QtGui.QActionGroup(self) self.actionGroupBootLoaders.setExclusive(True) self.connect(self.actionGroupBootLoaders, QtCore.SIGNAL("triggered(QAction *)"), self.on_action_bootloader_burn) self.menuBootLoaders = menuHardware.addMenu(Icon(Ico.BootLoaderBurn), "Burn Bootloader") # populates later act = menuHardware.addAction(Icon(Ico.BootLoaders), "Bootloaders", self.on_action_bootloaders) self.topToolBar.addAction(act) self.topToolBar.addSeparator() ############################################################## ## Websites Menu ############################################################## self.menuWebSites = self.menuBar().addMenu("Websites") self.menuWebSites.addSeparator() self.actionEditWebsites = self.menuWebSites.addAction("Edit Sites", self.on_websites_dialog) ############################################################## ## Help Menu menuHelp = self.menuBar().addMenu("Help") menuHelp.addAction("About This Project", self.on_about) menuHelp.addAction("About Qt", self.on_about_qt) #################################### ## Dock Widgets #################################### helpDockWidget = HelpDock("Help", self, self) self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, helpDockWidget) ########################################################## ## Central Widget ########################################################## self.mainTabWidget = QtGui.QTabWidget(self) self.mainTabWidget.setTabsClosable(True) self.mainTabWidget.setMovable(True) self.setCentralWidget(self.mainTabWidget) self.connect(self.mainTabWidget, QtCore.SIGNAL("tabCloseRequested (int)"), self.on_close_tab_requested) self.connect(self.mainTabWidget, QtCore.SIGNAL("currentChanged (int)"), self.on_tab_change) ## Load Projects and Welcome self.on_open_project(settings.app_path().absoluteFilePath("etc/example_project/example.pde")) self.on_action_view(QtCore.QString("welcome")) self.on_action_view(QtCore.QString("projects")) self.mainTabWidget.setCurrentIndex(0) ########################################################## ## Status Bar ########################################################## self.statusBar().addPermanentWidget(QtGui.QLabel("Board:")) self.lblBoard = QtGui.QLabel("-- none --") self.statusBar().addPermanentWidget(self.lblBoard) ########################################################## ## Globally Shared Widgets ########################################################## ## Borads self.boards = app.Boards.Boards(self) self.connect(self.boards, QtCore.SIGNAL("board_selected"), self.on_board_selected) self.boards.load_current() ## THIS actually sets current as event above is not fired in constructor ## API if not settings.value("virginity"): self.on_settings_dialog() settings.restore_window("main_window", self) self.on_refresh_settings()
def __init__(self, parent=None): QtGui.QMainWindow.__init__(self) # TODO - User customisable style QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('Cleanlooks')) ## Set the title text format self.title_text = "Dawn" ## Sets up the settings and other global classes self.api = app.API.API() #self.ut = app.utils. ## Set Window Properties self.setWindowTitle(self.title_text) self.setWindowIcon(Icon(Ico.Arduino)) self.setMinimumWidth(800) self.setMinimumHeight(600) self.setDockNestingEnabled(True) self.setDockOptions(QtGui.QMainWindow.ForceTabbedDocks | QtGui.QMainWindow.VerticalTabs) self.topToolBar = QtGui.QToolBar() self.topToolBar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) self.addToolBar(self.topToolBar) ############################################################## ## File Menu ############################################################## menuFile = self.menuBar().addMenu("File") menuSettings = menuFile.addAction(Icon(Ico.Settings), "Settings", self.on_settings_dialog) menuFile.addSeparator() # TODO: Connect this to something menuExit = menuFile.addAction(Icon(Ico.Exit), "Exit", self.on_exit) #self.topToolBar.addAction(menuSettings) ############################################################## ## View Menu ############################################################## menuView = self.menuBar().addMenu("View") self.groupViewActions = QtGui.QActionGroup(self) self.connect(self.groupViewActions, QtCore.SIGNAL("triggered (QAction *)"), self.on_action_view) views = [] views.append(['projects', Ico.Projects, "Projects"]) views.append(['api_browser', Ico.Function, "API Browser"]) views.append(['help', Ico.Help, "Help"]) views.append( ['file_system_browser', Ico.FileSystemBrowser, "Files Browser"]) for ki, ico, caption in views: act = menuView.addAction(Icon(ico), caption) act.setProperty("ki", ki) self.topToolBar.addAction(act) self.groupViewActions.addAction(act) self.topToolBar.addSeparator() menuView.addAction("View Help in dock - TODO") menuView.addAction("View something else in dock") ############################################################## ## Projects Menu ############################################################## menuProjects = self.menuBar().addMenu("Projects") ## TODO populate this menu ############################################################## ## Hardware Menu ############################################################## menuHardware = self.menuBar().addMenu("Hardware") ## Boards self.actionGroupBoards = QtGui.QActionGroup(self) self.actionGroupBoards.setExclusive(True) self.connect(self.actionGroupBoards, QtCore.SIGNAL("triggered(QAction *)"), self.on_action_select_board) self.menuBoards = menuHardware.addMenu(Icon( Ico.Board), "-- No Board Selected --") # populates later act = menuHardware.addAction(Icon(Ico.Boards), "Boards", self.on_action_boards) self.topToolBar.addAction(act) menuHardware.addSeparator() ## Bootloaders self.actionGroupBootLoaders = QtGui.QActionGroup(self) self.actionGroupBootLoaders.setExclusive(True) self.connect(self.actionGroupBootLoaders, QtCore.SIGNAL("triggered(QAction *)"), self.on_action_bootloader_burn) self.menuBootLoaders = menuHardware.addMenu(Icon( Ico.BootLoaderBurn), "Burn Bootloader") # populates later act = menuHardware.addAction(Icon(Ico.BootLoaders), "Bootloaders", self.on_action_bootloaders) self.topToolBar.addAction(act) self.topToolBar.addSeparator() ############################################################## ## Websites Menu ############################################################## self.menuWebSites = self.menuBar().addMenu("Websites") self.actionGroupWebsites = QtGui.QActionGroup(self) self.connect(self.actionGroupWebsites, QtCore.SIGNAL("triggered(QAction *)"), self.on_website_action) #self.menuWebSites.addSeparator() #self.actionEditWebsites = self.menuWebSites.addAction( "Edit Sites", self.on_websites_dialog ) #self.topToolBar.addAction(self.actionEditWebsites) #################################### ### Style Menu meniw = self.menuBar().addMenu("Style") self.connect(meniw, QtCore.SIGNAL('triggered(QAction *)'), self.on_style_selected) actGroup = QtGui.QActionGroup(self) for i in QtGui.QStyleFactory.keys(): act = meniw.addAction(i) act.setCheckable(True) if QtGui.QApplication.style().objectName() == QtCore.QString( i).toLower(): act.setChecked(True) actGroup.addAction(act) ############################################################## ## Help Menu menuHelp = self.menuBar().addMenu("Help") menuHelp.addAction("About This Project", self.on_about) menuHelp.addAction("About Qt", self.on_about_qt) ### ???? self.topToolBar.addAction("Syntax Edit", self.on_test_syntax_edit) #################################### ## Dock Widgets #################################### helpDockWidget = HelpDock("Help", self, self) self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, helpDockWidget) ########################################################## ## Central Widget ########################################################## self.mainTabWidget = QtGui.QTabWidget(self) self.mainTabWidget.setTabsClosable(True) self.mainTabWidget.setMovable(True) self.setCentralWidget(self.mainTabWidget) self.connect(self.mainTabWidget, QtCore.SIGNAL("tabCloseRequested (int)"), self.on_close_tab_requested) self.connect(self.mainTabWidget, QtCore.SIGNAL("currentChanged (int)"), self.on_tab_change) ################################################## ## Populate Central Tabs self.on_action_view(QtCore.QString("welcome")) self.on_action_view(QtCore.QString("projects")) self.on_action_view(QtCore.QString("api_browser")) #self.on_open_project(settings.app_path().absoluteFilePath("etc/example_project/example.pde")) self.mainTabWidget.setCurrentIndex(0) ########################################################## ## Status Bar ########################################################## self.statusBar().addPermanentWidget(QtGui.QLabel("Board:")) self.lblBoard = QtGui.QLabel("-- none --") self.statusBar().addPermanentWidget(self.lblBoard) ########################################################## ## Globally Shared Widgets ########################################################## ## Borads ########## TODO This maybe not required anymore as boards are project based self.boards = app.Boards.Boards(self) self.connect(self.boards, QtCore.SIGNAL("board_selected"), self.on_board_selected) self.boards.load_current( ) ## THIS actually sets current as event above is not fired in constructor ## API if not settings.value("virginity"): self.on_settings_dialog() settings.restore_window("main_window", self) self.on_refresh_settings() self.load_website_menu()
def __init__(self, parent, main): QtGui.QDialog.__init__(self, parent) self.main = main self.setWindowTitle("Settings") self.setWindowIcon(Icon(Ico.Settings)) self.setMinimumWidth(700) self.setMinimumHeight(500) mainLayout = QtGui.QVBoxLayout() self.setLayout(mainLayout) self.path_keys = [] self.path_keys.append( ['path/arduino_path', 'Arduino Path', 'Directory of arduino installation'] ) self.path_keys.append( ['path/projects_path', 'Projects', 'Directory of projects'] ) self.path_keys.append( ['path/arduino_svn_path', 'Arduino Svn', 'Path to svn trunk/ * Optional'] ) vBox = QtGui.QVBoxLayout() vBox.setSpacing(20) mainLayout.addLayout(vBox) promptButtonGroup = QtGui.QButtonGroup(self) self.connect(promptButtonGroup, QtCore.SIGNAL("buttonClicked(QAbstractButton *)"), self.on_prompt_button) browseButtonGroup = QtGui.QButtonGroup(self) self.connect(browseButtonGroup, QtCore.SIGNAL("buttonClicked(QAbstractButton *)"), self.on_browse_button) self.txt = {} self.lbl = {} #butt = {} #buttP = {} for fKey, title, description in self.path_keys: grp = QtGui.QGroupBox( "%s" % (title) ) #fnt = grp.font() #fnt.setBold(True) #grp.setFont(fnt) vBox.addWidget(grp) vb = QtGui.QVBoxLayout() grp.setLayout(vb) lbl = QtGui.QLabel( description ) vb.addWidget(lbl) pth = settings.value(fKey) self.txt[fKey] = QtGui.QLineEdit(pth) #setval.toString()) self.txt[fKey].setReadOnly(True) vb.addWidget(self.txt[fKey]) hBox = QtGui.QHBoxLayout() vb.addLayout(hBox) self.lbl[fKey] = QtGui.QLabel("-") hBox.addWidget(self.lbl[fKey]) self.check_file(fKey) buttP = QtGui.QToolButton(self) #buttP[fKey].setIcon(dIcon(dIco.Green)) buttP.setText("Prompt") buttP.setProperty("ki", QtCore.QVariant(fKey) ) buttP.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) hBox.addWidget(buttP) buttP.setVisible(False) promptButtonGroup.addButton(buttP) buttB = QtGui.QToolButton(self) #butt[fKey].setIcon(dIcon(dIco.Green)) buttB.setText("Browse") buttB.setProperty("ki", QtCore.QVariant(fKey) ) buttB.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) hBox.addWidget(buttB) browseButtonGroup.addButton(buttB) vBox.addStretch(10) ######################################### ## Save Cancel Buttons buttonBox = QtGui.QHBoxLayout() mainLayout.addLayout(buttonBox) buttonBox.addStretch(20) cancelButton = GenericWidgets.CancelButton(self, "Cancel") buttonBox.addWidget(cancelButton) saveButton = GenericWidgets.SaveButton(self) buttonBox.addWidget(saveButton)
def __init__(self, parent, main): QtGui.QDialog.__init__(self, parent) self.main = main self.setWindowTitle("Settings") self.setWindowIcon(Icon(Ico.Settings)) self.setMinimumWidth(700) self.setMinimumHeight(500) mainLayout = QtGui.QVBoxLayout() self.setLayout(mainLayout) self.path_keys = [] self.path_keys.append([ 'path/arduino_path', 'Arduino Path', 'Directory of arduino installation' ]) self.path_keys.append( ['path/projects_path', 'Projects', 'Directory of projects']) self.path_keys.append([ 'path/arduino_svn_path', 'Arduino Svn', 'Path to svn trunk/ * Optional' ]) vBox = QtGui.QVBoxLayout() vBox.setSpacing(20) mainLayout.addLayout(vBox) promptButtonGroup = QtGui.QButtonGroup(self) self.connect(promptButtonGroup, QtCore.SIGNAL("buttonClicked(QAbstractButton *)"), self.on_prompt_button) browseButtonGroup = QtGui.QButtonGroup(self) self.connect(browseButtonGroup, QtCore.SIGNAL("buttonClicked(QAbstractButton *)"), self.on_browse_button) self.txt = {} self.lbl = {} #butt = {} #buttP = {} for fKey, title, description in self.path_keys: grp = QtGui.QGroupBox("%s" % (title)) #fnt = grp.font() #fnt.setBold(True) #grp.setFont(fnt) vBox.addWidget(grp) vb = QtGui.QVBoxLayout() grp.setLayout(vb) lbl = QtGui.QLabel(description) vb.addWidget(lbl) pth = settings.value(fKey) self.txt[fKey] = QtGui.QLineEdit(pth) #setval.toString()) self.txt[fKey].setReadOnly(True) vb.addWidget(self.txt[fKey]) hBox = QtGui.QHBoxLayout() vb.addLayout(hBox) self.lbl[fKey] = QtGui.QLabel("-") hBox.addWidget(self.lbl[fKey]) self.check_file(fKey) buttP = QtGui.QToolButton(self) #buttP[fKey].setIcon(dIcon(dIco.Green)) buttP.setText("Prompt") buttP.setProperty("ki", QtCore.QVariant(fKey)) buttP.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) hBox.addWidget(buttP) buttP.setVisible(False) promptButtonGroup.addButton(buttP) buttB = QtGui.QToolButton(self) #butt[fKey].setIcon(dIcon(dIco.Green)) buttB.setText("Browse") buttB.setProperty("ki", QtCore.QVariant(fKey)) buttB.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) hBox.addWidget(buttB) browseButtonGroup.addButton(buttB) vBox.addStretch(10) ######################################### ## Save Cancel Buttons buttonBox = QtGui.QHBoxLayout() mainLayout.addLayout(buttonBox) buttonBox.addStretch(20) cancelButton = GenericWidgets.CancelButton(self, "Cancel") buttonBox.addWidget(cancelButton) saveButton = GenericWidgets.SaveButton(self) buttonBox.addWidget(saveButton)