add Refresh table button

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

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

@ -732,6 +732,7 @@ class MainFrame(QtGui.QWidget):
self.ClientObj.MainWidget.left_frame.create_steps \
(self.method_name, steps)
############# Begin add Table
def add_element_table (self, field, x, y):
self.error_label_dict[field.name] = ErrorLabel(self)
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\
(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 readonly view
col = column + 1
@ -773,13 +883,13 @@ class MainFrame(QtGui.QWidget):
for row in range (len(table.body.stringArray)):
tablewidgetitem = QtGui.QTableWidgetItem \
(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)
font = self.table_widget.item(row, col).font()
font = table_widget.item(row, col).font()
font.setWeight(QtGui.QFont.Black)
self.table_widget.item(row, col).setFont(font)
table_widget.item(row, col).setFont(font)
# if not readonly
elif table.values.ChoiceValue[column].typefield == 'combo':
@ -811,7 +921,7 @@ class MainFrame(QtGui.QWidget):
currentIndexChanged.connect(self.OnChanged\
(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])
elif table.values.ChoiceValue[column].typefield == 'comboEdit':
@ -835,7 +945,7 @@ class MainFrame(QtGui.QWidget):
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)-1])
@ -862,7 +972,7 @@ class MainFrame(QtGui.QWidget):
comments, add_ability)
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])
elif table.values.ChoiceValue[column].typefield in \
@ -887,7 +997,7 @@ class MainFrame(QtGui.QWidget):
if ind == 'on':
pCheckB.setChecked(True)
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])
@ -896,133 +1006,34 @@ class MainFrame(QtGui.QWidget):
tablewidgetitem = QtGui.QTableWidgetItem \
(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):
i = self.table_widget.item(row, col)
self.table_widget.item(row, col).setFlags \
i = table_widget.item(row, col)
table_widget.item(row, col).setFlags \
(QtCore.Qt.ItemIsEditable)
font = self.table_widget.item(row, col).font()
font = table_widget.item(row, col).font()
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':
for row in range (len(table.body.stringArray)):
tablewidgetitem = QtGui.QTableWidgetItem \
(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)
font = self.table_widget.item(row, col).font()
font = table_widget.item(row, col).font()
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':
for row in range (len(table.body.stringArray)):
password = PasswordWidget(self, \
table.body.stringArray[row].string[column])
self.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)
table_widget.setCellWidget(row, col, password)
def add_select_check(self, table):
# add row Selected
@ -1059,23 +1070,41 @@ class MainFrame(QtGui.QWidget):
for i in range (top, bottom + 1):
table.model().removeRow(top)
else:
while True:
for j in range (table.rowCount()):
for i in range (table.rowCount()):
if table.cellWidget(i,0).isChecked():
table.model().removeRow(i)
break
if i == table.rowCount() or table.rowCount() == 0:
break
table.minus_but.setDisabled(True)
# 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)
self.resize_table(table)
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 wrapper():
'''add variable values from widget in param_object'''
@ -1429,6 +1458,7 @@ class MainFrame(QtGui.QWidget):
print field.name
for i in range(len(table.values.ChoiceValue[column].onChanged.\
string)):
col = i + 1
if table.values.ChoiceValue[column].onChanged.string[i] == '':
# print i, "=====> ''"
''' do nothing '''
@ -1437,13 +1467,14 @@ class MainFrame(QtGui.QWidget):
elif table.values.ChoiceValue[column].onChanged.string[i] == \
None:
'''remove value'''
self.OnChanged_None(field, row, i)
self.OnChanged_None(field, row, col)
# Event when the state of the widget QComboBox changed
elif table.values.ChoiceValue[column].onChanged.string[i] == \
'get_body':
'''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'''
if type(self.view_dict[field.name].cellWidget(row,i)) == \
CentralCheckBox:
self.view_dict[field.name].cellWidget(row,i). \
self.view_dict[field.name].cellWidget(row,col). \
setChecked(True)
elif table.values.ChoiceValue[column].onChanged.string[i] == 'off':
'''set unCheck'''
if type(self.view_dict[field.name].cellWidget(row,i)) == \
if type(self.view_dict[field.name].cellWidget(row,col)) == \
CentralCheckBox:
self.view_dict[field.name].cellWidget(row,i). \
self.view_dict[field.name].cellWidget(row,col). \
setChecked(False)
elif table.values.ChoiceValue[column].onChanged.string[i] == 'auto':
'''set unCheck'''
if type(self.view_dict[field.name].cellWidget(row,i)) == \
if type(self.view_dict[field.name].cellWidget(row,col)) == \
CentralCheckBox:
self.view_dict[field.name].cellWidget(row,i). \
self.view_dict[field.name].cellWidget(row,col). \
setCheckState(QtCore.Qt.CheckState. \
PartiallyChecked)
return wrapper

@ -8,12 +8,17 @@ from calculate.lib.utils.files import getRunCommands
from calculate.console.gui.ConnectionTabs import ToolTabWidget, parse, \
SelectedMethodWgt
host, port = None, None
if len(sys.argv) > 1:
args = parse()
if args.method:
app = QtGui.QApplication(sys.argv)
ex = SelectedMethodWgt(app, args)
sys.exit(app.exec_())
if args.host:
host = args.host
if args.port:
port = args.port
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
app.setQuitOnLastWindowClosed(False)
ex = ToolTabWidget(app)
ex = ToolTabWidget(app, host, port)
sys.exit(app.exec_())
Loading…
Cancel
Save