2626
2727# pyqt5
2828from PyQt5 .QtCore import Qt , pyqtSlot , QRegExp
29- from PyQt5 .QtGui import QRegExpValidator
29+ from PyQt5 .QtGui import QRegExpValidator , QGuiApplication
3030from 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
3535class 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 )
0 commit comments