@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* config_mgr.cpp - implementation of class configManager
|
||||
*
|
||||
* Copyright (c) 2005-2011 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
* Copyright (c) 2005-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
* 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() );
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user