diff --git a/packages/web/public/dimensions.css b/packages/web/public/dimensions.css
index 48069830..44e83f84 100644
--- a/packages/web/public/dimensions.css
+++ b/packages/web/public/dimensions.css
@@ -15,7 +15,7 @@
--dim-visible-toolbar: 0; /* set from JS */
--dim-visible-titlebar: 0; /* set from JS */
- --dim-toolbar-height: 30px;
+ --dim-toolbar-height: 25px;
--dim-titlebar-height: 30px;
--dim-toolbar-top: calc(var(--dim-titlebar-height) * var(--dim-visible-titlebar));
--dim-header-top: calc(
diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte
index 79fb627b..9882fd7a 100644
--- a/packages/web/src/datagrid/DataGridCore.svelte
+++ b/packages/web/src/datagrid/DataGridCore.svelte
@@ -43,6 +43,8 @@
id: 'dataGrid.insertNewRow',
category: 'Data grid',
name: 'Insert new row',
+ toolbarName: 'New row',
+ icon: 'icon add',
keyText: 'Insert',
testEnabled: () => getCurrentDataGrid()?.getGrider()?.editable,
onClick: () => getCurrentDataGrid().insertNewRow(),
diff --git a/packages/web/src/tabs/TableDataTab.svelte b/packages/web/src/tabs/TableDataTab.svelte
index 0e9a56f8..9d91a4b9 100644
--- a/packages/web/src/tabs/TableDataTab.svelte
+++ b/packages/web/src/tabs/TableDataTab.svelte
@@ -54,6 +54,8 @@
import { setContext } from 'svelte';
import { apiCall } from '../utility/api';
import { getLocalStorage, setLocalStorage, setLocalStorage } from '../utility/storageCache';
+ import TabToolbarContainer from '../widgets/TabToolbarContainer.svelte';
+ import ToolbarCommandButton from '../widgets/ToolbarCommandButton.svelte';
export let tabid;
export let conid;
@@ -116,17 +118,25 @@
$: setLocalStorage('dataGrid_collapsedLeftColumn', $collapsedLeftColumnStore);
-
+
+
+
+
+
+
+
+
+
+ import { createEventDispatcher } from 'svelte';
+ import FontIcon from '../icons/FontIcon.svelte';
+
+ export let disabled = false;
+ export let icon = null;
+ export let title = null;
+ export let externalImage = null;
+
+ const dispatch = createEventDispatcher();
+
+ function handleClick(e) {
+ if (disabled) return;
+ dispatch('click');
+ }
+
+
+
+
+
diff --git a/packages/web/src/widgets/TabToolbarContainer.svelte b/packages/web/src/widgets/TabToolbarContainer.svelte
new file mode 100644
index 00000000..9e4ca352
--- /dev/null
+++ b/packages/web/src/widgets/TabToolbarContainer.svelte
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/web/src/widgets/ToolbarButton.svelte b/packages/web/src/widgets/ToolbarButton.svelte
index 4c9cbd85..51f8e1c1 100644
--- a/packages/web/src/widgets/ToolbarButton.svelte
+++ b/packages/web/src/widgets/ToolbarButton.svelte
@@ -36,14 +36,15 @@
border-right: 1px solid var(--theme-border);
align-self: stretch;
display: flex;
+ user-select: none;
}
.button.disabled {
color: var(--theme-font-3);
}
- .button:hover {
+ .button:hover:not(.disabled) {
background: var(--theme-bg-2);
}
- .button:active:hover {
+ .button:active:hover:not(.disabled) {
background: var(--theme-bg-3);
}
.icon {
diff --git a/packages/web/src/widgets/ToolbarCommandButton.svelte b/packages/web/src/widgets/ToolbarCommandButton.svelte
new file mode 100644
index 00000000..7c728929
--- /dev/null
+++ b/packages/web/src/widgets/ToolbarCommandButton.svelte
@@ -0,0 +1,29 @@
+
+
+
+
+{#if cmd}
+
+ {cmd.toolbarName || cmd.name}
+
+{/if}