Skip to content

Commit

Permalink
experiment
Browse files Browse the repository at this point in the history
  • Loading branch information
RomanPudashkin committed Jan 30, 2025
1 parent 235a030 commit b416f93
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 6 deletions.
1 change: 1 addition & 0 deletions src/notation/inotationconfiguration.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ class INotationConfiguration : MODULE_EXPORT_INTERFACE
virtual muse::draw::Color noteInputPreviewColor() const = 0;

virtual bool useNoteInputCursorInInputByDuration() const = 0;
virtual bool thinNoteInputCursor() const = 0;

virtual int selectionProximity() const = 0;
virtual void setSelectionProximity(int proximity) = 0;
Expand Down
9 changes: 9 additions & 0 deletions src/notation/internal/notationconfiguration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ static const Settings::Key NOTE_INPUT_PREVIEW_COLOR(module_name, "ui/canvas/note
static const Settings::Key USE_NOTE_INPUT_CURSOR_IN_INPUT_BY_DURATION(module_name,
"ui/canvas/useNoteInputCursorInInputByDuration");

static const Settings::Key THIN_NOTE_INPUT_CURSOR(module_name, "ui/canvas/thinNoteInputCursor");

static const Settings::Key SELECTION_PROXIMITY(module_name, "ui/canvas/misc/selectionProximity");

static const Settings::Key DEFAULT_ZOOM_TYPE(module_name, "ui/canvas/zoomDefaultType");
Expand Down Expand Up @@ -182,6 +184,8 @@ void NotationConfiguration::init()
settings()->setDescription(USE_NOTE_INPUT_CURSOR_IN_INPUT_BY_DURATION,
muse::trc("notation", "Use on-staff vertical cursor (input by duration mode)"));

settings()->setDefaultValue(THIN_NOTE_INPUT_CURSOR, Val(false));

settings()->setDefaultValue(FOREGROUND_WALLPAPER_PATH, Val());
settings()->valueChanged(FOREGROUND_WALLPAPER_PATH).onReceive(nullptr, [this](const Val&) {
m_foregroundChanged.notify();
Expand Down Expand Up @@ -573,6 +577,11 @@ bool NotationConfiguration::useNoteInputCursorInInputByDuration() const
return settings()->value(USE_NOTE_INPUT_CURSOR_IN_INPUT_BY_DURATION).toBool();
}

bool NotationConfiguration::thinNoteInputCursor() const
{
return settings()->value(THIN_NOTE_INPUT_CURSOR).toBool();
}

int NotationConfiguration::selectionProximity() const
{
return settings()->value(SELECTION_PROXIMITY).toInt();
Expand Down
1 change: 1 addition & 0 deletions src/notation/internal/notationconfiguration.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ class NotationConfiguration : public INotationConfiguration, public muse::async:
QColor dropRectColor() const override;

muse::draw::Color noteInputPreviewColor() const override;
bool thinNoteInputCursor() const override;

bool useNoteInputCursorInInputByDuration() const override;

Expand Down
1 change: 1 addition & 0 deletions src/notation/tests/mocks/notationconfigurationmock.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ class NotationConfigurationMock : public INotationConfiguration
MOCK_METHOD(muse::draw::Color, noteInputPreviewColor, (), (const, override));

MOCK_METHOD(bool, useNoteInputCursorInInputByDuration, (), (const, override));
MOCK_METHOD(bool, thinNoteInputCursor, (), (const, override));

MOCK_METHOD(int, selectionProximity, (), (const, override));
MOCK_METHOD(void, setSelectionProximity, (int), (override));
Expand Down
2 changes: 1 addition & 1 deletion src/notation/view/abstractnotationpaintview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,7 @@ void AbstractNotationPaintView::paint(QPainter* qp)
&& !configuration()->useNoteInputCursorInInputByDuration()) {
m_ruler->paint(painter, noteInput->state());
} else {
m_noteInputCursor->paint(painter);
m_noteInputCursor->paint(painter, configuration()->thinNoteInputCursor());
}
}

Expand Down
11 changes: 7 additions & 4 deletions src/notation/view/noteinputcursor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
using namespace mu::notation;
using namespace mu::engraving;

void NoteInputCursor::paint(muse::draw::Painter* painter)
void NoteInputCursor::paint(muse::draw::Painter* painter, bool thinLine)
{
INotationNoteInputPtr noteInput = currentNoteInput();
if (!noteInput) {
Expand All @@ -35,9 +35,12 @@ void NoteInputCursor::paint(muse::draw::Painter* painter)
RectF cursorRect = noteInput->cursorRect();

Color fillColor = configuration()->selectionColor(state.voice());
Color cursorRectColor = fillColor;
cursorRectColor.setAlpha(configuration()->cursorOpacity());
painter->fillRect(cursorRect, cursorRectColor);

if (!thinLine) {
Color cursorRectColor = fillColor;
cursorRectColor.setAlpha(configuration()->cursorOpacity());
painter->fillRect(cursorRect, cursorRectColor);
}

constexpr int leftLineWidth = 3;
RectF leftLine(cursorRect.topLeft().x(), cursorRect.topLeft().y(), leftLineWidth, cursorRect.height());
Expand Down
2 changes: 1 addition & 1 deletion src/notation/view/noteinputcursor.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class NoteInputCursor : public muse::Injectable
muse::Inject<INotationConfiguration> configuration = { this };

public:
void paint(muse::draw::Painter* painter);
void paint(muse::draw::Painter* painter, bool thinLine = false);

private:
INotationNoteInputPtr currentNoteInput() const;
Expand Down

0 comments on commit b416f93

Please sign in to comment.