Skip to content

Commit 370a286

Browse files
committed
Inject SettingsService to EditorService
1 parent b859402 commit 370a286

11 files changed

Lines changed: 49 additions & 27 deletions

File tree

src/application/application.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ Application::Application(int & argc, char ** argv)
7373
, m_automationService { std::make_unique<AutomationService>() }
7474
, m_settingsService { std::make_unique<SettingsService>() }
7575
, m_selectionService { std::make_unique<SelectionService>() }
76-
, m_editorService { std::make_unique<EditorService>(m_selectionService) }
76+
, m_editorService { std::make_unique<EditorService>(m_selectionService, m_settingsService) }
7777
, m_eventSelectionModel { std::make_unique<EventSelectionModel>() }
7878
, m_midiService { std::make_unique<MidiService>() }
7979
, m_mixerService { std::make_unique<MixerService>() }

src/application/service/editor_service.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "../note_converter.hpp"
2727
#include "copy_manager.hpp"
2828
#include "selection_service.hpp"
29+
#include "settings_service.hpp"
2930

3031
#include <QDateTime>
3132
#include <QFile>
@@ -39,13 +40,14 @@ using namespace std::chrono_literals;
3940
static const auto TAG = "EditorService";
4041

4142
EditorService::EditorService()
42-
: EditorService { std::make_shared<SelectionService>() }
43+
: EditorService { std::make_shared<SelectionService>(), std::make_shared<SettingsService>() }
4344
{
4445
}
4546

46-
EditorService::EditorService(SelectionServiceS selectionService)
47+
EditorService::EditorService(SelectionServiceS selectionService, SettingsServiceS settingsService)
4748
: m_undoStack { std::make_unique<UndoStack>() }
4849
, m_selectionService { selectionService }
50+
, m_settingsService { settingsService }
4951
{
5052
initialize();
5153
m_undoStack->setCanUndoChangedCallback([this] { emit canUndoChanged(); });
@@ -1584,7 +1586,7 @@ void EditorService::requestPositionByTick(quint64 tick)
15841586
}
15851587

15861588
if (auto && songPosition = m_song->songPositionByTick(tick); songPosition.has_value()) {
1587-
if (Settings::uiUpdatesDisabledDuringPlayback()) {
1589+
if (m_settingsService->uiUpdatesDisabledDuringPlayback()) {
15881590
setSongPositionInternal(songPosition->position, false);
15891591
updateTimes(songPosition->currentTime, m_song->lineToTime(songPosition->line));
15901592
} else {

src/application/service/editor_service.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class InstrumentRequest;
3636
class InstrumentSettings;
3737
class Line;
3838
class SelectionService;
39+
class SettingsService;
3940
class ColumnSettings;
4041

4142
class EditorService : public QObject
@@ -73,7 +74,8 @@ class EditorService : public QObject
7374
public:
7475
EditorService();
7576
using SelectionServiceS = std::shared_ptr<SelectionService>;
76-
EditorService(SelectionServiceS selectionService);
77+
using SettingsServiceS = std::shared_ptr<SettingsService>;
78+
EditorService(SelectionServiceS selectionService, SettingsServiceS settingsService);
7779
~EditorService() override;
7880

7981
void initialize();
@@ -82,6 +84,9 @@ class EditorService : public QObject
8284
SongS song() const;
8385
void setSong(SongS song);
8486

87+
SelectionServiceS selectionService() const { return m_selectionService; }
88+
SettingsServiceS settingsService() const { return m_settingsService; }
89+
8590
void load(QString fileName);
8691
void save();
8792
void saveAs(QString fileName);
@@ -391,6 +396,7 @@ public slots:
391396
std::unique_ptr<UndoStack> m_undoStack;
392397

393398
SelectionServiceS m_selectionService;
399+
SettingsServiceS m_settingsService;
394400

395401
struct State
396402
{

src/unit_tests/editor_service_test/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ set(SRC
1414
../../application/service/mixer_service.cpp
1515
../../application/service/random_service.cpp
1616
../../application/service/selection_service.cpp
17+
../../application/service/settings_service.cpp
1718
../../application/service/side_chain_service.cpp
1819
../../common/constants.cpp
1920
../../common/utils.cpp
@@ -46,4 +47,4 @@ set(SRC
4647
qt_add_executable(${NAME} ${SRC})
4748
set_target_properties(${NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${UNIT_TEST_BASE_DIR})
4849
add_test(${NAME} ${UNIT_TEST_BASE_DIR}/${NAME})
49-
target_link_libraries(${NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Test SimpleLogger)
50+
target_link_libraries(${NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Test Qt${QT_VERSION_MAJOR}::Gui SimpleLogger)

src/unit_tests/editor_service_test/editor_service_test.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "../../application/service/mixer_service.hpp"
2424
#include "../../infra/settings.hpp"
2525
#include "../../application/service/selection_service.hpp"
26+
#include "../../application/service/settings_service.hpp"
2627
#include "../../application/service/side_chain_service.hpp"
2728
#include "../../domain/column_settings.hpp"
2829
#include "../../domain/instrument.hpp"
@@ -483,7 +484,8 @@ void EditorServiceTest::test_patternCopyPaste_shorterTarget_shouldCopyPattern()
483484
void EditorServiceTest::test_selectionCutPaste_shouldCopySelection()
484485
{
485486
const auto selectionService = std::make_shared<SelectionService>();
486-
EditorService editorService { selectionService };
487+
const auto settingsService = std::make_shared<SettingsService>();
488+
EditorService editorService { selectionService, settingsService };
487489
QSignalSpy noteDataChangedSpy { &editorService, &EditorService::noteDataAtPositionChanged };
488490
const Position sourcePosition = { 0, 1, 0, 8, 0 };
489491
QVERIFY(editorService.requestPosition(sourcePosition));
@@ -513,7 +515,8 @@ void EditorServiceTest::test_selectionCutPaste_shouldCopySelection()
513515
void EditorServiceTest::test_selectionCopyPaste_shouldCopySelection()
514516
{
515517
const auto selectionService = std::make_shared<SelectionService>();
516-
EditorService editorService { selectionService };
518+
const auto settingsService = std::make_shared<SettingsService>();
519+
EditorService editorService { selectionService, settingsService };
517520
QSignalSpy noteDataChangedSpy { &editorService, &EditorService::noteDataAtPositionChanged };
518521
const Position sourcePosition = { 0, 1, 0, 8, 0 };
519522
QVERIFY(editorService.requestPosition(sourcePosition));
@@ -978,7 +981,8 @@ void EditorServiceTest::test_requestPatternTranspose_shouldTransposePattern()
978981
void EditorServiceTest::test_requestSelectionTranspose_shouldTransposeSelection()
979982
{
980983
const auto selectionService = std::make_shared<SelectionService>();
981-
EditorService editorService { selectionService };
984+
const auto settingsService = std::make_shared<SettingsService>();
985+
EditorService editorService { selectionService, settingsService };
982986
QSignalSpy noteDataChangedSpy { &editorService, &EditorService::noteDataAtPositionChanged };
983987

984988
editorService.requestNewColumn(0);
@@ -2131,7 +2135,7 @@ void EditorServiceTest::test_requestPositionByTick_shouldRespectUiUpdatesDisable
21312135
QSignalSpy songPositionChangedSpy { &editorService, &EditorService::songPositionChanged };
21322136

21332137
// Enable disabling UI updates
2134-
Settings::setUiUpdatesDisabledDuringPlayback(true);
2138+
editorService.settingsService()->setUiUpdatesDisabledDuringPlayback(true);
21352139

21362140
// Initial position
21372141
QCOMPARE(editorService.songPosition(), 0);
@@ -2152,7 +2156,7 @@ void EditorServiceTest::test_requestPositionByTick_shouldRespectUiUpdatesDisable
21522156
QCOMPARE(editorService.songPosition(), 0);
21532157

21542158
// Reset setting
2155-
Settings::setUiUpdatesDisabledDuringPlayback(false);
2159+
editorService.settingsService()->setUiUpdatesDisabledDuringPlayback(false);
21562160

21572161
// Another tick
21582162
const auto nextTick = tick * 2;

src/unit_tests/editor_service_undo_test/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ set(SRC
1414
../../application/service/mixer_service.cpp
1515
../../application/service/random_service.cpp
1616
../../application/service/selection_service.cpp
17+
../../application/service/settings_service.cpp
1718
../../application/service/side_chain_service.cpp
1819
../../common/constants.cpp
1920
../../common/utils.cpp
@@ -46,4 +47,4 @@ set(SRC
4647
qt_add_executable(${NAME} ${SRC})
4748
set_target_properties(${NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${UNIT_TEST_BASE_DIR})
4849
add_test(${NAME} ${UNIT_TEST_BASE_DIR}/${NAME})
49-
target_link_libraries(${NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Test SimpleLogger)
50+
target_link_libraries(${NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Test Qt${QT_VERSION_MAJOR}::Gui SimpleLogger)

src/unit_tests/editor_service_undo_test/editor_service_undo_test.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include "../../application/service/editor_service.hpp"
1919
#include "../../application/service/selection_service.hpp"
20+
#include "../../application/service/settings_service.hpp"
2021
#include "../../domain/note_data.hpp"
2122
#include "../../domain/song.hpp"
2223

@@ -297,8 +298,9 @@ void EditorServiceUndoTest::test_undoRedo_pastePattern()
297298
void EditorServiceUndoTest::test_undoRedo_pasteSelection()
298299
{
299300
auto selectionService = std::make_shared<SelectionService>();
300-
EditorService editorService(selectionService);
301-
301+
const auto settingsService = std::make_shared<SettingsService>();
302+
EditorService editorService { selectionService, settingsService };
303+
302304
editorService.requestPosition(0, 0, 0, 0, 0);
303305
editorService.requestNoteOnAtCurrentPosition(1, 3, 64);
304306

src/unit_tests/note_column_line_container_helper_test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ set(SRC
1313
../../application/service/editor_service.cpp
1414
../../application/service/mixer_service.cpp
1515
../../application/service/selection_service.cpp
16+
../../application/service/settings_service.cpp
1617
../../application/service/side_chain_service.cpp
1718
../../application/service/util_service.cpp
1819
../../application/service/random_service.cpp

src/unit_tests/note_column_line_container_helper_test/note_column_line_container_helper_test.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "../../application/service/automation_service.hpp"
2020
#include "../../application/service/editor_service.hpp"
2121
#include "../../application/service/selection_service.hpp"
22+
#include "../../application/service/settings_service.hpp"
2223
#include "../../application/service/util_service.hpp"
2324
#include "../../domain/instrument_settings.hpp"
2425

@@ -28,7 +29,8 @@ void NoteColumnLineContainerHelperTest::test_lineColorAndBorderWidth_selected_sh
2829
{
2930
const auto automationService { std::make_shared<AutomationService>() };
3031
const auto selectionService { std::make_shared<SelectionService>() };
31-
const auto editorService { std::make_shared<EditorService>(selectionService) };
32+
const auto settingsService { std::make_shared<SettingsService>() };
33+
const auto editorService { std::make_shared<EditorService>(selectionService, settingsService) };
3234
const auto utilService { std::make_shared<UtilService>() };
3335

3436
const NoteColumnLineContainerHelper helper { automationService, editorService, selectionService, utilService };
@@ -45,7 +47,8 @@ void NoteColumnLineContainerHelperTest::test_lineColorAndBorderWidth_hasInstrume
4547
{
4648
const auto automationService { std::make_shared<AutomationService>() };
4749
const auto selectionService { std::make_shared<SelectionService>() };
48-
const auto editorService { std::make_shared<EditorService>(selectionService) };
50+
const auto settingsService { std::make_shared<SettingsService>() };
51+
const auto editorService { std::make_shared<EditorService>(selectionService, settingsService) };
4952
const auto utilService { std::make_shared<UtilService>() };
5053

5154
const NoteColumnLineContainerHelper helper { automationService, editorService, selectionService, utilService };
@@ -63,7 +66,8 @@ void NoteColumnLineContainerHelperTest::test_lineColorAndBorderWidth_hasAutomati
6366
{
6467
const auto automationService { std::make_shared<AutomationService>() };
6568
const auto selectionService { std::make_shared<SelectionService>() };
66-
const auto editorService { std::make_shared<EditorService>(selectionService) };
69+
const auto settingsService { std::make_shared<SettingsService>() };
70+
const auto editorService { std::make_shared<EditorService>(selectionService, settingsService) };
6771
const auto utilService { std::make_shared<UtilService>() };
6872

6973
const NoteColumnLineContainerHelper helper { automationService, editorService, selectionService, utilService };
@@ -79,7 +83,8 @@ void NoteColumnLineContainerHelperTest::test_lineColorAndBorderWidth_default_sho
7983
{
8084
const auto automationService { std::make_shared<AutomationService>() };
8185
const auto selectionService { std::make_shared<SelectionService>() };
82-
const auto editorService { std::make_shared<EditorService>(selectionService) };
86+
const auto settingsService { std::make_shared<SettingsService>() };
87+
const auto editorService { std::make_shared<EditorService>(selectionService, settingsService) };
8388
const auto utilService { std::make_shared<UtilService>() };
8489

8590
const NoteColumnLineContainerHelper helper { automationService, editorService, selectionService, utilService };

src/unit_tests/note_column_model_handler_test/note_column_model_handler_test.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ void NoteColumnModelHandlerTest::test_columnModel_shouldCreateAndReturnModel()
4040
{
4141
const auto automationService { std::make_shared<AutomationService>() };
4242
const auto selectionService { std::make_shared<SelectionService>() };
43-
const auto editorService { std::make_shared<EditorService>(selectionService) };
4443
const auto settingsService { std::make_shared<SettingsService>() };
44+
const auto editorService { std::make_shared<EditorService>(selectionService, settingsService) };
4545

4646
NoteColumnModelHandler handler { editorService, selectionService, automationService, settingsService };
4747

@@ -56,8 +56,8 @@ void NoteColumnModelHandlerTest::test_clear_shouldClearModels()
5656
{
5757
const auto automationService { std::make_shared<AutomationService>() };
5858
const auto selectionService { std::make_shared<SelectionService>() };
59-
const auto editorService { std::make_shared<EditorService>(selectionService) };
6059
const auto settingsService { std::make_shared<SettingsService>() };
60+
const auto editorService { std::make_shared<EditorService>(selectionService, settingsService) };
6161

6262
NoteColumnModelHandler handler { editorService, selectionService, automationService, settingsService };
6363

@@ -73,8 +73,8 @@ void NoteColumnModelHandlerTest::test_updatePattern_shouldPreserveFocus()
7373
{
7474
const auto automationService { std::make_shared<AutomationService>() };
7575
const auto selectionService { std::make_shared<SelectionService>() };
76-
const auto editorService { std::make_shared<EditorService>(selectionService) };
7776
const auto settingsService { std::make_shared<SettingsService>() };
77+
const auto editorService { std::make_shared<EditorService>(selectionService, settingsService) };
7878

7979
NoteColumnModelHandler handler { editorService, selectionService, automationService, settingsService };
8080

0 commit comments

Comments
 (0)