diff --git a/CommitDialog.cpp b/CommitDialog.cpp index dc06b0b..5b96c46 100644 --- a/CommitDialog.cpp +++ b/CommitDialog.cpp @@ -1,7 +1,9 @@ #include "CommitDialog.h" +#include #include "ui_CommitDialog.h" +#include "MainWindow.h" // Ugly. I know. -CommitDialog::CommitDialog(const QStringList &commitMsgHistory, const QStringList &files, QWidget *parent) : +CommitDialog::CommitDialog(QWidget *parent, const QStringList &commitMsgHistory, const QStringList &files) : QDialog(parent), ui(new Ui::CommitDialog) { @@ -16,14 +18,16 @@ CommitDialog::CommitDialog(const QStringList &commitMsgHistory, const QStringLis } +//------------------------------------------------------------------------------ CommitDialog::~CommitDialog() { delete ui; } -bool CommitDialog::run(QString &commitMsg, const QStringList &commitMsgHistory, const QStringList &files, QWidget *parent) +//------------------------------------------------------------------------------ +bool CommitDialog::run(QWidget *parent, QString &commitMsg, const QStringList &commitMsgHistory, const QStringList &files) { - CommitDialog dlg(commitMsgHistory, files, parent); + CommitDialog dlg(parent, commitMsgHistory, files); int res = dlg.exec(); if(res==QDialog::Accepted) { @@ -34,7 +38,22 @@ bool CommitDialog::run(QString &commitMsg, const QStringList &commitMsgHistory, return false; } +//------------------------------------------------------------------------------ void CommitDialog::on_comboBox_activated(const QString &arg1) { ui->plainTextEdit->setPlainText(arg1); } + +//------------------------------------------------------------------------------ +void CommitDialog::on_plainTextEdit_textChanged() +{ + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!ui->plainTextEdit->toPlainText().isEmpty()); +} + +//------------------------------------------------------------------------------ +void CommitDialog::on_listView_doubleClicked(const QModelIndex &index) +{ + QVariant data = itemModel.data(index); + QString filename = data.toString(); + reinterpret_cast(parent())->diffFile(filename); +} diff --git a/CommitDialog.h b/CommitDialog.h index 2d6d864..b28caf2 100644 --- a/CommitDialog.h +++ b/CommitDialog.h @@ -13,13 +13,15 @@ class CommitDialog : public QDialog Q_OBJECT public: - explicit CommitDialog(const QStringList &commitMsgHistory, const QStringList &files, QWidget *parent = 0); + explicit CommitDialog(QWidget *parent, const QStringList &commitMsgHistory, const QStringList &files); ~CommitDialog(); - static bool run(QString &commitMsg, const QStringList &commitMsgHistory, const QStringList &files, QWidget *parent); + static bool run(QWidget *parent, QString &commitMsg, const QStringList &commitMsgHistory, const QStringList &files); private slots: void on_comboBox_activated(const QString &arg1); + void on_plainTextEdit_textChanged(); + void on_listView_doubleClicked(const QModelIndex &index); private: Ui::CommitDialog *ui; diff --git a/CommitDialog.ui b/CommitDialog.ui index 1af10e6..65aec41 100644 --- a/CommitDialog.ui +++ b/CommitDialog.ui @@ -44,7 +44,7 @@ true - QAbstractItemView::NoSelection + QAbstractItemView::SingleSelection QAbstractItemView::SelectRows diff --git a/FileActionDialog.cpp b/FileActionDialog.cpp index acbef5f..4a39ec0 100644 --- a/FileActionDialog.cpp +++ b/FileActionDialog.cpp @@ -1,7 +1,7 @@ #include "FileActionDialog.h" #include "ui_FileActionDialog.h" -FileActionDialog::FileActionDialog(const QString &title, const QString &message, const QStringList &files, QWidget *parent) : +FileActionDialog::FileActionDialog(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText, bool *checkBoxResult) : QDialog(parent), ui(new Ui::FileActionDialog) { @@ -10,6 +10,17 @@ FileActionDialog::FileActionDialog(const QString &title, const QString &message, ui->label->setText(message); ui->listView->setModel(&itemModel); + if(!checkBoxText.isEmpty() && checkBoxResult) + { + checkBox = new QCheckBox(this); + checkBox->setText(checkBoxText); + checkBox->setEnabled(true); + checkBox->setChecked(*checkBoxResult); + this->checkBoxResult = checkBoxResult; + ui->verticalLayout->insertWidget(2, checkBox); + } + + for(QStringList::const_iterator it=files.begin(); it!=files.end(); ++it) itemModel.appendRow(new QStandardItem(*it)); } @@ -19,10 +30,13 @@ FileActionDialog::~FileActionDialog() delete ui; } -bool FileActionDialog::run(const QString &title, const QString &message, const QStringList &files, QWidget *parent) +bool FileActionDialog::run(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText, bool *checkBoxResult) { - FileActionDialog dlg(title, message, files, parent); + FileActionDialog dlg(parent, title, message, files, checkBoxText, checkBoxResult); int res = dlg.exec(); + if(!checkBoxText.isEmpty() && checkBoxResult && dlg.checkBox) + *checkBoxResult = dlg.checkBox->isChecked(); + return res == QDialog::Accepted; } diff --git a/FileActionDialog.h b/FileActionDialog.h index c2d07fb..ca8ee80 100644 --- a/FileActionDialog.h +++ b/FileActionDialog.h @@ -3,6 +3,7 @@ #include #include +#include namespace Ui { class FileActionDialog; @@ -13,14 +14,16 @@ class FileActionDialog : public QDialog Q_OBJECT public: - explicit FileActionDialog(const QString &title, const QString &message, const QStringList &files, QWidget *parent = 0); + explicit FileActionDialog(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText=QString(), bool *checkBoxResult=0); ~FileActionDialog(); - static bool run(const QString &title, const QString &message, const QStringList &files, QWidget *parent); + static bool run(QWidget *parent, const QString &title, const QString &message, const QStringList &files, const QString &checkBoxText=QString(), bool *checkBoxResult=0); private: Ui::FileActionDialog *ui; QStandardItemModel itemModel; + QCheckBox *checkBox; + bool *checkBoxResult; }; #endif // FILEACTIONDIALOG_H diff --git a/MainWindow.cpp b/MainWindow.cpp index 502d71a..6ceb9c0 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -10,15 +10,14 @@ #include #include #include +#include #include "CommitDialog.h" #include "FileActionDialog.h" #define SILENT_STATUS true #define COUNTOF(array) (sizeof(array)/sizeof(array[0])) -#define DEV_SETTINGS - - +//#define DEV_SETTINGS enum { @@ -88,6 +87,12 @@ MainWindow::~MainWindow() #endif delete ui; } +const QString &MainWindow::getCurrentWorkspace() +{ + Q_ASSERT(currentWorkspacesetToolTip(tooltip); + itemModel.setItem(i, COLUMN_STATUS, status); QString path = e.getFilename(); path = path.left(path.indexOf(e.getFileInfo().fileName())); @@ -347,10 +379,10 @@ void MainWindow::on_actionClearLog_triggered() } //------------------------------------------------------------------------------ -bool MainWindow::runFossil(QStringList &result, const QStringList &args, bool silent) +bool MainWindow::runFossil(QStringList &result, const QStringList &args, bool silent, bool detached) { int exit_code = EXIT_FAILURE; - if(!runFossil(result, args, exit_code, silent)) + if(!runFossil(result, args, exit_code, silent, detached)) return false; return exit_code == EXIT_SUCCESS; @@ -358,17 +390,22 @@ bool MainWindow::runFossil(QStringList &result, const QStringList &args, bool si //------------------------------------------------------------------------------ // Run fossil. Returns true if execution was succesfull regardless if fossil // issued an error -bool MainWindow::runFossil(QStringList &result, const QStringList &args, int &exitCode, bool silent) +bool MainWindow::runFossil(QStringList &result, const QStringList &args, int &exitCode, bool silent, bool detached) { - QProcess process(this); - - process.setProcessChannelMode(QProcess::MergedChannels); - QString wkdir = getCurrentWorkspace(); - process.setWorkingDirectory(wkdir); - if(!silent) log("> fossil "+args.join(" ")+"\n"); + QString wkdir = getCurrentWorkspace(); + + if(detached) + { + return QProcess::startDetached(fossilPath, args, wkdir); + } + + QProcess process(this); + process.setProcessChannelMode(QProcess::MergedChannels); + process.setWorkingDirectory(wkdir); + process.start(fossilPath, args); if(!process.waitForStarted()) { @@ -401,7 +438,8 @@ bool MainWindow::runFossil(QStringList &result, const QStringList &args, int &ex //------------------------------------------------------------------------------ void MainWindow::addWorkspace(const QString &dir) { - workspaces.append(dir); + QDir d(dir); + workspaces.append(d.absolutePath()); currentWorkspace = workspaces.size()-1; } //------------------------------------------------------------------------------ @@ -503,18 +541,24 @@ void MainWindow::getSelectionFilenames(QStringList &filenames, int includeMask, filenames.append(filename); } } +//------------------------------------------------------------------------------ +bool MainWindow::diffFile(QString repoFile) +{ + QStringList res; + int exitcode; + // Run the diff detached + return runFossil(res, QStringList() << "gdiff" << QuotePath(repoFile), exitcode, false, true); +} + //------------------------------------------------------------------------------ void MainWindow::on_actionDiff_triggered() { QStringList selection; - getSelectionFilenames(selection); + getSelectionFilenames(selection, FileEntry::TYPE_REPO); for(QStringList::iterator it = selection.begin(); it!=selection.end(); ++it) - { - QStringList res; - if(!runFossil(res, QStringList() << "gdiff" << QuotePath(*it))) + if(!diffFile(*it)) return; - } } //------------------------------------------------------------------------------ @@ -632,7 +676,7 @@ void MainWindow::on_actionCommit_triggered() return; QString msg; - if(!CommitDialog::run(msg, commitMessages, modified_files, this)) + if(!CommitDialog::run(this, msg, commitMessages, modified_files)) return; // Do commit @@ -661,7 +705,7 @@ void MainWindow::on_actionAdd_triggered() if(selection.empty()) return; - if(!FileActionDialog::run(tr("Add files"), tr("The following files will be added. Are you sure?"), selection, this)) + if(!FileActionDialog::run(this, tr("Add files"), tr("The following files will be added. Are you sure?"), selection)) return; // Do Add @@ -680,15 +724,33 @@ void MainWindow::on_actionDelete_triggered() QStringList unknown_files; getSelectionFilenames(unknown_files, FileEntry::TYPE_UNKNOWN); - if(repo_files.empty() && unknown_files.empty()) + QStringList all_files = repo_files+unknown_files; + + if(all_files.empty()) return; - if(!FileActionDialog::run(tr("Delete files"), tr("The following files will be deleted. Are you sure?"), repo_files+unknown_files, this)) + bool remove_local = false; + + if(!FileActionDialog::run(this, tr("Remove files"), tr("The following files will be removed from the repository.\nAre you sure?"), all_files, tr("Also delete the local files"), &remove_local )) return; - // Do Delete - QStringList res; - runFossil(res, QStringList() << "delete" << QuotePaths(repo_files) ); + if(!repo_files.empty()) + { + // Do Delete + QStringList res; + if(!runFossil(res, QStringList() << "delete" << QuotePaths(repo_files))) + return; + } + + if(remove_local) + { + for(int i=0; i0 && res[0]=="No undo or redo is available") + return; + + if(!FileActionDialog::run(this, tr("Undo"), tr("The following actions will be undone. Are you sure?"), res)) + return; + + // Do Undo + runFossil(res, QStringList() << "undo" ); + + refresh(); +} + +//------------------------------------------------------------------------------ +void MainWindow::on_actionAbout_triggered() +{ + QMessageBox::about(this, tr("About..."), tr( + "Fuel, a GUI frontend to Fossil SCM\n" + "by Kostas Karanikolas\n" + "Released under the GNU GPL\n\n" + "Icon-set by Deleket - Jojo Mendoza\n" + "Available under the CC Attribution-Noncommercial-No Derivate 3.0 License")); +} + diff --git a/MainWindow.h b/MainWindow.h index 2307ee7..7a8f7df 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -24,7 +24,9 @@ struct FileEntry TYPE_EDITTED = 1<<2, TYPE_ADDED = 1<<3, TYPE_DELETED = 1<<4, - TYPE_REPO_MODIFIED = TYPE_EDITTED|TYPE_ADDED|TYPE_DELETED, + TYPE_MISSING = 1<<5, + TYPE_RENAMED = 1<<6, + TYPE_REPO_MODIFIED = TYPE_EDITTED|TYPE_ADDED|TYPE_DELETED|TYPE_MISSING|TYPE_RENAMED, TYPE_REPO = TYPE_UNCHANGED|TYPE_REPO_MODIFIED, TYPE_ALL = TYPE_UNKNOWN|TYPE_REPO }; @@ -93,15 +95,16 @@ class MainWindow : public QMainWindow public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); + bool diffFile(QString repoFile); private: void refresh(); void scanWorkspace(); - bool runFossil(QStringList &result, const QStringList &args, bool silent=false); - bool runFossil(QStringList &result, const QStringList &args, int &exitCode, bool silent=false); + bool runFossil(QStringList &result, const QStringList &args, bool silent=false, bool detached=false); + bool runFossil(QStringList &result, const QStringList &args, int &exitCode, bool silent=false, bool detached=false); void loadSettings(); void saveSettings(); - const QString &getCurrentWorkspace() { Q_ASSERT(currentWorkspace Fuel + + + :/icons/icons/Battery-01.png:/icons/icons/Battery-01.png + @@ -97,7 +101,14 @@ + + + Help + + + + @@ -125,8 +136,9 @@ + + - @@ -138,6 +150,7 @@ + @@ -303,6 +316,10 @@ + + + :/icons/icons/Document-01.png:/icons/icons/Document-01.png + Open file @@ -334,6 +351,20 @@ Open Containing Folder + + + + :/icons/icons/Button Reload-01.png:/icons/icons/Button Reload-01.png + + + undo + + + + + About... + + diff --git a/icons/Document-Revert-icon.png b/icons/Document-Revert-icon.png index ec3b199..021ab31 100644 Binary files a/icons/Document-Revert-icon.png and b/icons/Document-Revert-icon.png differ diff --git a/icons/IconCredits.txt b/icons/IconCredits.txt index 00179c2..8c4284c 100644 --- a/icons/IconCredits.txt +++ b/icons/IconCredits.txt @@ -1 +1,3 @@ http://www.iconarchive.com/show/soft-scraps-icons-by-deleket.3.html +http://www.iconarchive.com/artist/deleket.html +http://www.deleket.com/ diff --git a/manifest b/manifest index 799cd73..32369f6 100644 --- a/manifest +++ b/manifest @@ -1,14 +1,14 @@ -C Implemented\sCommitAction,\sDeleteAction,\sRevertAction,\sNewRepository,\sOpenRepository\nNew\sAction:\sOpen\scontaining\sfolder\nNew\sfiletypes\sADDED,\sDELETED\nWe\snow\sdetect\sinvalid\sor\soutdated\srepositories\n -D 2011-08-04T15:52:07.126 -F CommitDialog.cpp f4065a49dfaa6904ffb1ad4ebe5efd01506cf550 -F CommitDialog.h c18c73998f8a925723ec1407ce75dc17a27a5ff7 -F CommitDialog.ui 482961858d1e7c31745966c347b21b6318e2e7b5 -F FileActionDialog.cpp 02dc244b0bcaad2021327186d5870bc408210a41 -F FileActionDialog.h 6082f84f6b5d48be6104034d6dc896a9d343b613 +C Commit\sDialog:\n-\sCommit\smessages\smust\snot\sbe\sempty\n-\sDouble-clicking\sa\sfile\sinvokes\sdiff\nFileAction\sDialog:\n-\sOptional\scheckbox\n\nMainWindow:\n-\sAdded\sRename/Undo/About\sActions\n-\sAdded\sRenamed/Missing\sfile\sstates\n-\sAdded\stooltips\sto\sstatus\scolumn\n-\sSupport\sfor\srunning\sfossil\sin\sdetached\smode\s(to\sprevent\skilling\sfossil\sdue\sto\stimeout\son\sdiff\ssessions)\n +D 2011-08-05T15:25:38.965 +F CommitDialog.cpp c2a14598f42d252d847d05b3bb33ae040f1a31ae +F CommitDialog.h 0550b1b652924ae54b6f6c9274cad2d4c491808a +F CommitDialog.ui 4a641325b8645f07672ffb9f19e7134ab753e6bb +F FileActionDialog.cpp 6410dc7a65209df1839f871b3b66c0a78a4fe733 +F FileActionDialog.h 873a9f720753a37d67071563ed7954f91b0d4699 F FileActionDialog.ui 2d7a0fa47f9555f4a4a7485feacd5bce504415a0 -F MainWindow.cpp f8433657efea2e502d790b6d094891aaee1134c5 -F MainWindow.h f193166dbdafd922ba6513f16a6d12bda09a8ffc -F MainWindow.ui 6f445eb6b5d58e54050d255420b6eac005a81eeb +F MainWindow.cpp b0e2b8915337e3759229ead372097a5b26906dca +F MainWindow.h 0d6d8fb35f3a8763f7d4b78f809a39ad47e80047 +F MainWindow.ui f986ff746d7a111ddf82b1dc537aad891c11e9cc F RepoDialog.cpp 8f20e1511526973555c774350ec413dcecf51c9e F RepoDialog.h a958c5f98f1e6882bf41dbdd2e4df3cb89700802 F RepoDialog.ui 8fe9b7f7528332ca9a45e919cf116aaf144a3286 @@ -76,7 +76,7 @@ F icons/Document\sOrganization\sChart-01.png 08e2d90232609a6537ff27c2fcbaf8669d2 F icons/Document\sPreview-01.png 6dad0c2b3796f79b9ca2afeda35a4a25b2bf1a93 F icons/Document\sText-01.png d2032f213666611e1f2ac3c6d3bbd5ac3cb70c4e F icons/Document-01.png 5caa3fb0c2803a5824967b772e221b8a6bf81888 -F icons/Document-Revert-icon.png c696a41d43d08c99a726cb8af97601b825a9fb34 +F icons/Document-Revert-icon.png e0b9cdfe17a0f5f56fea52f129adb99e99d3013a F icons/Edit\sDocument-01.png f83318cc0406ec8404162c6fd90bdb87ffd953d2 F icons/Email\sAttachment-01.png 9140f252ce29af0f3ca8f8b9438bc5fd73084627 F icons/Email\sDelete-01.png 6f7f1f536dcedf8e560a688e10be05c8f292f481 @@ -116,7 +116,7 @@ F icons/Gear-01.png dd9d2f1b3eaefd2b376547e8d7dc0224b142fb79 F icons/Highlighter\sBlue-01.png f13cd5ab2131e0405e6cca65c9bf859ddeac7dca F icons/Highlighter\sGreen-01.png c27855873f1603692ddec1fe5eb387d82dec4511 F icons/Highlighter\sYellow-01.png 50c25fe8857e04ccbe7d518abc8e50cad64e82da -F icons/IconCredits.txt cee343f48fa15458897693df78193c0f7c63a519 +F icons/IconCredits.txt e38bd317b7d007b1bffb910f543dbbd376b2b16a F icons/Image\sBMP-01.png 79a0ca5cd1a794b711c37a3ab9a9d45d458c6cd1 F icons/Image\sGIF-01.png d409ac6dfeceac46d711cc7bef274d94bbd4e9b0 F icons/Image\sJPEG-01.png 63bc765c3c2c389c580faa66c7802f8d18e2ddd7 @@ -166,9 +166,8 @@ F icons/Zoom\sOut-01.png 8eda092100d9e00c9097f43a80d1e26695947448 F icons/Zoom-01.png 67ca532922e9166325c5c75fce1ca3fbb0d2b6a6 F main.cpp f53e9e1e34f65565f06b2d37d7be5c38e2113a03 F qtfossil.pro 047d5e691c772ef110e4eaef75ddba39a0142544 -F qtfossil.pro.user 46795d72c37bdb7016c9673180cecb5264713f50 F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53 -P 9e35495cc3f4e18f458cf02f83d1d8075c0a85b9 -R 59296ed5593ab777a8dc300eeb4e43dc +P 2ac3cf9717f3529f809ffde1e802295988dfda05 +R 3b0d0d13b7cf9d3ea4f672b4d52f7f24 U kostas -Z 301a78f530bab5b00a799f65640fa487 +Z 8f7e114d6064ed65232051b27d2d5af2 diff --git a/manifest.uuid b/manifest.uuid index dccae18..c0c5a25 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -2ac3cf9717f3529f809ffde1e802295988dfda05 \ No newline at end of file +ea42e7cd8b7041d82e35720b14e30437b6db6e0d \ No newline at end of file diff --git a/qtfossil.pro.user b/qtfossil.pro.user deleted file mode 100644 index c2fc651..0000000 --- a/qtfossil.pro.user +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - - Cpp - - false - CppGlobal - true - false - true - false - false - false - true - true - false - true - false - false - false - true - false - - - 1 - UTF-8 - Global - 4 - true - 1 - true - false - true - - Cpp - - true - false - CppGlobal - 4 - 1 - false - true - 0 - 8 - - - - QmlJS - - true - false - QmlJSGlobal - 4 - 1 - false - true - 0 - 8 - - - 2 - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.Target.0 - - Desktop - Desktop - Qt4ProjectManager.Target.DesktopTarget - 1 - 0 - 0 - - ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb - - - qmake - - QtProjectManager.QMakeBuildStep - false - true - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Qt in PATH Release - - Qt4ProjectManager.Qt4BuildConfiguration - 0 - /home/kostas/tmp/qtfossil-build-desktop-Qt_in_PATH_Release - 2 - true - - - ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb - - - qmake - - QtProjectManager.QMakeBuildStep - false - true - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Qt in PATH Debug - - Qt4ProjectManager.Qt4BuildConfiguration - 2 - /home/kostas/tmp/qtfossil-build-desktop-Qt_in_PATH_Debug - 2 - true - - - ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb - - - qmake - - QtProjectManager.QMakeBuildStep - false - true - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - 4.7.0 Release - - Qt4ProjectManager.Qt4BuildConfiguration - 0 - /home/kostas/tmp/qtfossil-build-desktop-4_7_0_Release - 4 - true - - - ProjectExplorer.ToolChain.Gcc:/usr/bin/g++.x86-linux-generic-elf-64bit./usr/bin/gdb - - - qmake - - QtProjectManager.QMakeBuildStep - false - true - - false - - - Make - - Qt4ProjectManager.MakeStep - false - - - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - Make - - Qt4ProjectManager.MakeStep - true - clean - - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - 4.7.0 Debug - - Qt4ProjectManager.Qt4BuildConfiguration - 2 - /home/kostas/tmp/qtfossil-build-desktop-4_7_0_Debug - 4 - true - - 4 - - - 0 - Deploy - - ProjectExplorer.BuildSteps.Deploy - - 1 - No deployment - - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - - false - false - false - false - false - false - false - false - true - true - 0.01 - 0.01 - 10 - 10 - true - true - 25 - 25 - - - true - true - valgrind - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - qtfossil - - Qt4ProjectManager.Qt4RunConfiguration - 2 - - qtfossil.pro - false - false - - - 3768 - true - false - false - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - ProjectExplorer.Project.Updater.EnvironmentId - {bda40a79-bf37-4550-a115-261dea66cdf3} - - - ProjectExplorer.Project.Updater.FileVersion - 10 - -