implement tab:preset, and increase active tab opacity (#1439)

This commit is contained in:
Mike Sawka 2024-12-09 14:48:16 -08:00 committed by GitHub
parent c5501a5335
commit 878a7285ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 30 additions and 7 deletions

View File

@ -41,7 +41,7 @@
.tab-inner {
border-color: transparent;
border-radius: 6px;
background: rgb(from var(--main-text-color) r g b / 0.07);
background: rgb(from var(--main-text-color) r g b / 0.14);
}
.name {
@ -111,7 +111,7 @@ body:not(.nohover) .tab:hover {
.tab-inner {
border-color: transparent;
background: rgb(from var(--main-text-color) r g b / 0.07);
background: rgb(from var(--main-text-color) r g b / 0.14);
}
.close {
visibility: visible;

View File

@ -638,6 +638,7 @@ declare global {
"autoupdate:installonquit"?: boolean;
"autoupdate:channel"?: string;
"preview:showhiddenfiles"?: boolean;
"tab:preset"?: string;
"widget:*"?: boolean;
"widget:showhelp"?: boolean;
"window:*"?: boolean;

View File

@ -623,7 +623,7 @@ func (bc *BlockController) run(bdata *waveobj.Block, blockMeta map[string]any, r
waveobj.MetaKey_CmdRunOnce: false,
waveobj.MetaKey_CmdRunOnStart: false,
}
err := wstore.UpdateObjectMeta(ctx, waveobj.MakeORef(waveobj.OType_Block, bc.BlockId), metaUpdate)
err := wstore.UpdateObjectMeta(ctx, waveobj.MakeORef(waveobj.OType_Block, bc.BlockId), metaUpdate, false)
if err != nil {
log.Printf("error updating block meta (in blockcontroller.run): %v\n", err)
return

View File

@ -143,7 +143,7 @@ func (svc *ObjectService) UpdateObjectMeta(uiContext waveobj.UIContext, orefStr
if err != nil {
return nil, fmt.Errorf("error parsing object reference: %w", err)
}
err = wstore.UpdateObjectMeta(ctx, *oref, meta)
err = wstore.UpdateObjectMeta(ctx, *oref, meta, false)
if err != nil {
return nil, fmt.Errorf("error updateing %q meta: %w", orefStr, err)
}

View File

@ -48,6 +48,8 @@ const (
ConfigKey_PreviewShowHiddenFiles = "preview:showhiddenfiles"
ConfigKey_TabPreset = "tab:preset"
ConfigKey_WidgetClear = "widget:*"
ConfigKey_WidgetShowHelp = "widget:showhelp"

View File

@ -75,6 +75,8 @@ type SettingsType struct {
PreviewShowHiddenFiles *bool `json:"preview:showhiddenfiles,omitempty"`
TabPreset string `json:"tab:preset,omitempty"`
WidgetClear bool `json:"widget:*,omitempty"`
WidgetShowHelp *bool `json:"widget:showhelp,omitempty"`

View File

@ -11,6 +11,7 @@ import (
"github.com/wavetermdev/waveterm/pkg/telemetry"
"github.com/wavetermdev/waveterm/pkg/util/utilfn"
"github.com/wavetermdev/waveterm/pkg/waveobj"
"github.com/wavetermdev/waveterm/pkg/wconfig"
"github.com/wavetermdev/waveterm/pkg/wps"
"github.com/wavetermdev/waveterm/pkg/wshrpc"
"github.com/wavetermdev/waveterm/pkg/wstore"
@ -80,6 +81,16 @@ func GetWorkspace(ctx context.Context, wsID string) (*waveobj.Workspace, error)
return wstore.DBMustGet[*waveobj.Workspace](ctx, wsID)
}
func getTabPresetMeta() (waveobj.MetaMapType, error) {
settings := wconfig.GetWatcher().GetFullConfig()
tabPreset := settings.Settings.TabPreset
if tabPreset == "" {
return nil, nil
}
presetMeta := settings.Presets[tabPreset]
return presetMeta, nil
}
// returns tabid
func CreateTab(ctx context.Context, workspaceId string, tabName string, activateTab bool, pinned bool, isInitialLaunch bool) (string, error) {
if tabName == "" {
@ -108,6 +119,13 @@ func CreateTab(ctx context.Context, workspaceId string, tabName string, activate
if err != nil {
return tab.OID, fmt.Errorf("error applying new tab layout: %w", err)
}
presetMeta, presetErr := getTabPresetMeta()
if presetErr != nil {
log.Printf("error getting tab preset meta: %v\n", presetErr)
} else if presetMeta != nil && len(presetMeta) > 0 {
tabORef := waveobj.ORefFromWaveObj(tab)
wstore.UpdateObjectMeta(ctx, *tabORef, presetMeta, true)
}
}
telemetry.GoUpdateActivityWrap(wshrpc.ActivityUpdate{NewTab: 1}, "createtab")
return tab.OID, nil

View File

@ -120,7 +120,7 @@ func (ws *WshServer) GetMetaCommand(ctx context.Context, data wshrpc.CommandGetM
func (ws *WshServer) SetMetaCommand(ctx context.Context, data wshrpc.CommandSetMetaData) error {
log.Printf("SetMetaCommand: %s | %v\n", data.ORef, data.Meta)
oref := data.ORef
err := wstore.UpdateObjectMeta(ctx, oref, data.Meta)
err := wstore.UpdateObjectMeta(ctx, oref, data.Meta, false)
if err != nil {
return fmt.Errorf("error updating object meta: %w", err)
}

View File

@ -53,7 +53,7 @@ func DeleteTab(ctx context.Context, workspaceId string, tabId string) error {
})
}
func UpdateObjectMeta(ctx context.Context, oref waveobj.ORef, meta waveobj.MetaMapType) error {
func UpdateObjectMeta(ctx context.Context, oref waveobj.ORef, meta waveobj.MetaMapType, mergeSpecial bool) error {
return WithTx(ctx, func(tx *TxWrap) error {
if oref.IsEmpty() {
return fmt.Errorf("empty object reference")
@ -66,7 +66,7 @@ func UpdateObjectMeta(ctx context.Context, oref waveobj.ORef, meta waveobj.MetaM
if objMeta == nil {
objMeta = make(map[string]any)
}
newMeta := waveobj.MergeMeta(objMeta, meta, false)
newMeta := waveobj.MergeMeta(objMeta, meta, mergeSpecial)
waveobj.SetMeta(obj, newMeta)
DBUpdate(tx.Context(), obj)
return nil