diff --git a/src/core/config_mgr.cpp b/src/core/config_mgr.cpp index 82904e498..c9a930f0b 100644 --- a/src/core/config_mgr.cpp +++ b/src/core/config_mgr.cpp @@ -1,7 +1,7 @@ /* * config_mgr.cpp - implementation of class configManager * - * Copyright (c) 2005-2011 Tobias Doerffel + * Copyright (c) 2005-2014 Tobias Doerffel * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net * @@ -314,7 +314,7 @@ void configManager::loadConfigFile() #endif setBackgroundArtwork( value( "paths", "backgroundartwork" ) ); } - else + else if( QApplication::type() == QApplication::GuiClient ) { QMessageBox::warning( NULL, MainWindow::tr( "Configuration file" ), MainWindow::tr( "Error while parsing configuration file at line %1:%2: %3" ). @@ -372,19 +372,18 @@ void configManager::loadConfigFile() QDir::setSearchPaths( "resources", QStringList() << artworkDir() << defaultArtworkDir() ); - if( !QDir( m_workingDir ).exists() ) - { - if( QMessageBox::question( 0, + if( !QDir( m_workingDir ).exists() && + QApplication::type() == QApplication::GuiClient && + QMessageBox::question( 0, MainWindow::tr( "Working directory" ), MainWindow::tr( "The LMMS working directory %1 does not " "exist. Create it now? You can change the directory " "later via Edit -> Settings." ).arg( m_workingDir ), - QMessageBox::Yes, QMessageBox::No ) == - QMessageBox::Yes ) - { - QDir().mkpath( m_workingDir ); - } + QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) + { + QDir().mkpath( m_workingDir ); } + if( QDir( m_workingDir ).exists() ) { QDir().mkpath( userProjectsDir() ); diff --git a/src/gui/PianoRoll.cpp b/src/gui/PianoRoll.cpp index 65b6baa09..7a31394b0 100644 --- a/src/gui/PianoRoll.cpp +++ b/src/gui/PianoRoll.cpp @@ -468,8 +468,6 @@ PianoRoll::PianoRoll() : tr( "Click here and the notes from the clipboard will be " "pasted at the first visible measure." ) ); - - QLabel * zoom_lbl = new QLabel( m_toolBar ); zoom_lbl->setPixmap( embed::getIconPixmap( "zoom" ) ); @@ -620,6 +618,71 @@ PianoRoll::PianoRoll() : tb_layout->addSpacing( 4 ); tb_layout->addWidget( m_chordComboBox ); tb_layout->addStretch(); + + m_zoomingComboBox->setWhatsThis( tr( + "This controls the magnification over time. " + "It can be useful choose a magnification for a specific task. " + "For ordinary editing, the magnification should be fitted to your " + "smallest used notes. " + "Most will use the default magnification of 100%, " + "when the shortest notes are 1/16. " + "If you have used shorter notes, your editing will be easier, " + "with a magnification of 200%, or more. " + "You should use low magnification, if you need to move a block " + "of notes many bars, or just to get an overview of the score." + ) ); + + m_quantizeComboBox->setWhatsThis( tr( + "This 'Q' stands for quantification, and controls the minimum spacing " + "between notes. " + "In piano-roll this is very important, when you make syncopated patterns, " + "and an absolute must, for swing-notes! " + "Observe that the score segmentation also changes, depending on the selected Q. " + "You should not use a Q-value that does not fit your chosen time-signature! " + "The default value is 1/16, and that fits the default 4/4 timing. " + "A Q of 1/16 will also work well in most editing." + ) ); + + m_noteLenComboBox->setWhatsThis( tr( + "This lets you select the note you place in the score. " + "In most circumstances the best choice is 'Last Note'." + "The choice 'Last Note' means that LMMS will use the note you last clicked, " + "when you place the next note. " + "But you can choose any note-length from this drop-down, " + "and your choice will be the note, that you can draw in the score." + ) ); + + m_scaleComboBox->setWhatsThis( tr( + "This lets you select a music scale that LMMS then will annotate. " + "The feature is directly connected to the context-menu " + "on the virtual keyboard, to the left. " + "First you chose which scale you will use. " + "You do that in this very dropdown! " + "Then you choose the key of your composition. " + "Right mouse click on the selected key in the virtual keyboard, " + "and then choose 'Mark current Scale' " + "LMMS will annotate all notes that belongs to the chosen scale, " + "and in the key you have selected! " + "LMMS will not only annotate in the score you have open, " + "but all scores in your project, will be correctly annotated. " + "This will help you avoid using bum-notes, as you compose. " + "You should know about principle scales in music. " + "Search the net, if you do not! " + ) ); + + m_chordComboBox->setWhatsThis( tr( + "This lets you select a standard music chord. " + "All notes that are played simultaneous, are 'chords'," + "but a large number of simultaneous key combinations, has own names, " + "and its own place in music. " + "They are standard chords, and it is these chords, " + "you can find in this drop-down. " + "After you have selected a chord, any click in the score, " + "will place that chord, musically correctly, " + "and with the Left mouse clicked note, as the root-note in the chord! " + "To return to single note placement, you need to choose 'No chord' " + "in this drop-down!" + ) ); // setup our actual window setFocusPolicy( Qt::StrongFocus ); diff --git a/src/gui/dialogs/FileDialog.cpp b/src/gui/dialogs/FileDialog.cpp index d0002ffb1..c20cde560 100644 --- a/src/gui/dialogs/FileDialog.cpp +++ b/src/gui/dialogs/FileDialog.cpp @@ -64,6 +64,14 @@ FileDialog::FileDialog( QWidget *parent, const QString &caption, #endif urls << QUrl::fromLocalFile( configManager::inst()->workingDir() ); + // Add `/Volumes` directory on OS X systems, this allows the user to browse + // external disk drives. +#ifdef LMMS_BUILD_APPLE + QDir volumesDir( QDir("/Volumes") ); + if ( volumesDir.exists() ) + urls << QUrl::fromLocalFile( volumesDir.absolutePath() ); +#endif + setSidebarUrls(urls); }