forked from M-Labs/artiq
gui: delete log/applet docks instead of hiding them
This commit is contained in:
parent
c5552f9009
commit
7f501820de
|
@ -85,7 +85,7 @@ class AppletIPCServer(AsyncioParentComm):
|
||||||
await asyncio.wait([self.server_task])
|
await asyncio.wait([self.server_task])
|
||||||
|
|
||||||
|
|
||||||
class AppletDock(QDockWidgetCloseDetect):
|
class _AppletDock(QDockWidgetCloseDetect):
|
||||||
def __init__(self, datasets_sub, uid, name, command):
|
def __init__(self, datasets_sub, uid, name, command):
|
||||||
QDockWidgetCloseDetect.__init__(self, "Applet: " + name)
|
QDockWidgetCloseDetect.__init__(self, "Applet: " + name)
|
||||||
self.setObjectName("applet" + str(uid))
|
self.setObjectName("applet" + str(uid))
|
||||||
|
@ -137,7 +137,7 @@ class AppletDock(QDockWidgetCloseDetect):
|
||||||
def fix_initial_size(self):
|
def fix_initial_size(self):
|
||||||
self.embed_window.resize(self.embed_widget.size())
|
self.embed_window.resize(self.embed_widget.size())
|
||||||
|
|
||||||
async def terminate(self):
|
async def terminate(self, delete_self=True):
|
||||||
if self.starting_stopping:
|
if self.starting_stopping:
|
||||||
return
|
return
|
||||||
self.starting_stopping = True
|
self.starting_stopping = True
|
||||||
|
@ -163,8 +163,12 @@ class AppletDock(QDockWidgetCloseDetect):
|
||||||
|
|
||||||
self.starting_stopping = False
|
self.starting_stopping = False
|
||||||
|
|
||||||
|
if delete_self:
|
||||||
|
self.setParent(None)
|
||||||
|
self.deleteLater()
|
||||||
|
|
||||||
async def restart(self):
|
async def restart(self):
|
||||||
await self.terminate()
|
await self.terminate(False)
|
||||||
await self.start()
|
await self.start()
|
||||||
|
|
||||||
|
|
||||||
|
@ -235,7 +239,7 @@ class AppletsDock(QtWidgets.QDockWidget):
|
||||||
self.table.cellChanged.connect(self.cell_changed)
|
self.table.cellChanged.connect(self.cell_changed)
|
||||||
|
|
||||||
def create(self, uid, name, command):
|
def create(self, uid, name, command):
|
||||||
dock = AppletDock(self.datasets_sub, uid, name, command)
|
dock = _AppletDock(self.datasets_sub, uid, name, command)
|
||||||
self.main_window.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock)
|
self.main_window.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock)
|
||||||
dock.setFloating(True)
|
dock.setFloating(True)
|
||||||
asyncio.ensure_future(dock.start())
|
asyncio.ensure_future(dock.start())
|
||||||
|
|
|
@ -303,6 +303,9 @@ class LogDockManager:
|
||||||
return dock
|
return dock
|
||||||
|
|
||||||
def on_dock_closed(self, name):
|
def on_dock_closed(self, name):
|
||||||
|
dock = self.docks[name]
|
||||||
|
dock.setParent(None)
|
||||||
|
dock.deleteLater()
|
||||||
del self.docks[name]
|
del self.docks[name]
|
||||||
self.update_closable()
|
self.update_closable()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue