# Persisting state There are two ways to persist state and preference either with VLC variables or using Qt QSettings system. The rule of thumb is that settings & preferences should be stored using VLC variables (should we display CSD, should the application resize to the video size, etc), whereas application state (window position, is the playlist visible) should be stored in QSettings * Most settings & preferences will be loaded by MainCtx within the `MainCtx::loadPrefs` procedure. Settings may be loaded manually for specific use case using the usual VLC `var_inheritXXXX` API on the `qt_intf_t` object. * Most states will be loaded by MainCtx within the `MainCtx::loadFromSettingsImpl` and saved within `MainCtx` destructor the QSetting instance is store in the `qt_intf_t` object if there is a need to access outside MainCtx.