X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fbitcoingui.cpp;h=6cfe858bc19f4c48725a89db42f021b248d1e519;hb=77a43545b4491b9703d803765da9059d2bdd5aaa;hp=2f9e075833ff5835cf70eae70a3e16cd1f3f56e2;hpb=f9fbf0146a96970a7ea8e8a0e207f18523ceaf1f;p=novacoin.git diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 2f9e075..6cfe858 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -9,6 +9,7 @@ #include "addressbookpage.h" #include "sendcoinsdialog.h" #include "signverifymessagedialog.h" +#include "multisigdialog.h" #include "optionsdialog.h" #include "aboutdialog.h" #include "clientmodel.h" @@ -131,6 +132,8 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): signVerifyMessageDialog = new SignVerifyMessageDialog(this); + multisigPage = new MultisigDialog(this); + centralWidget = new QStackedWidget(this); centralWidget->addWidget(overviewPage); centralWidget->addWidget(transactionsPage); @@ -254,6 +257,9 @@ void BitcoinGUI::createActions() addressBookAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_6)); tabGroup->addAction(addressBookAction); + multisigAction = new QAction(QIcon(":/icons/send"), tr("Multisig"), this); + tabGroup->addAction(multisigAction); + connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage())); connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); @@ -266,6 +272,8 @@ void BitcoinGUI::createActions() connect(mintingAction, SIGNAL(triggered()), this, SLOT(gotoMintingPage())); connect(addressBookAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage())); + connect(multisigAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); + connect(multisigAction, SIGNAL(triggered()), this, SLOT(gotoMultisigPage())); quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this); quitAction->setToolTip(tr("Quit application")); @@ -352,6 +360,7 @@ void BitcoinGUI::createMenuBar() file->addAction(exportAction); file->addAction(signMessageAction); file->addAction(verifyMessageAction); + file->addAction(multisigAction); file->addSeparator(); file->addAction(quitAction); @@ -420,7 +429,10 @@ void BitcoinGUI::setClientModel(ClientModel *clientModel) setNumBlocks(clientModel->getNumBlocks(), clientModel->getNumBlocksOfPeers()); connect(clientModel, SIGNAL(numBlocksChanged(int,int)), this, SLOT(setNumBlocks(int,int))); - connect(clientModel, SIGNAL(numBlocksChanged(int,int)), this, SLOT(updateMining())); + + QTimer *timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(updateMining())); + timer->start(10*1000); //10 seconds // Report errors from network/worker thread connect(clientModel, SIGNAL(error(QString,QString,bool)), this, SLOT(error(QString,QString,bool))); @@ -448,6 +460,7 @@ void BitcoinGUI::setWalletModel(WalletModel *walletModel) receiveCoinsPage->setModel(walletModel->getAddressTableModel()); sendCoinsPage->setModel(walletModel); signVerifyMessageDialog->setModel(walletModel); + multisigPage->setModel(walletModel); setEncryptionStatus(walletModel->getEncryptionStatus()); connect(walletModel, SIGNAL(encryptionStatusChanged(int)), this, SLOT(setEncryptionStatus(int))); @@ -485,6 +498,7 @@ void BitcoinGUI::createTrayIcon() trayIconMenu->addAction(toggleHideAction); trayIconMenu->addSeparator(); trayIconMenu->addAction(sendCoinsAction); + trayIconMenu->addAction(multisigAction); trayIconMenu->addAction(receiveCoinsAction); trayIconMenu->addSeparator(); trayIconMenu->addAction(signMessageAction); @@ -495,10 +509,9 @@ void BitcoinGUI::createTrayIcon() #ifndef Q_OS_MAC // This is built-in on Mac trayIconMenu->addSeparator(); - trayIconMenu->addAction(quitAction); - - notificator = new Notificator(qApp->applicationName(), trayIcon, 0); + trayIconMenu->addAction(quitAction); #endif + notificator = new Notificator(QApplication::applicationName(), trayIcon, this); } #ifndef Q_OS_MAC @@ -680,7 +693,7 @@ void BitcoinGUI::updateMining() { labelMiningIcon->setPixmap(QIcon(":/icons/mining_active").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); - uint64 nNetworkWeight = clientModel->getPoSKernelPS(); + uint64_t nNetworkWeight = clientModel->getPoSKernelPS(); /* double dDifficulty = clientModel->getDifficulty(true); QString msg; @@ -699,7 +712,7 @@ void BitcoinGUI::updateMining() labelMiningIcon->setToolTip(tr("Stake miner is active\nYour current stake weight is %1\nNetwork weight is %2\nAverage block generation time is %3").arg(nTotalWeight).arg(dNetworkWeight).arg(msg)); */ - labelMiningIcon->setToolTip(tr("Stake miner is active\nKernel rate is %1 k/s\nCD rate is %2 CD/s\nNetwork weight is %3").arg(nKernelsRate).arg(nCoinDaysRate).arg(nNetworkWeight)); + labelMiningIcon->setToolTip(QString("")+tr("Stake miner is active
Kernel rate is %1 k/s
CD rate is %2 CD/s
Network weight is %3").arg(nKernelsRate).arg(nCoinDaysRate).arg(nNetworkWeight)+QString("<\nobr>")); } else labelMiningIcon->setToolTip(tr("No suitable inputs were found")); @@ -924,6 +937,12 @@ void BitcoinGUI::gotoVerifyMessageTab(QString addr) signVerifyMessageDialog->setAddress_VM(addr); } +void BitcoinGUI::gotoMultisigPage() +{ + multisigPage->show(); + multisigPage->setFocus(); +} + void BitcoinGUI::dragEnterEvent(QDragEnterEvent *event) { // Accept only URIs @@ -1158,18 +1177,29 @@ void BitcoinGUI::showNormalIfMinimized(bool fToggleHidden) // activateWindow() (sometimes) helps with keyboard focus on Windows if (isHidden()) { + // Make sure the window is not minimized + setWindowState(windowState() & (~Qt::WindowMinimized | Qt::WindowActive)); + // Then show it show(); + raise(); activateWindow(); } else if (isMinimized()) { showNormal(); + raise(); activateWindow(); } else if (GUIUtil::isObscured(this)) { raise(); activateWindow(); + if(fToggleHidden) + { + Sleep(1); + if (GUIUtil::isObscured(this)) + hide(); + } } else if(fToggleHidden) hide();