IC: Implement copy/paste command.

This commit is contained in:
Pierre-Antoine Rouby committed 2024-05-15 09:49:43 +02:00
1 parent c1f4aaf957
commit 459722610a
3 files changed
+85 -5

No files matched your search

+42 -4
View File
@@ -18,7 +18,7 @@
import logging
from tools import trace, timer
from tools import trace, timer, logger_exception
from View.Tools.PamhyrWindow import PamhyrWindow
@@ -241,11 +241,49 @@ class InitialConditionsWindow(PamhyrWindow):
self._update()
def _copy(self):
logger.info("TODO: copy")
self._update()
rows = list(
map(
lambda row: row.row(),
self.tableView.selectionModel().selectedRows()
)
)
table = list(
map(
lambda eic: list(
map(
lambda k: eic[1][k],
["kp", "discharge", "elevation"]
)
),
filter(
lambda eic: eic[0] in rows,
enumerate(self._ics.lst())
)
)
)
self.copyTableIntoClipboard(table)
def _paste(self):
logger.info("TODO: paste")
header, data = self.parseClipboardTable()
if len(data) + len(header) == 0:
return
logger.debug(
"IC: Paste: " +
f"header = {header}, " +
f"data = {data}"
)
try:
row = 0 if len(self._ics.lst()) == 0 else self.index_selected_row()
# self._table.paste(row, header, data)
self._table.paste(row, [], data)
except Exception as e:
logger_exception(e)
self._update()
def _undo(self):