From 033512a8d1d4d3b2585fee9d169c49354d11d662 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 31 Jan 2025 09:43:36 +1000 Subject: [PATCH] Remove unused widgets_tree.py script --- scripts/widgets_tree.py | 204 ---------------------------------------- 1 file changed, 204 deletions(-) delete mode 100644 scripts/widgets_tree.py diff --git a/scripts/widgets_tree.py b/scripts/widgets_tree.py deleted file mode 100644 index 10a2b4efe02..00000000000 --- a/scripts/widgets_tree.py +++ /dev/null @@ -1,204 +0,0 @@ -#!/usr/bin/env python3 - -""" -*************************************************************************** - widgets_tree.py - --------------------- - Date : May 2011 - Copyright : (C) 2011 by Martin Dobias - Email : wonder dot sk at gmail dot com -*************************************************************************** -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License as published by * -* the Free Software Foundation; either version 2 of the License, or * -* (at your option) any later version. * -* * -*************************************************************************** -""" - -__author__ = "Martin Dobias" -__date__ = "May 2011" -__copyright__ = "(C) 2011, Martin Dobias" - -""" -Reads .ui files from ../src/ui/ directory and write to stdout an XML describing -widgets tree. - -Python bindings must be compiled and in PYTHONPATH - -QGIS libraries must be in LD_LIBRARY_PATH - -Output should go to ../resources/customization.xml - -""" - -import glob -import os -import sys - -# qwt_plot is missing somehow but it may depend on installed packages -from qgis.PyQt import Qwt5 as qwt_plot -from qgis.PyQt.QtWidgets import ( - QCheckBox, - QComboBox, - QDateEdit, - QDateTimeEdit, - QDial, - QDialog, - QDialogButtonBox, - QGroupBox, - QLabel, - QLCDNumber, - QLineEdit, - QListView, - QProgressBar, - QPushButton, - QRadioButton, - QScrollArea, - QScrollBar, - QSlider, - QSpinBox, - QStackedWidget, - QTableView, - QTabWidget, - QTextBrowser, - QTextEdit, - QTimeEdit, - QWidget, -) -from qgis.PyQt.QtXml import QDomDocument -from qgis.PyQt.uic import loadUi - -sys.modules["qwt_plot"] = qwt_plot - -# loadUi is looking for custom widget in module which is lowercase version of -# the class, which do not exist (AFAIK) -> preload them, problems anyway: -# missing in gui: QgsColorRampComboBox, QgsRendererRulesTreeWidget, -# QgsRendererRulesTreeWidget -# and QgsProjectionSelector cannot open db file -from qgis import gui - -for m in [ - "qgscolorbutton", - "qgscolorrampcombobox", - "qgsprojectionselector", - "qgslabelpreview", - "qgsrulebasedrendererwidget", - "qgscollapsiblegroupbox", - "qgsblendmodecombobox", - "qgsexpressionbuilderwidget", - "qgsrasterformatsaveoptionswidget", - "qgsrasterpyramidsoptionswidget", - "qgsscalecombobox", - "qgsfilterlineedit", - "qgsdualview", -]: - sys.modules[m] = gui - - -class UiInspector: - - def __init__(self): - self.ui_dir = os.path.abspath( - os.path.join(os.path.dirname(__file__), "../src/ui/*.ui") - ) - self.printMsg("Loading UI files " + self.ui_dir) - # list of widget classes we want to follow - self.follow = [ - QWidget, - QDialog, - QCheckBox, - QComboBox, - QDial, - QPushButton, - QLabel, - QLCDNumber, - QLineEdit, - QRadioButton, - QScrollBar, - QSlider, - QSpinBox, - QTextEdit, - QDateEdit, - QTimeEdit, - QDateTimeEdit, - QListView, - QProgressBar, - QTableView, - QTabWidget, - QTextBrowser, - QDialogButtonBox, - QScrollArea, - QGroupBox, - QStackedWidget, - ] - - def printMsg(self, msg): - sys.stderr.write(msg + "\n") - - def widgetXml(self, element, widget, level=0, label=None): - # print tostring ( element ) - # self.printMsg ( "class: " + str( type ( widget ) ) ) - # self.printMsg ( "objectName: " + widget.objectName() ) - # self.printMsg ( "windowTitle: " + widget.windowTitle() ) - - if not widget.objectName(): - return - - lab = label - if hasattr(widget, "text"): - lab = widget.text() - if widget.windowTitle(): - label = widget.windowTitle() - if not lab: - lab = "" - - subElement = self.doc.createElement("widget") - subElement.setAttribute("class", widget.__class__.__name__) - subElement.setAttribute("objectName", widget.objectName()) - subElement.setAttribute("label", lab) - element.appendChild(subElement) - - # print str ( widget.children () ) - # tab widget label is stored in QTabWidget->QTabBarPrivate->tabList->QTab .. - if type(widget) in [QTabWidget]: - children = list( - {"widget": widget.widget(i), "label": widget.tabText(i)} - for i in range(0, widget.count()) - ) - else: - children = list({"widget": c, "label": None} for c in widget.children()) - for child in children: - w = child["widget"] - if w.isWidgetType() and (type(w) in self.follow): - self.widgetXml(subElement, w, level + 1, child["label"]) - - def xml(self): - self.doc = QDomDocument() - element = self.doc.createElement("qgiswidgets") - self.doc.appendChild(element) - for p in glob.glob(self.ui_dir): - self.printMsg("Loading " + p) - # qgsrasterlayerpropertiesbase.ui is giving: No module named qwt_plot - try: - widget = loadUi(p) - # print dir ( ui ) - self.widgetXml(element, widget) - except Exception as e: - self.printMsg(str(e)) - - return self.doc.toString(2) - - -if __name__ == "__main__": - from qgis.PyQt.QtCore import QApplication - - app = QApplication(sys.argv) # required by loadUi - inspector = UiInspector() - xml = inspector.xml() - sys.stdout.write(xml) - sys.stdout.flush() - - del app - sys.exit(0)