Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 09788ed

Browse files
authoredJun 23, 2022
v0.19.4
version 0.19.4
2 parents 420e753 + e696dda commit 09788ed

File tree

6 files changed

+28
-23
lines changed

6 files changed

+28
-23
lines changed
 

‎pyobs_gui/camerawidget.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
from .temperatureswidget import TemperaturesWidget
2929
from .fitsheaderswidget import FitsHeadersWidget
3030
from .qt.camerawidget_ui import Ui_CameraWidget
31-
from .datadisplaywidget import DataDisplayWidget
3231

3332
log = logging.getLogger(__name__)
3433

@@ -52,10 +51,6 @@ def __init__(self, **kwargs: Any):
5251
self.exposure_time_left = 0.0
5352
self.exposure_progress = 0.0
5453

55-
# data display
56-
# self.widgetDataDisplay = self.create_widget(WidgetDataDisplay, module=self.module)
57-
# self.frameImageGrabber.layout().addWidget(self.widgetDataDisplay)
58-
5954
async def open(
6055
self,
6156
module: Optional[Proxy] = None,
@@ -257,7 +252,7 @@ async def expose(self) -> None:
257252
while self.exposures_left > 0:
258253
# expose
259254
broadcast = self.checkBroadcast.isChecked()
260-
await self.widgetDataDisplay.grab_data(broadcast, image_type)
255+
await self.datadisplay.grab_data(broadcast, image_type)
261256

262257
# decrement number of exposures left
263258
self.exposures_left -= 1

‎pyobs_gui/gui.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import asyncio
22
import sys
33
from typing import List, Dict, Tuple, Any, Optional
4+
5+
import qasync
46
from qasync import QEventLoop # type: ignore
57
from PyQt5 import QtWidgets
68

@@ -12,6 +14,8 @@
1214
class GUI(Module, IFitsHeaderBefore):
1315
__module__ = "pyobs_gui"
1416

17+
app: Optional[QtWidgets.QApplication] = None
18+
1519
def __init__(
1620
self,
1721
show_shell: bool = True,
@@ -33,11 +37,6 @@ def __init__(
3337
sidebar: List of custom sidebar widgets.
3438
"""
3539

36-
# init Qt with asyncio
37-
self._app = QtWidgets.QApplication(sys.argv)
38-
loop = QEventLoop(self._app)
39-
asyncio.set_event_loop(loop)
40-
4140
# init module
4241
Module.__init__(self, *args, **kwargs)
4342
self._window: Optional[MainWindow] = None
@@ -48,6 +47,11 @@ def __init__(
4847
self._custom_widgets = widgets
4948
self._custom_sidebar_widgets = sidebar
5049

50+
@staticmethod
51+
def new_event_loop() -> asyncio.AbstractEventLoop:
52+
GUI.app = QtWidgets.QApplication(sys.argv)
53+
return qasync.QEventLoop(GUI.app)
54+
5155
async def open(self) -> None:
5256
"""Open module."""
5357
await Module.open(self)
@@ -62,6 +66,7 @@ async def open(self) -> None:
6266
sidebar=self._custom_sidebar_widgets,
6367
)
6468
await self._window.open(
69+
module=self,
6570
comm=self.comm,
6671
vfs=self.vfs,
6772
observer=self.observer,

‎pyobs_gui/mainwindow.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ def __init__(
105105
widgets: List of custom widgets.
106106
sidebar: List of custom widgets for the sidebar.
107107
"""
108-
QtWidgets.QMainWindow.__init__(self, **kwargs)
109-
BaseWindow.__init__(self)
108+
QtWidgets.QMainWindow.__init__(self)
109+
BaseWindow.__init__(self, **kwargs)
110110
self.setupUi(self)
111111
self.resize(1300, 800)
112112

@@ -118,6 +118,7 @@ def __init__(
118118
self.show_shell = show_shell
119119
self.show_events = show_events
120120
self.show_status = show_status
121+
self.warning_task: Optional[asyncio.Task] = None
121122

122123
# splitters
123124
self.splitterClients.setSizes([self.width() - 200, 200])
@@ -190,7 +191,13 @@ async def open(self, **kwargs: Any) -> None:
190191
await self._client_connected(Event(), client_name)
191192

192193
# add timer for checking warnings
193-
asyncio.create_task(self._check_warning_task())
194+
self.warning_task = asyncio.create_task(self._check_warning_task())
195+
196+
def closeEvent(self, a0: QtGui.QCloseEvent) -> None:
197+
if self.warning_task is not None:
198+
self.warning_task.cancel()
199+
if self.module is not None:
200+
self.module.quit()
194201

195202
async def _add_client(
196203
self, client: str, icon: QtGui.QIcon, widget: BaseWidget, proxy: Optional[Proxy] = None

‎pyobs_gui/statuswidget.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import asyncio
2+
from asyncio import Task
23
from datetime import datetime
34
from typing import Any, Type, Dict, Optional, cast, Union
45
from PyQt5 import QtWidgets, QtCore
@@ -92,7 +93,7 @@ def button_clicked(self) -> None:
9293
class StatusWidget(QtWidgets.QTableWidget, BaseWidget):
9394
def __init__(self, **kwargs: Any):
9495
QtWidgets.QTableWidget.__init__(self)
95-
BaseWidget.__init__(self, **kwargs)
96+
BaseWidget.__init__(self, update_func=self._update_status, **kwargs)
9697

9798
# table settings
9899
self.setColumnCount(3)
@@ -103,6 +104,9 @@ def __init__(self, **kwargs: Any):
103104
self.horizontalHeader().setMinimumSectionSize(200)
104105
self.verticalHeader().hide()
105106

107+
# stuff
108+
self._status_task: Optional[Task] = None
109+
106110
async def open(
107111
self,
108112
module: Optional[Proxy] = None,
@@ -122,7 +126,7 @@ async def open(
122126
await self._module_opened(ModuleOpenedEvent(), mod)
123127

124128
# trigger status updates
125-
asyncio.create_task(self._update_status())
129+
#self._status_task = asyncio.create_task(self._update_status())
126130

127131
async def _module_opened(self, event: Event, sender: str) -> bool:
128132
"""Called when module was opened."""

‎pyobs_gui/telescopewidget.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ async def open(
127127
await self.comm.register_event(MotionStatusChangedEvent, self._on_motion_status_changed)
128128

129129
# add coord types
130-
print(isinstance(self.module, IOffsetsAltAz), isinstance(self.module, IOffsetsRaDec))
131130
if isinstance(self.module, IPointingRaDec):
132131
self.comboMoveType.addItem(COORDS.EQUITORIAL.value)
133132
# self.comboMoveType.addItem(COORDS.ORBIT_ELEMENTS.value)
@@ -503,15 +502,10 @@ def _query_horizons(self) -> None:
503502
QtWidgets.QMessageBox.critical(self, "MPC", "No result found")
504503
return
505504

506-
print(obj)
507-
print(obj.uri)
508505
try:
509506
eph = obj.elements()
510507
except ValueError:
511508
pass
512-
print(eph)
513-
print(eph.columns)
514-
print(obj.uri)
515509

516510
self.spinOrbitElementsEcc.setValue(eph["e"][0])
517511
self.spinOrbitElementsIncl.setValue(eph["incl"][0])

‎pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "pyobs-gui"
3-
version = "0.19.3"
3+
version = "0.19.4"
44
description = "A remote GUI for pyobs"
55
authors = ["Tim-Oliver Husser <thusser@uni-goettingen.de>"]
66
license = "MIT"

0 commit comments

Comments
 (0)
Please sign in to comment.