Mercurial > hg > easyhg
comparison mainwindow.cpp @ 69:6d5a5571caec
* Basic working "Open Repository" dialog
author | Chris Cannam |
---|---|
date | Thu, 18 Nov 2010 15:14:39 +0000 |
parents | 7b1b333acf93 |
children | 121cb1032717 |
comparison
equal
deleted
inserted
replaced
68:b918e57c7bea | 69:6d5a5571caec |
---|---|
29 #include <QToolButton> | 29 #include <QToolButton> |
30 #include <QSettings> | 30 #include <QSettings> |
31 | 31 |
32 #include "mainwindow.h" | 32 #include "mainwindow.h" |
33 #include "settingsdialog.h" | 33 #include "settingsdialog.h" |
34 #include "multichoicedialog.h" | |
34 #include "startupdialog.h" | 35 #include "startupdialog.h" |
35 #include "colourset.h" | 36 #include "colourset.h" |
36 #include "debug.h" | 37 #include "debug.h" |
37 | 38 |
38 | 39 |
692 StartupDialog *dlg = new StartupDialog(this); | 693 StartupDialog *dlg = new StartupDialog(this); |
693 if (dlg->exec()) firstStart = false; | 694 if (dlg->exec()) firstStart = false; |
694 } | 695 } |
695 | 696 |
696 | 697 |
698 void MainWindow::open() | |
699 { | |
700 MultiChoiceDialog *d = new MultiChoiceDialog | |
701 (tr("Open Repository"), | |
702 tr("What would you like to open?"), | |
703 this); | |
704 | |
705 d->addChoice("remote", | |
706 tr("<qt><center><img src=\":images/browser-64.png\"><br>Remote repository</center></qt>"), | |
707 tr("Open an existing remote repository, by cloning a Mercurial repository URL into a local folder."), | |
708 MultiChoiceDialog::UrlArg); | |
709 | |
710 d->addChoice("local", | |
711 tr("<qt><center><img src=\":images/hglogo-64.png\"><br>Local repository</center></qt>"), | |
712 tr("Open an existing local Mercurial repository."), | |
713 MultiChoiceDialog::DirectoryArg); | |
714 | |
715 d->addChoice("init", | |
716 tr("<qt><center><img src=\":images/hdd_unmount-64.png\"><br>File folder</center></qt>"), | |
717 tr("Open a local folder, by creating a Mercurial repository in it."), | |
718 MultiChoiceDialog::DirectoryArg); | |
719 | |
720 d->setCurrentChoice("local"); | |
721 | |
722 if (d->exec() == QDialog::Accepted) { | |
723 | |
724 QString choice = d->getCurrentChoice(); | |
725 QString arg = d->getArgument().trimmed(); | |
726 | |
727 if (choice == "local") { | |
728 workFolderPath = arg; | |
729 } else { | |
730 //!!! | |
731 } | |
732 | |
733 hgExp->clearLists(); | |
734 enableDisableActions(); | |
735 hgStat(); | |
736 } | |
737 | |
738 delete d; | |
739 } | |
740 | |
697 void MainWindow::settings() | 741 void MainWindow::settings() |
698 { | 742 { |
743 /*!!! | |
699 SettingsDialog *settingsDlg = new SettingsDialog(this); | 744 SettingsDialog *settingsDlg = new SettingsDialog(this); |
700 settingsDlg->setModal(true); | 745 settingsDlg->setModal(true); |
701 settingsDlg->exec(); | 746 settingsDlg->exec(); |
702 hgExp -> clearLists(); | 747 hgExp -> clearLists(); |
703 enableDisableActions(); | 748 enableDisableActions(); |
704 hgStat(); | 749 hgStat(); |
750 */ | |
705 } | 751 } |
706 | 752 |
707 #define STDOUT_NEEDS_BIG_WINDOW 512 | 753 #define STDOUT_NEEDS_BIG_WINDOW 512 |
708 #define SMALL_WND_W 500 | 754 #define SMALL_WND_W 500 |
709 #define SMALL_WND_H 300 | 755 #define SMALL_WND_H 300 |
949 { | 995 { |
950 //Successful running. | 996 //Successful running. |
951 switch(runningAction) | 997 switch(runningAction) |
952 { | 998 { |
953 case ACT_STAT: | 999 case ACT_STAT: |
954 { | 1000 MultiChoiceDialog::addRecentArgument("local", workFolderPath); |
955 hgExp -> updateWorkFolderFileList(runner -> getStdOut()); | 1001 hgExp -> updateWorkFolderFileList(runner -> getStdOut()); |
956 } | |
957 break; | 1002 break; |
958 | 1003 |
959 case ACT_INCOMING: | 1004 case ACT_INCOMING: |
960 case ACT_ANNOTATE: | 1005 case ACT_ANNOTATE: |
961 case ACT_RESOLVE_LIST: | 1006 case ACT_RESOLVE_LIST: |
973 QMessageBox::information(this, "Push", runner -> getStdOut()); | 1018 QMessageBox::information(this, "Push", runner -> getStdOut()); |
974 shouldHgStat = true; | 1019 shouldHgStat = true; |
975 break; | 1020 break; |
976 | 1021 |
977 case ACT_INIT: | 1022 case ACT_INIT: |
1023 MultiChoiceDialog::addRecentArgument("init", workFolderPath); | |
1024 MultiChoiceDialog::addRecentArgument("local", workFolderPath); | |
978 enableDisableActions(); | 1025 enableDisableActions(); |
979 shouldHgStat = true; | 1026 shouldHgStat = true; |
980 break; | 1027 break; |
981 | 1028 |
982 case ACT_CLONEFROMREMOTE: | 1029 case ACT_CLONEFROMREMOTE: |
1030 MultiChoiceDialog::addRecentArgument("local", workFolderPath); | |
1031 MultiChoiceDialog::addRecentArgument("remote", remoteRepoPath); | |
983 QMessageBox::information(this, "Clone", runner -> getStdOut()); | 1032 QMessageBox::information(this, "Clone", runner -> getStdOut()); |
984 enableDisableActions(); | 1033 enableDisableActions(); |
985 shouldHgStat = true; | 1034 shouldHgStat = true; |
986 break; | 1035 break; |
987 | 1036 |
1106 connect(hgRetryMergeAct, SIGNAL(triggered()), this, SLOT(hgRetryMerge())); | 1155 connect(hgRetryMergeAct, SIGNAL(triggered()), this, SLOT(hgRetryMerge())); |
1107 connect(hgTagAct, SIGNAL(triggered()), this, SLOT(hgTag())); | 1156 connect(hgTagAct, SIGNAL(triggered()), this, SLOT(hgTag())); |
1108 connect(hgIgnoreAct, SIGNAL(triggered()), this, SLOT(hgIgnore())); | 1157 connect(hgIgnoreAct, SIGNAL(triggered()), this, SLOT(hgIgnore())); |
1109 | 1158 |
1110 connect(settingsAct, SIGNAL(triggered()), this, SLOT(settings())); | 1159 connect(settingsAct, SIGNAL(triggered()), this, SLOT(settings())); |
1160 connect(openAct, SIGNAL(triggered()), this, SLOT(open())); | |
1111 | 1161 |
1112 connect(hgInitAct, SIGNAL(triggered()), this, SLOT(hgInit())); | 1162 connect(hgInitAct, SIGNAL(triggered()), this, SLOT(hgInit())); |
1113 connect(hgCloneFromRemoteAct, SIGNAL(triggered()), this, SLOT(hgCloneFromRemote())); | 1163 connect(hgCloneFromRemoteAct, SIGNAL(triggered()), this, SLOT(hgCloneFromRemote())); |
1114 connect(hgIncomingAct, SIGNAL(triggered()), this, SLOT(hgIncoming())); | 1164 connect(hgIncomingAct, SIGNAL(triggered()), this, SLOT(hgIncoming())); |
1115 connect(hgPullAct, SIGNAL(triggered()), this, SLOT(hgPull())); | 1165 connect(hgPullAct, SIGNAL(triggered()), this, SLOT(hgPull())); |
1308 hgInitAct->setStatusTip(tr("Create an empty local repository in selected folder")); | 1358 hgInitAct->setStatusTip(tr("Create an empty local repository in selected folder")); |
1309 | 1359 |
1310 hgCloneFromRemoteAct = new QAction(tr("Clone from remote"), this); | 1360 hgCloneFromRemoteAct = new QAction(tr("Clone from remote"), this); |
1311 hgCloneFromRemoteAct->setStatusTip(tr("Clone from remote repository into local repository in selected folder")); | 1361 hgCloneFromRemoteAct->setStatusTip(tr("Clone from remote repository into local repository in selected folder")); |
1312 | 1362 |
1363 openAct = new QAction(QIcon(":/images/fileopen.png"), tr("Open..."), this); | |
1364 openAct -> setStatusTip(tr("Open repository")); | |
1365 openAct -> setIconVisibleInMenu(true); | |
1366 | |
1313 settingsAct = new QAction(QIcon(":/images/settings.png"), tr("Settings..."), this); | 1367 settingsAct = new QAction(QIcon(":/images/settings.png"), tr("Settings..."), this); |
1314 settingsAct -> setStatusTip(tr("View and change application settings")); | 1368 settingsAct -> setStatusTip(tr("View and change application settings")); |
1315 settingsAct -> setIconVisibleInMenu(true); | 1369 settingsAct -> setIconVisibleInMenu(true); |
1316 | 1370 |
1317 exitAct = new QAction(QIcon(":/images/exit.png"), tr("Exit"), this); | 1371 exitAct = new QAction(QIcon(":/images/exit.png"), tr("Exit"), this); |
1397 { | 1451 { |
1398 fileMenu = menuBar()->addMenu(tr("File")); | 1452 fileMenu = menuBar()->addMenu(tr("File")); |
1399 fileMenu -> addAction(hgInitAct); | 1453 fileMenu -> addAction(hgInitAct); |
1400 fileMenu -> addAction(hgCloneFromRemoteAct); | 1454 fileMenu -> addAction(hgCloneFromRemoteAct); |
1401 fileMenu -> addSeparator(); | 1455 fileMenu -> addSeparator(); |
1456 fileMenu -> addAction(openAct); | |
1402 fileMenu -> addAction(settingsAct); | 1457 fileMenu -> addAction(settingsAct); |
1403 fileMenu -> addSeparator(); | 1458 fileMenu -> addSeparator(); |
1404 fileMenu -> addAction(exitAct); | 1459 fileMenu -> addAction(exitAct); |
1405 | 1460 |
1406 advancedMenu = menuBar()->addMenu(tr("Advanced")); | 1461 advancedMenu = menuBar()->addMenu(tr("Advanced")); |
1425 | 1480 |
1426 void MainWindow::createToolBars() | 1481 void MainWindow::createToolBars() |
1427 { | 1482 { |
1428 fileToolBar = addToolBar(tr("File")); | 1483 fileToolBar = addToolBar(tr("File")); |
1429 fileToolBar -> setIconSize(QSize(MY_ICON_SIZE, MY_ICON_SIZE)); | 1484 fileToolBar -> setIconSize(QSize(MY_ICON_SIZE, MY_ICON_SIZE)); |
1430 fileToolBar -> addAction(settingsAct); | 1485 fileToolBar -> addAction(openAct); |
1431 fileToolBar -> addAction(hgStatAct); | 1486 fileToolBar -> addAction(hgStatAct); |
1432 fileToolBar -> addSeparator(); | 1487 fileToolBar -> addSeparator(); |
1433 // fileToolBar -> addAction(hgChgSetDiffAct); | 1488 // fileToolBar -> addAction(hgChgSetDiffAct); |
1434 fileToolBar -> setMovable(false); | 1489 fileToolBar -> setMovable(false); |
1435 | 1490 |
1465 void MainWindow::createStatusBar() | 1520 void MainWindow::createStatusBar() |
1466 { | 1521 { |
1467 statusBar()->showMessage(tr("Ready")); | 1522 statusBar()->showMessage(tr("Ready")); |
1468 } | 1523 } |
1469 | 1524 |
1525 | |
1526 //!!! review these: | |
1527 | |
1470 void MainWindow::readSettings() | 1528 void MainWindow::readSettings() |
1471 { | 1529 { |
1472 QDir workFolder; | 1530 QDir workFolder; |
1473 | 1531 |
1474 QSettings settings; | 1532 QSettings settings; |