Skip to content

Commit

Permalink
0122
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterPetrik committed Sep 13, 2021
1 parent a493a06 commit 70d494c
Show file tree
Hide file tree
Showing 430 changed files with 87,826 additions and 26 deletions.
8 changes: 2 additions & 6 deletions crayfish/gui/plot_1d_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,11 @@
from qgis.gui import *
from qgis.utils import iface


try:
import pyqtgraph
except ImportError:
import sys
import os
this_dir = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(this_dir, os.pardir, 'pyqtgraph-0.11.1-py2.py3-none-any.whl')
sys.path.append(path)
import pyqtgraph
import crayfish.pyqtgraph_0_12_2 as pyqtgraph

from ..plot import timeseries_plot_data, cross_section_plot_data, colors, profile_1D_plot_data
from .utils import time_to_string
Expand Down
8 changes: 1 addition & 7 deletions crayfish/gui/plot_3d_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,10 @@
from qgis.gui import *
from qgis.utils import iface


try:
import pyqtgraph
except ImportError:
import sys
import os
this_dir = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(this_dir, os.pardir, 'pyqtgraph-0.11.1-py2.py3-none-any.whl')
sys.path.append(path)
import pyqtgraph
import crayfish.pyqtgraph_0_12_2 as pyqtgraph

from ..plot import colors, plot_3d_data
from .utils import time_to_string
Expand Down
7 changes: 1 addition & 6 deletions crayfish/gui/plot_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,7 @@
try:
import pyqtgraph
except ImportError:
import sys
import os
this_dir = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(this_dir, os.pardir, 'pyqtgraph-0.11.1-py2.py3-none-any.whl')
sys.path.append(path)
import pyqtgraph
import crayfish.pyqtgraph_0_12_2 as pyqtgraph

from ..plot import timeseries_plot_data, cross_section_plot_data, colors, integral_plot_data
from .utils import time_to_string
Expand Down
1 change: 1 addition & 0 deletions crayfish/metadata.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ about=The Crayfish plugin contains set of advanced tool for the QGIS Mesh Layer
; start of optional metadata
changelog=3.5.3 Bug Fixes:
- fix support for QGIS 3.20 on Windows
- Usage of pyqtgraph 0.12.2
<p>3.5.2 Bug Fixes:
- fix export animation of vector datasets
<p>3.5.1 Bug Fixes:
Expand Down
9 changes: 2 additions & 7 deletions crayfish/plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,8 @@
import pyqtgraph as pg
from pyqtgraph.exporters import ImageExporter
except ImportError:
import sys
import os
this_dir = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(this_dir, 'pyqtgraph-0.11.1-py2.py3-none-any.whl')
sys.path.append(path)
import pyqtgraph as pg
from pyqtgraph.exporters import ImageExporter
import crayfish.pyqtgraph_0_12_2 as pg
from crayfish.pyqtgraph_0_12_2.exporters import ImageExporter

from .utils import integrate

Expand Down
Binary file removed crayfish/pyqtgraph-0.11.1-py2.py3-none-any.whl
Binary file not shown.
578 changes: 578 additions & 0 deletions crayfish/pyqtgraph_0_12_2/GraphicsScene/GraphicsScene.py

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions crayfish/pyqtgraph_0_12_2/GraphicsScene/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .GraphicsScene import *
147 changes: 147 additions & 0 deletions crayfish/pyqtgraph_0_12_2/GraphicsScene/exportDialog.py
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)
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
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
Loading

0 comments on commit 70d494c

Please sign in to comment.