diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-09-27 20:44:31 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-09-27 20:44:31 +0300 |
commit | c58500580227a0889cfeae854a24c91961716fe0 (patch) | |
tree | 3ef4f7d4eb38bda7c3ac69a78a6a49c774fb32e9 | |
parent | 1c693475a7c998afd28901abc89eb5e7686b3ef2 (diff) | |
download | meson-c58500580227a0889cfeae854a24c91961716fe0.zip meson-c58500580227a0889cfeae854a24c91961716fe0.tar.gz meson-c58500580227a0889cfeae854a24c91961716fe0.tar.bz2 |
Display dependencies in the gui.
-rwxr-xr-x | mesongui.py | 64 | ||||
-rw-r--r-- | mesonmain.ui | 7 |
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"> |