mirror of
https://github.com/LMMS/lmms.git
synced 2026-03-17 13:38:22 -04:00
display message if project is empty and user tries to export it (closes #2091056)
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1571 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
2008-09-07 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* include/track_container.h:
|
||||
* src/core/song.cpp:
|
||||
* src/core/track_container.cpp:
|
||||
display message if project is empty and user tries to export
|
||||
it (closes #2091056)
|
||||
|
||||
* src/core/song.cpp:
|
||||
- fixed freeze after adding BB-tracks (closes #2089337)
|
||||
- replaced bad cast for calling projectNotes::save/restoreState by
|
||||
|
||||
@@ -60,10 +60,11 @@ public:
|
||||
int countTracks( track::TrackTypes _tt = track::NumTrackTypes ) const;
|
||||
|
||||
|
||||
virtual void updateAfterTrackAdd( void );
|
||||
void addTrack( track * _track );
|
||||
void removeTrack( track * _track );
|
||||
|
||||
virtual void updateAfterTrackAdd( void );
|
||||
|
||||
void clearAllTracks( void );
|
||||
|
||||
const trackList & tracks( void ) const
|
||||
@@ -71,6 +72,8 @@ public:
|
||||
return( m_tracks );
|
||||
}
|
||||
|
||||
bool isEmpty( void ) const;
|
||||
|
||||
static const QString classNodeName( void )
|
||||
{
|
||||
return( "trackcontainer" );
|
||||
|
||||
@@ -1110,6 +1110,16 @@ void song::restoreControllerStates( const QDomElement & _this )
|
||||
|
||||
void song::exportProject( void )
|
||||
{
|
||||
if( isEmpty() )
|
||||
{
|
||||
QMessageBox::information( engine::getMainWindow(),
|
||||
tr( "Empty project" ),
|
||||
tr( "This project is empty so exporting makes "
|
||||
"no sense. Please put some items into "
|
||||
"Song Editor first!" ) );
|
||||
return;
|
||||
}
|
||||
|
||||
QString base_filename;
|
||||
|
||||
if( m_fileName != "" )
|
||||
|
||||
@@ -130,6 +130,24 @@ void trackContainer::loadSettings( const QDomElement & _this )
|
||||
|
||||
|
||||
|
||||
int trackContainer::countTracks( track::TrackTypes _tt ) const
|
||||
{
|
||||
int cnt = 0;
|
||||
m_tracksMutex.lockForRead();
|
||||
for( int i = 0; i < m_tracks.size(); ++i )
|
||||
{
|
||||
if( m_tracks[i]->type() == _tt || _tt == track::NumTrackTypes )
|
||||
{
|
||||
++cnt;
|
||||
}
|
||||
}
|
||||
m_tracksMutex.unlock();
|
||||
return( cnt );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void trackContainer::addTrack( track * _track )
|
||||
{
|
||||
if( _track->type() != track::HiddenAutomationTrack )
|
||||
@@ -163,7 +181,6 @@ void trackContainer::removeTrack( track * _track )
|
||||
|
||||
|
||||
|
||||
|
||||
void trackContainer::updateAfterTrackAdd( void )
|
||||
{
|
||||
}
|
||||
@@ -171,7 +188,6 @@ void trackContainer::updateAfterTrackAdd( void )
|
||||
|
||||
|
||||
|
||||
|
||||
void trackContainer::clearAllTracks( void )
|
||||
{
|
||||
//m_tracksMutex.lockForWrite();
|
||||
@@ -185,19 +201,17 @@ void trackContainer::clearAllTracks( void )
|
||||
|
||||
|
||||
|
||||
int trackContainer::countTracks( track::TrackTypes _tt ) const
|
||||
bool trackContainer::isEmpty( void ) const
|
||||
{
|
||||
int cnt = 0;
|
||||
m_tracksMutex.lockForRead();
|
||||
for( int i = 0; i < m_tracks.size(); ++i )
|
||||
for( trackList::const_iterator it = m_tracks.begin();
|
||||
it != m_tracks.end(); ++it )
|
||||
{
|
||||
if( m_tracks[i]->type() == _tt || _tt == track::NumTrackTypes )
|
||||
if( !( *it )->getTCOs().isEmpty() )
|
||||
{
|
||||
++cnt;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
m_tracksMutex.unlock();
|
||||
return( cnt );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -531,7 +531,7 @@ bool mainWindow::mayChangeProject( void )
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
QMessageBox mb ( tr( "Project not saved" ),
|
||||
QMessageBox mb( tr( "Project not saved" ),
|
||||
tr( "The current project was modified since "
|
||||
"last saving. Do you want to save it "
|
||||
"now?" ),
|
||||
|
||||
Reference in New Issue
Block a user