mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-26 02:34:05 +02:00
144 lines
5.5 KiB
C#
144 lines
5.5 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Windows.Forms;
|
|
using TweetDuck.Configuration;
|
|
using TweetDuck.Core.Controls;
|
|
using TweetDuck.Core.Other.Settings.Dialogs;
|
|
using TweetDuck.Core.Utils;
|
|
|
|
namespace TweetDuck.Core.Other.Settings{
|
|
partial class TabSettingsAdvanced : BaseTabSettings{
|
|
private readonly Action<string> reinjectBrowserCSS;
|
|
|
|
public TabSettingsAdvanced(Action<string> reinjectBrowserCSS){
|
|
InitializeComponent();
|
|
|
|
this.reinjectBrowserCSS = reinjectBrowserCSS;
|
|
|
|
if (SystemConfig.IsHardwareAccelerationSupported){
|
|
checkHardwareAcceleration.Checked = Program.SystemConfig.HardwareAcceleration;
|
|
}
|
|
else{
|
|
checkHardwareAcceleration.Enabled = false;
|
|
checkHardwareAcceleration.Checked = false;
|
|
}
|
|
|
|
checkBrowserGCReload.Checked = Config.EnableBrowserGCReload;
|
|
numMemoryThreshold.Enabled = checkBrowserGCReload.Checked;
|
|
numMemoryThreshold.SetValueSafe(Config.BrowserMemoryThreshold);
|
|
|
|
BrowserCache.CalculateCacheSize(bytes => this.InvokeSafe(() => {
|
|
if (bytes == -1L){
|
|
btnClearCache.Text = "Clear Cache (unknown size)";
|
|
}
|
|
else{
|
|
btnClearCache.Text = "Clear Cache ("+(int)Math.Ceiling(bytes/(1024.0*1024.0))+" MB)";
|
|
}
|
|
}));
|
|
}
|
|
|
|
public override void OnReady(){
|
|
btnClearCache.Click += btnClearCache_Click;
|
|
checkHardwareAcceleration.CheckedChanged += checkHardwareAcceleration_CheckedChanged;
|
|
|
|
checkBrowserGCReload.CheckedChanged += checkBrowserGCReload_CheckedChanged;
|
|
numMemoryThreshold.ValueChanged += numMemoryThreshold_ValueChanged;
|
|
|
|
btnEditCefArgs.Click += btnEditCefArgs_Click;
|
|
btnEditCSS.Click += btnEditCSS_Click;
|
|
|
|
btnOpenAppFolder.Click += btnOpenAppFolder_Click;
|
|
btnOpenDataFolder.Click += btnOpenDataFolder_Click;
|
|
btnRestart.Click += btnRestart_Click;
|
|
btnRestartArgs.Click += btnRestartArgs_Click;
|
|
}
|
|
|
|
private void btnClearCache_Click(object sender, EventArgs e){
|
|
btnClearCache.Enabled = false;
|
|
BrowserCache.SetClearOnExit();
|
|
|
|
MessageBox.Show("Cache will be automatically cleared when "+Program.BrandName+" exits.", "Clear Cache", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
private void checkHardwareAcceleration_CheckedChanged(object sender, EventArgs e){
|
|
Program.SystemConfig.HardwareAcceleration = checkHardwareAcceleration.Checked;
|
|
Program.SystemConfig.Save();
|
|
PromptRestart();
|
|
}
|
|
|
|
private void checkBrowserGCReload_CheckedChanged(object sender, EventArgs e){
|
|
Config.EnableBrowserGCReload = checkBrowserGCReload.Checked;
|
|
numMemoryThreshold.Enabled = checkBrowserGCReload.Checked;
|
|
}
|
|
|
|
private void numMemoryThreshold_ValueChanged(object sender, EventArgs e){
|
|
Config.BrowserMemoryThreshold = (int)numMemoryThreshold.Value;
|
|
}
|
|
|
|
private void btnEditCefArgs_Click(object sender, EventArgs e){
|
|
DialogSettingsCefArgs form = new DialogSettingsCefArgs();
|
|
|
|
form.VisibleChanged += (sender2, args2) => {
|
|
form.MoveToCenter(ParentForm);
|
|
};
|
|
|
|
form.FormClosed += (sender2, args2) => {
|
|
NativeMethods.SetFormDisabled(ParentForm, false);
|
|
|
|
if (form.DialogResult == DialogResult.OK){
|
|
Config.CustomCefArgs = form.CefArgs;
|
|
PromptRestart();
|
|
form.Dispose();
|
|
}
|
|
else form.Dispose();
|
|
};
|
|
|
|
form.Show(ParentForm);
|
|
NativeMethods.SetFormDisabled(ParentForm, true);
|
|
}
|
|
|
|
private void btnEditCSS_Click(object sender, EventArgs e){
|
|
DialogSettingsCSS form = new DialogSettingsCSS(reinjectBrowserCSS);
|
|
|
|
form.VisibleChanged += (sender2, args2) => {
|
|
form.MoveToCenter(ParentForm);
|
|
};
|
|
|
|
form.FormClosed += (sender2, args2) => {
|
|
NativeMethods.SetFormDisabled(ParentForm, false);
|
|
|
|
if (form.DialogResult == DialogResult.OK){
|
|
Config.CustomBrowserCSS = form.BrowserCSS;
|
|
Config.CustomNotificationCSS = form.NotificationCSS;
|
|
}
|
|
|
|
reinjectBrowserCSS(Config.CustomBrowserCSS); // reinject on cancel too, because the CSS is updated while typing
|
|
form.Dispose();
|
|
};
|
|
|
|
form.Show(ParentForm);
|
|
NativeMethods.SetFormDisabled(ParentForm, true);
|
|
}
|
|
|
|
private void btnOpenAppFolder_Click(object sender, EventArgs e){
|
|
using(Process.Start("explorer.exe", "\""+Program.ProgramPath+"\"")){}
|
|
}
|
|
|
|
private void btnOpenDataFolder_Click(object sender, EventArgs e){
|
|
using(Process.Start("explorer.exe", "\""+Program.StoragePath+"\"")){}
|
|
}
|
|
|
|
private void btnRestart_Click(object sender, EventArgs e){
|
|
Program.Restart();
|
|
}
|
|
|
|
private void btnRestartArgs_Click(object sender, EventArgs e){
|
|
using(DialogSettingsRestart dialog = new DialogSettingsRestart(Arguments.GetCurrentClean())){
|
|
if (dialog.ShowDialog() == DialogResult.OK){
|
|
Program.RestartWithArgs(dialog.Args);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|