From 0ebf31f223378a43ea0a31abbcc03d3f452fec66 Mon Sep 17 00:00:00 2001 From: Nix <75538775+nixietab@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:33:44 -0300 Subject: [PATCH] Update picodulce.py --- picodulce.py | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/picodulce.py b/picodulce.py index da7293e..6c21aa9 100644 --- a/picodulce.py +++ b/picodulce.py @@ -4,11 +4,12 @@ import threading from threading import Thread import logging import shutil +import platform import requests import json import os import time -from PyQt5.QtWidgets import QApplication, QComboBox, QWidget, QVBoxLayout, QListWidget, QPushButton, QMessageBox, QDialog, QHBoxLayout, QLabel, QLineEdit, QCheckBox, QTabWidget, QFrame, QSpacerItem, QSizePolicy, QMainWindow, QGridLayout +from PyQt5.QtWidgets import QApplication, QComboBox, QWidget, QVBoxLayout, QListWidget, QPushButton, QMessageBox, QDialog, QHBoxLayout, QLabel, QLineEdit, QCheckBox, QTabWidget, QFrame, QSpacerItem, QSizePolicy, QMainWindow, QGridLayout, QTextEdit from PyQt5.QtGui import QFont, QIcon, QColor, QPalette, QMovie, QPixmap, QDesktopServices from PyQt5.QtCore import Qt, QObject, pyqtSignal, QThread, QUrl, QMetaObject, Q_ARG from datetime import datetime @@ -134,11 +135,10 @@ class PicomcVersionSelector(QWidget): with open(config_path, "r") as config_file: self.config = json.load(config_file) - def open_settings_dialog(self): dialog = QDialog(self) dialog.setWindowTitle('Settings') - dialog.setFixedSize(300, 200) + dialog.setFixedSize(300, 250) # Create title label title_label = QLabel('Settings') @@ -184,6 +184,11 @@ class PicomcVersionSelector(QWidget): open_game_directory_button.clicked.connect(self.open_game_directory) layout.addWidget(open_game_directory_button) + # Create "Stats for Nerds" button + stats_button = QPushButton('Stats for Nerds') + stats_button.clicked.connect(self.show_system_info) + layout.addWidget(stats_button) + dialog.setLayout(layout) dialog.exec_() @@ -201,6 +206,42 @@ class PicomcVersionSelector(QWidget): # Default to dark palette if the type is not specified or invalid return palettes.get(palette_type, self.create_dark_palette)() + def get_system_info(self): + # Get system information + java_version = subprocess.getoutput("java -version 2>&1 | head -n 1") + python_version = sys.version + pip_version = subprocess.getoutput("pip --version") + architecture = platform.architecture()[0] + operating_system = platform.system() + " " + platform.release() + + # Get versions of installed pip packages + installed_packages = subprocess.getoutput("pip list") + + return f"Java Version: {java_version}\nPython Version: {python_version}\nPip Version: {pip_version}\n" \ + f"Architecture: {architecture}\nOperating System: {operating_system}\n\nPip Installed Packages:\n{installed_packages}" + + def show_system_info(self): + system_info = self.get_system_info() + + # Create a dialog to show the system info in a text box + info_dialog = QDialog(self) + info_dialog.setWindowTitle('Stats for Nerds') + + layout = QVBoxLayout() + + # Create a text box to display the system info + text_box = QTextEdit() + text_box.setText(system_info) + text_box.setReadOnly(True) # Make the text box read-only + layout.addWidget(text_box) + + # Create a close button + close_button = QPushButton('Close') + close_button.clicked.connect(info_dialog.close) + layout.addWidget(close_button) + + info_dialog.setLayout(layout) + info_dialog.exec_() def open_game_directory(self): try: