mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-22 00:06:12 -05:00
Remove unused widgets_tree.py script
This commit is contained in:
parent
8977aac5e5
commit
033512a8d1
@ -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)
|
Loading…
x
Reference in New Issue
Block a user