diff --git a/easymacro.py b/easymacro.py index bc8f498..4bf00d4 100644 --- a/easymacro.py +++ b/easymacro.py @@ -4676,12 +4676,11 @@ class UnoGrid(UnoBaseObject): def __init__(self, obj): super().__init__(obj) self._gdm = self.model.GridDataModel - self._columns = [] self._data = [] - # ~ self._format_columns = () + self._formats = () def __setattr__(self, name, value): - if name in ('_gdm', '_columns', '_data'): + if name in ('_gdm', '_data', '_formats'): self.__dict__[name] = value else: super().__setattr__(name, value) @@ -4700,10 +4699,10 @@ class UnoGrid(UnoBaseObject): @property def columns(self): - return self._columns + return {} @columns.setter def columns(self, values): - self._columns = values + # ~ self._columns = values #~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True) for properties in values: @@ -4742,14 +4741,43 @@ class UnoGrid(UnoBaseObject): def row(self): return self.obj.CurrentRow + @property + def row_count(self): + return self._gdm.RowCount + @property def column(self): return self.obj.CurrentColumn + @property + def column(self): + return self.obj.CurrentColumn + + @property + def formats(self): + return self._formats + @formats.setter + def formats(self, values): + self._formats = values + def clear(self): self._gdm.removeAllRows() return + def _format_columns(self, data): + row = data + if self.formats: + for i, f in enumerate(formats): + if f: + row[i] = f.format(data[i]) + return row + + def add_row(self, data): + self._data.append(data) + row = self._format_columns(data) + self._gdm.addRow(self.row_count + 1, row) + return + # UP def _format_cols(self): rows = tuple(tuple( @@ -4790,12 +4818,6 @@ class UnoGrid(UnoBaseObject): row.append(d) return tuple(row) - def add_row(self, data): - # ~ self._data.append(data) - data = self._validate_column(data) - self._gdm.addRow(self.rows + 1, data) - return - def remove_row(self, row): self._gdm.removeRow(row) # ~ del self._data[row] diff --git a/files/ZAZFavorites_v0.6.0.oxt b/files/ZAZFavorites_v0.6.0.oxt index 5260f48..0fe8f0f 100644 Binary files a/files/ZAZFavorites_v0.6.0.oxt and b/files/ZAZFavorites_v0.6.0.oxt differ diff --git a/source/pythonpath/easymacro.py b/source/pythonpath/easymacro.py index bc8f498..c245dfe 100644 --- a/source/pythonpath/easymacro.py +++ b/source/pythonpath/easymacro.py @@ -4676,12 +4676,11 @@ class UnoGrid(UnoBaseObject): def __init__(self, obj): super().__init__(obj) self._gdm = self.model.GridDataModel - self._columns = [] self._data = [] - # ~ self._format_columns = () + self._formats = () def __setattr__(self, name, value): - if name in ('_gdm', '_columns', '_data'): + if name in ('_gdm', '_data', '_formats'): self.__dict__[name] = value else: super().__setattr__(name, value) @@ -4700,10 +4699,10 @@ class UnoGrid(UnoBaseObject): @property def columns(self): - return self._columns + return {} @columns.setter def columns(self, values): - self._columns = values + # ~ self._columns = values #~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True) for properties in values: @@ -4742,14 +4741,42 @@ class UnoGrid(UnoBaseObject): def row(self): return self.obj.CurrentRow + @property + def row_count(self): + return self._gdm.RowCount + @property def column(self): return self.obj.CurrentColumn + @property + def column(self): + return self.obj.CurrentColumn + + @property + def formats(self): + return self._formats + @formats.setter + def formats(self, values): + self._formats = values + def clear(self): self._gdm.removeAllRows() return + def _format_columns(self, data): + row = data + if self.formats: + for i, f in enumerate(formats): + row[i] = f.format(data[i]) + return row + + def add_row(self, data): + self._data.append(data) + row = self._format_columns(data) + self._gdm.addRow(self.row_count + 1, row) + return + # UP def _format_cols(self): rows = tuple(tuple( @@ -4790,12 +4817,6 @@ class UnoGrid(UnoBaseObject): row.append(d) return tuple(row) - def add_row(self, data): - # ~ self._data.append(data) - data = self._validate_column(data) - self._gdm.addRow(self.rows + 1, data) - return - def remove_row(self, row): self._gdm.removeRow(row) # ~ del self._data[row] diff --git a/source/pythonpath/main.py b/source/pythonpath/main.py index 7fc93e2..2d75e72 100644 --- a/source/pythonpath/main.py +++ b/source/pythonpath/main.py @@ -15,6 +15,7 @@ class Controllers(object): self.d = dlg self.paths = [] + @app.catch_exception def button_add_action(self, event): path = app.paths.get_file() if not path: @@ -25,8 +26,8 @@ class Controllers(object): return self.paths.append(path) - # ~ p, filename, n, e = app.get_info_path(path) - # ~ self.d.grid.add_row((filename, '', path)) + p = app.paths(path) + self.d.grid.add_row((p.file_name, 'delete.svg', p.path)) # ~ self.d.grid.set_cell_tooltip(0, self.d.grid.rows-1, p) # ~ self.d.grid.sort(0) app.debug(path)