summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmesongui.py44
-rw-r--r--mesonstart.ui8
2 files changed, 45 insertions, 7 deletions
diff --git a/mesongui.py b/mesongui.py
index d32289937..e2e5731bc 100755
--- a/mesongui.py
+++ b/mesongui.py
@@ -21,6 +21,7 @@ from PyQt5.QtWidgets import QApplication, QMainWindow, QHeaderView
from PyQt5.QtWidgets import QComboBox, QCheckBox
from PyQt5.QtCore import QAbstractItemModel, QModelIndex, QVariant, QTimer
import PyQt5.QtCore
+import PyQt5.QtWidgets
class PathModel(QAbstractItemModel):
def __init__(self, coredata):
@@ -372,10 +373,47 @@ class MesonGui():
def save(self, foo):
pickle.dump(self.coredata, open(self.coredata_file, 'wb'))
+class Starter():
+ def __init__(self, sdir):
+ uifile = 'mesonstart.ui'
+ self.ui = uic.loadUi(uifile)
+ self.ui.source_entry.setText(sdir)
+ self.ui.show()
+ self.dialog = PyQt5.QtWidgets.QFileDialog()
+ if len(sdir) == 0:
+ self.dialog.setDirectory(os.getcwd())
+ else:
+ self.dialog.setDirectory(sdir)
+ self.ui.source_browse_button.clicked.connect(self.src_browse_clicked)
+ self.ui.build_browse_button.clicked.connect(self.build_browse_clicked)
+ self.ui.cross_browse_button.clicked.connect(self.cross_browse_clicked)
+
+ def src_browse_clicked(self):
+ self.dialog.setFileMode(2)
+ if self.dialog.exec():
+ self.ui.source_entry.setText(self.dialog.selectedFiles()[0])
+
+ def build_browse_clicked(self):
+ self.dialog.setFileMode(2)
+ if self.dialog.exec():
+ self.ui.build_entry.setText(self.dialog.selectedFiles()[0])
+
+ def cross_browse_clicked(self):
+ self.dialog.setFileMode(1)
+ if self.dialog.exec():
+ self.ui.cross_entry.setText(self.dialog.selectedFiles()[0])
+
if __name__ == '__main__':
app = QApplication(sys.argv)
- if len(sys.argv) != 2:
- print(sys.argv[0], "<build dir>")
+ if len(sys.argv) == 1:
+ arg = ""
+ elif len(sys.argv) == 2:
+ arg = sys.argv[1]
+ else:
+ print(sys.argv[0], "<build or source dir>")
sys.exit(1)
- gui = MesonGui(sys.argv[1])
+ if os.path.exists(os.path.join(arg, 'meson-private/coredata.dat')):
+ gui = MesonGui(arg)
+ else:
+ runner = Starter(arg)
sys.exit(app.exec_())
diff --git a/mesonstart.ui b/mesonstart.ui
index 595ce7cee..c6c5f965d 100644
--- a/mesonstart.ui
+++ b/mesonstart.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>436</width>
- <height>170</height>
+ <width>644</width>
+ <height>192</height>
</rect>
</property>
<property name="windowTitle">
@@ -107,8 +107,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>436</width>
- <height>20</height>
+ <width>644</width>
+ <height>25</height>
</rect>
</property>
</widget>