Mercurial > hg > easyhg
comparison src/hgrunner.cpp @ 561:1ff2a1bf0a40
Add a cancel button to the progress bar
| author | Chris Cannam |
|---|---|
| date | Mon, 27 Feb 2012 17:25:50 +0000 |
| parents | 533519ebc0cb |
| children | 39cac58b4f92 |
comparison
equal
deleted
inserted
replaced
| 560:533519ebc0cb | 561:1ff2a1bf0a40 |
|---|---|
| 18 #include "hgrunner.h" | 18 #include "hgrunner.h" |
| 19 #include "common.h" | 19 #include "common.h" |
| 20 #include "debug.h" | 20 #include "debug.h" |
| 21 #include "settingsdialog.h" | 21 #include "settingsdialog.h" |
| 22 | 22 |
| 23 #include <QPushButton> | |
| 24 #include <QListWidget> | |
| 25 #include <QDialog> | |
| 26 #include <QLabel> | |
| 27 #include <QVBoxLayout> | |
| 28 #include <QSettings> | 23 #include <QSettings> |
| 29 #include <QInputDialog> | 24 #include <QInputDialog> |
| 30 #include <QDesktopServices> | 25 #include <QDesktopServices> |
| 31 #include <QTemporaryFile> | 26 #include <QTemporaryFile> |
| 32 #include <QDir> | 27 #include <QDir> |
| 28 #include <QProgressBar> | |
| 29 #include <QToolButton> | |
| 30 #include <QGridLayout> | |
| 33 | 31 |
| 34 #include <iostream> | 32 #include <iostream> |
| 35 #include <errno.h> | 33 #include <errno.h> |
| 36 #include <stdio.h> | 34 #include <stdio.h> |
| 37 #include <stdlib.h> | 35 #include <stdlib.h> |
| 42 #include <fcntl.h> | 40 #include <fcntl.h> |
| 43 #else | 41 #else |
| 44 #include <process.h> | 42 #include <process.h> |
| 45 #endif | 43 #endif |
| 46 | 44 |
| 47 HgRunner::HgRunner(QString myDirPath, QWidget * parent) : | 45 HgRunner::HgRunner(QString myDirPath, QWidget *parent) : |
| 48 QProgressBar(parent), | 46 QWidget(parent), |
| 49 m_myDirPath(myDirPath) | 47 m_myDirPath(myDirPath) |
| 50 { | 48 { |
| 49 QGridLayout *layout = new QGridLayout(this); | |
| 50 layout->setMargin(0); | |
| 51 | |
| 52 m_progress = new QProgressBar; | |
| 53 layout->addWidget(m_progress, 0, 0); | |
| 54 | |
| 55 m_cancel = new QToolButton; | |
| 56 m_cancel->setIcon(QIcon(":images/cancel-small.png")); | |
| 57 m_cancel->setToolButtonStyle(Qt::ToolButtonIconOnly); | |
| 58 m_cancel->setAutoRaise(true); | |
| 59 connect(m_cancel, SIGNAL(clicked()), this, SLOT(killCurrentActions())); | |
| 60 layout->addWidget(m_cancel, 0, 1); | |
| 61 | |
| 51 m_proc = 0; | 62 m_proc = 0; |
| 52 | 63 |
| 53 // Always unbundle the extension: even if it already exists (in | 64 // Always unbundle the extension: even if it already exists (in |
| 54 // case we're upgrading) and even if we're not going to use it (so | 65 // case we're upgrading) and even if we're not going to use it (so |
| 55 // that it's available in case someone wants to use it later, | 66 // that it's available in case someone wants to use it later, |
| 57 // prefer is the one in the settings first, if it exists; then the | 68 // prefer is the one in the settings first, if it exists; then the |
| 58 // unbundled one; then anything in the path if for some reason | 69 // unbundled one; then anything in the path if for some reason |
| 59 // unbundling failed | 70 // unbundling failed |
| 60 unbundleExtension(); | 71 unbundleExtension(); |
| 61 | 72 |
| 62 setTextVisible(false); | 73 m_progress->setTextVisible(false); |
| 63 setVisible(false); | 74 hide(); |
| 64 m_isRunning = false; | 75 m_isRunning = false; |
| 65 } | 76 } |
| 66 | 77 |
| 67 HgRunner::~HgRunner() | 78 HgRunner::~HgRunner() |
| 68 { | 79 { |
| 522 | 533 |
| 523 //!!! want an option to use the mercurial_keyring extension as well | 534 //!!! want an option to use the mercurial_keyring extension as well |
| 524 } | 535 } |
| 525 | 536 |
| 526 m_isRunning = true; | 537 m_isRunning = true; |
| 527 setRange(0, 0); | 538 m_progress->setRange(0, 0); |
| 528 if (!action.shouldBeFast()) show(); | 539 if (!action.shouldBeFast()) show(); |
| 529 m_stdout.clear(); | 540 m_stdout.clear(); |
| 530 m_stderr.clear(); | 541 m_stderr.clear(); |
| 531 m_realm = ""; | 542 m_realm = ""; |
| 532 m_userName = ""; | 543 m_userName = ""; |
