Mercurial > hg > easyhg
comparison mainwindow.cpp @ 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 | 45c4ac1323b2 |
comparison
equal
deleted
inserted
replaced
5:7189e9994a60 | 6:81a32fffee8f |
---|---|
179 QStringList params; | 179 QStringList params; |
180 QString currentFile = hgExp -> getCurrentFileListLine(); | 180 QString currentFile = hgExp -> getCurrentFileListLine(); |
181 | 181 |
182 if (!currentFile.isEmpty()) | 182 if (!currentFile.isEmpty()) |
183 { | 183 { |
184 params << "remove" << currentFile.mid(2); //Jump over status marker characters (e.g "M ") | 184 if (QMessageBox::Ok == QMessageBox::warning(this, "Remove file", "Really remove file " + currentFile.mid(2) + "?", |
185 | 185 QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Cancel)) |
186 runner -> startProc(getHgBinaryName(), workFolderPath, params); | 186 { |
187 runningAction = ACT_REMOVE; | 187 params << "remove" << "--after" << "--force" << currentFile.mid(2); //Jump over status marker characters (e.g "M ") |
188 | |
189 runner -> startProc(getHgBinaryName(), workFolderPath, params); | |
190 runningAction = ACT_REMOVE; | |
191 } | |
188 } | 192 } |
189 } | 193 } |
190 } | 194 } |
191 | 195 |
192 void MainWindow::hgAnnotate() | 196 void MainWindow::hgAnnotate() |
566 QMessageBox::information(this, tr("HgExplorer"), tr("Mercurial command did not return any output.")); | 570 QMessageBox::information(this, tr("HgExplorer"), tr("Mercurial command did not return any output.")); |
567 } | 571 } |
568 } | 572 } |
569 | 573 |
570 | 574 |
571 bool MainWindow::isSelectedLocallyDeleted(QListWidget *workList) | 575 bool MainWindow::isSelectedDeletable(QListWidget *workList) |
572 { | 576 { |
573 QList<QListWidgetItem *> selList = workList -> selectedItems(); | 577 QList<QListWidgetItem *> selList = workList -> selectedItems(); |
574 if (selList.count() == 1) | 578 if (selList.count() == 1) |
575 { | 579 { |
576 if (selList.at(0)->text().mid(0, 1) == "!") | 580 QString tmp = selList.at(0)->text().mid(0, 1); |
577 { | 581 if (tmp == "A") |
582 { | |
583 //scheduled to be added, ok to remove (won't go to repo) | |
584 return true; | |
585 } | |
586 else if (tmp == "C") | |
587 { | |
588 //Tracked but unchanged, ok to remove | |
589 return true; | |
590 } | |
591 else if (tmp == "M") | |
592 { | |
593 //locally modified, ok to remove from repo | |
594 return true; | |
595 } | |
596 else if (tmp == "!") | |
597 { | |
598 //locally deleted, ok to remove from repo | |
578 return true; | 599 return true; |
579 } | 600 } |
580 } | 601 } |
581 return false; | 602 return false; |
582 } | 603 } |
920 if (n == 0) | 941 if (n == 0) |
921 { | 942 { |
922 hgAddAct -> setEnabled(false); | 943 hgAddAct -> setEnabled(false); |
923 } | 944 } |
924 | 945 |
925 if (!isSelectedLocallyDeleted(hgExp -> workFolderFileList)) | 946 if (!isSelectedDeletable(hgExp -> workFolderFileList)) |
926 { | 947 { |
927 hgRemoveAct -> setEnabled(false); | 948 hgRemoveAct -> setEnabled(false); |
928 } | 949 } |
929 | 950 |
930 hgResolveListAct -> setEnabled(true); | 951 hgResolveListAct -> setEnabled(true); |