-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a493a06
commit 70d494c
Showing
430 changed files
with
87,826 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
578 changes: 578 additions & 0 deletions
578
crayfish/pyqtgraph_0_12_2/GraphicsScene/GraphicsScene.py
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from .GraphicsScene import * |
147 changes: 147 additions & 0 deletions
147
crayfish/pyqtgraph_0_12_2/GraphicsScene/exportDialog.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
from ..Qt import QtCore, QtGui, QtWidgets, QT_LIB | ||
from .. import exporters as exporters | ||
from .. import functions as fn | ||
from ..graphicsItems.ViewBox import ViewBox | ||
from ..graphicsItems.PlotItem import PlotItem | ||
|
||
import importlib | ||
ui_template = importlib.import_module( | ||
f'.exportDialogTemplate_{QT_LIB.lower()}', package=__package__) | ||
|
||
|
||
class FormatExportListWidgetItem(QtWidgets.QListWidgetItem): | ||
def __init__(self, expClass, *args, **kwargs): | ||
QtWidgets.QListWidgetItem.__init__(self, *args, **kwargs) | ||
self.expClass = expClass | ||
|
||
|
||
class ExportDialog(QtGui.QWidget): | ||
def __init__(self, scene): | ||
QtGui.QWidget.__init__(self) | ||
self.setVisible(False) | ||
self.setWindowTitle("Export") | ||
self.shown = False | ||
self.currentExporter = None | ||
self.scene = scene | ||
|
||
self.selectBox = QtGui.QGraphicsRectItem() | ||
self.selectBox.setPen(fn.mkPen('y', width=3, style=QtCore.Qt.PenStyle.DashLine)) | ||
self.selectBox.hide() | ||
self.scene.addItem(self.selectBox) | ||
|
||
self.ui = ui_template.Ui_Form() | ||
self.ui.setupUi(self) | ||
|
||
self.ui.closeBtn.clicked.connect(self.close) | ||
self.ui.exportBtn.clicked.connect(self.exportClicked) | ||
self.ui.copyBtn.clicked.connect(self.copyClicked) | ||
self.ui.itemTree.currentItemChanged.connect(self.exportItemChanged) | ||
self.ui.formatList.currentItemChanged.connect(self.exportFormatChanged) | ||
|
||
|
||
def show(self, item=None): | ||
if item is not None: | ||
## Select next exportable parent of the item originally clicked on | ||
while not isinstance(item, ViewBox) and not isinstance(item, PlotItem) and item is not None: | ||
item = item.parentItem() | ||
## if this is a ViewBox inside a PlotItem, select the parent instead. | ||
if isinstance(item, ViewBox) and isinstance(item.parentItem(), PlotItem): | ||
item = item.parentItem() | ||
self.updateItemList(select=item) | ||
self.setVisible(True) | ||
self.activateWindow() | ||
self.raise_() | ||
self.selectBox.setVisible(True) | ||
|
||
if not self.shown: | ||
self.shown = True | ||
vcenter = self.scene.getViewWidget().geometry().center() | ||
self.setGeometry(vcenter.x()-self.width()/2, vcenter.y()-self.height()/2, self.width(), self.height()) | ||
|
||
def updateItemList(self, select=None): | ||
self.ui.itemTree.clear() | ||
si = QtGui.QTreeWidgetItem(["Entire Scene"]) | ||
si.gitem = self.scene | ||
self.ui.itemTree.addTopLevelItem(si) | ||
self.ui.itemTree.setCurrentItem(si) | ||
si.setExpanded(True) | ||
for child in self.scene.items(): | ||
if child.parentItem() is None: | ||
self.updateItemTree(child, si, select=select) | ||
|
||
def updateItemTree(self, item, treeItem, select=None): | ||
si = None | ||
if isinstance(item, ViewBox): | ||
si = QtGui.QTreeWidgetItem(['ViewBox']) | ||
elif isinstance(item, PlotItem): | ||
si = QtGui.QTreeWidgetItem(['Plot']) | ||
|
||
if si is not None: | ||
si.gitem = item | ||
treeItem.addChild(si) | ||
treeItem = si | ||
if si.gitem is select: | ||
self.ui.itemTree.setCurrentItem(si) | ||
|
||
for ch in item.childItems(): | ||
self.updateItemTree(ch, treeItem, select=select) | ||
|
||
|
||
def exportItemChanged(self, item, prev): | ||
if item is None: | ||
return | ||
if item.gitem is self.scene: | ||
newBounds = self.scene.views()[0].viewRect() | ||
else: | ||
newBounds = item.gitem.sceneBoundingRect() | ||
self.selectBox.setRect(newBounds) | ||
self.selectBox.show() | ||
self.updateFormatList() | ||
|
||
def updateFormatList(self): | ||
current = self.ui.formatList.currentItem() | ||
|
||
self.ui.formatList.clear() | ||
gotCurrent = False | ||
for exp in exporters.listExporters(): | ||
item = FormatExportListWidgetItem(exp, QtCore.QCoreApplication.translate('Exporter', exp.Name)) | ||
self.ui.formatList.addItem(item) | ||
if item == current: | ||
self.ui.formatList.setCurrentRow(self.ui.formatList.count() - 1) | ||
gotCurrent = True | ||
|
||
if not gotCurrent: | ||
self.ui.formatList.setCurrentRow(0) | ||
|
||
def exportFormatChanged(self, item, prev): | ||
if item is None: | ||
self.currentExporter = None | ||
self.ui.paramTree.clear() | ||
return | ||
expClass = item.expClass | ||
exp = expClass(item=self.ui.itemTree.currentItem().gitem) | ||
|
||
params = exp.parameters() | ||
|
||
if params is None: | ||
self.ui.paramTree.clear() | ||
else: | ||
self.ui.paramTree.setParameters(params) | ||
self.currentExporter = exp | ||
self.ui.copyBtn.setEnabled(exp.allowCopy) | ||
|
||
def exportClicked(self): | ||
self.selectBox.hide() | ||
self.currentExporter.export() | ||
|
||
def copyClicked(self): | ||
self.selectBox.hide() | ||
self.currentExporter.export(copy=True) | ||
|
||
def close(self): | ||
self.selectBox.setVisible(False) | ||
self.setVisible(False) | ||
|
||
def closeEvent(self, event): | ||
self.close() | ||
super().closeEvent(event) |
66 changes: 66 additions & 0 deletions
66
crayfish/pyqtgraph_0_12_2/GraphicsScene/exportDialogTemplate_pyqt5.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
# Form implementation generated from reading ui file '.\exportDialogTemplate.ui' | ||
# | ||
# Created by: PyQt5 UI code generator 5.15.4 | ||
# | ||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is | ||
# run again. Do not edit this file unless you know what you are doing. | ||
|
||
|
||
from PyQt5 import QtCore, QtGui, QtWidgets | ||
|
||
|
||
class Ui_Form(object): | ||
def setupUi(self, Form): | ||
Form.setObjectName("Form") | ||
Form.resize(241, 367) | ||
self.gridLayout = QtWidgets.QGridLayout(Form) | ||
self.gridLayout.setSpacing(0) | ||
self.gridLayout.setObjectName("gridLayout") | ||
self.label = QtWidgets.QLabel(Form) | ||
self.label.setObjectName("label") | ||
self.gridLayout.addWidget(self.label, 0, 0, 1, 3) | ||
self.itemTree = QtWidgets.QTreeWidget(Form) | ||
self.itemTree.setObjectName("itemTree") | ||
self.itemTree.headerItem().setText(0, "1") | ||
self.itemTree.header().setVisible(False) | ||
self.gridLayout.addWidget(self.itemTree, 1, 0, 1, 3) | ||
self.label_2 = QtWidgets.QLabel(Form) | ||
self.label_2.setObjectName("label_2") | ||
self.gridLayout.addWidget(self.label_2, 2, 0, 1, 3) | ||
self.formatList = QtWidgets.QListWidget(Form) | ||
self.formatList.setObjectName("formatList") | ||
self.gridLayout.addWidget(self.formatList, 3, 0, 1, 3) | ||
self.exportBtn = QtWidgets.QPushButton(Form) | ||
self.exportBtn.setObjectName("exportBtn") | ||
self.gridLayout.addWidget(self.exportBtn, 6, 1, 1, 1) | ||
self.closeBtn = QtWidgets.QPushButton(Form) | ||
self.closeBtn.setObjectName("closeBtn") | ||
self.gridLayout.addWidget(self.closeBtn, 6, 2, 1, 1) | ||
self.paramTree = ParameterTree(Form) | ||
self.paramTree.setColumnCount(2) | ||
self.paramTree.setObjectName("paramTree") | ||
self.paramTree.headerItem().setText(0, "1") | ||
self.paramTree.header().setVisible(False) | ||
self.gridLayout.addWidget(self.paramTree, 5, 0, 1, 3) | ||
self.label_3 = QtWidgets.QLabel(Form) | ||
self.label_3.setObjectName("label_3") | ||
self.gridLayout.addWidget(self.label_3, 4, 0, 1, 3) | ||
self.copyBtn = QtWidgets.QPushButton(Form) | ||
self.copyBtn.setObjectName("copyBtn") | ||
self.gridLayout.addWidget(self.copyBtn, 6, 0, 1, 1) | ||
|
||
self.retranslateUi(Form) | ||
QtCore.QMetaObject.connectSlotsByName(Form) | ||
|
||
def retranslateUi(self, Form): | ||
_translate = QtCore.QCoreApplication.translate | ||
Form.setWindowTitle(_translate("Form", "Export")) | ||
self.label.setText(_translate("Form", "Item to export:")) | ||
self.label_2.setText(_translate("Form", "Export format")) | ||
self.exportBtn.setText(_translate("Form", "Export")) | ||
self.closeBtn.setText(_translate("Form", "Close")) | ||
self.label_3.setText(_translate("Form", "Export options")) | ||
self.copyBtn.setText(_translate("Form", "Copy")) | ||
from ..parametertree import ParameterTree |
64 changes: 64 additions & 0 deletions
64
crayfish/pyqtgraph_0_12_2/GraphicsScene/exportDialogTemplate_pyqt6.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# Form implementation generated from reading ui file '../pyqtgraph/GraphicsScene/exportDialogTemplate.ui' | ||
# | ||
# Created by: PyQt6 UI code generator 6.1.0 | ||
# | ||
# WARNING: Any manual changes made to this file will be lost when pyuic6 is | ||
# run again. Do not edit this file unless you know what you are doing. | ||
|
||
|
||
from PyQt6 import QtCore, QtGui, QtWidgets | ||
|
||
|
||
class Ui_Form(object): | ||
def setupUi(self, Form): | ||
Form.setObjectName("Form") | ||
Form.resize(241, 367) | ||
self.gridLayout = QtWidgets.QGridLayout(Form) | ||
self.gridLayout.setSpacing(0) | ||
self.gridLayout.setObjectName("gridLayout") | ||
self.label = QtWidgets.QLabel(Form) | ||
self.label.setObjectName("label") | ||
self.gridLayout.addWidget(self.label, 0, 0, 1, 3) | ||
self.itemTree = QtWidgets.QTreeWidget(Form) | ||
self.itemTree.setObjectName("itemTree") | ||
self.itemTree.headerItem().setText(0, "1") | ||
self.itemTree.header().setVisible(False) | ||
self.gridLayout.addWidget(self.itemTree, 1, 0, 1, 3) | ||
self.label_2 = QtWidgets.QLabel(Form) | ||
self.label_2.setObjectName("label_2") | ||
self.gridLayout.addWidget(self.label_2, 2, 0, 1, 3) | ||
self.formatList = QtWidgets.QListWidget(Form) | ||
self.formatList.setObjectName("formatList") | ||
self.gridLayout.addWidget(self.formatList, 3, 0, 1, 3) | ||
self.exportBtn = QtWidgets.QPushButton(Form) | ||
self.exportBtn.setObjectName("exportBtn") | ||
self.gridLayout.addWidget(self.exportBtn, 6, 1, 1, 1) | ||
self.closeBtn = QtWidgets.QPushButton(Form) | ||
self.closeBtn.setObjectName("closeBtn") | ||
self.gridLayout.addWidget(self.closeBtn, 6, 2, 1, 1) | ||
self.paramTree = ParameterTree(Form) | ||
self.paramTree.setColumnCount(2) | ||
self.paramTree.setObjectName("paramTree") | ||
self.paramTree.headerItem().setText(0, "1") | ||
self.paramTree.header().setVisible(False) | ||
self.gridLayout.addWidget(self.paramTree, 5, 0, 1, 3) | ||
self.label_3 = QtWidgets.QLabel(Form) | ||
self.label_3.setObjectName("label_3") | ||
self.gridLayout.addWidget(self.label_3, 4, 0, 1, 3) | ||
self.copyBtn = QtWidgets.QPushButton(Form) | ||
self.copyBtn.setObjectName("copyBtn") | ||
self.gridLayout.addWidget(self.copyBtn, 6, 0, 1, 1) | ||
|
||
self.retranslateUi(Form) | ||
QtCore.QMetaObject.connectSlotsByName(Form) | ||
|
||
def retranslateUi(self, Form): | ||
_translate = QtCore.QCoreApplication.translate | ||
Form.setWindowTitle(_translate("Form", "Export")) | ||
self.label.setText(_translate("Form", "Item to export:")) | ||
self.label_2.setText(_translate("Form", "Export format")) | ||
self.exportBtn.setText(_translate("Form", "Export")) | ||
self.closeBtn.setText(_translate("Form", "Close")) | ||
self.label_3.setText(_translate("Form", "Export options")) | ||
self.copyBtn.setText(_translate("Form", "Copy")) | ||
from ..parametertree import ParameterTree |
Oops, something went wrong.