Commit message history is now saved

Commit message history is now accumulated even when a commit is cancelled


FossilOrigin-Name: 1ff7aa3b04cec66eb7c1420713f4ee691cc3e5d5
This commit is contained in:
kostas 2011-10-21 14:44:36 +00:00
parent d70ae79ae9
commit 2cc459e459
6 changed files with 40 additions and 22 deletions

View File

@ -34,6 +34,8 @@ bool CommitDialog::run(QWidget *parent, QString &commitMsg, const QStringList &c
{ {
CommitDialog dlg(parent, commitMsgHistory, files); CommitDialog dlg(parent, commitMsgHistory, files);
int res = dlg.exec(); int res = dlg.exec();
commitMsg = dlg.ui->plainTextEdit->toPlainText();
if(res!=QDialog::Accepted) if(res!=QDialog::Accepted)
return false; return false;
@ -46,7 +48,6 @@ bool CommitDialog::run(QWidget *parent, QString &commitMsg, const QStringList &c
files.append(si->text()); files.append(si->text());
} }
commitMsg = dlg.ui->plainTextEdit->toPlainText();
return true; return true;
} }

View File

@ -1100,6 +1100,9 @@ void MainWindow::loadSettings()
if(qsettings.contains("FossilPath")) if(qsettings.contains("FossilPath"))
settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value = qsettings.value("FossilPath").toString(); settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value = qsettings.value("FossilPath").toString();
if(qsettings.contains(FUEL_SETTING_COMMIT_MSG))
settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value = qsettings.value(FUEL_SETTING_COMMIT_MSG);
int num_wks = qsettings.beginReadArray("Workspaces"); int num_wks = qsettings.beginReadArray("Workspaces");
for(int i=0; i<num_wks; ++i) for(int i=0; i<num_wks; ++i)
{ {
@ -1153,9 +1156,11 @@ void MainWindow::saveSettings()
// If we have a customize fossil path, save it // If we have a customize fossil path, save it
QString fossil_path = settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value.toString(); QString fossil_path = settings.Mappings[FUEL_SETTING_FOSSIL_PATH].Value.toString();
if(!fossil_path .isEmpty())
qsettings.setValue("FossilPath", fossil_path); qsettings.setValue("FossilPath", fossil_path);
if(!settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value.toStringList().empty() )
qsettings.setValue(FUEL_SETTING_COMMIT_MSG, settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value);
qsettings.beginWriteArray("Workspaces", workspaceHistory.size()); qsettings.beginWriteArray("Workspaces", workspaceHistory.size());
for(int i=0; i<workspaceHistory.size(); ++i) for(int i=0; i<workspaceHistory.size(); ++i)
{ {
@ -1444,8 +1449,20 @@ void MainWindow::on_actionCommit_triggered()
if(modified_files.empty()) if(modified_files.empty())
return; return;
QStringList commit_msgs = settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value.toStringList();
QString msg; QString msg;
if(!CommitDialog::run(this, msg, commitMessages, modified_files)) bool aborted = !CommitDialog::run(this, msg, commit_msgs, modified_files);
// Aborted or not we always keep the commit messages.
// (This has saved me way too many times on TortoiseSVN)
if(commit_msgs.indexOf(msg)==-1)
{
commit_msgs.push_front(msg);
settings.Mappings[FUEL_SETTING_COMMIT_MSG].Value = commit_msgs;
}
if(aborted)
return; return;
// Since via the commit dialog the user can deselect all files // Since via the commit dialog the user can deselect all files
@ -1453,7 +1470,6 @@ void MainWindow::on_actionCommit_triggered()
return; return;
// Do commit // Do commit
commitMessages.push_front(msg);
QString comment_fname; QString comment_fname;
{ {
QTemporaryFile temp_file; QTemporaryFile temp_file;

View File

@ -238,7 +238,6 @@ private:
QString repositoryFile; QString repositoryFile;
QStringList workspaceHistory; QStringList workspaceHistory;
QString currentWorkspace; QString currentWorkspace;
QStringList commitMessages;
ViewMode viewMode; ViewMode viewMode;
stringset_t selectedDirs; // The directory selected in the tree stringset_t selectedDirs; // The directory selected in the tree

View File

@ -10,6 +10,7 @@ namespace Ui {
} }
#define FUEL_SETTING_FOSSIL_PATH "FossilPath" #define FUEL_SETTING_FOSSIL_PATH "FossilPath"
#define FUEL_SETTING_COMMIT_MSG "CommitMsgHistory"
#define FUEL_SETTING_GDIFF_CMD "gdiff-command" #define FUEL_SETTING_GDIFF_CMD "gdiff-command"
#define FUEL_SETTING_GMERGE_CMD "gmerge-command" #define FUEL_SETTING_GMERGE_CMD "gmerge-command"
#define FUEL_SETTING_IGNORE_GLOB "ignore-glob" #define FUEL_SETTING_IGNORE_GLOB "ignore-glob"
@ -24,7 +25,7 @@ struct Settings
TYPE_INTERNAL, TYPE_INTERNAL,
TYPE_FOSSIL_GLOBAL, TYPE_FOSSIL_GLOBAL,
TYPE_FOSSIL_LOCAL, TYPE_FOSSIL_LOCAL,
TYPE_FOSSIL_COMMAND, TYPE_FOSSIL_COMMAND
}; };
Setting(QVariant value=QVariant(), SettingType type=TYPE_INTERNAL) : Value(value), Type(type) Setting(QVariant value=QVariant(), SettingType type=TYPE_INTERNAL) : Value(value), Type(type)
@ -39,6 +40,7 @@ struct Settings
Settings() Settings()
{ {
Mappings[FUEL_SETTING_FOSSIL_PATH] = Setting(); Mappings[FUEL_SETTING_FOSSIL_PATH] = Setting();
Mappings[FUEL_SETTING_COMMIT_MSG] = Setting();
Mappings[FUEL_SETTING_GDIFF_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); Mappings[FUEL_SETTING_GDIFF_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL);
Mappings[FUEL_SETTING_GMERGE_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL); Mappings[FUEL_SETTING_GMERGE_CMD] = Setting("", Setting::TYPE_FOSSIL_GLOBAL);
Mappings[FUEL_SETTING_IGNORE_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL); Mappings[FUEL_SETTING_IGNORE_GLOB] = Setting("", Setting::TYPE_FOSSIL_LOCAL);

View File

@ -1,16 +1,16 @@
C Beautified\slog\soutput\n C Commit\smessage\shistory\sis\snow\ssaved\nCommit\smessage\shistory\sis\snow\saccumulated\seven\swhen\sa\scommit\sis\scancelled\n
D 2011-10-20T16:31:08.243 D 2011-10-21T14:44:36.112
F CommitDialog.cpp 8965e52d077c300cf1acb1b16fb2dcca5c7070f8 F CommitDialog.cpp cba14155a39845b057c197b1aa7f3c747ae0c337
F CommitDialog.h a9596d99865cf312b419d01d51334ffc916f5508 F CommitDialog.h a9596d99865cf312b419d01d51334ffc916f5508
F CommitDialog.ui 5067623f6af6f5a42c87df903278e383e945e154 F CommitDialog.ui 5067623f6af6f5a42c87df903278e383e945e154
F FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8 F FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8
F FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce F FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce
F FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7 F FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7
F MainWindow.cpp 5b4503c06d65c73b8f5cc5f018e348e08b185c45 F MainWindow.cpp 8fe31e4970ce925ad290b7acfff9e43b3d46658e
F MainWindow.h 7ad2f4090d58127cbb3f6801cd64fb932a8d4a14 F MainWindow.h 124c49d5313934e63d4b5028b98573d6d630357c
F MainWindow.ui 7f9e5cda55cffd5da8c01de7729a1806126c0d6b F MainWindow.ui 7f9e5cda55cffd5da8c01de7729a1806126c0d6b
F SettingsDialog.cpp a386f03a13115b8179361344c830bcdb2c319476 F SettingsDialog.cpp a386f03a13115b8179361344c830bcdb2c319476
F SettingsDialog.h 079e869f60b37feac78198afe0dfd5b75eee9add F SettingsDialog.h 7e7b33f50472bfc6cf0602d9f7049a4cc939c4d8
F SettingsDialog.ui 05bc501e63fa74ce3d285ccfdd8c94382e558f32 F SettingsDialog.ui 05bc501e63fa74ce3d285ccfdd8c94382e558f32
F fuel.pro b304761003917ba0790be1b62d537642a7e40adb F fuel.pro b304761003917ba0790be1b62d537642a7e40adb
F fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79 F fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79
@ -172,7 +172,7 @@ F installer/fuel.iss 13b6a938bcdf273cbd3649d2549887baa1577214
F installer/license.txt 4cc77b90af91e615a64ae04893fdffa7939db84c F installer/license.txt 4cc77b90af91e615a64ae04893fdffa7939db84c
F main.cpp f67a9b5c9ca0b634b19ef08e7136032372d37f93 F main.cpp f67a9b5c9ca0b634b19ef08e7136032372d37f93
F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53 F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53
P 8a4fbbb14628b2dc53b8d46a35a3b4f43182db9c P 36ef959eec3bb9c4f84b5e0acf9cc728c14633e1
R 5899c275d3ebca904b12f5fa2b05e637 R 0d2da0cd27a7e112be69ced3349fd31b
U kostas U kostas
Z 14cb25d35a9b96e0bb97a5497ed70fbe Z c9a201d7448ca82afff6a014fede4d82

View File

@ -1 +1 @@
36ef959eec3bb9c4f84b5e0acf9cc728c14633e1 1ff7aa3b04cec66eb7c1420713f4ee691cc3e5d5