MuseScore/src/appshell/view/preferences/folderspreferencesmodel.cpp
Josh Soref 55c452fb68
Spelling (#11566)
* spelling: above

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: accessibility

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: accessible

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: account

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: action

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: activated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: active

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: again

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: allegro

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: alternative

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: amplitude

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: and

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: annotation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: appended

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: appending

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: appropriate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: arbitrarily

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: architecture

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: arpeggio

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: arranger

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: assumed

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: asynchronous

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: automatically

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: availability

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: available

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: backslashes

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: before

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: beginning

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: between

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: bounding

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: bracket

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: builtin

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: calculated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: categories

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: check

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: class

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: clearance

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: column

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: combinations

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: completed

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: composer

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: compression

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: consideration

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: constraints

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: container

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: continuous

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: contrabass

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: control

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: convergence

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: conversion

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: convert

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: coordinates

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: correctly

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: corresponds

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: counting

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: crescendo

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: customizable

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: cutout

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: deep

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: denom

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: denominator

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: diagram

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: diminished

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: direction

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: directories

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: disconnected

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: doesn't

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: dotted

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: easeinout

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: eighth

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: element

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: elements

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: enabled

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: engraving

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: evenly

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: exactly

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: exceed

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: excerpts

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: excessively

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: exclusive

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: extension

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: extrapolated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: farthest

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: fits

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: friends

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: function

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: glissando

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: global

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: grid

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: halved

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: happen

* spelling: harmonies

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: have

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: header

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: height

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: iabbrev

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: ideally

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: implementation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: in

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: incoming

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: incomplete

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: increase

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: indentation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: individual

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: infer

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: initial

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: initially

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: inputted

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: instrument

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: instruments

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: invalid

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: invocation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: iplugin

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: javascript

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: label

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: laid out

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: languages

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: length

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: linked

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: lyrchord

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: lyricist

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: managed

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: manually

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: mapping

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: mappings

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: margins

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: measure

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: metric

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: metronome

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: military

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: milliseconds

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: minimum

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: modifiers

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: moving

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: multi

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: namespace

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: navigate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: necessary

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: needs

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: newly

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: notation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: numerator

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: occasionally

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: occurred

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: occurrence

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: omitted

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: or

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: oriented

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: originally

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: ornament

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: ornaments

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: output

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: outputted

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: outside

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: overlapping

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: overridden

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: package

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: padding

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: parameter

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: percussion

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: placement

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: playthrough

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: positive

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: preceded

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: precision

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: previous

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: process

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: property

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: proximity

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: publish

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: rasgueado

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: read

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: receive

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: received

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: rectangle

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: regarding

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: register

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: registry

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: rehearsal

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: related

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: repeat

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: repeatp

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: replacements

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: represent

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: representation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: responses

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: rhythm

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: section

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: selected

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: selection

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: separation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: separator

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: shortcuts

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: signatures

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: simile

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: slurred

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: sound

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: staccato

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: staff

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: stuff

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: style

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: suffix

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: supported

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: symbol

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: symbols

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: system

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: tablature

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: tcp_invalid

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: that

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: the

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: thickness

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: tibetan

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: of

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: to

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: transparent

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: transpose

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: tremolo

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: ultimately

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unassigned

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: underscore

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unhandled

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: uninstall

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unknown

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unnamed

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: useful

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: usually

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: vertical

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: violin

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: visible

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: when

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: whether

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: with

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: within

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: without

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: would

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: writing

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: written

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: xmlns

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Remove unused avaiableArticulationTypesChanged

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: firstSystemIndentation [API]

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Enable testIncompleteTuplet

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Drop stray comment

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Update license header in module.cmake

per https://github.com/musescore/MuseScore/pull/11566#discussion_r870550003

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-05-15 16:35:32 +02:00

206 lines
6.7 KiB
C++

/*
* SPDX-License-Identifier: GPL-3.0-only
* MuseScore-CLA-applies
*
* MuseScore
* Music Composition & Notation
*
* Copyright (C) 2021 MuseScore BVBA and others
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* 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 <https://www.gnu.org/licenses/>.
*/
#include "folderspreferencesmodel.h"
#include "log.h"
#include "translation.h"
using namespace mu::appshell;
FoldersPreferencesModel::FoldersPreferencesModel(QObject* parent)
: QAbstractListModel(parent)
{
}
int FoldersPreferencesModel::rowCount(const QModelIndex&) const
{
return m_folders.count();
}
QVariant FoldersPreferencesModel::data(const QModelIndex& index, int role) const
{
const FolderInfo& folder = m_folders.at(index.row());
switch (role) {
case TitleRole: return folder.title;
case PathRole: return folder.value;
case DirRole: return folder.dir;
case IsMultiDirectoriesRole: return folder.valueType == FolderValueType::MultiDirectories;
}
return QVariant();
}
bool FoldersPreferencesModel::setData(const QModelIndex& index, const QVariant& value, int role)
{
const FolderInfo& folder = m_folders.at(index.row());
switch (role) {
case PathRole:
if (folder.value == value.toString()) {
return false;
}
saveFolderPaths(folder.type, value.toString());
return true;
default:
break;
}
return false;
}
QHash<int, QByteArray> FoldersPreferencesModel::roleNames() const
{
static const QHash<int, QByteArray> roles = {
{ TitleRole, "title" },
{ PathRole, "path" },
{ DirRole, "dir" },
{ IsMultiDirectoriesRole, "isMultiDirectories" }
};
return roles;
}
void FoldersPreferencesModel::load()
{
beginResetModel();
m_folders = {
{ FolderType::Scores, qtrc("appshell", "Scores"), projectConfiguration()->userProjectsPath().toQString(),
projectConfiguration()->userProjectsPath().toQString() },
{ FolderType::Styles, qtrc("appshell", "Styles"), notationConfiguration()->userStylesPath().toQString(),
notationConfiguration()->userStylesPath().toQString() },
{ FolderType::Templates, qtrc("appshell", "Templates"), projectConfiguration()->userTemplatesPath().toQString(),
projectConfiguration()->userTemplatesPath().toQString() },
{ FolderType::Plugins, qtrc("appshell", "Plugins"), pluginsConfiguration()->userPluginsPath().toQString(),
pluginsConfiguration()->userPluginsPath().toQString() },
{ FolderType::SoundFonts, qtrc("appshell", "SoundFonts"), pathsToString(audioConfiguration()->userSoundFontDirectories()),
configuration()->userDataPath().toQString(), FolderValueType::MultiDirectories },
{ FolderType::VST3, qtrc("appshell", "VST3"), pathsToString(vstConfiguration()->userVstDirectories()),
configuration()->userDataPath().toQString(), FolderValueType::MultiDirectories },
{ FolderType::Images, qtrc("appshell", "Images"), "", "" } // todo: need implement
};
endResetModel();
setupConnections();
}
void FoldersPreferencesModel::setupConnections()
{
projectConfiguration()->userProjectsPathChanged().onReceive(this, [this](const io::path& path) {
setFolderPaths(FolderType::Scores, path.toQString());
});
notationConfiguration()->userStylesPathChanged().onReceive(this, [this](const io::path& path) {
setFolderPaths(FolderType::Styles, path.toQString());
});
projectConfiguration()->userTemplatesPathChanged().onReceive(this, [this](const io::path& path) {
setFolderPaths(FolderType::Templates, path.toQString());
});
pluginsConfiguration()->userPluginsPathChanged().onReceive(this, [this](const io::path& path) {
setFolderPaths(FolderType::Plugins, path.toQString());
});
audioConfiguration()->soundFontDirectoriesChanged().onReceive(this, [this](const io::paths&) {
io::paths userSoundFontsPaths = audioConfiguration()->userSoundFontDirectories();
setFolderPaths(FolderType::SoundFonts, pathsToString(userSoundFontsPaths));
});
vstConfiguration()->userVstDirectoriesChanged().onReceive(this, [this](const io::paths& paths) {
setFolderPaths(FolderType::VST3, pathsToString(paths));
});
}
void FoldersPreferencesModel::saveFolderPaths(FoldersPreferencesModel::FolderType folderType, const QString& paths)
{
switch (folderType) {
case FolderType::Scores: {
io::path folderPath = paths.toStdString();
projectConfiguration()->setUserProjectsPath(folderPath);
break;
}
case FolderType::Styles: {
io::path folderPath = paths.toStdString();
notationConfiguration()->setUserStylesPath(folderPath);
break;
}
case FolderType::Templates: {
io::path folderPath = paths.toStdString();
projectConfiguration()->setUserTemplatesPath(folderPath);
break;
}
case FolderType::Plugins: {
io::path folderPath = paths.toStdString();
pluginsConfiguration()->setUserPluginsPath(folderPath);
break;
}
case FolderType::SoundFonts: {
audioConfiguration()->setUserSoundFontDirectories(pathsFromString(paths));
break;
}
case FolderType::VST3: {
vstConfiguration()->setUserVstDirectories(pathsFromString(paths));
break;
}
case FolderType::Images:
NOT_IMPLEMENTED;
break;
case FolderType::Undefined:
break;
}
}
void FoldersPreferencesModel::setFolderPaths(FoldersPreferencesModel::FolderType folderType, const QString& paths)
{
QModelIndex index = folderIndex(folderType);
if (!index.isValid()) {
return;
}
m_folders[index.row()].value = paths;
emit dataChanged(index, index, { PathRole });
}
QModelIndex FoldersPreferencesModel::folderIndex(FoldersPreferencesModel::FolderType folderType)
{
for (int i = 0; i < m_folders.count(); ++i) {
FolderInfo& folderInfo = m_folders[i];
if (folderInfo.type == folderType) {
return index(i, 0);
}
}
return QModelIndex();
}
QString FoldersPreferencesModel::pathsToString(const mu::io::paths& paths) const
{
return QString::fromStdString(io::pathsToString(paths));
}
mu::io::paths FoldersPreferencesModel::pathsFromString(const QString& pathsStr) const
{
return io::pathsFromString(pathsStr.toStdString());
}