Mercurial > hg > easyhg
comparison mainwindow.cpp @ 11:45c4ac1323b2
Version 0.4.2: Added hg serve. Can commit one file.
author | Jari Korhonen <jtkorhonen@gmail.com> |
---|---|
date | Sat, 15 May 2010 17:34:23 +0300 |
parents | 81a32fffee8f |
children | 59e03acf84fd |
comparison
equal
deleted
inserted
replaced
10:efb7b1654af4 | 11:45c4ac1323b2 |
---|---|
312 | 312 |
313 if (QDialog::Accepted == getCommitComment(comment)) | 313 if (QDialog::Accepted == getCommitComment(comment)) |
314 { | 314 { |
315 if (!comment.isEmpty()) | 315 if (!comment.isEmpty()) |
316 { | 316 { |
317 params << "commit" << "--message" << comment << "--user" << userInfo; | 317 QString currentFile = hgExp -> getCurrentFileListLine(); |
318 | |
319 if (isSelectedCommitable(hgExp -> workFolderFileList)) | |
320 { | |
321 //User wants to commit only one file | |
322 params << "commit" << "--message" << comment << "--user" << userInfo << currentFile.mid(2); | |
323 } | |
324 else | |
325 { | |
326 //Commit all changes | |
327 params << "commit" << "--message" << comment << "--user" << userInfo; | |
328 } | |
318 | 329 |
319 runner -> startProc(getHgBinaryName(), workFolderPath, params); | 330 runner -> startProc(getHgBinaryName(), workFolderPath, params); |
320 runningAction = ACT_COMMIT; | 331 runningAction = ACT_COMMIT; |
321 } | 332 } |
322 } | 333 } |
514 | 525 |
515 runner -> startProc(getHgBinaryName(), workFolderPath, params); | 526 runner -> startProc(getHgBinaryName(), workFolderPath, params); |
516 runningAction = ACT_PUSH; | 527 runningAction = ACT_PUSH; |
517 } | 528 } |
518 } | 529 } |
530 | |
531 | |
532 void MainWindow::hgServe() | |
533 { | |
534 if (runningAction == ACT_NONE) | |
535 { | |
536 QStringList params; | |
537 | |
538 params << "serve"; | |
539 | |
540 runner -> startProc(getHgBinaryName(), workFolderPath, params, false); | |
541 runningAction = ACT_SERVE; | |
542 | |
543 QMessageBox::information(this, "Serve", "Server running", QMessageBox::Close); | |
544 runner -> killProc(); | |
545 } | |
546 } | |
547 | |
519 | 548 |
520 | 549 |
521 void MainWindow::settings() | 550 void MainWindow::settings() |
522 { | 551 { |
523 SettingsDialog *settingsDlg = new SettingsDialog(this); | 552 SettingsDialog *settingsDlg = new SettingsDialog(this); |
569 { | 598 { |
570 QMessageBox::information(this, tr("HgExplorer"), tr("Mercurial command did not return any output.")); | 599 QMessageBox::information(this, tr("HgExplorer"), tr("Mercurial command did not return any output.")); |
571 } | 600 } |
572 } | 601 } |
573 | 602 |
603 | |
604 bool MainWindow::isSelectedCommitable(QListWidget *workList) | |
605 { | |
606 QList<QListWidgetItem *> selList = workList -> selectedItems(); | |
607 if (selList.count() == 1) | |
608 { | |
609 QString tmp = selList.at(0)->text().mid(0, 1); | |
610 if (tmp == "A") | |
611 { | |
612 //scheduled to be added, ok to commit | |
613 return true; | |
614 } | |
615 else if (tmp == "M") | |
616 { | |
617 //locally modified, ok to commit | |
618 return true; | |
619 } | |
620 } | |
621 return false; | |
622 } | |
574 | 623 |
575 bool MainWindow::isSelectedDeletable(QListWidget *workList) | 624 bool MainWindow::isSelectedDeletable(QListWidget *workList) |
576 { | 625 { |
577 QList<QListWidgetItem *> selList = workList -> selectedItems(); | 626 QList<QListWidgetItem *> selList = workList -> selectedItems(); |
578 if (selList.count() == 1) | 627 if (selList.count() == 1) |
756 case ACT_COMMIT: | 805 case ACT_COMMIT: |
757 case ACT_FILEDIFF: | 806 case ACT_FILEDIFF: |
758 case ACT_FOLDERDIFF: | 807 case ACT_FOLDERDIFF: |
759 case ACT_CHGSETDIFF: | 808 case ACT_CHGSETDIFF: |
760 case ACT_REVERT: | 809 case ACT_REVERT: |
810 case ACT_SERVE: | |
761 shouldHgStat = true; | 811 shouldHgStat = true; |
762 break; | 812 break; |
763 | 813 |
764 case ACT_UPDATE: | 814 case ACT_UPDATE: |
765 QMessageBox::information(this, "update", runner -> getStdOut()); | 815 QMessageBox::information(this, "update", runner -> getStdOut()); |
838 | 888 |
839 connect(hgUpdateToRevAct, SIGNAL(triggered()), this, SLOT(hgUpdateToRev())); | 889 connect(hgUpdateToRevAct, SIGNAL(triggered()), this, SLOT(hgUpdateToRev())); |
840 connect(hgAnnotateAct, SIGNAL(triggered()), this, SLOT(hgAnnotate())); | 890 connect(hgAnnotateAct, SIGNAL(triggered()), this, SLOT(hgAnnotate())); |
841 connect(hgResolveListAct, SIGNAL(triggered()), this, SLOT(hgResolveList())); | 891 connect(hgResolveListAct, SIGNAL(triggered()), this, SLOT(hgResolveList())); |
842 connect(hgResolveMarkAct, SIGNAL(triggered()), this, SLOT(hgResolveMark())); | 892 connect(hgResolveMarkAct, SIGNAL(triggered()), this, SLOT(hgResolveMark())); |
893 connect(hgServeAct, SIGNAL(triggered()), this, SLOT(hgServe())); | |
843 } | 894 } |
844 | 895 |
845 void MainWindow::tabChanged(int currTab) | 896 void MainWindow::tabChanged(int currTab) |
846 { | 897 { |
847 tabPage = currTab; | 898 tabPage = currTab; |
904 hgCommitAct -> setEnabled(localRepoActionsEnabled); | 955 hgCommitAct -> setEnabled(localRepoActionsEnabled); |
905 hgMergeAct -> setEnabled(localRepoActionsEnabled); | 956 hgMergeAct -> setEnabled(localRepoActionsEnabled); |
906 hgResolveListAct -> setEnabled(localRepoActionsEnabled); | 957 hgResolveListAct -> setEnabled(localRepoActionsEnabled); |
907 hgResolveMarkAct -> setEnabled(localRepoActionsEnabled); | 958 hgResolveMarkAct -> setEnabled(localRepoActionsEnabled); |
908 hgAnnotateAct -> setEnabled(localRepoActionsEnabled); | 959 hgAnnotateAct -> setEnabled(localRepoActionsEnabled); |
960 hgServeAct -> setEnabled(localRepoActionsEnabled); | |
909 | 961 |
910 hgExp -> enableDisableOtherTabs(); | 962 hgExp -> enableDisableOtherTabs(); |
911 | 963 |
912 int a, m, r, n; | 964 int a, m, r, n; |
913 countAMRNModifications(hgExp -> workFolderFileList, a, m, r, n); | 965 countAMRNModifications(hgExp -> workFolderFileList, a, m, r, n); |
1051 hgRemoveAct -> setStatusTip(tr("Remove selected working folder file from local repository (on next commit)")); | 1103 hgRemoveAct -> setStatusTip(tr("Remove selected working folder file from local repository (on next commit)")); |
1052 | 1104 |
1053 hgUpdateAct = new QAction(QIcon(":/images/update.png"), tr("Update working folder"), this); | 1105 hgUpdateAct = new QAction(QIcon(":/images/update.png"), tr("Update working folder"), this); |
1054 hgUpdateAct->setStatusTip(tr("Update working folder from local repository")); | 1106 hgUpdateAct->setStatusTip(tr("Update working folder from local repository")); |
1055 | 1107 |
1056 hgCommitAct = new QAction(QIcon(":/images/commit.png"), tr("Commit / Save changes"), this); | 1108 hgCommitAct = new QAction(QIcon(":/images/commit.png"), tr("Commit / Save change(s)"), this); |
1057 hgCommitAct->setStatusTip(tr("Save all changes in working folder (and all subfolders) to local repository")); | 1109 hgCommitAct->setStatusTip(tr("Save (selected file or all changed files working folder (and all subfolders)) to local repository")); |
1058 | 1110 |
1059 hgMergeAct = new QAction(QIcon(":/images/merge.png"), tr("Merge"), this); | 1111 hgMergeAct = new QAction(QIcon(":/images/merge.png"), tr("Merge"), this); |
1060 hgMergeAct->setStatusTip(tr("Merge two local repository changesets to working folder")); | 1112 hgMergeAct->setStatusTip(tr("Merge two local repository changesets to working folder")); |
1061 | 1113 |
1062 //Advanced actions | 1114 //Advanced actions |
1069 hgResolveListAct = new QAction(tr("Resolve (list)"), this); | 1121 hgResolveListAct = new QAction(tr("Resolve (list)"), this); |
1070 hgResolveListAct -> setStatusTip(tr("Resolve (list): Show list of files needing merge")); | 1122 hgResolveListAct -> setStatusTip(tr("Resolve (list): Show list of files needing merge")); |
1071 | 1123 |
1072 hgResolveMarkAct = new QAction(tr("Resolve (mark)"), this); | 1124 hgResolveMarkAct = new QAction(tr("Resolve (mark)"), this); |
1073 hgResolveMarkAct -> setStatusTip(tr("Resolve (mark): Mark selected file status as resolved")); | 1125 hgResolveMarkAct -> setStatusTip(tr("Resolve (mark): Mark selected file status as resolved")); |
1126 | |
1127 hgServeAct = new QAction(tr("Serve (via http)"), this); | |
1128 hgServeAct -> setStatusTip(tr("Serve local repository via http for workgroup access")); | |
1074 | 1129 |
1075 //Help actions | 1130 //Help actions |
1076 aboutAct = new QAction(tr("About"), this); | 1131 aboutAct = new QAction(tr("About"), this); |
1077 aboutAct->setStatusTip(tr("Show the application's About box")); | 1132 aboutAct->setStatusTip(tr("Show the application's About box")); |
1078 | 1133 |
1095 advancedMenu -> addSeparator(); | 1150 advancedMenu -> addSeparator(); |
1096 advancedMenu -> addAction(hgAnnotateAct); | 1151 advancedMenu -> addAction(hgAnnotateAct); |
1097 advancedMenu -> addSeparator(); | 1152 advancedMenu -> addSeparator(); |
1098 advancedMenu -> addAction(hgResolveListAct); | 1153 advancedMenu -> addAction(hgResolveListAct); |
1099 advancedMenu -> addAction(hgResolveMarkAct); | 1154 advancedMenu -> addAction(hgResolveMarkAct); |
1155 advancedMenu -> addSeparator(); | |
1156 advancedMenu -> addAction(hgServeAct); | |
1100 | 1157 |
1101 helpMenu = menuBar()->addMenu(tr("Help")); | 1158 helpMenu = menuBar()->addMenu(tr("Help")); |
1102 helpMenu->addAction(aboutAct); | 1159 helpMenu->addAction(aboutAct); |
1103 helpMenu->addAction(aboutQtAct); | 1160 helpMenu->addAction(aboutQtAct); |
1104 } | 1161 } |