übernahme Code Shortcut

This commit is contained in:
georg0480
2026-01-31 15:28:10 +01:00
parent 6f4d6b9301
commit ef46c21291
1787 changed files with 1126465 additions and 0 deletions

451
src/settings.h Normal file
View File

@@ -0,0 +1,451 @@
/*
* Copyright (c) 2013-2026 Meltytech, LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SETTINGS_H
#define SETTINGS_H
#include <framework/mlt_types.h>
#include <QByteArray>
#include <QKeySequence>
#include <QObject>
#include <QSettings>
#include <QStringList>
#include <QThread>
class ShotcutSettings : public QObject
{
Q_OBJECT
Q_PROPERTY(bool timelineDragScrub READ timelineDragScrub WRITE setTimelineDragScrub NOTIFY
timelineDragScrubChanged)
Q_PROPERTY(bool timelineShowWaveforms READ timelineShowWaveforms WRITE setTimelineShowWaveforms
NOTIFY timelineShowWaveformsChanged)
Q_PROPERTY(bool timelineShowThumbnails READ timelineShowThumbnails WRITE
setTimelineShowThumbnails NOTIFY timelineShowThumbnailsChanged)
Q_PROPERTY(bool timelineRipple READ timelineRipple WRITE setTimelineRipple NOTIFY
timelineRippleChanged)
Q_PROPERTY(bool timelineRippleAllTracks READ timelineRippleAllTracks WRITE
setTimelineRippleAllTracks NOTIFY timelineRippleAllTracksChanged)
Q_PROPERTY(bool timelineRippleMarkers READ timelineRippleMarkers WRITE setTimelineRippleMarkers
NOTIFY timelineRippleMarkersChanged)
Q_PROPERTY(bool timelineSnap READ timelineSnap WRITE setTimelineSnap NOTIFY timelineSnapChanged)
Q_PROPERTY(bool timelineScrollZoom READ timelineScrollZoom WRITE setTimelineScrollZoom NOTIFY
timelineScrollZoomChanged)
Q_PROPERTY(bool timelineFramebufferWaveform READ timelineFramebufferWaveform WRITE
setTimelineFramebufferWaveform NOTIFY timelineFramebufferWaveformChanged)
Q_PROPERTY(QString openPath READ openPath WRITE setOpenPath NOTIFY openPathChanged)
Q_PROPERTY(QString savePath READ savePath WRITE setSavePath NOTIFY savePathChanged)
Q_PROPERTY(QString playlistThumbnails READ playlistThumbnails WRITE setPlaylistThumbnails NOTIFY
playlistThumbnailsChanged)
Q_PROPERTY(QString viewMode READ viewMode WRITE setViewMode NOTIFY viewModeChanged)
Q_PROPERTY(int playerAudioChannels READ playerAudioChannels NOTIFY playerAudioChannelsChanged)
Q_PROPERTY(bool playerGPU READ playerGPU NOTIFY playerGpuChanged)
Q_PROPERTY(double audioInDuration READ audioInDuration WRITE setAudioInDuration NOTIFY
audioInDurationChanged)
Q_PROPERTY(double audioOutDuration READ audioOutDuration WRITE setAudioOutDuration NOTIFY
audioOutDurationChanged)
Q_PROPERTY(double videoInDuration READ videoInDuration WRITE setVideoInDuration NOTIFY
videoInDurationChanged)
Q_PROPERTY(double videoOutDuration READ videoOutDuration WRITE setVideoOutDuration NOTIFY
videoOutDurationChanged)
Q_PROPERTY(double audioInCurve READ audioInCurve WRITE setAudioInCurve NOTIFY audioInCurveChanged)
Q_PROPERTY(
double audioOutCurve READ audioOutCurve WRITE setAudioOutCurve NOTIFY audioOutCurveChanged)
Q_PROPERTY(bool smallIcons READ smallIcons WRITE setSmallIcons NOTIFY smallIconsChanged)
Q_PROPERTY(bool askOutputFilter READ askOutputFilter WRITE setAskOutputFilter NOTIFY
askOutputFilterChanged)
Q_PROPERTY(QString appDataLocation READ appDataLocation CONSTANT)
Q_PROPERTY(TimelineScrolling timelineScrolling READ timelineScrolling WRITE setTimelineScrolling
NOTIFY timelineScrollingChanged)
Q_ENUMS(TimelineScrolling)
Q_PROPERTY(bool timelineRectangleSelect READ timelineRectangleSelect WRITE
setTimelineRectangleSelect NOTIFY timelineRectangleSelectChanged)
Q_PROPERTY(bool keyframesDragScrub READ keyframesDragScrub WRITE setKeyframesDragScrub NOTIFY
keyframesDragScrubChanged)
Q_PROPERTY(bool timelineAdjustGain READ timelineAdjustGain WRITE setTimelineAdjustGain NOTIFY
timelineAdjustGainChanged)
public:
static const qsizetype MaxPath{32767};
enum TimelineScrolling { NoScrolling, CenterPlayhead, PageScrolling, SmoothScrolling };
enum ProcessingMode { Native8Cpu, Linear8Cpu, Native10Cpu, Linear10Cpu, Linear10GpuCpu };
static ShotcutSettings &singleton();
void log();
// general
QString language() const;
void setLanguage(const QString &);
double imageDuration() const;
void setImageDuration(double);
QString openPath() const;
void setOpenPath(const QString &);
QString savePath() const;
void setSavePath(const QString &);
QStringList recent() const;
void setRecent(const QStringList &);
QStringList projects();
void setProjects(const QStringList &);
QString theme() const;
void setTheme(const QString &);
QThread::Priority jobPriority() const;
void setJobPriority(const QString &);
bool showTitleBars() const;
void setShowTitleBars(bool);
bool showToolBar() const;
void setShowToolBar(bool);
bool textUnderIcons() const;
void setTextUnderIcons(bool);
bool smallIcons() const;
void setSmallIcons(bool);
QByteArray windowGeometry() const;
void setWindowGeometry(const QByteArray &);
QByteArray windowGeometryDefault() const;
void setWindowGeometryDefault(const QByteArray &);
QByteArray windowState() const;
void setWindowState(const QByteArray &);
QByteArray windowStateDefault() const;
void setWindowStateDefault(const QByteArray &);
QString viewMode() const;
void setViewMode(const QString &viewMode);
QString exportFrameSuffix() const;
void setExportFrameSuffix(const QString &suffix);
bool convertAdvanced() const;
void setConvertAdvanced(bool);
ProcessingMode processingMode();
void setProcessingMode(ProcessingMode mode);
QString processingModeStr(ProcessingMode mode);
ProcessingMode processingModeId(const QString &mode);
// encode
QString encodePath() const;
void setEncodePath(const QString &);
bool encodeFreeSpaceCheck() const;
void setEncodeFreeSpaceCheck(bool);
bool encodeUseHardware() const;
void setEncodeUseHardware(bool);
QStringList encodeHardware() const;
void setEncodeHardware(const QStringList &);
bool encodeHardwareDecoder() const;
void setEncodeHardwareDecoder(bool);
bool encodeAdvanced() const;
void setEncodeAdvanced(bool);
bool showConvertClipDialog() const;
void setShowConvertClipDialog(bool);
bool encodeParallelProcessing() const;
void setEncodeParallelProcessing(bool);
// player
int playerAudioChannels() const;
void setPlayerAudioChannels(int);
QString playerDeinterlacer() const;
void setPlayerDeinterlacer(const QString &);
QString playerExternal() const;
void setPlayerExternal(const QString &);
bool playerGPU() const;
bool playerWarnGPU() const;
QString playerInterpolation() const;
void setPlayerInterpolation(const QString &);
bool playerJACK() const;
void setPlayerJACK(bool);
int playerDecklinkGamma() const;
void setPlayerDecklinkGamma(int);
int playerKeyerMode() const;
void setPlayerKeyerMode(int);
bool playerMuted() const;
void setPlayerMuted(bool);
QString playerProfile() const;
void setPlayerProfile(const QString &);
bool playerProgressive() const;
void setPlayerProgressive(bool);
bool playerRealtime() const;
void setPlayerRealtime(bool);
bool playerScrubAudio() const;
void setPlayerScrubAudio(bool);
int playerVolume() const;
void setPlayerVolume(int);
float playerZoom() const;
void setPlayerZoom(float);
int playerPreviewScale() const;
void setPlayerPreviewScale(int);
bool playerPreviewHardwareDecoder() const;
bool playerPreviewHardwareDecoderIsSet() const;
void setPlayerPreviewHardwareDecoder(bool);
int playerVideoDelayMs() const;
void setPlayerVideoDelayMs(int);
double playerJumpSeconds() const;
void setPlayerJumpSeconds(double);
QString playerAudioDriver() const;
void setPlayerAudioDriver(const QString &s);
bool playerPauseAfterSeek() const;
void setPlayerPauseAfterSeek(bool);
// playlist
QString playlistThumbnails() const;
void setPlaylistThumbnails(const QString &);
bool playlistAutoplay() const;
void setPlaylistAutoplay(bool);
bool playlistShowColumn(const QString &);
void setPlaylistShowColumn(const QString &, bool);
// timeline
bool timelineDragScrub() const;
void setTimelineDragScrub(bool);
bool timelineShowWaveforms() const;
void setTimelineShowWaveforms(bool);
bool timelineShowThumbnails() const;
void setTimelineShowThumbnails(bool);
bool timelineRipple() const;
void setTimelineRipple(bool);
bool timelineRippleAllTracks() const;
void setTimelineRippleAllTracks(bool);
bool timelineRippleMarkers() const;
void setTimelineRippleMarkers(bool);
bool timelineSnap() const;
void setTimelineSnap(bool);
int timelineTrackHeight() const;
void setTimelineTrackHeight(int);
bool timelineScrollZoom() const;
void setTimelineScrollZoom(bool);
bool timelineFramebufferWaveform() const;
void setTimelineFramebufferWaveform(bool);
int audioReferenceTrack() const;
void setAudioReferenceTrack(int);
double audioReferenceSpeedRange() const;
void setAudioReferenceSpeedRange(double);
bool timelinePreviewTransition() const;
void setTimelinePreviewTransition(bool);
void setTimelineScrolling(TimelineScrolling value);
TimelineScrolling timelineScrolling() const;
bool timelineAutoAddTracks() const;
void setTimelineAutoAddTracks(bool);
bool timelineRectangleSelect() const;
void setTimelineRectangleSelect(bool);
bool timelineAdjustGain() const;
void setTimelineAdjustGain(bool);
// filter
QString filterFavorite(const QString &filterName);
void setFilterFavorite(const QString &filterName, const QString &value);
double audioInDuration() const;
void setAudioInDuration(double);
double audioOutDuration() const;
void setAudioOutDuration(double);
double videoInDuration() const;
void setVideoInDuration(double);
double videoOutDuration() const;
void setVideoOutDuration(double);
int audioInCurve() const;
void setAudioInCurve(int);
int audioOutCurve() const;
void setAudioOutCurve(int);
bool askOutputFilter() const;
void setAskOutputFilter(bool);
// scope
bool loudnessScopeShowMeter(const QString &meter) const;
void setLoudnessScopeShowMeter(const QString &meter, bool b);
// Markers
void setMarkerColor(const QColor &color);
QColor markerColor() const;
void setMarkersShowColumn(const QString &column, bool b);
bool markersShowColumn(const QString &column) const;
void setMarkerSort(int column, Qt::SortOrder order);
int getMarkerSortColumn();
Qt::SortOrder getMarkerSortOrder();
// general continued
int drawMethod() const;
void setDrawMethod(int);
bool noUpgrade() const;
void setNoUpgrade(bool value);
bool checkUpgradeAutomatic();
void setCheckUpgradeAutomatic(bool b);
bool askUpgradeAutomatic();
void setAskUpgradeAutomatic(bool b);
bool askChangeVideoMode();
void setAskChangeVideoMode(bool b);
void sync();
QString appDataLocation() const;
static void setAppDataForSession(const QString &location);
void setAppDataLocally(const QString &location);
// layout
QStringList layouts() const;
bool setLayout(const QString &name, const QByteArray &geometry, const QByteArray &state);
QByteArray layoutGeometry(const QString &name);
QByteArray layoutState(const QString &name);
bool removeLayout(const QString &name);
int layoutMode() const;
void setLayoutMode(int mode = 0);
// general continued
bool clearRecent() const;
void setClearRecent(bool);
QString projectsFolder() const;
void setProjectsFolder(const QString &path);
QString audioInput() const;
void setAudioInput(const QString &name);
QString videoInput() const;
void setVideoInput(const QString &name);
QString glaxnimatePath() const;
void setGlaxnimatePath(const QString &path);
bool exportRangeMarkers() const;
void setExportRangeMarkers(bool);
int undoLimit() const;
bool warnLowMemory() const;
int backupPeriod() const;
void setBackupPeriod(int i);
mlt_time_format timeFormat() const;
void setTimeFormat(int format);
bool askFlatpakWrappers();
void setAskFlatpakWrappers(bool b);
QString dockerPath() const;
void setDockerPath(const QString &path);
QString chromiumPath() const;
void setChromiumPath(const QString &path);
QString screenRecorderPath() const;
void setScreenRecorderPath(const QString &path);
// proxy
bool proxyEnabled() const;
void setProxyEnabled(bool);
QString proxyFolder() const;
void setProxyFolder(const QString &path);
bool proxyUseProjectFolder() const;
void setProxyUseProjectFolder(bool);
bool proxyUseHardware() const;
void setProxyUseHardware(bool);
// Shortcuts
void clearShortcuts(const QString &name);
void setShortcuts(const QString &name, const QList<QKeySequence> &shortcuts);
QList<QKeySequence> shortcuts(const QString &name);
// Slideshow
double slideshowImageDuration(double defaultSeconds) const;
void setSlideshowImageDuration(double seconds);
double slideshowAudioVideoDuration(double defaultSeconds) const;
void setSlideshowAudioVideoDuration(double seconds);
int slideshowAspectConversion(int defaultAspectConversion) const;
void setSlideshowAspectConversion(int aspectConversion);
int slideshowZoomPercent(int defaultZoomPercent) const;
void setSlideshowZoomPercent(int zoomPercent);
double slideshowTransitionDuration(double defaultTransitionDuration) const;
void setSlideshowTransitionDuration(double transitionDuration);
int slideshowTransitionStyle(int defaultTransitionStyle) const;
void setSlideshowTransitionStyle(int transitionStyle);
int slideshowTransitionSoftness(int defaultTransitionSoftness) const;
void setSlideshowTransitionSoftness(int transitionSoftness);
// Keyframes
bool keyframesDragScrub() const;
void setKeyframesDragScrub(bool);
// Subtitles
void setSubtitlesShowColumn(const QString &column, bool b);
bool subtitlesShowColumn(const QString &column) const;
void setSubtitlesTrackTimeline(bool b);
bool subtitlesTrackTimeline() const;
void setSubtitlesShowPrevNext(bool b);
bool subtitlesShowPrevNext() const;
void setWhisperExe(const QString &path);
QString whisperExe();
void setWhisperModel(const QString &path);
QString whisperModel();
// Notes
void setNotesZoom(int zoom);
int notesZoom() const;
// Files
QString filesViewMode() const;
void setFilesViewMode(const QString &viewMode);
QStringList filesLocations() const;
QString filesLocationPath(const QString &name) const;
bool setFilesLocation(const QString &name, const QString &path);
bool removeFilesLocation(const QString &name);
QStringList filesOpenOther(const QString &type) const;
void setFilesOpenOther(const QString &type, const QString &filePath);
bool removeFilesOpenOther(const QString &type, const QString &filePath);
QString filesCurrentDir() const;
void setFilesCurrentDir(const QString &s);
bool filesFoldersOpen() const;
void setFilesFoldersOpen(bool b);
// Speech (Text-to-Speech dialog)
QString speechLanguage() const;
void setSpeechLanguage(const QString &code);
QString speechVoice() const;
void setSpeechVoice(const QString &voiceId);
double speechSpeed() const;
void setSpeechSpeed(double speed);
// Color Dialog
void saveCustomColors();
void restoreCustomColors();
public slots:
void reset();
signals:
void openPathChanged();
void savePathChanged();
void timelineDragScrubChanged();
void timelineShowWaveformsChanged();
void timelineShowThumbnailsChanged();
void timelineRippleChanged();
void timelineRippleAllTracksChanged();
void timelineRippleMarkersChanged();
void timelineSnapChanged();
void timelineScrollZoomChanged();
void timelineFramebufferWaveformChanged();
void playerAudioChannelsChanged(int);
void playerGpuChanged();
void audioInDurationChanged();
void audioOutDurationChanged();
void videoInDurationChanged();
void videoOutDurationChanged();
void audioInCurveChanged();
void audioOutCurveChanged();
void playlistThumbnailsChanged();
void viewModeChanged();
void filesViewModeChanged();
void smallIconsChanged();
void askOutputFilterChanged();
void timelineScrollingChanged();
void timelineAutoAddTracksChanged();
void timelineRectangleSelectChanged();
void timeFormatChanged();
void keyframesDragScrubChanged();
void timelineAdjustGainChanged();
private:
explicit ShotcutSettings();
explicit ShotcutSettings(const QString &appDataLocation);
void migrateRecent();
void migrateLayout();
QSettings settings;
QString m_appDataLocation;
QSettings m_recent;
};
#define Settings ShotcutSettings::singleton()
#endif // SETTINGS_H