mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-23 17:18:32 +02:00
feat(settings): add do not check for updates (#246)
Co-authored-by: Gregory Schier <gschier1990@gmail.com>
This commit is contained in:
@@ -1389,12 +1389,15 @@ pub fn run() {
|
|||||||
} => {
|
} => {
|
||||||
let w = app_handle.get_webview_window(&label).unwrap();
|
let w = app_handle.get_webview_window(&label).unwrap();
|
||||||
let h = app_handle.clone();
|
let h = app_handle.clone();
|
||||||
|
|
||||||
// Run update check whenever the window is focused
|
// Run update check whenever the window is focused
|
||||||
tauri::async_runtime::spawn(async move {
|
tauri::async_runtime::spawn(async move {
|
||||||
let val: State<'_, Mutex<YaakUpdater>> = h.state();
|
if w.db().get_settings().autoupdate {
|
||||||
let update_mode = get_update_mode(&w).await.unwrap();
|
let val: State<'_, Mutex<YaakUpdater>> = h.state();
|
||||||
if let Err(e) = val.lock().await.maybe_check(&w, update_mode).await {
|
let update_mode = get_update_mode(&w).await.unwrap();
|
||||||
warn!("Failed to check for updates {e:?}");
|
if let Err(e) = val.lock().await.maybe_check(&w, update_mode).await {
|
||||||
|
warn!("Failed to check for updates {e:?}");
|
||||||
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ export type ProxySetting = { "type": "enabled", http: string, https: string, aut
|
|||||||
|
|
||||||
export type ProxySettingAuth = { user: string, password: string, };
|
export type ProxySettingAuth = { user: string, password: string, };
|
||||||
|
|
||||||
export type Settings = { model: "settings", id: string, createdAt: string, updatedAt: string, appearance: string, coloredMethods: boolean, editorFont: string | null, editorFontSize: number, editorKeymap: EditorKeymap, editorSoftWrap: boolean, hideWindowControls: boolean, interfaceFont: string | null, interfaceFontSize: number, interfaceScale: number, openWorkspaceNewWindow: boolean | null, proxy: ProxySetting | null, themeDark: string, themeLight: string, updateChannel: string, };
|
export type Settings = { model: "settings", id: string, createdAt: string, updatedAt: string, appearance: string, coloredMethods: boolean, editorFont: string | null, editorFontSize: number, editorKeymap: EditorKeymap, editorSoftWrap: boolean, hideWindowControls: boolean, interfaceFont: string | null, interfaceFontSize: number, interfaceScale: number, openWorkspaceNewWindow: boolean | null, proxy: ProxySetting | null, themeDark: string, themeLight: string, updateChannel: string, autoupdate: boolean, };
|
||||||
|
|
||||||
export type SyncState = { model: "sync_state", id: string, workspaceId: string, createdAt: string, updatedAt: string, flushedAt: string, modelId: string, checksum: string, relPath: string, syncDir: string, };
|
export type SyncState = { model: "sync_state", id: string, workspaceId: string, createdAt: string, updatedAt: string, flushedAt: string, modelId: string, checksum: string, relPath: string, syncDir: string, };
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE settings ADD COLUMN autoupdate BOOLEAN DEFAULT true NOT NULL;
|
||||||
@@ -120,6 +120,7 @@ pub struct Settings {
|
|||||||
pub theme_dark: String,
|
pub theme_dark: String,
|
||||||
pub theme_light: String,
|
pub theme_light: String,
|
||||||
pub update_channel: String,
|
pub update_channel: String,
|
||||||
|
pub autoupdate: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UpsertModelInfo for Settings {
|
impl UpsertModelInfo for Settings {
|
||||||
@@ -168,6 +169,7 @@ impl UpsertModelInfo for Settings {
|
|||||||
(ThemeDark, self.theme_dark.as_str().into()),
|
(ThemeDark, self.theme_dark.as_str().into()),
|
||||||
(ThemeLight, self.theme_light.as_str().into()),
|
(ThemeLight, self.theme_light.as_str().into()),
|
||||||
(UpdateChannel, self.update_channel.into()),
|
(UpdateChannel, self.update_channel.into()),
|
||||||
|
(Autoupdate, self.autoupdate.into()),
|
||||||
(ColoredMethods, self.colored_methods.into()),
|
(ColoredMethods, self.colored_methods.into()),
|
||||||
(Proxy, proxy.into()),
|
(Proxy, proxy.into()),
|
||||||
])
|
])
|
||||||
@@ -190,6 +192,7 @@ impl UpsertModelInfo for Settings {
|
|||||||
SettingsIden::ThemeDark,
|
SettingsIden::ThemeDark,
|
||||||
SettingsIden::ThemeLight,
|
SettingsIden::ThemeLight,
|
||||||
SettingsIden::UpdateChannel,
|
SettingsIden::UpdateChannel,
|
||||||
|
SettingsIden::Autoupdate,
|
||||||
SettingsIden::ColoredMethods,
|
SettingsIden::ColoredMethods,
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -219,6 +222,7 @@ impl UpsertModelInfo for Settings {
|
|||||||
theme_light: row.get("theme_light")?,
|
theme_light: row.get("theme_light")?,
|
||||||
hide_window_controls: row.get("hide_window_controls")?,
|
hide_window_controls: row.get("hide_window_controls")?,
|
||||||
update_channel: row.get("update_channel")?,
|
update_channel: row.get("update_channel")?,
|
||||||
|
autoupdate: row.get("autoupdate")?,
|
||||||
colored_methods: row.get("colored_methods")?,
|
colored_methods: row.get("colored_methods")?,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ impl<'a> DbContext<'a> {
|
|||||||
theme_dark: "yaak-dark".to_string(),
|
theme_dark: "yaak-dark".to_string(),
|
||||||
theme_light: "yaak-light".to_string(),
|
theme_light: "yaak-light".to_string(),
|
||||||
update_channel: "stable".to_string(),
|
update_channel: "stable".to_string(),
|
||||||
|
autoupdate: true,
|
||||||
colored_methods: false,
|
colored_methods: false,
|
||||||
};
|
};
|
||||||
self.upsert(&settings, &UpdateSource::Background).expect("Failed to upsert settings")
|
self.upsert(&settings, &UpdateSource::Background).expect("Failed to upsert settings")
|
||||||
|
|||||||
@@ -49,6 +49,21 @@ export function SettingsGeneral() {
|
|||||||
onClick={() => checkForUpdates.mutateAsync()}
|
onClick={() => checkForUpdates.mutateAsync()}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<Select
|
||||||
|
name="autoupdate"
|
||||||
|
value={settings.autoupdate ? 'auto' : 'manual'}
|
||||||
|
label="Update Behavior"
|
||||||
|
labelPosition="left"
|
||||||
|
size="sm"
|
||||||
|
labelClassName="w-[14rem]"
|
||||||
|
onChange={(v) => patchModel(settings, { autoupdate: v === 'auto' })}
|
||||||
|
options={[
|
||||||
|
{ label: 'Automatic', value: 'auto' },
|
||||||
|
{ label: 'Manual', value: 'manual' },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
<Select
|
<Select
|
||||||
name="switchWorkspaceBehavior"
|
name="switchWorkspaceBehavior"
|
||||||
label="Workspace Window Behavior"
|
label="Workspace Window Behavior"
|
||||||
|
|||||||
Reference in New Issue
Block a user