Correct indentation
[bertos.git] / wizard / BToolchainPage.py
1 #!/usr/bin/env python
2 # encoding: utf-8
3 #
4 # Copyright 2008 Develer S.r.l. (http://www.develer.com/)
5 # All rights reserved.
6 #
7 # $Id:$
8 #
9 # Author: Lorenzo Berni <duplo@develer.com>
10 #
11
12 from BWizardPage import *
13 import BToolchainSearch
14 import bertos_utils
15
16 class BToolchainPage(BWizardPage):
17     
18     def __init__(self):
19         BWizardPage.__init__(self, "toolchain_select.ui")
20         self.setTitle(self.tr("Select toolchain"))
21         self._populateToolchainList()
22         self._connectSignals()
23     
24     def _updateUi(self):
25         if self.pageContent.customDirBox.isChecked():
26             self._enableCustomDir()
27         else:
28             self._disableCustomDir()
29         if self.pageContent.pathBox.isChecked() or (self.pageContent.customDirBox.isChecked() and self.pageContent.customDirList.count() != 0):
30             self.pageContent.doSearchButton.setEnabled(True)
31         else:
32             self.pageContent.doSearchButton.setEnabled(False)
33     
34     def _populateToolchainList(self):
35         toolchains = self._settingsRetrieve("toolchains").toList()
36         for element in toolchains:
37             item = QListWidgetItem(element.toString())
38             item.setData(Qt.UserRole, element)
39             self.pageContent.toolchainList.addItem(item)
40             
41     def _clearList(self):
42         self.pageContent.toolchainList.clear()
43     
44     def _selectionChanged(self):
45         self.emit(SIGNAL("completeChanged()"))
46     
47     def _search(self):
48         pass
49         
50     def _connectSignals(self):
51         self.connect(self.pageContent.toolchainList, SIGNAL("itemSelectionChanged()"), self._selectionChanged)
52         self.connect(self.pageContent.addButton, SIGNAL("clicked()"), self.addToolchain)
53         self.connect(self.pageContent.removeButton, SIGNAL("clicked()"), self.removeToolchain)
54         self.connect(self.pageContent.searchButton, SIGNAL("clicked()"), self.searchToolchain)
55     
56     def addToolchain(self):
57         sel_toolchain = QFileDialog.getOpenFileName(self, self.tr("Choose the toolchain"), "")
58         if not sel_toolchain.isEmpty():
59             item = QListWidgetItem(sel_toolchain)
60             item.setData(Qt.UserRole, QVariant(sel_toolchain))
61             self.pageContent.toolchainList.addItem(item)
62             toolchains = self._settingsRetrieve("toolchains").toList()
63             toolchains = set([toolchain.toString() for toolchain in toolchains] + [sel_toolchain])
64             self._settingsStore("toolchains", list(toolchains))
65     
66     def removeToolchain(self):
67         if self.pageContent.toolchainList.currentRow() != -1:
68             item = self.pageContent.toolchainList.takeItem(self.pageContent.toolchainList.currentRow())
69             item = item.data(Qt.UserRole).toString()
70             toolchains = self._settingsRetrieve("toolchains").toList()
71             toolchains = [toolchain.toString() for toolchain in toolchains]
72             toolchains.remove(unicode(item))
73             self._settingsStore("toolchains", toolchains)
74     
75     def searchToolchain(self):
76         search = BToolchainSearch.BToolchainSearch()
77         self.connect(search, SIGNAL("accepted()"), self._search)
78         search.exec_()
79     
80     def isComplete(self):
81         if self.pageContent.toolchainList.currentRow() != -1:
82             self._projectInfoStore("TOOLCHAIN", self.pageContent.toolchainList.item(self.pageContent.toolchainList.currentRow()).data(Qt.UserRole).toString())
83             return True
84         else:
85             return False