diff --git a/consolegui/application/MainFrameResult.py b/consolegui/application/MainFrameResult.py index e80a73b..3354d03 100755 --- a/consolegui/application/MainFrameResult.py +++ b/consolegui/application/MainFrameResult.py @@ -271,19 +271,20 @@ class MainFrameRes(QtGui.QWidget): self.set_result_task(True) if self.progress_list: self.progress_list[len(self.progress_list)-1].hide() - lbl_temp = ErrorWgt(message, self) - lbl_temp.set_error() - - lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height()) - self.work_layout._addWidget(lbl_temp) + if message: + lbl_temp = ErrorWgt(message, self) + lbl_temp.set_error() + lbl_temp.setMinimumHeight(lbl_temp.sizeHint().height()) + self.work_layout._addWidget(lbl_temp) + self.initUI() def show_warning(self, item): # add warning message label - lbl_temp = ErrorWgt(item.message, self) - lbl_temp.set_warning() - - self.work_layout._addWidget(lbl_temp) + if item.message: + lbl_temp = ErrorWgt(item.message, self) + lbl_temp.set_warning() + self.work_layout._addWidget(lbl_temp) self.initUI() def show_group(self, item): diff --git a/consolegui/application/SelectTable.py b/consolegui/application/SelectTable.py index c17d346..5e4e800 100644 --- a/consolegui/application/SelectTable.py +++ b/consolegui/application/SelectTable.py @@ -53,7 +53,8 @@ class SelectedTableWidget(QtGui.QTableWidget): self.setFrameStyle(QtGui.QFrame.NoFrame) self.verticalHeader().hide() - item_background = '#E4E1E0' if brief else 'rgba(255,255,255,255)' + item_background = 'transparent' if brief else 'rgba(255,255,255,255)' + background_color = 'transparent' if brief else '#E4E1E0' self.horizontalHeader().setStyleSheet \ ("QHeaderView {background-color: transparent;" @@ -63,10 +64,10 @@ class SelectedTableWidget(QtGui.QTableWidget): 'border: 1px solid #B3ABA7; border-radius: 1px;}') self.setStyleSheet("QTableWidget {" "border: none;" - "background-color: #E4E1E0;}" + "background-color: %s;}" %background_color +\ "QTableWidget::item {padding: 0px;" "border-left: 1px solid #B3ABA7;" - "background-color: %s;}" %item_background) + "background-color: %s;}" %background_color) def setColor(self, row = -1): if self.brief: diff --git a/consolegui/application/View_Process.py b/consolegui/application/View_Process.py index 4212e06..e368466 100755 --- a/consolegui/application/View_Process.py +++ b/consolegui/application/View_Process.py @@ -58,11 +58,14 @@ class ViewProc(QtGui.QWidget): else: method_name = self.ClientObj.process_dict[str(list_pid[num])] \ ['name'] - - try: - view_method_name = self.ClientObj.param_objects \ - [method_name]['view_method_name'] - except: + + if self.ClientObj.method_names.has_key(method_name): + view_method_name = self.ClientObj.method_names[method_name] +# try: +# view_method_name = self.ClientObj.param_objects \ +# [method_name]['view_method_name'] +# except: + else: view_method_name = method_name try: diff --git a/consolegui/application/client_class.py b/consolegui/application/client_class.py index 098e113..276d3d0 100755 --- a/consolegui/application/client_class.py +++ b/consolegui/application/client_class.py @@ -202,19 +202,6 @@ class Client_suds(Client): if not os.path.exists(self.CRL_PATH): os.makedirs(self.CRL_PATH) -#class clientHTTPSConnection (httplib.HTTPSConnection): -# -# def __init__(self, host, port=None, key_file=None, cert_file=None, -# strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, -# source_address=None, cert_path=None, ClientObj = None): -# httplib.HTTPConnection.__init__(self, host, port, strict, timeout, -# source_address) -# self.ClientObj = ClientObj -# self.key_file = key_file -# self.cert_file = cert_file -# self.cert_path = cert_path -# self.CRL_PATH = cert_path + 'ca/crl/' - class CheckingClientHTTPSConnection(CheckingHTTPSConnection): """based on httplib.HTTPSConnection code - extended to support server certificate verification and client certificate authorization""" @@ -500,8 +487,6 @@ class CheckingClientHTTPSConnection(CheckingHTTPSConnection): flag = 1 elif f == 1: sys.exit() - #if not hasattr(HTTPSClientCertTransport, 'filename') or \ - #HTTPSClientCertTransport.filename == None: HTTPSClientCertTransport.filename = self.cert_list \ (self.host, ca_cert_list, server_cert) if HTTPSClientCertTransport.filename: @@ -520,7 +505,6 @@ class CheckingClientHTTPSConnection(CheckingHTTPSConnection): add['certfile'] = self.cert_file else: wrap_class = ssl.SSLSocket -# print 'HHHHHHHHHHHHHHHHHHHHHH' self.sock = wrap_class(sock, ca_certs=self.ca_certs, **add) return 0 @@ -531,74 +515,6 @@ class CheckingClientHTTPSConnection(CheckingHTTPSConnection): else: return self.add_server_cert(server_cert) -# def connect(self): -# """Connect to a host on a given (SSL) port.""" -# if self.host == '127.0.0.1': -# self.host = 'localhost' -# sock = socket.create_connection((self.host, self.port), -# self.timeout, self.source_address) -# if self._tunnel_host: -# self.sock = sock -# self._tunnel() -# sock.settimeout(self.ClientObj.timeout) -# -# user_root_cert = self.ClientObj.VarsApi.Get('cl_user_root_cert') -# homePath = self.ClientObj.VarsApi.Get('ur_home_path') -# user_root_cert = user_root_cert.replace("~",homePath) -# result_user_root = 1 -# -# if os.path.exists(user_root_cert): -# result_user_root = self.connect_trusted_root(sock, user_root_cert,\ -# self.CRL_PATH) -# if result_user_root == 1: -# glob_root_cert = self.ClientObj.VarsApi.Get('cl_glob_root_cert') -# result_root_con = 1 -# if os.path.exists(glob_root_cert): -# sock = socket.create_connection((self.host, self.port), -# self.timeout, self.source_address) -# if self._tunnel_host: -# self.sock = sock -# self._tunnel() -# result_root_con = self.connect_trusted_root(sock, \ -# glob_root_cert, self.CRL_PATH) -# if result_root_con == 1: -# sock = socket.create_connection((self.host, self.port), -# self.timeout, self.source_address) -# if self._tunnel_host: -# self.sock = sock -# self._tunnel() -# result_server_con = self.connect_trusted_server \ -# (sock, self.CRL_PATH) -# if result_server_con in [1,2]: -# raise Exception -# elif result_root_con == 2: -# raise Exception -# elif result_user_root == 2: -# raise Exception - -#class HTTPSClientAuthHandler(u2.HTTPSHandler): -# def __init__(self, key, cert, cert_path, ClientObj = None): -# u2.HTTPSHandler.__init__(self) -# self.ClientObj = ClientObj -# self.key = key -# self.cert = cert -# self.cert_path = cert_path -# -# def https_open(self, req): -# #Rather than pass in a reference to a connection class, we pass in -# # a reference to a function which, for all intents and purposes, -# # will behave as a constructor -## try: -# return self.do_open(self.getConnection, req) -## except u2.URLError, e: -## _print (e) -## return 1 -# -# def getConnection(self, host, timeout=300): -# return clientHTTPSConnection(host, key_file=self.key, -# cert_file=self.cert, cert_path = self.cert_path, -# ClientObj = self.ClientObj) - class CheckingClientHTTPSHandler(CheckingHTTPSHandler): def __init__(self, ClientObj, cert_path, ca_certs=None, cert_verifier=None, client_certfile=None, client_keyfile=None, diff --git a/consolegui/application/conf_connection.py b/consolegui/application/conf_connection.py index 6b6c94c..d077129 100755 --- a/consolegui/application/conf_connection.py +++ b/consolegui/application/conf_connection.py @@ -157,8 +157,8 @@ class FrameConnection(QtGui.QWidget): - self.sizeHint().width() / 2, \ window.geometry().y() + window.geometry().height() / 2 \ - self.sizeHint().height() / 2) - - self.setWindowIcon (QtGui.QIcon.fromTheme("network-connect")) + self.setWindowTitle(_('Connection')) + self.setWindowIcon(QtGui.QIcon.fromTheme("network-connect")) def set_disabled(self): diff --git a/consolegui/application/mainframe.py b/consolegui/application/mainframe.py index d236274..f9780e1 100755 --- a/consolegui/application/mainframe.py +++ b/consolegui/application/mainframe.py @@ -827,8 +827,6 @@ class MainFrame(QtGui.QWidget): self.view_dict[field.name].setToolTip(field.uncompatible) self.view_dict[field.name].setDisabled(True) -# import ipdb -# ipdb.set_trace() w = self.view_dict[field.name].ComboBox.sizeHint().width() if w > 100: self.view_dict[field.name].setFixedWidth(w) @@ -972,6 +970,13 @@ class MainFrame(QtGui.QWidget): self.label_dict[field.name].setDisabled(True) self.view_dict[field.name].setToolTip(field.uncompatible) self.view_dict[field.name].setDisabled(True) + +# w = self.view_dict[field.name].lineEdit.sizeHint().width() +# if w > 100: +# self.view_dict[field.name].setFixedWidth(w) +# else: +# self.view_dict[field.name].setFixedWidth(148) + self.grid.addWidget(self.view_dict[field.name], x, y+1) self.error_label_dict[field.name] = ErrorLabel(self) @@ -1016,6 +1021,14 @@ class MainFrame(QtGui.QWidget): self.view_dict[field.name].setToolTip(field.uncompatible) self.view_dict[field.name].setDisabled(True) + w = self.view_dict[field.name].lineEdit.sizeHint().width() + \ + self.view_dict[field.name].button.sizeHint().width() + +# if w > 100: +# self.view_dict[field.name].setFixedWidth(w) +# else: +# self.view_dict[field.name].setFixedWidth(148) + self.grid.addWidget(self.view_dict[field.name], x, y+1) self.error_label_dict[field.name] = ErrorLabel(self) @@ -1281,7 +1294,7 @@ class MainFrame(QtGui.QWidget): self.ClientObj.MainWidget.left_frame.hide() ############# Begin add Table - def add_element_table (self, field, x, y, brief = False): + def add_element_table (self, field, x, y, brief = False, gb_layout=None): self.table_dict[field.name] = field table = field.tablevalue @@ -1324,6 +1337,7 @@ class MainFrame(QtGui.QWidget): self.label_dict[field.name] = LabelWordWrap(field.label, self) self.table_dict[field.name] = field + self.table_widget.itemClicked.connect(self.expert_remove(field.name)) self.table_widget.itemClicked.connect(self.row_changed( \ self.view_dict[field.name], self.table_dict[field.name])) if type(self.window()) == self.tabWidget: @@ -1338,12 +1352,14 @@ class MainFrame(QtGui.QWidget): self.changed_expert_list.append(field.name) if brief: - self.brief_grid.addWidget(self.label_dict[field.name], x, y, 1, 2) + gb_layout.addWidget(self.label_dict[field.name], x, y, 1, 2) else: self.grid.addWidget(self.label_dict[field.name], x, y, 1, 2) x += 1 widget_for_grid = QtGui.QWidget(self) + if brief: + widget_for_grid.setStyleSheet("background: transparent;") wfg_layout = QtGui.QVBoxLayout(widget_for_grid) wfg_layout.setSpacing(0) wfg_layout.setContentsMargins(0, 0, 0, 0) @@ -1451,7 +1467,7 @@ class MainFrame(QtGui.QWidget): wfg_layout.addWidget(self.view_dict[field.name]) if brief: - self.brief_grid.addWidget(widget_for_grid, x, y, 1, 2) + gb_layout.addWidget(widget_for_grid, x, y, 1, 2) else: self.grid.addWidget(widget_for_grid, x, y, 1, 2) @@ -1724,18 +1740,7 @@ class MainFrame(QtGui.QWidget): self.brief_grid.setColumnStretch(1,5) for Group in GroupField: - group_name_flag = False - if Group.name: - if not Group.fields: - continue - self.group_name_label = LabelWordWrap(Group.name, self) - self.group_name_label.setStyleSheet("font-size: 16px;" - "color: #000; font: bold;") - self.brief_grid.addWidget(self.group_name_label, x, y, 1, 2) - x += 1 - group_name_flag = True - - x = self.print_brief_group(Group.fields.Field, x, group_name_flag) + x = self.print_brief_group(Group, x) # add spacer # spacer_brief = QtGui.QSpacerItem( 0, 0, \ @@ -1799,9 +1804,28 @@ class MainFrame(QtGui.QWidget): expert_brief.set_open() return wrapper - def print_brief_group(self, Fields, x, group_name_flag): + def print_brief_group(self, Group, grid_x): + if Group.name: + if not Group.fields: + return grid_x +# self.group_name_label = LabelWordWrap(Group.name, self) + GroupBox = QGroupBox(Group.name, self) + GroupBox.setStyleSheet("QGroupBox{" +# "font-size: 18px;" + "font-weight: bold;}") + else: + return grid_x + gb_layout = QtGui.QGridLayout(GroupBox) + + gb_layout.setContentsMargins(10,10,10,10) + gb_layout.setSpacing(0) + gb_layout.setColumnStretch(0,2) + gb_layout.setColumnStretch(1,5) + + x = 0 y = 0 uncompatible_count = 0 + Fields = Group.fields.Field for field in Fields: if field.uncompatible: uncompatible_count += 1 @@ -1810,8 +1834,8 @@ class MainFrame(QtGui.QWidget): value = field.value if field.value else '' label_name = LabelWordWrap(field.label, self) label_value = LabelWordWrap(value, self) - self.brief_grid.addWidget(label_name, x, y) - self.brief_grid.addWidget(label_value, x, y + 1) + gb_layout.addWidget(label_name, x, y) + gb_layout.addWidget(label_value, x, y + 1) x += 1 elif field.element in ['combo', 'comboEdit', 'radio', 'file']: @@ -1828,8 +1852,8 @@ class MainFrame(QtGui.QWidget): value = field.value if field.value else '' label_name = LabelWordWrap(field.label, self) label_value = LabelWordWrap(value, self) - self.brief_grid.addWidget(label_name, x, y) - self.brief_grid.addWidget(label_value, x, y + 1) + gb_layout.addWidget(label_name, x, y) + gb_layout.addWidget(label_value, x, y + 1) x += 1 elif field.element in ['multichoice', 'multichoice_add',\ @@ -1848,25 +1872,25 @@ class MainFrame(QtGui.QWidget): value = field.value if field.value else '' label_name = LabelWordWrap(field.label, self) label_value = LabelWordWrap(value, self) - self.brief_grid.addWidget(label_name, x, y) - self.brief_grid.addWidget(label_value, x, y + 1) + gb_layout.addWidget(label_name, x, y) + gb_layout.addWidget(label_value, x, y + 1) x += 1 elif field.element == 'label': label = LabelWordWrap(field.label, self) - self.brief_grid.addWidget(label, x, y, 1, 2) + gb_layout.addWidget(label, x, y, 1, 2) x += 1 elif field.element == 'error': error_lbl = ErrorLabel(self, field.label) error_lbl.setStyleSheet("QLabel {color: red;}") error_lbl.show() - self.brief_grid.addWidget(error_lbl, x, y, 1,2) + gb_layout.addWidget(error_lbl, x, y, 1,2) x += 1 elif field.element in ['check', 'check_tristate']: label_name = LabelWordWrap(field.label, self) - self.brief_grid.addWidget(label_name, x, y) + gb_layout.addWidget(label_name, x, y) if field.value == 'on': value = _('Yes') @@ -1876,7 +1900,7 @@ class MainFrame(QtGui.QWidget): value = _('Auto') label_value = LabelWordWrap(value, self) - self.brief_grid.addWidget(label_value, x, y + 1) + gb_layout.addWidget(label_value, x, y + 1) # self.add_element_check (field, x, y, brief = True) # self.view_dict[field.name].disabled = True @@ -1886,7 +1910,8 @@ class MainFrame(QtGui.QWidget): elif field.element == 'table' and field.type != 'steps': field.type = None field.default = False - self.add_element_table (field, x, y, brief = True) + self.add_element_table (field, x, y, brief = True, + gb_layout = gb_layout) x += 3 if field.type == 'writable': x += 1 @@ -1897,9 +1922,15 @@ class MainFrame(QtGui.QWidget): else: uncompatible_count += 1 - if uncompatible_count == len (Fields) and group_name_flag: - self.group_name_label.hide() - return x + minimum = QtGui.QSizePolicy.Minimum + maximum = QtGui.QSizePolicy.Maximum + GroupBox.setSizePolicy(minimum, maximum) + + if uncompatible_count != len(Fields): + self.brief_grid.addWidget(GroupBox, grid_x, 0, 1, 2) + grid_x += 1 +# self.group_name_label.hide() + return grid_x def expert_remove(self, field_name): def wrapper(): diff --git a/consolegui/application/more.py b/consolegui/application/more.py index 4c5b8c1..7372030 100755 --- a/consolegui/application/more.py +++ b/consolegui/application/more.py @@ -415,6 +415,8 @@ class ErrorWgt(QtGui.QWidget): class LabelWordWrap(QtGui.QLabel): def __init__(self, name, parent = None): + if not name: + name = '' try: name = name.decode('utf-8') except (UnicodeDecodeError, UnicodeEncodeError): diff --git a/consolegui/application/tools.py b/consolegui/application/tools.py index 0e55516..141590a 100755 --- a/consolegui/application/tools.py +++ b/consolegui/application/tools.py @@ -403,16 +403,16 @@ class ToolOther(QtGui.QWidget): self.grid.addWidget(self.cert_path_lbl, 1, 0) self.grid.addWidget(self.fd_cert, 1, 1) - # add timeout in grid - self.timeout_lbl = LabelWordWrap(_('Timeout'), self) - self.timeout_lbl.setMaximumWidth(self.timeout_lbl.sizeHint().width()) - - self.timeout_lineedit = QtGui.QLineEdit(self) - - self.timeout_lineedit.setText(str(ClientObj.timeout)) - - self.grid.addWidget(self.timeout_lbl, 2, 0) - self.grid.addWidget(self.timeout_lineedit, 2, 1) +# # add timeout in grid +# self.timeout_lbl = LabelWordWrap(_('Timeout'), self) +# self.timeout_lbl.setMaximumWidth(self.timeout_lbl.sizeHint().width()) +# +# self.timeout_lineedit = QtGui.QLineEdit(self) +# +# self.timeout_lineedit.setText(str(ClientObj.timeout)) +# +# self.grid.addWidget(self.timeout_lbl, 2, 0) +# self.grid.addWidget(self.timeout_lineedit, 2, 1) # add spacer self.grid.addItem(QtGui.QSpacerItem(0,0, QtGui.QSizePolicy.Expanding, \ @@ -421,7 +421,7 @@ class ToolOther(QtGui.QWidget): # connect all with change value slot self.lang_ComboBox.currentIndexChanged.connect(self.changed_val) self.fd_cert.textChanged.connect(self.changed_val) - self.timeout_lineedit.textChanged.connect(self.changed_val) +# self.timeout_lineedit.textChanged.connect(self.changed_val) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) @@ -461,7 +461,7 @@ class ToolOther(QtGui.QWidget): lang_flag = False cert_flag = False - timeout_flag = False +# timeout_flag = False for line in config: if line.startswith('lang '): lang_flag = True @@ -477,13 +477,13 @@ class ToolOther(QtGui.QWidget): new_config.append('path_to_cert = no\n') else: new_config.append(line) - elif line.startswith('timeout '): - timeout_flag = True - try: - timeout = int(self.timeout_lineedit.text()) - except ValueError: - timeout = ClientObj.timeout - new_config.append('timeout = %d\n' %timeout) +# elif line.startswith('timeout '): +# timeout_flag = True +# try: +# timeout = int(self.timeout_lineedit.text()) +# except ValueError: +# timeout = ClientObj.timeout +# new_config.append('timeout = %d\n' %timeout) else: new_config.append(line) @@ -498,12 +498,12 @@ class ToolOther(QtGui.QWidget): new_config = self.check_cfg (cert_flag, new_config, \ '[other]', 'path_to_cert', self.fd_cert.text()) - try: - timeout = int(self.timeout_lineedit.text()) - except ValueError: - timeout = ClientObj.timeout - new_config = self.check_cfg (timeout_flag, new_config, \ - '[other]', 'timeout', timeout) +# try: +# timeout = int(self.timeout_lineedit.text()) +# except ValueError: +# timeout = ClientObj.timeout +# new_config = self.check_cfg (timeout_flag, new_config, \ +# '[other]', 'timeout', timeout) fnc = open(self.user_config, 'w') for line in new_config: diff --git a/ru/console_gui.po b/ru/console_gui.po index 4cf0e72..8ab089d 100755 --- a/ru/console_gui.po +++ b/ru/console_gui.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: console_gui_translate\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-06-15 16:04+0300\n" -"PO-Revision-Date: 2012-06-15 16:04+0300\n" +"POT-Creation-Date: 2012-06-15 17:46+0300\n" +"PO-Revision-Date: 2012-06-15 17:46+0300\n" "Last-Translator: Denis \n" "Language-Team: \n" "Language: \n" @@ -552,7 +552,7 @@ msgid "Break process" msgstr "Прервать процесс" #: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/more.py:2318 -#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:359 +#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:360 msgid "You do not have a certificate. Please, generate new request and get new certificate from server." msgstr "У Вас нет сертификата. Пожалуйста, сгенерируйте запрос на сертитфикат и получите сертификат с сервера." @@ -715,6 +715,10 @@ msgstr "Корневой сертификат добавлен" msgid "file with ca certificates exists" msgstr "Файл с сертификатом удостоверяющего центра создан" +#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:160 +msgid "Connection" +msgstr "Соединение" + #: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:172 msgid "You are connected to server!" msgstr "Вы подсоединены к серверу!" @@ -728,7 +732,7 @@ msgid "previous connection!" msgstr "предыдущее соединение!" #: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:174 -#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:355 +#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:356 msgid "Connection Error" msgstr "Ошибка соединения" @@ -744,11 +748,11 @@ msgstr "Данный сервер не является доверенным" msgid "Verify Error" msgstr "Ошибка проверки сертификата сервера" -#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:354 +#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:355 msgid "Password is invalid" msgstr "Пароль неверен" -#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:366 +#: /var/calculate/mydir/source/spyder/cl-api-client/consolegui/application/conf_connection.py:367 msgid "You do not have a certificate or your certificate does not match the server certificate. Please, generate new request andget new certificate from server." msgstr "У вас нет сертификата или ваш сертификат не соответствует серверному сертификату. Пожалуйста, сгенерируйте запрос на сертитфикат и получите сертификат с сервера."