Rewrite the setup dialog (#3820)

This commit is contained in:
Hussam al-Homsi
2019-09-05 20:32:17 -04:00
committed by GitHub
parent c2eefe73d0
commit 84d1091100
17 changed files with 1506 additions and 1543 deletions

View File

@@ -36,6 +36,7 @@
#include "lmms_export.h"
class LmmsCore;
@@ -57,61 +58,22 @@ class LMMS_EXPORT ConfigManager : public QObject
public:
static inline ConfigManager * inst()
{
if( s_instanceOfMe == NULL )
if(s_instanceOfMe == NULL )
{
s_instanceOfMe = new ConfigManager();
}
return s_instanceOfMe;
}
const QString & dataDir() const
{
return m_dataDir;
}
const QString & workingDir() const
{
return m_workingDir;
}
QString userProjectsDir() const
const QString & dataDir() const
{
return workingDir() + PROJECTS_PATH;
}
QString userTemplateDir() const
{
return workingDir() + TEMPLATE_PATH;
}
QString userPresetsDir() const
{
return workingDir() + PRESETS_PATH;
}
QString userSamplesDir() const
{
return workingDir() + SAMPLES_PATH;
}
QString userGigDir() const
{
return workingDir() + GIG_PATH;
}
QString userSf2Dir() const
{
return workingDir() + SF2_PATH;
}
QString userLadspaDir() const
{
return workingDir() + LADSPA_PATH;
}
QString userVstDir() const
{
return m_vstDir;
return m_dataDir;
}
QString factoryProjectsDir() const
@@ -134,37 +96,27 @@ public:
return dataDir() + SAMPLES_PATH;
}
QString defaultVersion() const;
QString defaultArtworkDir() const
QString userProjectsDir() const
{
return m_dataDir + DEFAULT_THEME_PATH;
return workingDir() + PROJECTS_PATH;
}
QString artworkDir() const
QString userTemplateDir() const
{
return m_artworkDir;
return workingDir() + TEMPLATE_PATH;
}
QString trackIconsDir() const
QString userPresetsDir() const
{
return m_dataDir + TRACK_ICON_PATH;
return workingDir() + PRESETS_PATH;
}
QString localeDir() const
QString userSamplesDir() const
{
return m_dataDir + LOCALE_PATH;
return workingDir() + SAMPLES_PATH;
}
const QString & gigDir() const
{
return m_gigDir;
}
const QString & sf2Dir() const
{
return m_sf2Dir;
}
const QString & vstDir() const
{
@@ -173,18 +125,20 @@ public:
const QString & ladspaDir() const
{
return m_ladDir;
return m_ladspaDir;
}
const QString recoveryFile() const
const QString & sf2Dir() const
{
return m_workingDir + "recover.mmp";
return m_sf2Dir;
}
const QString & version() const
#ifdef LMMS_HAVE_FLUIDSYNTH
const QString & sf2File() const
{
return m_version;
return m_sf2File;
}
#endif
#ifdef LMMS_HAVE_STK
const QString & stkDir() const
@@ -193,16 +147,55 @@ public:
}
#endif
#ifdef LMMS_HAVE_FLUIDSYNTH
const QString & defaultSoundfont() const
const QString & gigDir() const
{
return m_defaultSoundfont;
return m_gigDir;
}
#endif
const QString & backgroundArtwork() const
QString userVstDir() const
{
return m_backgroundArtwork;
return m_vstDir;
}
QString userLadspaDir() const
{
return workingDir() + LADSPA_PATH;
}
QString userSf2Dir() const
{
return workingDir() + SF2_PATH;
}
QString userGigDir() const
{
return workingDir() + GIG_PATH;
}
QString defaultThemeDir() const
{
return m_dataDir + DEFAULT_THEME_PATH;
}
QString themeDir() const
{
return m_themeDir;
}
const QString & backgroundPicFile() const
{
return m_backgroundPicFile;
}
QString trackIconsDir() const
{
return m_dataDir + TRACK_ICON_PATH;
}
const QString recoveryFile() const
{
return m_workingDir + "recover.mmp";
}
inline const QStringList & recentlyOpenedProjects() const
@@ -210,39 +203,51 @@ public:
return m_recentlyOpenedProjects;
}
QString localeDir() const
{
return m_dataDir + LOCALE_PATH;
}
const QString & version() const
{
return m_version;
}
QString defaultVersion() const;
static QStringList availabeVstEmbedMethods();
QString vstEmbedMethod() const;
// returns true if the working dir (e.g. ~/lmms) exists on disk
// Returns true if the working dir (e.g. ~/lmms) exists on disk.
bool hasWorkingDir() const;
void addRecentlyOpenedProject( const QString & _file );
void addRecentlyOpenedProject(const QString & _file);
const QString & value( const QString & cls,
const QString & attribute ) const;
const QString & value( const QString & cls,
const QString & value(const QString & cls,
const QString & attribute) const;
const QString & value(const QString & cls,
const QString & attribute,
const QString & defaultVal ) const;
void setValue( const QString & cls, const QString & attribute,
const QString & value );
void deleteValue( const QString & cls, const QString & attribute);
const QString & defaultVal) const;
void setValue(const QString & cls, const QString & attribute,
const QString & value);
void deleteValue(const QString & cls, const QString & attribute);
void loadConfigFile( const QString & configFile = "" );
void loadConfigFile(const QString & configFile = "");
void saveConfigFile();
void setWorkingDir( const QString & _wd );
void setVSTDir( const QString & _vd );
void setArtworkDir( const QString & _ad );
void setLADSPADir( const QString & _fd );
void setVersion( const QString & _cv );
void setSTKDir( const QString & _fd );
void setDefaultSoundfont( const QString & _sf );
void setBackgroundArtwork( const QString & _ba );
void setGIGDir( const QString & gd );
void setSF2Dir( const QString & sfd );
void setWorkingDir(const QString & workingDir);
void setVSTDir(const QString & vstDir);
void setLADSPADir(const QString & ladspaDir);
void setSF2Dir(const QString & sf2Dir);
void setSF2File(const QString & sf2File);
void setSTKDir(const QString & stkDir);
void setGIGDir(const QString & gigDir);
void setThemeDir(const QString & themeDir);
void setBackgroundPicFile(const QString & backgroundPicFile);
// creates the working directory & subdirectories on disk.
// Creates the working directory & subdirectories on disk.
void createWorkingDir();
signals:
@@ -252,29 +257,29 @@ private:
static ConfigManager * s_instanceOfMe;
ConfigManager();
ConfigManager( const ConfigManager & _c );
ConfigManager(const ConfigManager & _c);
~ConfigManager();
void upgrade_1_1_90();
void upgrade_1_1_91();
void upgrade();
QString m_lmmsRcFile;
QString m_workingDir;
QString m_dataDir;
QString m_artworkDir;
QString m_vstDir;
QString m_ladDir;
QString m_gigDir;
QString m_ladspaDir;
QString m_sf2Dir;
QString m_version;
#ifdef LMMS_HAVE_FLUIDSYNTH
QString m_sf2File;
#endif
#ifdef LMMS_HAVE_STK
QString m_stkDir;
#endif
#ifdef LMMS_HAVE_FLUIDSYNTH
QString m_defaultSoundfont;
#endif
QString m_backgroundArtwork;
QString m_gigDir;
QString m_themeDir;
QString m_backgroundPicFile;
QString m_lmmsRcFile;
QString m_version;
QStringList m_recentlyOpenedProjects;
typedef QVector<QPair<QString, QString> > stringPairVector;
@@ -283,7 +288,5 @@ private:
friend class LmmsCore;
} ;
};
#endif

View File

@@ -1,4 +1,3 @@
/*
* SetupDialog.h - dialog for setting up LMMS
*
@@ -23,20 +22,20 @@
*
*/
#ifndef SETUP_DIALOG_H
#define SETUP_DIALOG_H
#include <QDialog>
#include <QtCore/QMap>
#include "AudioDevice.h"
#include "AudioDeviceSetupWidget.h"
#include "LedCheckbox.h"
#include "lmmsconfig.h"
#include "AudioDevice.h"
#include "MidiClient.h"
#include "MidiSetupWidget.h"
#include "AudioDeviceSetupWidget.h"
class QComboBox;
class QLabel;
@@ -48,17 +47,18 @@ class TabBar;
class SetupDialog : public QDialog
{
Q_OBJECT
public:
enum ConfigTabs
{
GeneralSettings,
PathSettings,
PerformanceSettings,
AudioSettings,
MidiSettings
} ;
MidiSettings,
PathsSettings
};
SetupDialog( ConfigTabs _tab_to_open = GeneralSettings );
SetupDialog(ConfigTabs tab_to_open = GeneralSettings);
virtual ~SetupDialog();
@@ -67,148 +67,136 @@ protected slots:
private slots:
// general settings widget
void setBufferSize( int _value );
void resetBufSize();
// General settings widget.
void toggleDisplaydBFS(bool enabled);
void toggleTooltips(bool enabled);
void toggleDisplayWaveform(bool enabled);
void toggleNoteLabels(bool enabled);
void toggleCompactTrackButtons(bool enabled);
void toggleOneInstrumentTrackWindow(bool enabled);
void toggleMMPZ(bool enabled);
void toggleDisableBackup(bool enabled);
void toggleOpenLastProject(bool enabled);
void setLanguage(int lang);
// path settings widget
void setWorkingDir( const QString & _wd );
void setVSTDir( const QString & _vd );
void setGIGDir( const QString & _gd );
void setSF2Dir( const QString & _sfd );
void setArtworkDir( const QString & _ad );
void setLADSPADir( const QString & _ld );
void setSTKDir( const QString & _sd );
void setDefaultSoundfont( const QString & _sf );
void setBackgroundArtwork( const QString & _ba );
// performance settings widget
void setAutoSaveInterval( int time );
// Performance settings widget.
void setAutoSaveInterval(int time);
void resetAutoSave();
// audio settings widget
void audioInterfaceChanged( const QString & _driver );
// MIDI settings widget
void midiInterfaceChanged( const QString & _driver );
void toggleToolTips( bool _enabled );
void toggleWarnAfterSetup( bool _enabled );
void toggleDisplaydBFS( bool _enabled );
void toggleMMPZ( bool _enabled );
void toggleDisableBackup( bool _enabled );
void toggleOpenLastProject( bool _enabled );
void toggleHQAudioDev( bool _enabled );
void openWorkingDir();
void openVSTDir();
void openGIGDir();
void openSF2Dir();
void openArtworkDir();
void openLADSPADir();
void openSTKDir();
void openDefaultSoundfont();
void openBackgroundArtwork();
void toggleSmoothScroll( bool _enabled );
void toggleAutoSave( bool _enabled );
void toggleRunningAutoSave( bool _enabled );
void toggleOneInstrumentTrackWindow( bool _enabled );
void toggleCompactTrackButtons( bool _enabled );
void toggleSyncVSTPlugins( bool _enabled );
void toggleAnimateAFP( bool _enabled );
void toggleNoteLabels( bool en );
void toggleDisplayWaveform( bool en );
void toggleDisableAutoquit( bool en );
void toggleAutoSave(bool enabled);
void toggleRunningAutoSave(bool enabled);
void toggleSmoothScroll(bool enabled);
void toggleAnimateAFP(bool enabled);
void toggleSyncVSTPlugins(bool enabled);
void vstEmbedMethodChanged();
void toggleVSTAlwaysOnTop( bool en );
void toggleVSTAlwaysOnTop(bool en);
void toggleDisableAutoQuit(bool enabled);
void setLanguage( int lang );
// Audio settings widget.
void audioInterfaceChanged(const QString & driver);
void toggleHQAudioDev(bool enabled);
void setBufferSize(int value);
void resetBufferSize();
// MIDI settings widget.
void midiInterfaceChanged(const QString & driver);
// Paths settings widget.
void openWorkingDir();
void setWorkingDir(const QString & workingDir);
void openVSTDir();
void setVSTDir(const QString & vstDir);
void openLADSPADir();
void setLADSPADir(const QString & ladspaDir);
void openSF2Dir();
void setSF2Dir(const QString & sf2Dir);
void openSF2File();
void setSF2File(const QString & sf2File);
void openGIGDir();
void setGIGDir(const QString & gigDir);
void openThemeDir();
void setThemeDir(const QString & themeDir);
void openBackgroundPicFile();
void setBackgroundPicFile(const QString & backgroundPicFile);
void showRestartWarning();
private:
TabBar * m_tabBar;
QSlider * m_bufSizeSlider;
QLabel * m_bufSizeLbl;
int m_bufferSize;
bool m_toolTips;
bool m_warnAfterSetup;
// General settings widgets.
bool m_displaydBFS;
bool m_tooltips;
bool m_displayWaveform;
bool m_printNoteLabels;
bool m_compactTrackButtons;
bool m_oneInstrumentTrackWindow;
bool m_MMPZ;
bool m_disableBackup;
bool m_openLastProject;
bool m_NaNHandler;
bool m_hqAudioDev;
QString m_lang;
QStringList m_languages;
QLineEdit * m_wdLineEdit;
QLineEdit * m_vdLineEdit;
QLineEdit * m_adLineEdit;
QLineEdit * m_ladLineEdit;
QLineEdit * m_gigLineEdit;
QLineEdit * m_sf2LineEdit;
#ifdef LMMS_HAVE_FLUIDSYNTH
QLineEdit * m_sfLineEdit;
#endif
#ifdef LMMS_HAVE_STK
QLineEdit * m_stkLineEdit;
#endif
QLineEdit * m_baLineEdit;
QString m_workingDir;
QString m_vstDir;
QString m_artworkDir;
QString m_ladDir;
QString m_gigDir;
QString m_sf2Dir;
#ifdef LMMS_HAVE_FLUIDSYNTH
QString m_defaultSoundfont;
#endif
#ifdef LMMS_HAVE_STK
QString m_stkDir;
#endif
QString m_backgroundArtwork;
bool m_smoothScroll;
// Performance settings widgets.
int m_saveInterval;
bool m_enableAutoSave;
bool m_enableRunningAutoSave;
int m_saveInterval;
QSlider * m_saveIntervalSlider;
QLabel * m_saveIntervalLbl;
LedCheckBox * m_autoSave;
LedCheckBox * m_runningAutoSave;
bool m_oneInstrumentTrackWindow;
bool m_compactTrackButtons;
bool m_syncVSTPlugins;
bool m_smoothScroll;
bool m_animateAFP;
bool m_printNoteLabels;
bool m_displayWaveform;
QLabel * m_vstEmbedLbl;
QComboBox* m_vstEmbedComboBox;
QString m_vstEmbedMethod;
LedCheckBox * m_vstAlwaysOnTopCheckBox;
bool m_vstAlwaysOnTop;
bool m_syncVSTPlugins;
bool m_disableAutoQuit;
typedef QMap<QString, AudioDeviceSetupWidget *> AswMap;
typedef QMap<QString, MidiSetupWidget *> MswMap;
typedef QMap<QString, QString> trMap;
// Audio settings widgets.
QComboBox * m_audioInterfaces;
AswMap m_audioIfaceSetupWidgets;
trMap m_audioIfaceNames;
bool m_NaNHandler;
bool m_hqAudioDev;
int m_bufferSize;
QSlider * m_bufferSizeSlider;
QLabel * m_bufferSizeLbl;
// MIDI settings widgets.
QComboBox * m_midiInterfaces;
MswMap m_midiIfaceSetupWidgets;
trMap m_midiIfaceNames;
QComboBox* m_vstEmbedComboBox;
QString m_vstEmbedMethod;
LedCheckBox * m_vstAlwaysOnTopCheckBox;
bool m_vstAlwaysOnTop;
} ;
// Paths settings widgets.
QString m_workingDir;
QString m_vstDir;
QString m_ladspaDir;
QString m_gigDir;
QString m_sf2Dir;
#ifdef LMMS_HAVE_FLUIDSYNTH
QString m_sf2File;
#endif
QString m_themeDir;
QString m_backgroundPicFile;
QLineEdit * m_workingDirLineEdit;
QLineEdit * m_vstDirLineEdit;
QLineEdit * m_themeDirLineEdit;
QLineEdit * m_ladspaDirLineEdit;
QLineEdit * m_gigDirLineEdit;
QLineEdit * m_sf2DirLineEdit;
#ifdef LMMS_HAVE_FLUIDSYNTH
QLineEdit * m_sf2FileLineEdit;
#endif
QLineEdit * m_backgroundPicFileLineEdit;
QLabel * restartWarningLbl;
};
#endif