[Uml-devel] KDE/kdesdk/umbrello/umbrello/codegenerators
Andi Fischer
andi.fischer at hispeed.ch
Sat Sep 24 16:18:54 UTC 2011
SVN commit 1255385 by fischer:
Krazy issues 5 (crashy) fixed.
M +11 -6 codegenerator.cpp
M +14 -9 simplecodegenerator.cpp
--- trunk/KDE/kdesdk/umbrello/umbrello/codegenerators/codegenerator.cpp #1255384:1255385
@@ -38,8 +38,9 @@
// qt includes
#include <QtCore/QDateTime>
+#include <QtCore/QDir>
+#include <QtCore/QPointer>
#include <QtCore/QRegExp>
-#include <QtCore/QDir>
#include <QtCore/QTextStream>
#include <QtXml/QDomDocument>
#include <QtXml/QDomElement>
@@ -508,16 +509,17 @@
}
int suffix;
- OverwriteDialogue overwriteDialog( name, outputDirectory.absolutePath(),
+ QPointer<OverwriteDialogue> overwriteDialog =
+ new OverwriteDialogue(name, outputDirectory.absolutePath(),
m_applyToAllRemaining, kapp->activeWindow() );
switch (pol->getOverwritePolicy()) { //if it exists, check the OverwritePolicy we should use
case CodeGenerationPolicy::Ok: //ok to overwrite file
filename = name + extension;
break;
case CodeGenerationPolicy::Ask: //ask if we can overwrite
- switch(overwriteDialog.exec()) {
+ switch(overwriteDialog->exec()) {
case KDialog::Yes: //overwrite file
- if ( overwriteDialog.applyToAllRemaining() ) {
+ if ( overwriteDialog->applyToAllRemaining() ) {
pol->setOverwritePolicy(CodeGenerationPolicy::Ok);
filename = name + extension;
}
@@ -533,7 +535,7 @@
break;
suffix++;
}
- if ( overwriteDialog.applyToAllRemaining() ) {
+ if ( overwriteDialog->applyToAllRemaining() ) {
pol->setOverwritePolicy(CodeGenerationPolicy::Never);
}
else {
@@ -541,12 +543,13 @@
}
break;
case KDialog::Cancel: //don't output anything
- if ( overwriteDialog.applyToAllRemaining() ) {
+ if ( overwriteDialog->applyToAllRemaining() ) {
pol->setOverwritePolicy(CodeGenerationPolicy::Cancel);
}
else {
m_applyToAllRemaining = false;
}
+ delete overwriteDialog;
return QString();
break;
}
@@ -563,10 +566,12 @@
}
break;
case CodeGenerationPolicy::Cancel: //don't output anything
+ delete overwriteDialog;
return QString();
break;
}
+ delete overwriteDialog;
return filename;
}
--- trunk/KDE/kdesdk/umbrello/umbrello/codegenerators/simplecodegenerator.cpp #1255384:1255385
@@ -5,7 +5,7 @@
* (at your option) any later version. *
* *
* copyright (C) 2003 Brian Thomas <thomas at mail630.gsfc.nasa.gov> *
- * copyright (C) 2004-2010 *
+ * copyright (C) 2004-2011 *
* Umbrello UML Modeller Authors <uml-devel at uml.sf.net> *
***************************************************************************/
@@ -33,8 +33,9 @@
// qt includes
#include <QtCore/QDateTime>
+#include <QtCore/QDir>
+#include <QtCore/QPointer>
#include <QtCore/QRegExp>
-#include <QtCore/QDir>
// system includes
#include <cstdlib> //to get the user name
@@ -164,15 +165,16 @@
}
int suffix;
- OverwriteDialogue overwriteDialogue( filename, outputDir.absolutePath(),
+ QPointer<OverwriteDialogue> overwriteDialogue =
+ new OverwriteDialogue(filename, outputDir.absolutePath(),
m_applyToAllRemaining, kapp->activeWindow() );
switch(commonPolicy->getOverwritePolicy()) { //if it exists, check the OverwritePolicy we should use
case CodeGenerationPolicy::Ok: //ok to overwrite file
break;
case CodeGenerationPolicy::Ask: //ask if we can overwrite
- switch(overwriteDialogue.exec()) {
+ switch(overwriteDialogue->exec()) {
case KDialog::Yes: //overwrite file
- if ( overwriteDialogue.applyToAllRemaining() ) {
+ if ( overwriteDialogue->applyToAllRemaining() ) {
commonPolicy->setOverwritePolicy(CodeGenerationPolicy::Ok);
} else {
m_applyToAllRemaining = false;
@@ -186,19 +188,20 @@
break;
suffix++;
}
- if ( overwriteDialogue.applyToAllRemaining() ) {
+ if ( overwriteDialogue->applyToAllRemaining() ) {
commonPolicy->setOverwritePolicy(CodeGenerationPolicy::Never);
} else {
m_applyToAllRemaining = false;
}
break;
case KDialog::Cancel: //don't output anything
- if ( overwriteDialogue.applyToAllRemaining() ) {
+ if ( overwriteDialogue->applyToAllRemaining() ) {
commonPolicy->setOverwritePolicy(CodeGenerationPolicy::Cancel);
} else {
m_applyToAllRemaining = false;
}
- return NULL;
+ delete overwriteDialogue;
+ return QString();
break;
}
@@ -213,11 +216,13 @@
}
break;
case CodeGenerationPolicy::Cancel: //don't output anything
- return NULL;
+ delete overwriteDialogue;
+ return QString();
break;
}
m_fileMap.insert(concept, filename);
+ delete overwriteDialogue;
return filename;
}
More information about the umbrello-devel
mailing list