Mercurial > hg > easyhg
changeset 6:81a32fffee8f
0.3.9: Remove is now more powerful (can delete files of type ACM!).
author | Jari Korhonen <jtkorhonen@gmail.com> |
---|---|
date | Fri, 14 May 2010 15:29:41 +0300 |
parents | 7189e9994a60 |
children | 3eacb7831c5b |
files | common.h mainwindow.cpp mainwindow.h testfile.txt |
diffstat | 3 files changed, 29 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/common.h Fri May 14 14:50:07 2010 +0300 +++ b/common.h Fri May 14 15:29:41 2010 +0300 @@ -6,7 +6,7 @@ #include <QtCore> #define APPNAME "HgExplorer" -#define APPVERSION "0.3.8" +#define APPVERSION "0.3.9" #define MY_ICON_SIZE 32 #define REPOMENU_TITLE "Repository actions" #define WORKFOLDERMENU_TITLE "Workfolder actions"
--- a/mainwindow.cpp Fri May 14 14:50:07 2010 +0300 +++ b/mainwindow.cpp Fri May 14 15:29:41 2010 +0300 @@ -181,10 +181,14 @@ if (!currentFile.isEmpty()) { - params << "remove" << currentFile.mid(2); //Jump over status marker characters (e.g "M ") + if (QMessageBox::Ok == QMessageBox::warning(this, "Remove file", "Really remove file " + currentFile.mid(2) + "?", + QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Cancel)) + { + params << "remove" << "--after" << "--force" << currentFile.mid(2); //Jump over status marker characters (e.g "M ") - runner -> startProc(getHgBinaryName(), workFolderPath, params); - runningAction = ACT_REMOVE; + runner -> startProc(getHgBinaryName(), workFolderPath, params); + runningAction = ACT_REMOVE; + } } } } @@ -568,13 +572,30 @@ } -bool MainWindow::isSelectedLocallyDeleted(QListWidget *workList) +bool MainWindow::isSelectedDeletable(QListWidget *workList) { QList<QListWidgetItem *> selList = workList -> selectedItems(); if (selList.count() == 1) { - if (selList.at(0)->text().mid(0, 1) == "!") + QString tmp = selList.at(0)->text().mid(0, 1); + if (tmp == "A") { + //scheduled to be added, ok to remove (won't go to repo) + return true; + } + else if (tmp == "C") + { + //Tracked but unchanged, ok to remove + return true; + } + else if (tmp == "M") + { + //locally modified, ok to remove from repo + return true; + } + else if (tmp == "!") + { + //locally deleted, ok to remove from repo return true; } } @@ -922,7 +943,7 @@ hgAddAct -> setEnabled(false); } - if (!isSelectedLocallyDeleted(hgExp -> workFolderFileList)) + if (!isSelectedDeletable(hgExp -> workFolderFileList)) { hgRemoveAct -> setEnabled(false); }
--- a/mainwindow.h Fri May 14 14:50:07 2010 +0300 +++ b/mainwindow.h Fri May 14 15:29:41 2010 +0300 @@ -146,7 +146,7 @@ void countAMRNModifications(QListWidget *workList, int& a, int& m, int& r, int& n); bool isSelectedModified(QListWidget *workList); bool isSelectedUntracked(QListWidget *workList); - bool isSelectedLocallyDeleted(QListWidget *workList); + bool isSelectedDeletable(QListWidget *workList); //Actions enabled flags