Skip to content

Commit 34a26b7

Browse files
author
Andrea Negri
committed
Merge branch 'feature/fix-client-session' into dev
2 parents f10d56a + ab5d4d4 commit 34a26b7

3 files changed

Lines changed: 41 additions & 5 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ __pycache__/
1010
# Distribution / packaging
1111
.Python
1212
env/
13+
.pyenv/
1314
develop-eggs/
1415
dist*/
1516
downloads/

rcm/client/gui/dynamic_display_dialog.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626

2727
# pyqt5
2828
from PyQt5.QtCore import Qt, pyqtSlot, QRegExp
29-
from PyQt5.QtGui import QRegExpValidator
29+
from PyQt5.QtGui import QRegExpValidator, QGuiApplication
3030
from PyQt5.QtWidgets import QLabel, QLineEdit, QDialog, QComboBox, \
3131
QHBoxLayout, QVBoxLayout, QPushButton, \
32-
QApplication, QTabWidget, QWidget, QSlider, QSizePolicy, QFrame
32+
QTabWidget, QWidget, QSlider, QSizePolicy, QFrame
3333

3434

3535
class QDynamicDisplayDialog(QDialog):
@@ -93,6 +93,7 @@ def on_ok(self):
9393
for key2, value2 in container_widget.choices.items():
9494
self.choices[key2] = value2
9595

96+
custom_display_name = self.job.custom_name_le.text()
9697

9798
for key in self.name_choices:
9899
if key in self.choices:
@@ -102,6 +103,9 @@ def on_ok(self):
102103
separator = ''
103104
self.display_name += (separator + self.choices[key])
104105

106+
if custom_display_name:
107+
self.display_name = custom_display_name
108+
105109
self.callback(self.choices)
106110

107111
def print_callback(self,choices):
@@ -139,6 +143,18 @@ def init_ui(self):
139143

140144
self.main_layout = QVBoxLayout()
141145

146+
self.custom_name_le = QLineEdit(self)
147+
regexp = QRegExp("^[a-zA-Z0-9_-]+$")
148+
validator = QRegExpValidator(regexp)
149+
self.custom_name_le.setValidator(validator)
150+
151+
custom_session_name_edit_layout = QHBoxLayout()
152+
custom_session_name_label = QLabel("Session name:", self)
153+
custom_session_name_edit_layout.addWidget(custom_session_name_label)
154+
custom_session_name_edit_layout.addWidget(self.custom_name_le)
155+
156+
self.main_layout.addLayout(custom_session_name_edit_layout)
157+
142158
for key, childs in self.display_dialog_ui.items():
143159
self.recursive_init_ui(childs, self, self.main_layout, key, key)
144160

@@ -370,6 +386,15 @@ def __init__(self, values=None, path='', var='', parent_widget=None, description
370386
s_min = int(values.get('min', 0))
371387
s_max = int(values.get('max', 1))
372388
slider_default = values.get('default', int((s_max + s_min) / 2 ))
389+
390+
screen_width = QGuiApplication.primaryScreen().size().width()
391+
screen_height = QGuiApplication.primaryScreen().size().height()
392+
393+
if self.path.endswith('XSIZE'):
394+
slider_default = int(screen_width * 0.80)
395+
elif self.path.endswith('YSIZE'):
396+
slider_default = int(screen_height * 0.80)
397+
373398
if 0 < slider_default and slider_default < 1:
374399
slider_min = min(s_min, s_max)
375400
slider_max = max(s_min, s_max)
@@ -391,8 +416,14 @@ def __init__(self, values=None, path='', var='', parent_widget=None, description
391416
if description:
392417
self.slider.setToolTip(description)
393418

394-
self.slider_edit.textChanged.connect(self.slider_edit_change)
419+
# only numbers allowed in the line edit
420+
regexp = QRegExp("^[0-9]+$")
421+
validator = QRegExpValidator(regexp)
422+
self.slider_edit.setValidator(validator)
423+
424+
self.slider_edit.editingFinished.connect(self.slider_edit_change)
395425
self.slider.valueChanged.connect(self.slider_change)
426+
396427
self.slider.setValue(slider_default)
397428

398429
main_layout.addStretch(1)

rcm/client/gui/rcm_main_window.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from PyQt5.QtGui import QIcon, QTextCursor, QGuiApplication
2727
from PyQt5.QtWidgets import QMainWindow, QWidget, \
2828
QTabWidget, QVBoxLayout, QPushButton, QAction, QFileDialog, \
29-
QTabBar, QStyle, QPlainTextEdit, QMessageBox, QSplitter
29+
QTabBar, QStyle, QPlainTextEdit, QMessageBox, QSplitter, QApplication
3030

3131
# local includes
3232
from client.gui.ssh_session_widget import QSSHSessionWidget
@@ -48,9 +48,13 @@ def __init__(self):
4848
self.setWindowTitle(title)
4949
self.setWindowIcon(QIcon(resource_path('gui/logo/logo.ico')))
5050

51+
screens = QApplication.screens()
52+
global_screen_width = sum(screen.geometry().width() for screen in screens)
53+
global_screen_height = sum(screen.geometry().height() for screen in screens)
54+
5155
screen_width = QGuiApplication.primaryScreen().size().width()
5256
screen_height = QGuiApplication.primaryScreen().size().height()
53-
pack_info.add_client_screen_dimensions(screen_width, screen_height)
57+
pack_info.add_client_screen_dimensions(global_screen_width, global_screen_height)
5458

5559
app_width = 0.6 * screen_width # 1200
5660
app_height = max(0.375 * app_width, 360) # 450

0 commit comments

Comments
 (0)