from bertos_utils import loadBertosProject, bertosVersion, getToolchainName
from toolchain_validation import validateToolchain
+import qvariant_converter
import BModulePage
class BEditingDialog(QDialog):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.setupUi()
+ self.connectSignals()
self.module_page.reloadData()
def setupUi(self):
def setupToolchainMenu(self):
self.toolchain_menu = QMenu(self.tr("select toolchain"))
+ self.toolchain_actions = []
action_group = QActionGroup(self.toolchain_menu)
for toolchain in sorted(self.toolchains()):
info = validateToolchain(toolchain)
action_group.addAction(action)
action.setCheckable(True)
action.setChecked(True if toolchain == self.currentToolchain()["path"] else False)
+ action.setData(qvariant_converter.convertString(toolchain))
+ self.toolchain_actions.append(action)
def setupVersionMenu(self):
self.version_menu = QMenu(self.tr("select BeRTOS version"))
+ self.version_actions = []
action_group = QActionGroup(self.version_menu)
- for version in sorted([bertosVersion(v) for v in self.versions()]):
+ versions = [(path, bertosVersion(path)) for path in self.versions()]
+ for path, version in versions:
action = self.version_menu.addAction(version)
action_group.addAction(action)
action.setCheckable(True)
- action.setChecked(True if unicode(action.text()) == self.currentVersion() else False)
+ action.setChecked(True if path == self.currentVersion() else False)
+ action.setData(qvariant_converter.convertString(path))
+ self.version_actions.append(action)
+
+ def connectSignals(self):
+ for toolchain_action in self.toolchain_actions:
+ self.connect(toolchain_action, SIGNAL("toggled(bool)"), lambda x, toolchain_action=toolchain_action: self.toolchainChanged(
+ qvariant_converter.getString(toolchain_action.data()),
+ x
+ ))
+ for version_action in self.version_actions:
+ self.connect(version_action, SIGNAL("toggled(bool)"), lambda x, version_action=version_action: self.versionChanged(
+ qvariant_converter.getString(version_action.data()),
+ x
+ ))
+
+ def toolchainChanged(self, toolchain, activated):
+ if activated:
+ self.setCurrentToolchain(toolchain)
+
+ def versionChanged(self, version, activated):
+ if activated:
+ self.setCurrentVersion(version)
def toolchains(self):
return self.module_page.toolchains()