Skip to content

Commit

Permalink
- Avoid asking to save as to existing or just newly created
Browse files Browse the repository at this point in the history
  clip file-names, whenever possible. (EXPERIMENTAL)
  • Loading branch information
rncbc committed Feb 19, 2018
1 parent eb91bb9 commit fdd5dec
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 9 deletions.
3 changes: 3 additions & 0 deletions ChangeLog
Expand Up @@ -6,6 +6,9 @@ ChangeLog

GIT HEAD

- Avoid asking to save as to existing or just newly created
clip file-names, whenever possible. (EXPERIMENTAL)

- Disable singleton/unique application instance setup logic
when the display server platform is not X11. (EXPERIMENTAL)

Expand Down
2 changes: 1 addition & 1 deletion src/qtractorEngine.cpp
Expand Up @@ -728,7 +728,7 @@ void qtractorBus::saveCurveFile ( qtractorDocument *pDocument,
return;

const QString sBaseName(sBusName + "_curve");
pCurveFile->setFilename(pSession->createFilePath(sBaseName, "mid"));
pCurveFile->setFilename(pSession->createFilePath(sBaseName, "mid", true));

pCurveFile->save(pDocument, pElement, pSession->timeScale());
}
Expand Down
2 changes: 1 addition & 1 deletion src/qtractorPlugin.cpp
Expand Up @@ -1267,7 +1267,7 @@ void qtractorPlugin::saveCurveFile ( qtractorDocument *pDocument,
sBaseName += '_';
sBaseName += QString::number(uniqueID(), 16);
sBaseName += "_curve";
pCurveFile->setFilename(pSession->createFilePath(sBaseName, "mid"));
pCurveFile->setFilename(pSession->createFilePath(sBaseName, "mid", true));

pCurveFile->save(pDocument, pElement, pSession->timeScale());
}
Expand Down
11 changes: 6 additions & 5 deletions src/qtractorSession.cpp
Expand Up @@ -1557,7 +1557,7 @@ void qtractorSession::releaseFilePath ( const QString& sFilename )

// Create a brand new filename (absolute file path).
QString qtractorSession::createFilePath (
const QString& sBaseName, const QString& sExt )
const QString& sBaseName, const QString& sExt, bool bAcquire )
{
QString sFilename = qtractorSession::sanitize(m_props.sessionName);
if (!sFilename.isEmpty())
Expand All @@ -1567,9 +1567,10 @@ QString qtractorSession::createFilePath (
QFileInfo fi; int iClipNo = 0;
fi.setFile(m_props.sessionDir, sFilename.arg(++iClipNo));
if (!m_filePaths.contains(fi.absoluteFilePath())) {
while (fi.exists() || m_filePaths.contains(fi.absoluteFilePath()))
while (fi.exists() || m_filePaths.contains(fi.absoluteFilePath()))
fi.setFile(m_props.sessionDir, sFilename.arg(++iClipNo));
m_filePaths.append(fi.absoluteFilePath()); // register new name!
if (bAcquire)
m_filePaths.append(fi.absoluteFilePath()); // register new name!
}

#ifdef CONFIG_DEBUG
Expand Down Expand Up @@ -1686,7 +1687,7 @@ void qtractorSession::trackRecord (
pAudioClip->setClipStart(iClipStart);
pAudioClip->openAudioFile(
createFilePath(pTrack->trackName(),
qtractorAudioFileFactory::defaultExt()),
qtractorAudioFileFactory::defaultExt(), true),
qtractorAudioFile::Write);
pTrack->setClipRecord(pAudioClip);
// One-up audio tracks in record mode.
Expand All @@ -1698,7 +1699,7 @@ void qtractorSession::trackRecord (
qtractorMidiClip *pMidiClip = new qtractorMidiClip(pTrack);
pMidiClip->setClipStart(iClipStart);
pMidiClip->openMidiFile(
createFilePath(pTrack->trackName(), "mid"),
createFilePath(pTrack->trackName(), "mid", true),
pTrack->midiChannel(),
qtractorMidiFile::Write);
pTrack->setClipRecord(pMidiClip);
Expand Down
2 changes: 1 addition & 1 deletion src/qtractorSession.h
Expand Up @@ -301,7 +301,7 @@ class qtractorSession

// Create a brand new filename (absolute file path).
QString createFilePath(
const QString& sBaseName, const QString& sExt);
const QString& sBaseName, const QString& sExt, bool bAcquire = false);

// Consolidated session record state.
void setRecording(bool bRecording);
Expand Down
2 changes: 1 addition & 1 deletion src/qtractorTrack.cpp
Expand Up @@ -2267,7 +2267,7 @@ void qtractorTrack::saveCurveFile ( qtractorDocument *pDocument,
return;

const QString sBaseName(trackName() + "_curve");
pCurveFile->setFilename(pSession->createFilePath(sBaseName, "mid"));
pCurveFile->setFilename(pSession->createFilePath(sBaseName, "mid", true));

pCurveFile->save(pDocument, pElement, pSession->timeScale());
}
Expand Down

0 comments on commit fdd5dec

Please sign in to comment.