diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index 508cb9e78edc951a6300ff3456cf1107bf21eb10..abe055554c896b8fe95841b37ddb21dbe1895e3c 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -58,9 +58,9 @@ #include <QtCore/QDate> #include <QtCore/QDir> #include <QtCore/QFileInfo> -#include <QtCore/QTemporaryFile> #include <QtCore/QTextCodec> #include <QtCore/QtPlugin> +#include <QtCore/QTemporaryFile> #include <QtGui/QAction> #include <QtGui/QMainWindow> #include <QtGui/QMenu> @@ -151,7 +151,6 @@ CVSPlugin *CVSPlugin::m_cvsPluginInstance = 0; CVSPlugin::CVSPlugin() : m_versionControl(0), - m_changeTmpFile(0), m_projectExplorer(0), m_addAction(0), m_deleteAction(0), @@ -174,18 +173,20 @@ CVSPlugin::CVSPlugin() : CVSPlugin::~CVSPlugin() { - cleanChangeTmpFile(); + cleanCommitMessageFile(); } -void CVSPlugin::cleanChangeTmpFile() +void CVSPlugin::cleanCommitMessageFile() { - if (m_changeTmpFile) { - if (m_changeTmpFile->isOpen()) - m_changeTmpFile->close(); - delete m_changeTmpFile; - m_changeTmpFile = 0; + if (!m_commitMessageFileName.isEmpty()) { + QFile::remove(m_commitMessageFileName); + m_commitMessageFileName.clear(); } } +bool CVSPlugin::isCommitEditorOpen() const +{ + return !m_commitMessageFileName.isEmpty(); +} static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = { CVS::Constants::CVS_SUBMIT_MIMETYPE, @@ -383,7 +384,7 @@ void CVSPlugin::extensionsInitialized() bool CVSPlugin::editorAboutToClose(Core::IEditor *iEditor) { - if (!m_changeTmpFile || !iEditor || qstrcmp(Constants::CVSCOMMITEDITOR, iEditor->kind())) + if (!iEditor || !isCommitEditorOpen() || qstrcmp(Constants::CVSCOMMITEDITOR, iEditor->kind())) return true; Core::IFile *fileIFace = iEditor->file(); @@ -394,7 +395,7 @@ bool CVSPlugin::editorAboutToClose(Core::IEditor *iEditor) // Submit editor closing. Make it write out the commit message // and retrieve files const QFileInfo editorFile(fileIFace->fileName()); - const QFileInfo changeFile(m_changeTmpFile->fileName()); + const QFileInfo changeFile(m_commitMessageFileName); if (editorFile.absoluteFilePath() != changeFile.absoluteFilePath()) return true; // Oops?! @@ -411,7 +412,7 @@ bool CVSPlugin::editorAboutToClose(Core::IEditor *iEditor) case VCSBase::VCSBaseSubmitEditor::SubmitCanceled: return false; // Keep editing and change file case VCSBase::VCSBaseSubmitEditor::SubmitDiscarded: - cleanChangeTmpFile(); + cleanCommitMessageFile(); return true; // Cancel all default: break; @@ -424,10 +425,10 @@ bool CVSPlugin::editorAboutToClose(Core::IEditor *iEditor) Core::ICore::instance()->fileManager()->blockFileChange(fileIFace); fileIFace->save(); Core::ICore::instance()->fileManager()->unblockFileChange(fileIFace); - closeEditor= commit(m_changeTmpFile->fileName(), fileList); + closeEditor= commit(m_commitMessageFileName, fileList); } if (closeEditor) - cleanChangeTmpFile(); + cleanCommitMessageFile(); return closeEditor; } @@ -639,7 +640,7 @@ void CVSPlugin::startCommit(const QString &source) return; if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor()) return; - if (m_changeTmpFile) { + if (isCommitEditorOpen()) { VCSBase::VCSBaseOutputWindow::instance()->appendWarning(tr("Another commit is currently being executed.")); return; } @@ -674,22 +675,21 @@ void CVSPlugin::startCommit(const QString &source) } // Create a new submit change file containing the submit template - QTemporaryFile *changeTmpFile = new QTemporaryFile(this); - changeTmpFile->setAutoRemove(true); - if (!changeTmpFile->open()) { - VCSBase::VCSBaseOutputWindow::instance()->appendError(tr("Cannot create temporary file: %1").arg(changeTmpFile->errorString())); - delete changeTmpFile; + QTemporaryFile changeTmpFile; + changeTmpFile.setAutoRemove(false); + if (!changeTmpFile.open()) { + VCSBase::VCSBaseOutputWindow::instance()->appendError(tr("Cannot create temporary file: %1").arg(changeTmpFile.errorString())); return; } - m_changeTmpFile = changeTmpFile; // TODO: Retrieve submit template from const QString submitTemplate; + m_commitMessageFileName = changeTmpFile.fileName(); // Create a submit - m_changeTmpFile->write(submitTemplate.toUtf8()); - m_changeTmpFile->flush(); - m_changeTmpFile->close(); + changeTmpFile.write(submitTemplate.toUtf8()); + changeTmpFile.flush(); + changeTmpFile.close(); // Create a submit editor and set file list - CVSSubmitEditor *editor = openCVSSubmitEditor(m_changeTmpFile->fileName()); + CVSSubmitEditor *editor = openCVSSubmitEditor(m_commitMessageFileName); editor->setStateList(statusOutput); } diff --git a/src/plugins/cvs/cvsplugin.h b/src/plugins/cvs/cvsplugin.h index c111e1467ca384c65e5995150abbcb1d3aa6d7ed..bac3815d861e451d9295a37c9fcf28d5f6544390 100644 --- a/src/plugins/cvs/cvsplugin.h +++ b/src/plugins/cvs/cvsplugin.h @@ -39,7 +39,6 @@ QT_BEGIN_NAMESPACE class QDir; class QAction; -class QTemporaryFile; class QTextCodec; QT_END_NAMESPACE @@ -124,6 +123,7 @@ private slots: void diffFiles(const QStringList &); private: + bool isCommitEditorOpen() const; QString currentFileName() const; Core::IEditor * showOutputInEditor(const QString& title, const QString &output, int editorType, const QString &source, @@ -149,11 +149,11 @@ private: QStringList currentProjectsTopLevels(QString *name = 0) const; void startCommit(const QString &file); bool commit(const QString &messageFile, const QStringList &subVersionFileList); - void cleanChangeTmpFile(); + void cleanCommitMessageFile(); CVSSettings m_settings; Core::IVersionControl *m_versionControl; - QTemporaryFile *m_changeTmpFile; + QString m_commitMessageFileName; ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer; diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 304d4a45f313307b67c1f2c95b4ec68bd7c3a958..b61fc8f5caf0747aed12c3472eb353ad97562ab6 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -141,7 +141,6 @@ GitPlugin::GitPlugin() : m_projectExplorer(0), m_gitClient(0), m_changeSelectionDialog(0), - m_changeTmpFile(0), m_submitActionTriggered(false) { m_instance = this; @@ -149,19 +148,24 @@ GitPlugin::GitPlugin() : GitPlugin::~GitPlugin() { - cleanChangeTmpFile(); + cleanCommitMessageFile(); delete m_gitClient; m_instance = 0; } -void GitPlugin::cleanChangeTmpFile() +void GitPlugin::cleanCommitMessageFile() { - if (m_changeTmpFile) { - delete m_changeTmpFile; - m_changeTmpFile = 0; + if (!m_commitMessageFileName.isEmpty()) { + QFile::remove(m_commitMessageFileName); + m_commitMessageFileName.clear(); } } +bool GitPlugin::isCommitEditorOpen() const +{ + return !m_commitMessageFileName.isEmpty(); +} + GitPlugin *GitPlugin::instance() { return m_instance; @@ -555,7 +559,7 @@ void GitPlugin::startCommit() { if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor()) return; - if (m_changeTmpFile) { + if (isCommitEditorOpen()) { VCSBase::VCSBaseOutputWindow::instance()->appendWarning(tr("Another submit is currently being executed.")); return; } @@ -583,20 +587,19 @@ void GitPlugin::startCommit() qDebug() << Q_FUNC_INFO << data << commitTemplate; // Start new temp file with message template - QTemporaryFile *changeTmpFile = new QTemporaryFile(this); - changeTmpFile->setAutoRemove(true); - if (!changeTmpFile->open()) { - VCSBase::VCSBaseOutputWindow::instance()->append(tr("Cannot create temporary file: %1").arg(changeTmpFile->errorString())); - delete changeTmpFile; + QTemporaryFile changeTmpFile; + changeTmpFile.setAutoRemove(false); + if (!changeTmpFile.open()) { + VCSBase::VCSBaseOutputWindow::instance()->append(tr("Cannot create temporary file: %1").arg(changeTmpFile.errorString())); return; } - m_changeTmpFile = changeTmpFile; - m_changeTmpFile->write(commitTemplate.toLocal8Bit()); - m_changeTmpFile->flush(); + m_commitMessageFileName = changeTmpFile.fileName(); + changeTmpFile.write(commitTemplate.toLocal8Bit()); + changeTmpFile.flush(); // Keep the file alive, else it removes self and forgets // its name - m_changeTmpFile->close(); - openSubmitEditor(m_changeTmpFile->fileName(), data); + changeTmpFile.close(); + openSubmitEditor(m_commitMessageFileName, data); } Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd) @@ -627,7 +630,7 @@ void GitPlugin::submitCurrentLog() bool GitPlugin::editorAboutToClose(Core::IEditor *iEditor) { // Closing a submit editor? - if (!m_changeTmpFile || !iEditor || qstrcmp(iEditor->kind(), Constants::GITSUBMITEDITOR_KIND)) + if (!iEditor || !isCommitEditorOpen() || qstrcmp(iEditor->kind(), Constants::GITSUBMITEDITOR_KIND)) return true; Core::IFile *fileIFace = iEditor->file(); const GitSubmitEditor *editor = qobject_cast<GitSubmitEditor *>(iEditor); @@ -636,7 +639,7 @@ bool GitPlugin::editorAboutToClose(Core::IEditor *iEditor) // Submit editor closing. Make it write out the commit message // and retrieve files const QFileInfo editorFile(fileIFace->fileName()); - const QFileInfo changeFile(m_changeTmpFile->fileName()); + const QFileInfo changeFile(m_commitMessageFileName); // Paranoia! if (editorFile.absoluteFilePath() != changeFile.absoluteFilePath()) return true; @@ -654,7 +657,7 @@ bool GitPlugin::editorAboutToClose(Core::IEditor *iEditor) case VCSBase::VCSBaseSubmitEditor::SubmitCanceled: return false; // Keep editing and change file case VCSBase::VCSBaseSubmitEditor::SubmitDiscarded: - cleanChangeTmpFile(); + cleanCommitMessageFile(); return true; // Cancel all default: break; @@ -674,13 +677,13 @@ bool GitPlugin::editorAboutToClose(Core::IEditor *iEditor) closeEditor = m_gitClient->addAndCommit(m_submitRepository, editor->panelData(), - m_changeTmpFile->fileName(), + m_commitMessageFileName, fileList, m_submitOrigCommitFiles, m_submitOrigDeleteFiles); } if (closeEditor) - cleanChangeTmpFile(); + cleanCommitMessageFile(); return closeEditor; } diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h index 784fe883f505e72fe34e8a5e67f7632fd4a2f393..bc3ed2aa5502e0291554ab023ee53181ba29e695 100644 --- a/src/plugins/git/gitplugin.h +++ b/src/plugins/git/gitplugin.h @@ -44,7 +44,6 @@ QT_BEGIN_NAMESPACE class QFile; class QAction; -class QTemporaryFile; QT_END_NAMESPACE namespace Core { @@ -128,9 +127,10 @@ private slots: void push(); private: + bool isCommitEditorOpen() const; QFileInfo currentFile() const; Core::IEditor *openSubmitEditor(const QString &fileName, const CommitData &cd); - void cleanChangeTmpFile(); + void cleanCommitMessageFile(); static GitPlugin *m_instance; Core::ICore *m_core; @@ -166,7 +166,7 @@ private: QString m_submitRepository; QStringList m_submitOrigCommitFiles; QStringList m_submitOrigDeleteFiles; - QTemporaryFile *m_changeTmpFile; + QString m_commitMessageFileName; bool m_submitActionTriggered; }; diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index 5254f93d5d3860a374d8350d4a07d0197ef051dd..2c12882530e362e3cdcb57894dc08787d535e926 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -189,7 +189,6 @@ PerforcePlugin::PerforcePlugin() : m_diffSelectedFiles(0), m_undoAction(0), m_redoAction(0), - m_changeTmpFile(0), m_versionControl(0) { } @@ -547,28 +546,29 @@ void PerforcePlugin::submit() return; } - if (m_changeTmpFile) { + if (isCommitEditorOpen()) { VCSBase::VCSBaseOutputWindow::instance()->appendWarning(tr("Another submit is currently executed.")); return; } - m_changeTmpFile = new QTemporaryFile(this); - m_changeTmpFile->setAutoRemove(true); - if (!m_changeTmpFile->open()) { + QTemporaryFile changeTmpFile; + changeTmpFile.setAutoRemove(false); + if (!changeTmpFile.open()) { VCSBase::VCSBaseOutputWindow::instance()->appendError(tr("Cannot create temporary file.")); - cleanChangeTmpFile(); + cleanCommitMessageFile(); return; } PerforceResponse result = runP4Cmd(QStringList()<< QLatin1String("change") << QLatin1String("-o"), QStringList(), CommandToWindow|StdErrToWindow|ErrorToWindow); if (result.error) { - cleanChangeTmpFile(); + cleanCommitMessageFile(); return; } - m_changeTmpFile->write(result.stdOut.toAscii()); - m_changeTmpFile->close(); + m_commitMessageFileName = changeTmpFile.fileName(); + changeTmpFile.write(result.stdOut.toAscii()); + changeTmpFile.close(); // Assemble file list of project QString name; @@ -576,7 +576,7 @@ void PerforcePlugin::submit() PerforceResponse result2 = runP4Cmd(QStringList(QLatin1String("fstat")), nativeFiles, CommandToWindow|StdErrToWindow|ErrorToWindow); if (result2.error) { - cleanChangeTmpFile(); + cleanCommitMessageFile(); return; } @@ -588,11 +588,11 @@ void PerforcePlugin::submit() } if (depotFileNames.isEmpty()) { VCSBase::VCSBaseOutputWindow::instance()->appendWarning(tr("Project has no files")); - cleanChangeTmpFile(); + cleanCommitMessageFile(); return; } - openPerforceSubmitEditor(m_changeTmpFile->fileName(), depotFileNames); + openPerforceSubmitEditor(m_commitMessageFileName, depotFileNames); } Core::IEditor *PerforcePlugin::openPerforceSubmitEditor(const QString &fileName, const QStringList &depotFileNames) @@ -983,19 +983,22 @@ void PerforcePlugin::submitCurrentLog() em->closeEditors(QList<Core::IEditor*>() << em->currentEditor()); } -void PerforcePlugin::cleanChangeTmpFile() +void PerforcePlugin::cleanCommitMessageFile() { - if (m_changeTmpFile) { - if (m_changeTmpFile->isOpen()) - m_changeTmpFile->close(); - delete m_changeTmpFile; - m_changeTmpFile = 0; + if (!m_commitMessageFileName.isEmpty()) { + QFile::remove(m_commitMessageFileName); + m_commitMessageFileName.clear(); } } +bool PerforcePlugin::isCommitEditorOpen() const +{ + return !m_commitMessageFileName.isEmpty(); +} + bool PerforcePlugin::editorAboutToClose(Core::IEditor *editor) { - if (!m_changeTmpFile || !editor) + if (!editor || !isCommitEditorOpen()) return true; Core::ICore *core = Core::ICore::instance(); Core::IFile *fileIFace = editor->file(); @@ -1005,7 +1008,7 @@ bool PerforcePlugin::editorAboutToClose(Core::IEditor *editor) if (!perforceEditor) return true; QFileInfo editorFile(fileIFace->fileName()); - QFileInfo changeFile(m_changeTmpFile->fileName()); + QFileInfo changeFile(m_commitMessageFileName); if (editorFile.absoluteFilePath() == changeFile.absoluteFilePath()) { // Prompt the user. Force a prompt unless submit was actually invoked (that // is, the editor was closed or shutdown). @@ -1029,12 +1032,13 @@ bool PerforcePlugin::editorAboutToClose(Core::IEditor *editor) fileIFace->save(); core->fileManager()->unblockFileChange(fileIFace); if (answer == VCSBase::VCSBaseSubmitEditor::SubmitConfirmed) { - if (!m_changeTmpFile->open()) { + QFile commitMessageFile(m_commitMessageFileName); + if (!commitMessageFile.open(QIODevice::ReadOnly|QIODevice::Text)) { VCSBase::VCSBaseOutputWindow::instance()->appendError(tr("Cannot open temporary file.")); return false; } - QByteArray change = m_changeTmpFile->readAll(); - m_changeTmpFile->close(); + QByteArray change = commitMessageFile.readAll(); + commitMessageFile.close(); QString errorMessage; if (!checkP4Configuration(&errorMessage)) { VCSBase::VCSBaseOutputWindow::instance()->appendError(errorMessage); @@ -1074,7 +1078,7 @@ bool PerforcePlugin::editorAboutToClose(Core::IEditor *editor) } QApplication::restoreOverrideCursor(); } - cleanChangeTmpFile(); + cleanCommitMessageFile(); } return true; } diff --git a/src/plugins/perforce/perforceplugin.h b/src/plugins/perforce/perforceplugin.h index 33098a810487f6aeb219fe8457d8686f52246bc4..761fb96799c3b2740d0e57eb95c4e2f4443b5aef 100644 --- a/src/plugins/perforce/perforceplugin.h +++ b/src/plugins/perforce/perforceplugin.h @@ -45,7 +45,6 @@ QT_BEGIN_NAMESPACE class QFile; class QAction; -class QTemporaryFile; class QTextCodec; QT_END_NAMESPACE @@ -162,7 +161,9 @@ private: bool checkP4Configuration(QString *errorMessage = 0) const; void annotate(const QString &fileName); void filelog(const QString &fileName); - void cleanChangeTmpFile(); + void cleanCommitMessageFile(); + bool isCommitEditorOpen() const; + void updateCheckout(const QStringList &dirs = QStringList()); ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer; @@ -188,11 +189,11 @@ private: QAction *m_updateAllAction; bool m_submitActionTriggered; QAction *m_diffSelectedFiles; + QString m_commitMessageFileName; QAction *m_undoAction; QAction *m_redoAction; - QTemporaryFile *m_changeTmpFile; static PerforcePlugin *m_perforcePluginInstance; QString pendingChangesData(); diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 718831c9d0961e2e43dd8cc5847bf55ebac3aa56..374ced568e9108895b20e3a5c7479c0a1f497fa7 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -180,7 +180,6 @@ SubversionPlugin *SubversionPlugin::m_subversionPluginInstance = 0; SubversionPlugin::SubversionPlugin() : m_svnDirectories(svnDirectories()), m_versionControl(0), - m_changeTmpFile(0), m_projectExplorer(0), m_addAction(0), m_deleteAction(0), @@ -204,19 +203,22 @@ SubversionPlugin::SubversionPlugin() : SubversionPlugin::~SubversionPlugin() { - cleanChangeTmpFile(); + cleanCommitMessageFile(); } -void SubversionPlugin::cleanChangeTmpFile() +void SubversionPlugin::cleanCommitMessageFile() { - if (m_changeTmpFile) { - if (m_changeTmpFile->isOpen()) - m_changeTmpFile->close(); - delete m_changeTmpFile; - m_changeTmpFile = 0; + if (!m_commitMessageFileName.isEmpty()) { + QFile::remove(m_commitMessageFileName); + m_commitMessageFileName.clear(); } } +bool SubversionPlugin::isCommitEditorOpen() const +{ + return !m_commitMessageFileName.isEmpty(); +} + static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = { Subversion::Constants::SUBVERSION_SUBMIT_MIMETYPE, Subversion::Constants::SUBVERSIONCOMMITEDITOR_KIND, @@ -416,7 +418,7 @@ void SubversionPlugin::extensionsInitialized() bool SubversionPlugin::editorAboutToClose(Core::IEditor *iEditor) { - if (!m_changeTmpFile || !iEditor || qstrcmp(Constants::SUBVERSIONCOMMITEDITOR, iEditor->kind())) + if ( !iEditor || !isCommitEditorOpen() || qstrcmp(Constants::SUBVERSIONCOMMITEDITOR, iEditor->kind())) return true; Core::IFile *fileIFace = iEditor->file(); @@ -427,7 +429,7 @@ bool SubversionPlugin::editorAboutToClose(Core::IEditor *iEditor) // Submit editor closing. Make it write out the commit message // and retrieve files const QFileInfo editorFile(fileIFace->fileName()); - const QFileInfo changeFile(m_changeTmpFile->fileName()); + const QFileInfo changeFile(m_commitMessageFileName); if (editorFile.absoluteFilePath() != changeFile.absoluteFilePath()) return true; // Oops?! @@ -444,7 +446,7 @@ bool SubversionPlugin::editorAboutToClose(Core::IEditor *iEditor) case VCSBase::VCSBaseSubmitEditor::SubmitCanceled: return false; // Keep editing and change file case VCSBase::VCSBaseSubmitEditor::SubmitDiscarded: - cleanChangeTmpFile(); + cleanCommitMessageFile(); return true; // Cancel all default: break; @@ -457,10 +459,10 @@ bool SubversionPlugin::editorAboutToClose(Core::IEditor *iEditor) Core::ICore::instance()->fileManager()->blockFileChange(fileIFace); fileIFace->save(); Core::ICore::instance()->fileManager()->unblockFileChange(fileIFace); - closeEditor= commit(m_changeTmpFile->fileName(), fileList); + closeEditor= commit(m_commitMessageFileName, fileList); } if (closeEditor) - cleanChangeTmpFile(); + cleanCommitMessageFile(); return closeEditor; } @@ -658,7 +660,7 @@ void SubversionPlugin::startCommit(const QStringList &files) return; if (VCSBase::VCSBaseSubmitEditor::raiseSubmitEditor()) return; - if (m_changeTmpFile) { + if (isCommitEditorOpen()) { VCSBase::VCSBaseOutputWindow::instance()->appendWarning(tr("Another commit is currently being executed.")); return; } @@ -679,22 +681,21 @@ void SubversionPlugin::startCommit(const QStringList &files) } // Create a new submit change file containing the submit template - QTemporaryFile *changeTmpFile = new QTemporaryFile(this); - changeTmpFile->setAutoRemove(true); - if (!changeTmpFile->open()) { - VCSBase::VCSBaseOutputWindow::instance()->appendError(tr("Cannot create temporary file: %1").arg(changeTmpFile->errorString())); - delete changeTmpFile; + QTemporaryFile changeTmpFile; + changeTmpFile.setAutoRemove(false); + if (!changeTmpFile.open()) { + VCSBase::VCSBaseOutputWindow::instance()->appendError(tr("Cannot create temporary file: %1").arg(changeTmpFile.errorString())); return; } - m_changeTmpFile = changeTmpFile; + m_commitMessageFileName = changeTmpFile.fileName(); // TODO: Retrieve submit template from const QString submitTemplate; // Create a submit - m_changeTmpFile->write(submitTemplate.toUtf8()); - m_changeTmpFile->flush(); - m_changeTmpFile->close(); + changeTmpFile.write(submitTemplate.toUtf8()); + changeTmpFile.flush(); + changeTmpFile.close(); // Create a submit editor and set file list - SubversionSubmitEditor *editor = openSubversionSubmitEditor(m_changeTmpFile->fileName()); + SubversionSubmitEditor *editor = openSubversionSubmitEditor(m_commitMessageFileName); editor->setStatusList(statusOutput); } diff --git a/src/plugins/subversion/subversionplugin.h b/src/plugins/subversion/subversionplugin.h index fcfd6f7baab96b017e033e50aff3d57ec3299868..b7bbc2f710a9e53ef2dfa64d8387047eff3e5bf1 100644 --- a/src/plugins/subversion/subversionplugin.h +++ b/src/plugins/subversion/subversionplugin.h @@ -38,7 +38,6 @@ QT_BEGIN_NAMESPACE class QDir; class QAction; -class QTemporaryFile; class QTextCodec; QT_END_NAMESPACE @@ -113,6 +112,7 @@ private slots: void diffFiles(const QStringList &); private: + inline bool isCommitEditorOpen() const; QString currentFileName() const; Core::IEditor * showOutputInEditor(const QString& title, const QString &output, int editorType, const QString &source, @@ -126,13 +126,13 @@ private: QStringList currentProjectsTopLevels(QString *name = 0) const; void startCommit(const QStringList &files); bool commit(const QString &messageFile, const QStringList &subVersionFileList); - void cleanChangeTmpFile(); + void cleanCommitMessageFile(); const QStringList m_svnDirectories; SubversionSettings m_settings; Core::IVersionControl *m_versionControl; - QTemporaryFile *m_changeTmpFile; + QString m_commitMessageFileName; ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer;