Remove row

This commit is contained in:
Mauricio Baeza 2020-12-25 20:50:41 -06:00
parent b0ecdad5fe
commit 5c522ebcc4
5 changed files with 44 additions and 111 deletions

View File

@ -4753,6 +4753,10 @@ class UnoGrid(UnoBaseObject):
def column(self): def column(self):
return self.obj.CurrentColumn return self.obj.CurrentColumn
@property
def is_valid(self):
return not (self.row == -1 or self.column == -1)
@property @property
def formats(self): def formats(self):
return self._formats return self._formats
@ -4778,28 +4782,6 @@ class UnoGrid(UnoBaseObject):
self._gdm.addRow(self.row_count + 1, row) self._gdm.addRow(self.row_count + 1, row)
return return
# UP
def _format_cols(self):
rows = tuple(tuple(
self._format_columns[i].format(r) for i, r in enumerate(row)) for row in self._data
)
return rows
# ~ @property
# ~ def format_columns(self):
# ~ return self._format_columns
# ~ @format_columns.setter
# ~ def format_columns(self, value):
# ~ self._format_columns = value
# ~ @property
# ~ def rows(self):
# ~ return self._gdm.RowCount
# ~ @property
# ~ def columns(self):
# ~ return self._gdm.ColumnCount
def set_cell_tooltip(self, col, row, value): def set_cell_tooltip(self, col, row, value):
self._gdm.updateCellToolTip(col, row, value) self._gdm.updateCellToolTip(col, row, value)
return return
@ -4808,39 +4790,20 @@ class UnoGrid(UnoBaseObject):
value = self._gdm.getCellToolTip(col, row) value = self._gdm.getCellToolTip(col, row)
return value return value
def _validate_column(self, data):
row = []
for i, d in enumerate(data):
if i in self._columns:
if 'image' in self._columns[i]:
row.append(self._columns[i]['image'])
else:
row.append(d)
return tuple(row)
def remove_row(self, row):
self._gdm.removeRow(row)
# ~ del self._data[row]
self.update_row_heading()
return
def update_row_heading(self):
for i in range(self.rows):
self._gdm.updateRowHeading(i, i + 1)
return
def sort(self, column, asc=True): def sort(self, column, asc=True):
self._gdm.sortByColumn(column, asc) self._gdm.sortByColumn(column, asc)
self.update_row_heading() self.update_row_heading()
return return
def set_column_image(self, column, path): def update_row_heading(self):
gp = create_instance('com.sun.star.graphic.GraphicProvider') for i in range(self.row_count):
data = dict_to_property({'URL': _path_url(path)}) self._gdm.updateRowHeading(i, i + 1)
image = gp.queryGraphic(data) return
if not column in self._columns:
self._columns[column] = {} def remove_row(self, row):
self._columns[column]['image'] = image self._gdm.removeRow(row)
del self._data[row]
self.update_row_heading()
return return

Binary file not shown.

View File

@ -43,7 +43,7 @@
id="defs41" /> id="defs41" />
<g <g
id="g6" id="g6"
transform="matrix(0.03658537,0,0,0.0650398,3.0335128,-4.2925925)"> transform="matrix(0.03252033,0,0,0.0650398,4.033515,-4.2925925)">
<g <g
id="g4"> id="g4">
<path <path

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -4753,6 +4753,10 @@ class UnoGrid(UnoBaseObject):
def column(self): def column(self):
return self.obj.CurrentColumn return self.obj.CurrentColumn
@property
def is_valid(self):
return not (self.row == -1 or self.column == -1)
@property @property
def formats(self): def formats(self):
return self._formats return self._formats
@ -4778,28 +4782,6 @@ class UnoGrid(UnoBaseObject):
self._gdm.addRow(self.row_count + 1, row) self._gdm.addRow(self.row_count + 1, row)
return return
# UP
def _format_cols(self):
rows = tuple(tuple(
self._format_columns[i].format(r) for i, r in enumerate(row)) for row in self._data
)
return rows
# ~ @property
# ~ def format_columns(self):
# ~ return self._format_columns
# ~ @format_columns.setter
# ~ def format_columns(self, value):
# ~ self._format_columns = value
# ~ @property
# ~ def rows(self):
# ~ return self._gdm.RowCount
# ~ @property
# ~ def columns(self):
# ~ return self._gdm.ColumnCount
def set_cell_tooltip(self, col, row, value): def set_cell_tooltip(self, col, row, value):
self._gdm.updateCellToolTip(col, row, value) self._gdm.updateCellToolTip(col, row, value)
return return
@ -4808,39 +4790,20 @@ class UnoGrid(UnoBaseObject):
value = self._gdm.getCellToolTip(col, row) value = self._gdm.getCellToolTip(col, row)
return value return value
def _validate_column(self, data):
row = []
for i, d in enumerate(data):
if i in self._columns:
if 'image' in self._columns[i]:
row.append(self._columns[i]['image'])
else:
row.append(d)
return tuple(row)
def remove_row(self, row):
self._gdm.removeRow(row)
# ~ del self._data[row]
self.update_row_heading()
return
def update_row_heading(self):
for i in range(self.rows):
self._gdm.updateRowHeading(i, i + 1)
return
def sort(self, column, asc=True): def sort(self, column, asc=True):
self._gdm.sortByColumn(column, asc) self._gdm.sortByColumn(column, asc)
self.update_row_heading() self.update_row_heading()
return return
def set_column_image(self, column, path): def update_row_heading(self):
gp = create_instance('com.sun.star.graphic.GraphicProvider') for i in range(self.row_count):
data = dict_to_property({'URL': _path_url(path)}) self._gdm.updateRowHeading(i, i + 1)
image = gp.queryGraphic(data) return
if not column in self._columns:
self._columns[column] = {} def remove_row(self, row):
self._columns[column]['image'] = image self._gdm.removeRow(row)
del self._data[row]
self.update_row_heading()
return return

View File

@ -15,7 +15,6 @@ class Controllers(object):
self.d = dlg self.d = dlg
self.paths = [] self.paths = []
@app.catch_exception
def button_add_action(self, event): def button_add_action(self, event):
path = app.paths.get_file() path = app.paths.get_file()
if not path: if not path:
@ -27,13 +26,14 @@ class Controllers(object):
self.paths.append(path) self.paths.append(path)
p = app.paths(path) p = app.paths(path)
path = app.paths.join(self.d.path, 'images/delete.svg') path_img = app.paths.join(self.d.path, 'images/delete.svg')
image = app.paths.image(path) image = app.paths.image(path_img)
self.d.grid.add_row((p.file_name, image, p.path)) self.d.grid.add_row((p.file_name, image, path))
# ~ self.d.grid.set_cell_tooltip(0, self.d.grid.rows-1, p) self.d.grid.set_cell_tooltip(0, self.d.grid.row_count-1, p.path)
# ~ self.d.grid.sort(0) self.d.grid.sort(0)
return return
@app.catch_exception
def button_save_action(self, event): def button_save_action(self, event):
msg = _('Want you save your favorites?') msg = _('Want you save your favorites?')
if not app.question(msg, self.TITLE): if not app.question(msg, self.TITLE):
@ -73,22 +73,29 @@ class Controllers(object):
return return
def grid_click(self, event): def grid_click(self, event):
if not self.d.grid.is_valid:
return
col = self.d.grid.column col = self.d.grid.column
row = self.d.grid.row row = self.d.grid.row
if col != 1: if col != 1:
return return
msg = _('Want you delete this file?') file_name = self.d.grid[0, row]
if app.question(msg, self.TITLE): path = self.d.grid[2, row]
path = self.d.grid[2, row] msg = _('Want you delete this file?\n\n')
if app.question(msg + file_name, self.TITLE):
self.paths.remove(path) self.paths.remove(path)
self.d.grid.remove_row(row) self.d.grid.remove_row(row)
return return
def grid_double_click(self, event): def grid_double_click(self, event):
if not self.d.grid.is_valid:
return
col = self.d.grid.column col = self.d.grid.column
row = self.d.grid.row row = self.d.grid.row
if col == -1 or row == -1 or col != 0: if col != 0:
return return
app.msgbox(self.d.grid.get_cell_tooltip(col, row)) app.msgbox(self.d.grid.get_cell_tooltip(col, row))