Do not need to remove user data when resetting preferences
This commit is contained in:
parent
70fb02a853
commit
f9bff89903
17 changed files with 83 additions and 4 deletions
|
@ -33,6 +33,10 @@ PreferencesPage {
|
|||
return page.apply()
|
||||
}
|
||||
|
||||
function reset() {
|
||||
page.reset()
|
||||
}
|
||||
|
||||
MidiDeviceMappingPage {
|
||||
id: page
|
||||
|
||||
|
|
|
@ -146,6 +146,14 @@ StyledDialogView {
|
|||
navigation.order: 100000
|
||||
|
||||
onRevertFactorySettingsRequested: {
|
||||
var pages = preferencesModel.availablePages()
|
||||
|
||||
for (var i in pages) {
|
||||
var page = pages[i]
|
||||
var obj = root.prv.pagesObjects[page.id]
|
||||
obj.reset()
|
||||
}
|
||||
|
||||
preferencesModel.resetFactorySettings()
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,9 @@ Rectangle {
|
|||
return true
|
||||
}
|
||||
|
||||
function reset() {
|
||||
}
|
||||
|
||||
function ensureContentVisibleRequested(contentRect) {
|
||||
if (flickable.contentY + flickable.height < contentRect.y + contentRect.height) {
|
||||
flickable.contentY += contentRect.y + contentRect.height - (flickable.contentY + flickable.height)
|
||||
|
|
|
@ -36,6 +36,10 @@ PreferencesPage {
|
|||
return page.apply()
|
||||
}
|
||||
|
||||
function reset() {
|
||||
page.reset()
|
||||
}
|
||||
|
||||
ShortcutsPage {
|
||||
id: page
|
||||
|
||||
|
|
|
@ -197,7 +197,8 @@ void PreferencesModel::load(const QString& currentPageId)
|
|||
|
||||
void PreferencesModel::resetFactorySettings()
|
||||
{
|
||||
configuration()->revertToFactorySettings();
|
||||
static constexpr bool KEEP_DEFAULT_SETTINGS = true;
|
||||
configuration()->revertToFactorySettings(KEEP_DEFAULT_SETTINGS);
|
||||
configuration()->startEditSettings();
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,8 @@ public:
|
|||
|
||||
virtual const MidiMappingList& midiMappings() const = 0;
|
||||
virtual Ret setMidiMappings(const MidiMappingList& midiMappings) = 0;
|
||||
virtual void resetMidiMappings() = 0;
|
||||
virtual async::Notification midiMappinsChanged() const = 0;
|
||||
|
||||
// Setting
|
||||
virtual void setIsSettingMode(bool arg) = 0;
|
||||
|
|
|
@ -68,11 +68,26 @@ mu::Ret MidiRemote::setMidiMappings(const MidiMappingList& midiMappings)
|
|||
|
||||
if (ok) {
|
||||
m_midiMappings = midiMappings;
|
||||
m_midiMappingsChanged.notify();
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
void MidiRemote::resetMidiMappings()
|
||||
{
|
||||
mi::WriteResourceLockGuard resource_guard(multiInstancesProvider(), MIDI_MAPPING_RESOURCE_NAME);
|
||||
fileSystem()->remove(configuration()->midiMappingUserAppDataPath());
|
||||
|
||||
m_midiMappings = {};
|
||||
m_midiMappingsChanged.notify();
|
||||
}
|
||||
|
||||
mu::async::Notification MidiRemote::midiMappinsChanged() const
|
||||
{
|
||||
return m_midiMappingsChanged;
|
||||
}
|
||||
|
||||
void MidiRemote::setIsSettingMode(bool arg)
|
||||
{
|
||||
m_isSettingMode = arg;
|
||||
|
|
|
@ -25,9 +25,11 @@
|
|||
#include "async/asyncable.h"
|
||||
|
||||
#include "modularity/ioc.h"
|
||||
#include "system/ifilesystem.h"
|
||||
#include "actions/iactionsdispatcher.h"
|
||||
#include "multiinstances/imultiinstancesprovider.h"
|
||||
#include "ishortcutsconfiguration.h"
|
||||
|
||||
#include "shortcutstypes.h"
|
||||
#include "../imidiremote.h"
|
||||
|
||||
|
@ -39,9 +41,10 @@ class XmlWriter;
|
|||
namespace mu::shortcuts {
|
||||
class MidiRemote : public IMidiRemote, public async::Asyncable
|
||||
{
|
||||
INJECT(shortcuts, IShortcutsConfiguration, configuration)
|
||||
INJECT(shortcuts, actions::IActionsDispatcher, dispatcher)
|
||||
INJECT(shortcuts, system::IFileSystem, fileSystem)
|
||||
INJECT(shortcuts, mi::IMultiInstancesProvider, multiInstancesProvider)
|
||||
INJECT(shortcuts, actions::IActionsDispatcher, dispatcher)
|
||||
INJECT(shortcuts, IShortcutsConfiguration, configuration)
|
||||
|
||||
public:
|
||||
MidiRemote() = default;
|
||||
|
@ -50,6 +53,8 @@ public:
|
|||
|
||||
const MidiMappingList& midiMappings() const override;
|
||||
Ret setMidiMappings(const MidiMappingList& midiMappings) override;
|
||||
void resetMidiMappings() override;
|
||||
async::Notification midiMappinsChanged() const override;
|
||||
|
||||
// Setting
|
||||
void setIsSettingMode(bool arg) override;
|
||||
|
@ -74,6 +79,7 @@ private:
|
|||
bool m_isSettingMode = false;
|
||||
|
||||
MidiMappingList m_midiMappings;
|
||||
async::Notification m_midiMappingsChanged;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -318,6 +318,14 @@ mu::Ret ShortcutsRegister::setShortcuts(const ShortcutList& shortcuts)
|
|||
return ok;
|
||||
}
|
||||
|
||||
void ShortcutsRegister::resetShortcuts()
|
||||
{
|
||||
mi::WriteResourceLockGuard(multiInstancesProvider(), SHORTCUTS_RESOURCE_NAME);
|
||||
fileSystem()->remove(configuration()->shortcutsUserAppDataPath());
|
||||
|
||||
reload();
|
||||
}
|
||||
|
||||
bool ShortcutsRegister::writeToFile(const ShortcutList& shortcuts, const io::path& path) const
|
||||
{
|
||||
TRACEFUNC;
|
||||
|
|
|
@ -50,6 +50,7 @@ public:
|
|||
|
||||
const ShortcutList& shortcuts() const override;
|
||||
Ret setShortcuts(const ShortcutList& shortcuts) override;
|
||||
void resetShortcuts() override;
|
||||
async::Notification shortcutsChanged() const override;
|
||||
|
||||
Ret setAdditionalShortcuts(const std::string& context, const ShortcutList& shortcuts) override;
|
||||
|
|
|
@ -39,6 +39,7 @@ public:
|
|||
|
||||
virtual const ShortcutList& shortcuts() const = 0;
|
||||
virtual Ret setShortcuts(const ShortcutList& shortcuts) = 0;
|
||||
virtual void resetShortcuts() = 0;
|
||||
virtual async::Notification shortcutsChanged() const = 0;
|
||||
|
||||
virtual Ret setAdditionalShortcuts(const std::string& context, const ShortcutList& shortcuts) = 0;
|
||||
|
|
|
@ -38,6 +38,10 @@ Item {
|
|||
return mappingsModel.apply()
|
||||
}
|
||||
|
||||
function reset() {
|
||||
mappingsModel.reset()
|
||||
}
|
||||
|
||||
EditMidiMappingDialog {
|
||||
id: editMappingDialog
|
||||
|
||||
|
|
|
@ -47,6 +47,10 @@ Item {
|
|||
return shortcutsModel.apply()
|
||||
}
|
||||
|
||||
function reset() {
|
||||
shortcutsModel.reset()
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
shortcutsModel.load()
|
||||
|
||||
|
|
|
@ -148,6 +148,10 @@ void MidiDeviceMappingModel::load()
|
|||
}
|
||||
}
|
||||
|
||||
midiRemote()->midiMappinsChanged().onNotify(this, [this](){
|
||||
load();
|
||||
});
|
||||
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
|
@ -166,6 +170,11 @@ bool MidiDeviceMappingModel::apply()
|
|||
return ret;
|
||||
}
|
||||
|
||||
void MidiDeviceMappingModel::reset()
|
||||
{
|
||||
midiRemote()->resetMidiMappings();
|
||||
}
|
||||
|
||||
bool MidiDeviceMappingModel::useRemoteControl() const
|
||||
{
|
||||
return midiConfiguration()->useRemoteControl();
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
#include <QAbstractListModel>
|
||||
#include <QItemSelection>
|
||||
|
||||
#include "async/asyncable.h"
|
||||
|
||||
#include "modularity/ioc.h"
|
||||
#include "midi/miditypes.h"
|
||||
#include "midi/imidiconfiguration.h"
|
||||
|
@ -36,7 +38,7 @@
|
|||
#include "ui/uitypes.h"
|
||||
|
||||
namespace mu::shortcuts {
|
||||
class MidiDeviceMappingModel : public QAbstractListModel
|
||||
class MidiDeviceMappingModel : public QAbstractListModel, public async::Asyncable
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -63,6 +65,7 @@ public:
|
|||
|
||||
Q_INVOKABLE void load();
|
||||
Q_INVOKABLE bool apply();
|
||||
Q_INVOKABLE void reset();
|
||||
|
||||
Q_INVOKABLE void clearSelectedActions();
|
||||
Q_INVOKABLE void clearAllActions();
|
||||
|
|
|
@ -129,6 +129,11 @@ bool ShortcutsModel::apply()
|
|||
return ret;
|
||||
}
|
||||
|
||||
void ShortcutsModel::reset()
|
||||
{
|
||||
shortcutsRegister()->resetShortcuts();
|
||||
}
|
||||
|
||||
QItemSelection ShortcutsModel::selection() const
|
||||
{
|
||||
return m_selection;
|
||||
|
|
|
@ -62,6 +62,7 @@ public:
|
|||
|
||||
Q_INVOKABLE void load();
|
||||
Q_INVOKABLE bool apply();
|
||||
Q_INVOKABLE void reset();
|
||||
|
||||
Q_INVOKABLE void importShortcutsFromFile();
|
||||
Q_INVOKABLE void exportShortcutsToFile();
|
||||
|
|
Loading…
Reference in a new issue