aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-09-27 20:44:31 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-09-27 20:44:31 +0300
commitc58500580227a0889cfeae854a24c91961716fe0 (patch)
tree3ef4f7d4eb38bda7c3ac69a78a6a49c774fb32e9
parent1c693475a7c998afd28901abc89eb5e7686b3ef2 (diff)
downloadmeson-c58500580227a0889cfeae854a24c91961716fe0.zip
meson-c58500580227a0889cfeae854a24c91961716fe0.tar.gz
meson-c58500580227a0889cfeae854a24c91961716fe0.tar.bz2
Display dependencies in the gui.
-rwxr-xr-xmesongui.py64
-rw-r--r--mesonmain.ui7
2 files changed, 67 insertions, 4 deletions
diff --git a/mesongui.py b/mesongui.py
index d293115..6dd42c3 100755
--- a/mesongui.py
+++ b/mesongui.py
@@ -130,13 +130,63 @@ class TargetModel(QAbstractItemModel):
def parent(self, index):
return QModelIndex()
+class DependencyModel(QAbstractItemModel):
+ def __init__(self, coredata):
+ super().__init__()
+ self.deps = []
+ for k in coredata.deps.keys():
+ bd = coredata.deps[k]
+ name = k
+ found = bd.found()
+ if found:
+ cflags = str(bd.get_compile_flags())
+ libs = str(bd.get_link_flags())
+ found = 'yes'
+ else:
+ cflags = ''
+ libs = ''
+ found = 'no'
+ self.deps.append((name, found, cflags, libs))
+
+ def flags(self, index):
+ return PyQt5.QtCore.Qt.ItemIsSelectable | PyQt5.QtCore.Qt.ItemIsEnabled
+
+ def rowCount(self, index):
+ if index.isValid():
+ return 0
+ return len(self.deps)
+
+ def columnCount(self, index):
+ return 4
+
+ def headerData(self, section, orientation, role):
+ if role != PyQt5.QtCore.Qt.DisplayRole:
+ return QVariant()
+ if section == 3:
+ return QVariant('Libraries')
+ if section == 2:
+ return QVariant('Compile flags')
+ if section == 1:
+ return QVariant('Found')
+ return QVariant('Name')
+
+ def data(self, index, role):
+ if role != PyQt5.QtCore.Qt.DisplayRole:
+ return QVariant()
+ row = index.row()
+ column = index.column()
+ return self.deps[row][column]
+
+ def index(self, row, column, parent):
+ return self.createIndex(row, column)
+
+ def parent(self, index):
+ return QModelIndex()
+
class MesonGui():
def __init__(self, build_dir):
- self.build_dir = os.path.join(os.getcwd(), build_dir)
- self.src_dir = os.path.normpath(os.path.join(self.build_dir, '..')) # HACK HACK HACK WRONG!
uifile = 'mesonmain.ui'
self.ui = uic.loadUi(uifile)
- self.ui.show()
self.coredata_file = os.path.join(build_dir, 'meson-private/coredata.dat')
self.build_file = os.path.join(build_dir, 'meson-private/build.dat')
if not os.path.exists(self.coredata_file):
@@ -144,8 +194,11 @@ class MesonGui():
sys.exit(1)
self.coredata = pickle.load(open(self.coredata_file, 'rb'))
self.build = pickle.load(open(self.build_file, 'rb'))
+ self.build_dir = self.build.environment.build_dir
+ self.src_dir = self.build.environment.source_dir
self.path_model = PathModel(self.coredata)
self.target_model = TargetModel(self.build)
+ self.dep_model = DependencyModel(self.coredata)
self.fill_data()
self.ui.path_view.setModel(self.path_model)
hv = QHeaderView(1)
@@ -155,6 +208,11 @@ class MesonGui():
hv = QHeaderView(1)
hv.setModel(self.target_model)
self.ui.target_view.setHeader(hv)
+ self.ui.dep_view.setModel(self.dep_model)
+ hv = QHeaderView(1)
+ hv.setModel(self.dep_model)
+ self.ui.dep_view.setHeader(hv)
+ self.ui.show()
def fill_data(self):
self.ui.project_label.setText(self.build.project)
diff --git a/mesonmain.ui b/mesonmain.ui
index 6418c6e..beeb960 100644
--- a/mesonmain.ui
+++ b/mesonmain.ui
@@ -149,6 +149,11 @@
<attribute name="title">
<string>Dependencies</string>
</attribute>
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QTreeView" name="dep_view"/>
+ </item>
+ </layout>
</widget>
<widget class="QWidget" name="target_tab">
<attribute name="title">
@@ -170,7 +175,7 @@
<x>0</x>
<y>0</y>
<width>740</width>
- <height>20</height>
+ <height>25</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">