74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
import sys
|
|
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QPushButton, QTreeView
|
|
from PyQt5.Qt import QStandardItemModel, QStandardItem
|
|
from PyQt5.QtCore import pyqtSlot, QAbstractListModel
|
|
import json
|
|
|
|
import GlowstoneDust
|
|
|
|
|
|
class App(QMainWindow):
|
|
|
|
def __init__(self, target_dir='.'):
|
|
super().__init__()
|
|
self.title = 'Project Glowstone: Block Edition'
|
|
self.left = 300
|
|
self.top = 300
|
|
self.width = 640
|
|
self.height = 480
|
|
self.target_dir = target_dir
|
|
self.init_ui()
|
|
|
|
def init_ui(self):
|
|
self.setWindowTitle(self.title)
|
|
self.setGeometry(self.left, self.top, self.width, self.height)
|
|
|
|
self.treeView = QTreeView()
|
|
self.treeView.setHeaderHidden(True)
|
|
|
|
self.update_modlist(list(GlowstoneDust.get_modpack_info(self.target_dir)))
|
|
|
|
self.statusBar().showMessage('Message')
|
|
self.show()
|
|
|
|
def update_modlist(self, modlist=None):
|
|
self.treeModel = QStandardItemModel()
|
|
self.rootNode = self.treeModel.invisibleRootItem()
|
|
|
|
self.modlist = modlist or []
|
|
print(json.dumps(self.modlist, indent=4))
|
|
|
|
mc = QStandardItem('Minecraft')
|
|
mc.setEditable(False)
|
|
self.rootNode.appendRow(mc)
|
|
|
|
for mod in self.modlist:
|
|
mod_row = QStandardItem(mod['modid'])
|
|
for dependant_mod in mod.get('dependencies', []):
|
|
if dependant_mod is dict:
|
|
mod_row.appendRow(QStandardItem(dependant_mod.get('modid')))
|
|
else:
|
|
mod_row.appendRow(QStandardItem(dependant_mod))
|
|
mc.appendRow(mod_row)
|
|
|
|
self.treeView.setModel(self.treeModel)
|
|
self.treeView.expandAll()
|
|
self.setCentralWidget(self.treeView)
|
|
|
|
|
|
@pyqtSlot()
|
|
def on_click(self):
|
|
print('PyQt5 button click')
|
|
|
|
@pyqtSlot()
|
|
def make_tree(self):
|
|
print("Making mod tree...")
|
|
modpack_info = GlowstoneDust.get_modpack_info('.')
|
|
print(json.dumps(modpack_info))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app = QApplication(sys.argv)
|
|
ex = App(target_dir=r"C:\Users\VY Canis Majoris\AppData\Roaming\.moddedminecraft\1.12\1.12.2\Sinkhole\mods")
|
|
sys.exit(app.exec_())
|