Skip to content

Commit e9bcf03

Browse files
Merged in monashkrb/labscript_devices/feature (pull request labscript-suite#14)
Updates to camera interface to add icons Approved-by: Chris Billington <chrisjbillington@gmail.com>
2 parents a3c67a5 + a8403d6 commit e9bcf03

File tree

2 files changed

+52
-100
lines changed

2 files changed

+52
-100
lines changed

Camera.py

+24-10
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,22 @@ def generate_code(self, hdf5_file):
126126

127127

128128
import os
129+
import sys
130+
131+
if 'PySide' in sys.modules.copy():
132+
from PySide.QtCore import *
133+
from PySide.QtGui import *
134+
else:
135+
from PyQt4.QtCore import *
136+
from PyQt4.QtGui import *
137+
129138
from blacs.tab_base_classes import Worker, define_state
130139
from blacs.tab_base_classes import MODE_MANUAL, MODE_TRANSITION_TO_BUFFERED, MODE_TRANSITION_TO_MANUAL, MODE_BUFFERED
131140

132141
from blacs.device_base_class import DeviceTab
133142

134143
from qtutils import UiLoader
144+
import qtutils.icons
135145

136146
@BLACS_tab
137147
class CameraTab(DeviceTab):
@@ -144,8 +154,7 @@ def initialise_GUI(self):
144154
port = int(self.settings['connection_table'].find_by_name(self.settings["device_name"]).BLACS_connection)
145155
self.ui.port_label.setText(str(port))
146156

147-
self.ui.is_responding.setVisible(False)
148-
self.ui.is_not_responding.setVisible(False)
157+
self.ui.check_connectivity_pushButton.setIcon(QIcon(':/qtutils/fugue/arrow-circle'))
149158

150159
self.ui.host_lineEdit.returnPressed.connect(self.update_settings_and_check_connectivity)
151160
self.ui.use_zmq_checkBox.toggled.connect(self.update_settings_and_check_connectivity)
@@ -178,21 +187,26 @@ def initialise_workers(self):
178187

179188
@define_state(MODE_MANUAL, queue_state_indefinitely=True, delete_stale_states=True)
180189
def update_settings_and_check_connectivity(self, *args):
181-
self.ui.saying_hello.setVisible(True)
182-
self.ui.is_responding.setVisible(False)
183-
self.ui.is_not_responding.setVisible(False)
190+
icon = QIcon(':/qtutils/fugue/hourglass')
191+
pixmap = icon.pixmap(QSize(16, 16))
192+
status_text = 'Checking...'
193+
self.ui.status_icon.setPixmap(pixmap)
194+
self.ui.server_status.setText(status_text)
184195
kwargs = self.get_save_data()
185196
responding = yield(self.queue_work(self.primary_worker, 'update_settings_and_check_connectivity', **kwargs))
186197
self.update_responding_indicator(responding)
187198

188199
def update_responding_indicator(self, responding):
189-
self.ui.saying_hello.setVisible(False)
190200
if responding:
191-
self.ui.is_responding.setVisible(True)
192-
self.ui.is_not_responding.setVisible(False)
201+
icon = QIcon(':/qtutils/fugue/tick')
202+
pixmap = icon.pixmap(QSize(16, 16))
203+
status_text = 'Server is responding'
193204
else:
194-
self.ui.is_responding.setVisible(False)
195-
self.ui.is_not_responding.setVisible(True)
205+
icon = QIcon(':/qtutils/fugue/exclamation')
206+
pixmap = icon.pixmap(QSize(16, 16))
207+
status_text = 'Server not responding'
208+
self.ui.status_icon.setPixmap(pixmap)
209+
self.ui.server_status.setText(status_text)
196210

197211
@BLACS_worker
198212
class CameraWorker(Worker):

camera.ui

+28-90
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>909</width>
9+
<width>462</width>
1010
<height>667</height>
1111
</rect>
1212
</property>
@@ -29,19 +29,6 @@
2929
</item>
3030
<item>
3131
<layout class="QVBoxLayout" name="verticalLayout_3">
32-
<item>
33-
<spacer name="verticalSpacer">
34-
<property name="orientation">
35-
<enum>Qt::Vertical</enum>
36-
</property>
37-
<property name="sizeHint" stdset="0">
38-
<size>
39-
<width>20</width>
40-
<height>138</height>
41-
</size>
42-
</property>
43-
</spacer>
44-
</item>
4532
<item>
4633
<widget class="QGroupBox" name="formGroupBox">
4734
<property name="sizePolicy">
@@ -50,18 +37,6 @@
5037
<verstretch>0</verstretch>
5138
</sizepolicy>
5239
</property>
53-
<property name="minimumSize">
54-
<size>
55-
<width>300</width>
56-
<height>300</height>
57-
</size>
58-
</property>
59-
<property name="maximumSize">
60-
<size>
61-
<width>300</width>
62-
<height>300</height>
63-
</size>
64-
</property>
6540
<property name="title">
6641
<string>Imaging system server</string>
6742
</property>
@@ -106,7 +81,7 @@
10681
<item row="3" column="1">
10782
<layout class="QHBoxLayout" name="horizontalLayout_3">
10883
<item>
109-
<spacer name="horizontalSpacer_5">
84+
<spacer name="horizontalSpacer_3">
11085
<property name="orientation">
11186
<enum>Qt::Horizontal</enum>
11287
</property>
@@ -119,14 +94,21 @@
11994
</spacer>
12095
</item>
12196
<item>
122-
<widget class="QPushButton" name="check_connectivity_pushButton">
97+
<widget class="QLabel" name="status_icon">
12398
<property name="text">
124-
<string>Check connectivity</string>
99+
<string/>
125100
</property>
126101
</widget>
127102
</item>
128103
<item>
129-
<spacer name="horizontalSpacer_6">
104+
<widget class="QLabel" name="server_status">
105+
<property name="text">
106+
<string>Server Status</string>
107+
</property>
108+
</widget>
109+
</item>
110+
<item>
111+
<spacer name="horizontalSpacer_5">
130112
<property name="orientation">
131113
<enum>Qt::Horizontal</enum>
132114
</property>
@@ -138,77 +120,33 @@
138120
</property>
139121
</spacer>
140122
</item>
141-
</layout>
142-
</item>
143-
</layout>
144-
</widget>
145-
</item>
146-
<item>
147-
<layout class="QVBoxLayout" name="verticalLayout">
148-
<item>
149-
<widget class="QWidget" name="is_responding" native="true">
150-
<layout class="QHBoxLayout" name="is_responding_2">
151123
<item>
152-
<widget class="QLabel" name="label_2">
153-
<property name="text">
154-
<string>✓</string>
155-
</property>
156-
</widget>
157-
</item>
158-
<item>
159-
<widget class="QLabel" name="label">
160-
<property name="text">
161-
<string>Server is responding</string>
162-
</property>
163-
</widget>
164-
</item>
165-
</layout>
166-
</widget>
167-
</item>
168-
<item>
169-
<widget class="QWidget" name="is_not_responding" native="true">
170-
<property name="enabled">
171-
<bool>true</bool>
172-
</property>
173-
<layout class="QHBoxLayout" name="is_not_responding_2">
174-
<item>
175-
<widget class="QLabel" name="label_6">
176-
<property name="text">
177-
<string>✗</string>
124+
<widget class="QPushButton" name="check_connectivity_pushButton">
125+
<property name="toolTip">
126+
<string>Check connectivity</string>
178127
</property>
179-
</widget>
180-
</item>
181-
<item>
182-
<widget class="QLabel" name="label_5">
183128
<property name="text">
184-
<string>Server is not responding</string>
129+
<string/>
185130
</property>
186131
</widget>
187132
</item>
188-
</layout>
189-
</widget>
190-
</item>
191-
<item>
192-
<widget class="QWidget" name="saying_hello" native="true">
193-
<layout class="QHBoxLayout" name="saying_hello_2">
194133
<item>
195-
<widget class="QLabel" name="label_8">
196-
<property name="text">
197-
<string>...</string>
134+
<spacer name="horizontalSpacer_6">
135+
<property name="orientation">
136+
<enum>Qt::Horizontal</enum>
198137
</property>
199-
</widget>
200-
</item>
201-
<item>
202-
<widget class="QLabel" name="label_7">
203-
<property name="text">
204-
<string>Saying hello to server</string>
138+
<property name="sizeHint" stdset="0">
139+
<size>
140+
<width>40</width>
141+
<height>20</height>
142+
</size>
205143
</property>
206-
</widget>
144+
</spacer>
207145
</item>
208146
</layout>
209-
</widget>
210-
</item>
211-
</layout>
147+
</item>
148+
</layout>
149+
</widget>
212150
</item>
213151
</layout>
214152
</widget>

0 commit comments

Comments
 (0)