| Summary: | Misleading behaviour of "Project | Clear Project" | ||
|---|---|---|---|
| Product: | [Applications] k3b | Reporter: | trish |
| Component: | general | Assignee: | Sebastian Trueg <trueg> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Debian stable | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
trish
2007-07-13 11:55:35 UTC
SVN commit 690220 by trueg:
"Clear project" now only removed the added data but leaves the settings of the project as they are.
BUG: 147838
M +1 -0 ChangeLog
M +11 -0 libk3b/core/k3bglobals.cpp
M +15 -10 libk3b/projects/audiocd/k3baudiodoc.cpp
M +2 -0 libk3b/projects/audiocd/k3baudiodoc.h
M +17 -13 libk3b/projects/datacd/k3bdatadoc.cpp
M +2 -0 libk3b/projects/datacd/k3bdatadoc.h
M +6 -0 libk3b/projects/k3bdoc.h
M +7 -0 libk3b/projects/mixedcd/k3bmixeddoc.cpp
M +1 -0 libk3b/projects/mixedcd/k3bmixeddoc.h
M +11 -4 libk3b/projects/videocd/k3bvcddoc.cpp
M +3 -0 libk3b/projects/videocd/k3bvcddoc.h
M +1 -2 src/k3b.cpp
--- branches/extragear/kde3/multimedia/k3b/ChangeLog #690219:690220
@@ -10,6 +10,7 @@
(there is no need to do this if no mounting is involved.)
* Allow importing of arbitrary sessions into a data project, thus continuing other than the
last session.
+ * "Clear" project" now only clears the added data but leaves the settings as they were (bug 147838)
1.0.1
=====
--- branches/extragear/kde3/multimedia/k3b/libk3b/core/k3bglobals.cpp #690219:690220
@@ -642,6 +642,17 @@
p.start( KProcess::Block );
return !p.exitStatus();
}
+
+ // and the most simple one
+ QString mountBin = K3b::findExe( "mount" );
+ if( !mountBin.isEmpty() ) {
+ KProcess p;
+ p << mountBin;
+ p << mntDev;
+ p.start( KProcess::Block );
+ return !p.exitStatus();
+ }
+
return false;
}
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/audiocd/k3baudiodoc.cpp #690219:690220
@@ -95,19 +95,24 @@
bool K3bAudioDoc::newDocument()
{
+ clear();
+ m_normalize = false;
+ m_hideFirstTrack = false;
+ m_cdText = false;
+ m_cdTextData.clear();
+ m_audioRippingParanoiaMode = 0;
+ m_audioRippingRetries = 5;
+ m_audioRippingIgnoreReadErrors = true;
+
+ return K3bDoc::newDocument();
+}
+
+
+void K3bAudioDoc::clear()
+{
// delete all tracks
while( m_firstTrack )
delete m_firstTrack->take();
-
- m_normalize = false;
- m_hideFirstTrack = false;
- m_cdText = false;
- m_cdTextData.clear();
- m_audioRippingParanoiaMode = 0;
- m_audioRippingRetries = 5;
- m_audioRippingIgnoreReadErrors = true;
-
- return K3bDoc::newDocument();
}
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/audiocd/k3baudiodoc.h #690219:690220
@@ -63,6 +63,8 @@
bool newDocument();
+ void clear();
+
int supportedMediaTypes() const;
bool hideFirstTrack() const { return m_hideFirstTrack; }
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/datacd/k3bdatadoc.cpp #690219:690220
@@ -86,22 +86,12 @@
bool K3bDataDoc::newDocument()
{
- clearImportedSession();
+ clear();
+ if ( !m_root )
+ m_root = new K3bRootItem( this );
- m_bootCataloge = 0;
- m_oldSessionSize = 0;
m_bExistingItemsReplaceAll = m_bExistingItemsIgnoreAll = false;
- m_importedSession = -1;
- if( m_root ) {
- while( m_root->children().getFirst() )
- removeItem( m_root->children().getFirst() );
- }
- else
- m_root = new K3bRootItem( this );
-
- m_sizeHandler->clear();
-
m_multisessionMode = AUTO;
m_dataMode = K3b::DATA_MODE_AUTO;
@@ -111,6 +101,20 @@
}
+void K3bDataDoc::clear()
+{
+ clearImportedSession();
+ m_importedSession = -1;
+ m_oldSessionSize = 0;
+ m_bootCataloge = 0;
+ if( m_root ) {
+ while( m_root->children().getFirst() )
+ removeItem( m_root->children().getFirst() );
+ }
+ m_sizeHandler->clear();
+}
+
+
QString K3bDataDoc::name() const
{
return m_isoOptions.volumeID();
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/datacd/k3bdatadoc.h #690219:690220
@@ -95,6 +95,8 @@
K3bRootItem* root() const { return m_root; }
virtual bool newDocument();
+ virtual void clear();
+
virtual KIO::filesize_t size() const;
/**
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/k3bdoc.h #690219:690220
@@ -114,10 +114,16 @@
/**
* Subclasses should call this when reimplementing.
* Sets some defaults.
+ * FIXME: this method is completely useless. Just do it all in the constructor
*/
virtual bool newDocument();
/**
+ * Clear project, i.e. remove all data that has ben added
+ */
+ virtual void clear() = 0;
+
+ /**
* Load a project from an xml stream.
*
* This is used to load/save k3b projects.
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/mixedcd/k3bmixeddoc.cpp #690219:690220
@@ -58,6 +58,13 @@
}
+void K3bMixedDoc::clear()
+{
+ m_dataDoc->clear();
+ m_audioDoc->clear();
+}
+
+
QString K3bMixedDoc::name() const
{
return m_dataDoc->name();
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/mixedcd/k3bmixeddoc.h #690219:690220
@@ -43,6 +43,7 @@
int supportedMediaTypes() const;
bool newDocument();
+ void clear();
void setModified( bool m = true );
bool isModified() const;
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/videocd/k3bvcddoc.cpp #690219:690220
@@ -2,6 +2,7 @@
*
* $Id$
* Copyright (C) 2003-2005 Christian Kvasny <chris@k3b.org>
+* Copyright (C) 2007 Sebastian Trueg <trueg@k3b.org>
*
* This file is part of the K3b project.
* Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org>
@@ -78,10 +79,8 @@
bool K3bVcdDoc::newDocument()
{
- if ( m_tracks )
- while ( m_tracks->first() )
- removeTrack( m_tracks->first() );
- else
+ clear();
+ if ( !m_tracks )
m_tracks = new QPtrList<K3bVcdTrack>;
m_tracks->setAutoDelete( false );
@@ -89,6 +88,14 @@
}
+void K3bVcdDoc::clear()
+{
+ if ( m_tracks )
+ while ( m_tracks->first() )
+ removeTrack( m_tracks->first() );
+}
+
+
QString K3bVcdDoc::name() const
{
return m_vcdOptions->volumeId();
--- branches/extragear/kde3/multimedia/k3b/libk3b/projects/videocd/k3bvcddoc.h #690219:690220
@@ -2,6 +2,7 @@
*
* $Id$
* Copyright (C) 2003-2004 Christian Kvasny <chris@k3b.org>
+* Copyright (C) 2007 Sebastian Trueg <trueg@k3b.org>
*
* This file is part of the K3b project.
* Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org>
@@ -62,6 +63,8 @@
enum vcdTypes { VCD11, VCD20, SVCD10, HQVCD, NONE};
bool newDocument();
+ void clear();
+
int numOfTracks() const
{
return m_tracks->count();
--- branches/extragear/kde3/multimedia/k3b/src/k3b.cpp #690219:690220
@@ -1456,8 +1456,7 @@
i18n("Clear Project"),
i18n("Clear"),
"clear_current_project_dontAskAgain" ) == KMessageBox::Continue ) {
- doc->newDocument();
- k3bappcore->projectManager()->loadDefaults( doc );
+ doc->clear();
}
}
}
|