Add edit mode in sidebar

This commit is contained in:
RumovZ 2021-02-25 13:12:51 +01:00
parent 0889972bb0
commit 4a1e995934
3 changed files with 86 additions and 4 deletions

View file

@ -12,5 +12,6 @@
<file>icons/flag.svg</file> <file>icons/flag.svg</file>
<file>icons/select.svg</file> <file>icons/select.svg</file>
<file>icons/magnifying_glass.svg</file> <file>icons/magnifying_glass.svg</file>
<file>icons/edit.svg</file>
</qresource> </qresource>
</RCC> </RCC>

View file

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
viewBox="0 0 16.933333 16.933334"
version="1.1"
id="svg8"
inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"
sodipodi:docname="edit.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.313708"
inkscape:cx="32.130617"
inkscape:cy="14.656091"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="true"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
gridtolerance="10000"
objecttolerance="51"
guidetolerance="51"
inkscape:snap-global="true">
<inkscape:grid
type="xygrid"
id="grid833" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect883"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.607;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 11.90625,9.2604167 0,6.8791663 H 0.79375 V 2.6458333 l 8.4666667,0"
sodipodi:nodetypes="ccccc" />
<path
id="rect899"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.507;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 13.232445,1.7717731 7.7759707,7.0241793 6.5251288,10.064477 9.6108749,8.9303738 15.067347,3.6779648 13.232445,1.7717731 14.304678,0.7396394 16.139583,2.6458333 15.067347,3.6779648"
sodipodi:nodetypes="ccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -32,6 +32,7 @@ from aqt.utils import (
class SidebarTool(Enum): class SidebarTool(Enum):
SELECT = auto() SELECT = auto()
SEARCH = auto() SEARCH = auto()
EDIT = auto()
class SidebarItemType(Enum): class SidebarItemType(Enum):
@ -247,6 +248,7 @@ class SidebarToolbar(QToolBar):
_tools: Tuple[SidebarTool, str, str] = ( _tools: Tuple[SidebarTool, str, str] = (
(SidebarTool.SELECT, ":/icons/select.svg", "select"), (SidebarTool.SELECT, ":/icons/select.svg", "select"),
(SidebarTool.SEARCH, ":/icons/magnifying_glass.svg", "search"), (SidebarTool.SEARCH, ":/icons/magnifying_glass.svg", "search"),
(SidebarTool.EDIT, ":/icons/edit.svg", "edit"),
) )
def __init__(self, sidebar: SidebarTreeView) -> None: def __init__(self, sidebar: SidebarTreeView) -> None:
@ -350,7 +352,6 @@ class SidebarTreeView(QTreeView):
self.setHeaderHidden(True) self.setHeaderHidden(True)
self.setIndentation(15) self.setIndentation(15)
self.setAutoExpandDelay(600) self.setAutoExpandDelay(600)
self.setDragDropMode(QAbstractItemView.InternalMove)
self.setDragDropOverwriteMode(False) self.setDragDropOverwriteMode(False)
qconnect(self.expanded, self._on_expansion) qconnect(self.expanded, self._on_expansion)
@ -379,11 +380,17 @@ class SidebarTreeView(QTreeView):
self._tool = tool self._tool = tool
if tool == SidebarTool.SELECT: if tool == SidebarTool.SELECT:
# pylint: disable=no-member # pylint: disable=no-member
mode = QAbstractItemView.SelectionMode.ExtendedSelection # type: ignore selection_mode = QAbstractItemView.ExtendedSelection # type: ignore
drag_drop_mode = QAbstractItemView.NoDragDrop
elif tool == SidebarTool.SEARCH: elif tool == SidebarTool.SEARCH:
# pylint: disable=no-member # pylint: disable=no-member
mode = QAbstractItemView.SelectionMode.SingleSelection # type: ignore selection_mode = QAbstractItemView.SingleSelection # type: ignore
self.setSelectionMode(mode) drag_drop_mode = QAbstractItemView.NoDragDrop
elif tool == SidebarTool.EDIT:
selection_mode = QAbstractItemView.SingleSelection # type: ignore
drag_drop_mode = QAbstractItemView.InternalMove
self.setSelectionMode(selection_mode)
self.setDragDropMode(drag_drop_mode)
def model(self) -> SidebarModel: def model(self) -> SidebarModel:
return super().model() return super().model()