add Refresh table button

master3.3
Denis Spiridonov 13 years ago
parent e99ce29e31
commit a1e611e7c0

@ -189,7 +189,7 @@ class MyTabBar(QtGui.QTabBar):
self._parent.close_tab(self.tabAt(event.pos())) self._parent.close_tab(self.tabAt(event.pos()))
class ToolTabWidget(QtGui.QTabWidget): class ToolTabWidget(QtGui.QTabWidget):
def __init__(self, app): def __init__(self, app, host = None, port = None):
QtGui.QTabWidget.__init__(self) QtGui.QTabWidget.__init__(self)
self.app = app self.app = app
@ -262,7 +262,7 @@ class ToolTabWidget(QtGui.QTabWidget):
self.show() self.show()
self.app.processEvents() self.app.processEvents()
self.FirstWidget.connect_to_localhost() self.FirstWidget.connect_to_localhost(host, port)
if self.FirstWidget.ClientObj.client: if self.FirstWidget.ClientObj.client:
self.localhost_ClientObj = self.FirstWidget.ClientObj self.localhost_ClientObj = self.FirstWidget.ClientObj

@ -732,6 +732,7 @@ class MainFrame(QtGui.QWidget):
self.ClientObj.MainWidget.left_frame.create_steps \ self.ClientObj.MainWidget.left_frame.create_steps \
(self.method_name, steps) (self.method_name, steps)
############# Begin add Table
def add_element_table (self, field, x, y): def add_element_table (self, field, x, y):
self.error_label_dict[field.name] = ErrorLabel(self) self.error_label_dict[field.name] = ErrorLabel(self)
self.grid.addWidget(self.error_label_dict[field.name], x, y, 1, 2) self.grid.addWidget(self.error_label_dict[field.name], x, y, 1, 2)
@ -766,6 +767,115 @@ class MainFrame(QtGui.QWidget):
self.table_widget.setSelectionMode\ self.table_widget.setSelectionMode\
(QtGui.QAbstractItemView.SelectionMode.MultiSelection) (QtGui.QAbstractItemView.SelectionMode.MultiSelection)
# add all items in table
self.add_table_items(table, field, lenColumn, self.table_widget)
minimum = QtGui.QSizePolicy.Minimum
self.table_widget.setSizePolicy(minimum, minimum)
self.table_widget.setContentsMargins(0, 0, 0, 0)
self.view_dict[field.name] = self.table_widget
self.label_dict[field.name] = LabelWordWrap(field.label, self)
self.table_dict[field.name] = field
if self.expert:
self.expert_list.append(self.view_dict[field.name])
self.grid.addWidget(self.label_dict[field.name], x, y)
x += 1
# add 2 button if field type = writable
if field.type == 'writable':
self.view_dict[field.name].horizontalHeader().setClickable(False)
unit_widget = QtGui.QWidget(self)
unit_layout = QtGui.QHBoxLayout(unit_widget)
plus_but = QtGui.QPushButton(self)
try:
plus_but.setIcon(QtGui.QIcon.fromTheme('list-add'))
except:
plus_but.setText('+')
plus_but.setToolTip(_('Add row'))
plus_but.setFixedWidth(30)
self.view_dict[field.name].minus_but = QtGui.QPushButton(self)
try:
self.view_dict[field.name].minus_but.setIcon \
(QtGui.QIcon.fromTheme('list-remove'))
except:
self.view_dict[field.name].minus_but.setText('-')
self.view_dict[field.name].minus_but.setToolTip(_('Delete row'))
self.view_dict[field.name].minus_but.setFixedWidth(30)
self.view_dict[field.name].minus_but.setDisabled(True)
refresh_but = QtGui.QPushButton(self)
try:
refresh_but.setIcon(QtGui.QIcon.fromTheme('view-refresh'))
except:
refresh_but.setText('R')
refresh_but.setToolTip(_('Refresh Table'))
refresh_but.setFixedWidth(30)
clear_but = QtGui.QPushButton(self)
try:
clear_but.setIcon(QtGui.QIcon.fromTheme('edit-clear'))
except:
clear_but.setText('C')
clear_but.setToolTip(_('Clear Table'))
clear_but.setFixedWidth(30)
plus_but.clicked.connect(self.plus_row(self.view_dict[field.name],\
self.table_dict[field.name]))
self.view_dict[field.name].minus_but.clicked.connect(self.minus_row \
(self.view_dict[field.name]))
refresh_but.clicked.connect(self.refresh_table (table, field, \
lenColumn, self.view_dict[field.name]))
clear_but.clicked.connect(self.minus_row \
(self.view_dict[field.name], True))
unit_layout.addWidget(plus_but)
unit_layout.addWidget(self.view_dict[field.name].minus_but)
unit_layout.addWidget(refresh_but)
unit_layout.addWidget(clear_but)
unit_layout.setAlignment(QtCore.Qt.AlignLeft)
# unit_widget.setLayout(unit_layout)
self.grid.addWidget(unit_widget, x, y)
x +=1
self.add_select_check(self.view_dict[field.name])
else:
self.view_dict[field.name].hideColumn(0)
# set width column
self.view_dict[field.name].horizontalHeader().resizeSections\
(QtGui.QHeaderView.ResizeMode.ResizeToContents)
# No Selection
self.view_dict[field.name].setSelectionMode \
(QtGui.QAbstractItemView.SelectionMode.NoSelection)
if field.uncompatible:
self.label_dict[field.name].setToolTip(field.uncompatible)
self.label_dict[field.name].setDisabled(True)
self.view_dict[field.name].setToolTip(field.uncompatible)
self.view_dict[field.name].setDisabled(True)
if field.type == 'writable':
unit_widget.setToolTip(field.uncompatible)
unit_widget.setDisabled(True)
# Resize table
self.resize_table(self.table_widget)
self.grid.addWidget(self.view_dict[field.name], x, y, 1, 2)
def add_table_items(self, table, field, lenColumn, table_widget):
for column in range(lenColumn): for column in range(lenColumn):
# for readonly view # for readonly view
col = column + 1 col = column + 1
@ -773,13 +883,13 @@ class MainFrame(QtGui.QWidget):
for row in range (len(table.body.stringArray)): for row in range (len(table.body.stringArray)):
tablewidgetitem = QtGui.QTableWidgetItem \ tablewidgetitem = QtGui.QTableWidgetItem \
(table.body.stringArray[row].string[column]) (table.body.stringArray[row].string[column])
self.table_widget.setItem(row, col, tablewidgetitem) table_widget.setItem(row, col, tablewidgetitem)
self.table_widget.item(row, col).setFlags \ table_widget.item(row, col).setFlags \
(QtCore.Qt.ItemIsEditable) (QtCore.Qt.ItemIsEditable)
font = self.table_widget.item(row, col).font() font = table_widget.item(row, col).font()
font.setWeight(QtGui.QFont.Black) font.setWeight(QtGui.QFont.Black)
self.table_widget.item(row, col).setFont(font) table_widget.item(row, col).setFont(font)
# if not readonly # if not readonly
elif table.values.ChoiceValue[column].typefield == 'combo': elif table.values.ChoiceValue[column].typefield == 'combo':
@ -811,7 +921,7 @@ class MainFrame(QtGui.QWidget):
currentIndexChanged.connect(self.OnChanged\ currentIndexChanged.connect(self.OnChanged\
(row, column, self.table_dict[field.name])) (row, column, self.table_dict[field.name]))
self.table_widget.setCellWidget(row, col, \ table_widget.setCellWidget(row, col, \
self.table_combo_list[len(self.table_combo_list)-1]) self.table_combo_list[len(self.table_combo_list)-1])
elif table.values.ChoiceValue[column].typefield == 'comboEdit': elif table.values.ChoiceValue[column].typefield == 'comboEdit':
@ -835,7 +945,7 @@ class MainFrame(QtGui.QWidget):
self.table_comboEdit_list.append(pCombo) self.table_comboEdit_list.append(pCombo)
self.table_widget.setCellWidget(row, col, \ table_widget.setCellWidget(row, col, \
self.table_comboEdit_list[len \ self.table_comboEdit_list[len \
(self.table_comboEdit_list)-1]) (self.table_comboEdit_list)-1])
@ -862,7 +972,7 @@ class MainFrame(QtGui.QWidget):
comments, add_ability) comments, add_ability)
self.table_multi_list.append(self.multi_obj) self.table_multi_list.append(self.multi_obj)
self.table_widget.setCellWidget(row, col, \ table_widget.setCellWidget(row, col, \
self.table_multi_list[len(self.table_multi_list)-1]) self.table_multi_list[len(self.table_multi_list)-1])
elif table.values.ChoiceValue[column].typefield in \ elif table.values.ChoiceValue[column].typefield in \
@ -887,7 +997,7 @@ class MainFrame(QtGui.QWidget):
if ind == 'on': if ind == 'on':
pCheckB.setChecked(True) pCheckB.setChecked(True)
self.table_check_list.append(pCheckB) self.table_check_list.append(pCheckB)
self.table_widget.setCellWidget(row, col, \ table_widget.setCellWidget(row, col, \
self.table_check_list[len(self.table_check_list)-1]) self.table_check_list[len(self.table_check_list)-1])
@ -896,133 +1006,34 @@ class MainFrame(QtGui.QWidget):
tablewidgetitem = QtGui.QTableWidgetItem \ tablewidgetitem = QtGui.QTableWidgetItem \
(table.body.stringArray[row].string[column]) (table.body.stringArray[row].string[column])
self.table_widget.setItem(row, col, tablewidgetitem) table_widget.setItem(row, col, tablewidgetitem)
if column > len(table.values.ChoiceValue): if column > len(table.values.ChoiceValue):
i = self.table_widget.item(row, col) i = table_widget.item(row, col)
self.table_widget.item(row, col).setFlags \ table_widget.item(row, col).setFlags \
(QtCore.Qt.ItemIsEditable) (QtCore.Qt.ItemIsEditable)
font = self.table_widget.item(row, col).font() font = table_widget.item(row, col).font()
font.setWeight(QtGui.QFont.Black) font.setWeight(QtGui.QFont.Black)
self.table_widget.item(row, col).setFont(font) table_widget.item(row, col).setFont(font)
elif table.values.ChoiceValue[column].typefield == 'text': elif table.values.ChoiceValue[column].typefield == 'text':
for row in range (len(table.body.stringArray)): for row in range (len(table.body.stringArray)):
tablewidgetitem = QtGui.QTableWidgetItem \ tablewidgetitem = QtGui.QTableWidgetItem \
(table.body.stringArray[row].string[column]) (table.body.stringArray[row].string[column])
self.table_widget.setItem(row, col, tablewidgetitem) table_widget.setItem(row, col, tablewidgetitem)
self.table_widget.item(row, col).setFlags \ table_widget.item(row, col).setFlags \
(QtCore.Qt.ItemIsEditable) (QtCore.Qt.ItemIsEditable)
font = self.table_widget.item(row, col).font() font = table_widget.item(row, col).font()
font.setWeight(QtGui.QFont.Black) font.setWeight(QtGui.QFont.Black)
self.table_widget.item(row, col).setFont(font) table_widget.item(row, col).setFont(font)
elif table.values.ChoiceValue[column].typefield == 'password': elif table.values.ChoiceValue[column].typefield == 'password':
for row in range (len(table.body.stringArray)): for row in range (len(table.body.stringArray)):
password = PasswordWidget(self, \ password = PasswordWidget(self, \
table.body.stringArray[row].string[column]) table.body.stringArray[row].string[column])
self.table_widget.setCellWidget(row, col, password) table_widget.setCellWidget(row, col, password)
minimum = QtGui.QSizePolicy.Minimum
self.table_widget.setSizePolicy(minimum, minimum)
self.table_widget.setContentsMargins(0, 0, 0, 0)
self.view_dict[field.name] = self.table_widget
self.label_dict[field.name] = LabelWordWrap(field.label, self)
self.table_dict[field.name] = field
if self.expert:
self.expert_list.append(self.view_dict[field.name])
self.grid.addWidget(self.label_dict[field.name], x, y)
x += 1
# add 2 button if field type = writable
if field.type == 'writable':
self.view_dict[field.name].horizontalHeader().setClickable(False)
unit_widget = QtGui.QWidget(self)
unit_layout = QtGui.QHBoxLayout(unit_widget)
plus_but = QtGui.QPushButton(self)
try:
plus_but.setIcon(QtGui.QIcon.fromTheme('list-add'))
except:
plus_but.setText('+')
plus_but.setToolTip(_('Add row'))
plus_but.setFixedWidth(30)
self.view_dict[field.name].minus_but = QtGui.QPushButton(self)
try:
self.view_dict[field.name].minus_but.setIcon \
(QtGui.QIcon.fromTheme('list-remove'))
except:
self.view_dict[field.name].minus_but.setText('-')
self.view_dict[field.name].minus_but.setToolTip(_('Delete row'))
self.view_dict[field.name].minus_but.setFixedWidth(30)
self.view_dict[field.name].minus_but.setDisabled(True)
clear_but = QtGui.QPushButton(self)
try:
clear_but.setIcon(QtGui.QIcon.fromTheme('edit-clear'))
except:
clear_but.setText('C')
clear_but.setToolTip(_('Clear table'))
clear_but.setFixedWidth(30)
plus_but.clicked.connect(self.plus_row(self.view_dict[field.name],\
self.table_dict[field.name]))
self.view_dict[field.name].minus_but.clicked.connect(self.minus_row \
(self.view_dict[field.name]))
clear_but.clicked.connect(self.minus_row \
(self.view_dict[field.name], True))
unit_layout.addWidget(plus_but)
unit_layout.addWidget(self.view_dict[field.name].minus_but)
unit_layout.addWidget(clear_but)
unit_layout.setAlignment(QtCore.Qt.AlignLeft)
# unit_widget.setLayout(unit_layout)
self.grid.addWidget(unit_widget, x, y)
x +=1
self.add_select_check(self.view_dict[field.name])
else:
self.view_dict[field.name].hideColumn(0)
# set width column
self.view_dict[field.name].horizontalHeader().resizeSections\
(QtGui.QHeaderView.ResizeMode.ResizeToContents)
# No Selection
self.view_dict[field.name].setSelectionMode \
(QtGui.QAbstractItemView.SelectionMode.NoSelection)
if field.uncompatible:
self.label_dict[field.name].setToolTip(field.uncompatible)
self.label_dict[field.name].setDisabled(True)
self.view_dict[field.name].setToolTip(field.uncompatible)
self.view_dict[field.name].setDisabled(True)
if field.type == 'writable':
unit_widget.setToolTip(field.uncompatible)
unit_widget.setDisabled(True)
# Resize table
h = self.table_widget.horizontalHeader().height() + \
2 * self.table_widget.frameWidth()
self.table_widget.horizontalScrollBar().setFixedHeight(16)
h += self.table_widget.horizontalScrollBar().height()
for row_in_table in range (self.table_widget.rowCount()):
h += self.table_widget.rowHeight(row_in_table)
self.table_widget.setFixedHeight(h)
self.grid.addWidget(self.view_dict[field.name], x, y, 1, 2)
def add_select_check(self, table): def add_select_check(self, table):
# add row Selected # add row Selected
@ -1059,23 +1070,41 @@ class MainFrame(QtGui.QWidget):
for i in range (top, bottom + 1): for i in range (top, bottom + 1):
table.model().removeRow(top) table.model().removeRow(top)
else: else:
while True: for j in range (table.rowCount()):
for i in range (table.rowCount()): for i in range (table.rowCount()):
if table.cellWidget(i,0).isChecked(): if table.cellWidget(i,0).isChecked():
table.model().removeRow(i) table.model().removeRow(i)
break break
if i == table.rowCount() or table.rowCount() == 0:
break
table.minus_but.setDisabled(True) table.minus_but.setDisabled(True)
# Resize table # Resize table
h = table.horizontalHeader().height() + \ self.resize_table(table)
2 * table.frameWidth()
h += table.horizontalScrollBar().height()
for row_in_table in range (table.rowCount()):
h += table.rowHeight(row_in_table)
table.setFixedHeight(h)
return wrapper return wrapper
def refresh_table(self, table, field, lenColumn, table_widget):
def wrapper():
self.minus_row(table_widget, True)
lenBody = 0
if len (field.tablevalue.body.stringArray):
if len (field.tablevalue.body.stringArray[0].string):
lenBody = len(field.tablevalue.body.stringArray)
table_widget.setRowCount(lenBody)
# Resize table
self.resize_table(table_widget)
self.add_table_items(table, field, lenColumn, table_widget)
self.add_select_check(table_widget)
return wrapper
def resize_table(self, table):
# Resize table
h = table.horizontalHeader().height() + \
2 * table.frameWidth()
h += table.horizontalScrollBar().height()
for row_in_table in range (table.rowCount()):
h += table.rowHeight(row_in_table)
table.setFixedHeight(h)
############# End add Table
def collect_object(self, expert = False): def collect_object(self, expert = False):
def wrapper(): def wrapper():
'''add variable values from widget in param_object''' '''add variable values from widget in param_object'''
@ -1429,6 +1458,7 @@ class MainFrame(QtGui.QWidget):
print field.name print field.name
for i in range(len(table.values.ChoiceValue[column].onChanged.\ for i in range(len(table.values.ChoiceValue[column].onChanged.\
string)): string)):
col = i + 1
if table.values.ChoiceValue[column].onChanged.string[i] == '': if table.values.ChoiceValue[column].onChanged.string[i] == '':
# print i, "=====> ''" # print i, "=====> ''"
''' do nothing ''' ''' do nothing '''
@ -1437,13 +1467,14 @@ class MainFrame(QtGui.QWidget):
elif table.values.ChoiceValue[column].onChanged.string[i] == \ elif table.values.ChoiceValue[column].onChanged.string[i] == \
None: None:
'''remove value''' '''remove value'''
self.OnChanged_None(field, row, i) self.OnChanged_None(field, row, col)
# Event when the state of the widget QComboBox changed # Event when the state of the widget QComboBox changed
elif table.values.ChoiceValue[column].onChanged.string[i] == \ elif table.values.ChoiceValue[column].onChanged.string[i] == \
'get_body': 'get_body':
'''insert the value specified in "body table" for this''' '''insert the value specified in "body table" for this'''
self.OnChanged_get_body(field, table, column, row, i) # self.OnChanged_get_body(field, table, column, row, i)
pass
@ -1451,21 +1482,21 @@ class MainFrame(QtGui.QWidget):
'''set Check''' '''set Check'''
if type(self.view_dict[field.name].cellWidget(row,i)) == \ if type(self.view_dict[field.name].cellWidget(row,i)) == \
CentralCheckBox: CentralCheckBox:
self.view_dict[field.name].cellWidget(row,i). \ self.view_dict[field.name].cellWidget(row,col). \
setChecked(True) setChecked(True)
elif table.values.ChoiceValue[column].onChanged.string[i] == 'off': elif table.values.ChoiceValue[column].onChanged.string[i] == 'off':
'''set unCheck''' '''set unCheck'''
if type(self.view_dict[field.name].cellWidget(row,i)) == \ if type(self.view_dict[field.name].cellWidget(row,col)) == \
CentralCheckBox: CentralCheckBox:
self.view_dict[field.name].cellWidget(row,i). \ self.view_dict[field.name].cellWidget(row,col). \
setChecked(False) setChecked(False)
elif table.values.ChoiceValue[column].onChanged.string[i] == 'auto': elif table.values.ChoiceValue[column].onChanged.string[i] == 'auto':
'''set unCheck''' '''set unCheck'''
if type(self.view_dict[field.name].cellWidget(row,i)) == \ if type(self.view_dict[field.name].cellWidget(row,col)) == \
CentralCheckBox: CentralCheckBox:
self.view_dict[field.name].cellWidget(row,i). \ self.view_dict[field.name].cellWidget(row,col). \
setCheckState(QtCore.Qt.CheckState. \ setCheckState(QtCore.Qt.CheckState. \
PartiallyChecked) PartiallyChecked)
return wrapper return wrapper

@ -8,12 +8,17 @@ from calculate.lib.utils.files import getRunCommands
from calculate.console.gui.ConnectionTabs import ToolTabWidget, parse, \ from calculate.console.gui.ConnectionTabs import ToolTabWidget, parse, \
SelectedMethodWgt SelectedMethodWgt
host, port = None, None
if len(sys.argv) > 1: if len(sys.argv) > 1:
args = parse() args = parse()
if args.method: if args.method:
app = QtGui.QApplication(sys.argv) app = QtGui.QApplication(sys.argv)
ex = SelectedMethodWgt(app, args) ex = SelectedMethodWgt(app, args)
sys.exit(app.exec_()) sys.exit(app.exec_())
if args.host:
host = args.host
if args.port:
port = args.port
app = QtGui.QApplication(sys.argv) app = QtGui.QApplication(sys.argv)
@ -29,6 +34,6 @@ for run_commands in filter(lambda x:'cl-console-gui' in x, getRunCommands()):
# Do not complete the program then last window is closed # Do not complete the program then last window is closed
app.setQuitOnLastWindowClosed(False) app.setQuitOnLastWindowClosed(False)
ex = ToolTabWidget(app) ex = ToolTabWidget(app, host, port)
sys.exit(app.exec_()) sys.exit(app.exec_())
Loading…
Cancel
Save