mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-18 20:28:01 -06:00
Get default settings view to work as sidebar component
This commit is contained in:
parent
5eeb98bbcf
commit
3c863fc388
8 changed files with 138 additions and 49 deletions
|
@ -1,9 +1,7 @@
|
|||
# Copyright (c) 2017 Ultimaker B.V.
|
||||
from UM.Logger import Logger
|
||||
from UM.PluginRegistry import PluginRegistry
|
||||
from UM.Signal import Signal
|
||||
from .SidebarView import SidebarView
|
||||
from typing import Optional, Dict
|
||||
from UM.PluginRegistry import PluginRegistry
|
||||
|
||||
# The sidebar controller manages available sidebar components and decides which one to display.
|
||||
# The cura.qml file uses this controller to repeat over the sidebars and show the active index.
|
||||
|
@ -14,6 +12,7 @@ class SidebarController:
|
|||
self._sidebar_views = {}
|
||||
self._active_sidebar_view = None
|
||||
|
||||
# Register the sidebar_view plugin type so plugins can expose custom sidebar views.
|
||||
PluginRegistry.addType("sidebar_view", self.addSidebarView)
|
||||
|
||||
## Emitted when the list of views changes.
|
||||
|
@ -26,28 +25,32 @@ class SidebarController:
|
|||
def getApplication(self):
|
||||
return self._application
|
||||
|
||||
## Get all sidebar views registered in this controller.
|
||||
def getAllSidebarViews(self):
|
||||
return self._sidebar_views
|
||||
|
||||
## Add a sidebar view to the registry.
|
||||
# It get's a unique name based on the plugin ID.
|
||||
def addSidebarView(self, sidebar_view: SidebarView):
|
||||
name = sidebar_view.getPluginId()
|
||||
if name not in self._sidebar_views:
|
||||
self._sidebar_views[name] = sidebar_view
|
||||
def addSidebarView(self, sidebar_view):
|
||||
sidebar_view_id = sidebar_view.getPluginId()
|
||||
if sidebar_view_id not in self._sidebar_views:
|
||||
self._sidebar_views[sidebar_view_id] = sidebar_view
|
||||
self.sidebarViewsChanged.emit()
|
||||
|
||||
## Get a registered sidebar view by name.
|
||||
# The name is the ID of the plugin that registered the view.
|
||||
def getSidebarView(self, name: str) -> Optional[SidebarView]:
|
||||
def getSidebarView(self, name: str):
|
||||
try:
|
||||
return self._sidebar_views[name]
|
||||
except KeyError:
|
||||
Logger.log("e", "Unable to find %s in sidebar view list", name)
|
||||
return None
|
||||
|
||||
## Change the active sidebar view to one of the registered views.
|
||||
def setActiveSidebarView(self, name: str):
|
||||
print("setting active sidebar view")
|
||||
self.activeSidebarViewChanged.emit()
|
||||
## Get the active sidebar view.
|
||||
def getActiveSidebarView(self):
|
||||
return self._active_sidebar_view
|
||||
|
||||
## Get all sidebar views registered in this controller.
|
||||
def getAllSidebarViews(self) -> Dict[SidebarView]:
|
||||
return self._sidebar_views
|
||||
## Change the active sidebar view to one of the registered views.
|
||||
def setActiveSidebarView(self, sidebar_view_id: str):
|
||||
self._active_sidebar_view = self._sidebar_views[sidebar_view_id]
|
||||
self.activeSidebarViewChanged.emit()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue