From 433ef8252a0b58bf440dd6cf3f7e5b5b8f457807 Mon Sep 17 00:00:00 2001 From: kostas Date: Fri, 5 Aug 2011 15:25:38 +0000 Subject: [PATCH] Commit Dialog: - Commit messages must not be empty - Double-clicking a file invokes diff FileAction Dialog: - Optional checkbox MainWindow: - Added Rename/Undo/About Actions - Added Renamed/Missing file states - Added tooltips to status column - Support for running fossil in detached mode (to prevent killing fossil due to timeout on diff sessions) FossilOrigin-Name: ea42e7cd8b7041d82e35720b14e30437b6db6e0d --- CommitDialog.cpp | 25 ++- CommitDialog.h | 6 +- CommitDialog.ui | 2 +- FileActionDialog.cpp | 20 +- FileActionDialog.h | 7 +- MainWindow.cpp | 214 ++++++++++++++---- MainWindow.h | 16 +- MainWindow.ui | 33 ++- icons/Document-Revert-icon.png | Bin 13701 -> 28314 bytes icons/IconCredits.txt | 2 + manifest | 31 ++- manifest.uuid | 2 +- qtfossil.pro.user | 398 --------------------------------- 13 files changed, 281 insertions(+), 475 deletions(-) delete mode 100644 qtfossil.pro.user 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 ec3b19985883b2dd73b0b85c3c68abaaef8acdbc..021ab312c55ea6d9a665ef7e7d6041cee229f860 100644 GIT binary patch literal 28314 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 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 - -