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);