added ctrl c and ctrl a functionality to the tables
This commit is contained in:
@@ -113,7 +113,13 @@ TABLE_HEADERS = {
|
||||
}
|
||||
|
||||
TABLE_KEYS = {
|
||||
"table": ["scan_table", "pools_table", "cfg_table"],
|
||||
"table": [
|
||||
"scan_table",
|
||||
"pools_table",
|
||||
"pools_1_table",
|
||||
"pools_2_table",
|
||||
"cfg_table",
|
||||
],
|
||||
"tree": ["cmd_table"],
|
||||
}
|
||||
|
||||
@@ -195,6 +201,7 @@ def get_scan_layout():
|
||||
border_width=BTN_BORDER,
|
||||
disabled_button_color=BTN_DISABLED,
|
||||
mouseover_colors=BTN_DISABLED,
|
||||
bind_return_key=True,
|
||||
),
|
||||
],
|
||||
[
|
||||
|
||||
@@ -51,7 +51,7 @@ async def _scan_miners(network: MinerNetwork):
|
||||
progress_bar_len = 0
|
||||
|
||||
network_size = len(network)
|
||||
await update_prog_bar(progress_bar_len, max=(3 * network_size))
|
||||
await update_prog_bar(progress_bar_len, _max=(3 * network_size))
|
||||
|
||||
scanned_miners = []
|
||||
async for miner in scan_generator:
|
||||
|
||||
@@ -14,10 +14,11 @@ from tools.cfg_util.configure import (
|
||||
btn_import,
|
||||
btn_config,
|
||||
)
|
||||
from tools.cfg_util.layout import window
|
||||
from tools.cfg_util.layout import window, TABLE_KEYS
|
||||
from tools.cfg_util.general import btn_all, btn_web, btn_refresh
|
||||
from tools.cfg_util.tables import TableManager
|
||||
import tkinter as tk
|
||||
import pyperclip
|
||||
|
||||
|
||||
def _tree_header_click_handler(event, table):
|
||||
@@ -35,10 +36,56 @@ def _tree_header_click_handler(event, table):
|
||||
mgr.update_sort_key(heading)
|
||||
|
||||
|
||||
def _table_copy(table):
|
||||
selection = window[table].Widget.selection()
|
||||
_copy_values = []
|
||||
for each in selection:
|
||||
try:
|
||||
value = window[table].Widget.item(each)["values"]
|
||||
values = []
|
||||
for item in value:
|
||||
values.append(str(item).strip())
|
||||
_copy_values.append(values)
|
||||
except Exception as E:
|
||||
pass
|
||||
|
||||
copy_values = []
|
||||
for item in _copy_values:
|
||||
copy_values.append(", ".join(item))
|
||||
copy_string = "\n".join(copy_values)
|
||||
pyperclip.copy(copy_string)
|
||||
|
||||
|
||||
def _table_select_all(table):
|
||||
if table in TABLE_KEYS["table"]:
|
||||
window[table].update(
|
||||
select_rows=([row for row in range(len(window[table].Values))])
|
||||
)
|
||||
|
||||
if table in TABLE_KEYS["tree"]:
|
||||
_tree = window[table]
|
||||
rows_to_select = [i for i in _tree.Widget.get_children()]
|
||||
_tree.Widget.selection_set(rows_to_select)
|
||||
|
||||
|
||||
def bind_copy(key):
|
||||
widget = window[key].Widget
|
||||
widget.bind("<Control-Key-c>", lambda x: _table_copy(key))
|
||||
|
||||
|
||||
def bind_ctrl_a(key):
|
||||
widget = window[key].Widget
|
||||
widget.bind("<Control-Key-a>", lambda x: _table_select_all(key))
|
||||
|
||||
|
||||
async def ui():
|
||||
window.read(0)
|
||||
TableManager().update_tables()
|
||||
|
||||
for key in [*TABLE_KEYS["table"], *TABLE_KEYS["tree"]]:
|
||||
bind_copy(key)
|
||||
bind_ctrl_a(key)
|
||||
|
||||
# create images used in the table, they will not show if not saved here
|
||||
tk_imgs = TkImages()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user