proxy: add dedicated Proxy dialog and preferences fields

- New ProxyDialog (Tools > Proxy Settings..., plus 'Proxy Settings...'
  in the project panel and timeline Proxy submenus) unifying global
  proxy settings, per-footage custom presets, generation and deletion
  in one place instead of three scattered entry points; this also fixes
  the Tools menu action opening the wrong preferences tab
- Preferences Disk tab gains an 'include audio in proxies' checkbox and
  an ffmpeg executable path field (blank = auto-detect)
- Add ProxyDialog smoke tests
This commit is contained in:
2026-07-16 22:53:13 +08:00
parent 6aaf37e2e5
commit ddca6a5e01
13 changed files with 592 additions and 2 deletions
+5 -2
View File
@@ -30,6 +30,7 @@
#include "core.h"
#include "dialog/actionsearch/actionsearch.h"
#include "dialog/diskcache/diskcachedialog.h"
#include "dialog/proxy/proxydialog.h"
#include "dialog/task/task.h"
#include "panel/panelmanager.h"
#include "tool/tool.h"
@@ -362,8 +363,10 @@ MainMenu::MainMenu(MainWindow *parent)
tools_proxy_settings_item_ = new QAction(this);
Menu::ConformItem(tools_proxy_settings_item_, "proxysettings");
connect(tools_proxy_settings_item_, &QAction::triggered, this,
[]() { Core::instance()->DialogPreferencesShow(3); });
connect(tools_proxy_settings_item_, &QAction::triggered, this, [this]() {
ProxyDialog d(this);
d.exec();
});
tools_menu_->addAction(tools_proxy_settings_item_);
tools_preferences_item_ = tools_menu_->AddItem(