As namespace-scope statics, their initialization evaluates
QCoreApplication::translate() during static initialization, before the
QTranslator is installed in main(), so the combo box options always kept
the untranslated source text. Function-local statics are initialized
lazily on first dialog construction, after translations are loaded.
<exdisp.h> is not self-contained: its forward declarations use the
\interface\ macro, which is only defined in <combaseapi.h> via the
<objbase.h> include chain. Qt headers do not provide <windows.h>, so
including <exdisp.h> first caused C2146/C2371 parse errors on MSVC and
broke all IShellWindows usages. Include <objbase.h> as a prelude.
MSVC rejects declarations with initializers directly under a case label
(C2360/C2361: initialization skipped by case/default labels), while
GCC/Clang accept them. Wrap the declaring case bodies in braces.
- "auto" is not essential for our hard fork, so i simply remove it.
- remove all useless code after removing it.
- enlarge the min size of window because previous may trigger bad layout when showing navigation view.
- main window now use UI file for layout.
- remove all manual computed widget position code. use full Qt layout implementation instead.
- remove useless functions in main window
- change style changed slot as private
remove frameless window and merge it into mainwindow. because we do not need frameless and transparent window, so most of its functions are removed in previous commits.
- add and delete some actions in action manager.
- rename "fit to view" to "fit to screen".
- update main window right click menu and toolbar.
- use special state update slot in action manager instead of function located in main window.
- change default dark theme to light
- disable dark mode on windows 10 because Qt's windows 11 theme has bad support on windows 10 (icon display error)
- level required minimum qt version up to 6.5 for color schema.
- change default settings to make the default behavior more close to legacy Windows Photo Viewer.
- remove redundant fallback for fetching enum settings.
fix not thread-safe way for fetching settings singleton.
remove qApp from Settings' parent, use nullptr replace it and leak it anyway.
because we may initialize it before initializing QApplication.
in that time, qApp is nullptr.