mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-07 00:03:52 -05:00
[processing] add button to collapse/expand short help
This commit is contained in:
parent
ffac4f9648
commit
f4853a2173
@ -30,8 +30,8 @@ import os
|
|||||||
import webbrowser
|
import webbrowser
|
||||||
|
|
||||||
from qgis.PyQt import uic
|
from qgis.PyQt import uic
|
||||||
from qgis.PyQt.QtCore import QCoreApplication, QByteArray, QUrl
|
from qgis.PyQt.QtCore import Qt, QCoreApplication, QByteArray, QUrl
|
||||||
from qgis.PyQt.QtWidgets import QApplication, QDialogButtonBox
|
from qgis.PyQt.QtWidgets import QApplication, QDialogButtonBox, QVBoxLayout, QToolButton
|
||||||
|
|
||||||
from qgis.utils import iface
|
from qgis.utils import iface
|
||||||
from qgis.core import (QgsProject,
|
from qgis.core import (QgsProject,
|
||||||
@ -80,6 +80,20 @@ class AlgorithmDialogBase(BASE, WIDGET):
|
|||||||
super(AlgorithmDialogBase, self).__init__(iface.mainWindow())
|
super(AlgorithmDialogBase, self).__init__(iface.mainWindow())
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
|
# don't collapse parameters panel
|
||||||
|
self.splitter.setCollapsible(0, False)
|
||||||
|
|
||||||
|
# add collapse button to splitter
|
||||||
|
splitterHandle = self.splitter.handle(1)
|
||||||
|
handleLayout = QVBoxLayout()
|
||||||
|
handleLayout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.btnCollapse = QToolButton(splitterHandle)
|
||||||
|
self.btnCollapse.setAutoRaise(True)
|
||||||
|
self.btnCollapse.setFixedSize(12, 12)
|
||||||
|
handleLayout.addWidget(self.btnCollapse)
|
||||||
|
handleLayout.insertStretch(0)
|
||||||
|
splitterHandle.setLayout(handleLayout)
|
||||||
|
|
||||||
self.feedback = AlgorithmDialogFeedback(self)
|
self.feedback = AlgorithmDialogFeedback(self)
|
||||||
self.feedback.progressChanged.connect(self.setPercentage)
|
self.feedback.progressChanged.connect(self.setPercentage)
|
||||||
self.buttonCancel.clicked.connect(self.feedback.cancel)
|
self.buttonCancel.clicked.connect(self.feedback.cancel)
|
||||||
@ -87,6 +101,8 @@ class AlgorithmDialogBase(BASE, WIDGET):
|
|||||||
self.settings = QgsSettings()
|
self.settings = QgsSettings()
|
||||||
self.splitter.restoreState(self.settings.value("/Processing/dialogBaseSplitter", QByteArray()))
|
self.splitter.restoreState(self.settings.value("/Processing/dialogBaseSplitter", QByteArray()))
|
||||||
self.restoreGeometry(self.settings.value("/Processing/dialogBase", QByteArray()))
|
self.restoreGeometry(self.settings.value("/Processing/dialogBase", QByteArray()))
|
||||||
|
self.splitterState = self.splitter.saveState()
|
||||||
|
self.splitterChanged(0, 0)
|
||||||
|
|
||||||
self.setWindowTitle(self.alg.displayName())
|
self.setWindowTitle(self.alg.displayName())
|
||||||
|
|
||||||
@ -103,8 +119,8 @@ class AlgorithmDialogBase(BASE, WIDGET):
|
|||||||
self.btnClose = self.buttonBox.button(QDialogButtonBox.Close)
|
self.btnClose = self.buttonBox.button(QDialogButtonBox.Close)
|
||||||
self.buttonBox.helpRequested.connect(self.openHelp)
|
self.buttonBox.helpRequested.connect(self.openHelp)
|
||||||
|
|
||||||
# don't collapse parameters panel
|
self.btnCollapse.clicked.connect(self.toggleCollapsed)
|
||||||
self.splitter.setCollapsible(0, False)
|
self.splitter.splitterMoved.connect(self.splitterChanged)
|
||||||
|
|
||||||
# desktop = QDesktopWidget()
|
# desktop = QDesktopWidget()
|
||||||
# if desktop.physicalDpiX() > 96:
|
# if desktop.physicalDpiX() > 96:
|
||||||
@ -209,6 +225,24 @@ class AlgorithmDialogBase(BASE, WIDGET):
|
|||||||
def finish(self, context):
|
def finish(self, context):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def toggleCollapsed(self):
|
||||||
|
if self.helpCollapsed:
|
||||||
|
self.splitter.restoreState(self.splitterState)
|
||||||
|
self.btnCollapse.setArrowType(Qt.RightArrow)
|
||||||
|
else:
|
||||||
|
self.splitterState = self.splitter.saveState()
|
||||||
|
self.splitter.setSizes([1, 0])
|
||||||
|
self.btnCollapse.setArrowType(Qt.LeftArrow)
|
||||||
|
self.helpCollapsed = not self.helpCollapsed
|
||||||
|
|
||||||
|
def splitterChanged(self, pos, index):
|
||||||
|
if self.splitter.sizes()[1] == 0:
|
||||||
|
self.helpCollapsed = True
|
||||||
|
self.btnCollapse.setArrowType(Qt.LeftArrow)
|
||||||
|
else:
|
||||||
|
self.helpCollapsed = False
|
||||||
|
self.btnCollapse.setArrowType(Qt.RightArrow)
|
||||||
|
|
||||||
def openHelp(self):
|
def openHelp(self):
|
||||||
algHelp = self.alg.helpUrl()
|
algHelp = self.alg.helpUrl()
|
||||||
if algHelp is not None:
|
if algHelp is not None:
|
||||||
|
|||||||
@ -25,6 +25,9 @@
|
|||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="handleWidth">
|
||||||
|
<number>16</number>
|
||||||
|
</property>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
@ -112,6 +115,9 @@
|
|||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="accessibleName">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
<property name="openLinks">
|
<property name="openLinks">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user