X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fbitcoingui.cpp;h=15c8075f95dd9c01befce10d6cece274e98930bb;hb=af2cdf9f985a396e7e32b9c16d9e696db4bc0f44;hp=03a91db2462604388868cc333758bb03bb0aba1b;hpb=db833f8b6b911b2fbf4df865bdc23949f5fed800;p=novacoin.git diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 03a91db..15c8075 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 "secondauthdialog.h" #include "multisigdialog.h" #include "optionsdialog.h" #include "aboutdialog.h" @@ -70,11 +71,15 @@ #include extern bool fWalletUnlockMintOnly; +extern uint64_t nStakeInputsMapSize; BitcoinGUI::BitcoinGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), + signVerifyMessageDialog(0), + secondAuthDialog(0), + multisigPage(0), encryptWalletAction(0), lockWalletAction(0), unlockWalletAction(0), @@ -85,9 +90,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): notificator(0), rpcConsole(0), aboutDialog(0), - optionsDialog(0), - multisigPage(0), - signVerifyMessageDialog(0) + optionsDialog(0) { resize(850, 550); setWindowTitle(tr("NovaCoin") + " - " + tr("Wallet")); @@ -136,6 +139,8 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): signVerifyMessageDialog = new SignVerifyMessageDialog(0); + secondAuthDialog = new SecondAuthDialog(0); + multisigPage = new MultisigDialog(0); centralWidget = new QStackedWidget(this); @@ -203,6 +208,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): rpcConsole = new RPCConsole(0); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); + connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(raise())); aboutDialog = new AboutDialog(0); optionsDialog = new OptionsDialog(0); @@ -227,6 +233,7 @@ BitcoinGUI::~BitcoinGUI() delete aboutDialog; delete optionsDialog; delete multisigPage; + delete secondAuthDialog; delete signVerifyMessageDialog; } @@ -322,6 +329,8 @@ void BitcoinGUI::createActions() signMessageAction->setStatusTip(tr("Sign messages with your Novacoin addresses to prove you own them")); verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this); verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Novacoin addresses")); + secondAuthAction = new QAction(QIcon(":/icons/key"), tr("Second &auth..."), this); + secondAuthAction->setStatusTip(tr("Second auth with your Novacoin addresses")); lockWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Lock wallet"), this); lockWalletAction->setStatusTip(tr("Lock wallet")); @@ -355,6 +364,7 @@ void BitcoinGUI::createActions() connect(changePassphraseAction, SIGNAL(triggered()), this, SLOT(changePassphrase())); connect(signMessageAction, SIGNAL(triggered()), this, SLOT(gotoSignMessageTab())); connect(verifyMessageAction, SIGNAL(triggered()), this, SLOT(gotoVerifyMessageTab())); + connect(secondAuthAction, SIGNAL(triggered()), this, SLOT(gotoSecondAuthPage())); } void BitcoinGUI::createMenuBar() @@ -376,6 +386,7 @@ void BitcoinGUI::createMenuBar() file->addAction(exportAction); file->addAction(signMessageAction); file->addAction(verifyMessageAction); + file->addAction(secondAuthAction); file->addAction(multisigAction); file->addSeparator(); file->addAction(quitAction); @@ -476,6 +487,7 @@ void BitcoinGUI::setWalletModel(WalletModel *walletModel) receiveCoinsPage->setModel(walletModel->getAddressTableModel()); sendCoinsPage->setModel(walletModel); signVerifyMessageDialog->setModel(walletModel); + secondAuthDialog->setModel(walletModel); multisigPage->setModel(walletModel); setEncryptionStatus(walletModel->getEncryptionStatus()); @@ -519,6 +531,7 @@ void BitcoinGUI::createTrayIcon() trayIconMenu->addSeparator(); trayIconMenu->addAction(signMessageAction); trayIconMenu->addAction(verifyMessageAction); + trayIconMenu->addAction(secondAuthAction); trayIconMenu->addSeparator(); trayIconMenu->addAction(optionsAction); trayIconMenu->addAction(openRPCConsoleAction); @@ -621,6 +634,9 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks) progressBar->setVisible(false); } + tooltip = tr("Current PoW difficulty is %1.").arg(clientModel->getDifficulty(false)) + QString("
") + tooltip; + tooltip = tr("Current PoS difficulty is %1.").arg(clientModel->getDifficulty(true)) + QString("
") + tooltip; + QDateTime lastBlockDate = clientModel->getLastBlockDate(); int secs = lastBlockDate.secsTo(QDateTime::currentDateTime()); QString text; @@ -703,49 +719,18 @@ void BitcoinGUI::updateMining() return; } - float nKernelsRate = 0, nCoinDaysRate = 0; - walletModel->getStakeStats(nKernelsRate, nCoinDaysRate); - - if (nKernelsRate > 0) + if (nStakeInputsMapSize > 0) { labelMiningIcon->setPixmap(QIcon(":/icons/mining_active").pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); uint64_t nNetworkWeight = clientModel->getPoSKernelPS(); -/* - double dDifficulty = clientModel->getDifficulty(true); - QString msg; - - int nApproxTime = 4294967297 * dDifficulty / nTotalWeight; - - if (nApproxTime < 60) - msg = tr("%n second(s)", "", nApproxTime); - else if (nApproxTime < 60*60) - msg = tr("%n minute(s)", "", nApproxTime / 60); - else if (nApproxTime < 24*60*60) - msg = tr("%n hour(s)", "", nApproxTime / 3600); - else - msg = tr("%n day(s)", "", nApproxTime / 86400); - - 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(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>")); + labelMiningIcon->setToolTip(QString("
")+tr("Stake miner is active
%1 inputs being used for mining
Network weight is %3").arg(nStakeInputsMapSize).arg(nNetworkWeight)+QString("<\nobr>")); } else labelMiningIcon->setToolTip(tr("No suitable inputs were found")); } -void BitcoinGUI::error(const QString &title, const QString &message, bool modal) -{ - // Report errors from network/worker thread - if(modal) - { - QMessageBox::critical(this, title, message, QMessageBox::Ok, QMessageBox::Ok); - } else { - notificator->notify(Notificator::Critical, title, message); - } -} - void BitcoinGUI::message(const QString &title, const QString &message, unsigned int style, const QString &detail) { QString strTitle = tr("NovaCoin") + " - "; @@ -957,10 +942,18 @@ void BitcoinGUI::gotoVerifyMessageTab(QString addr) signVerifyMessageDialog->setAddress_VM(addr); } +void BitcoinGUI::gotoSecondAuthPage(QString addr) +{ + secondAuthDialog->show(); + secondAuthDialog->raise(); + secondAuthDialog->activateWindow(); +} + void BitcoinGUI::gotoMultisigPage() { multisigPage->show(); - multisigPage->setFocus(); + multisigPage->raise(); + multisigPage->activateWindow(); } void BitcoinGUI::dragEnterEvent(QDragEnterEvent *event) @@ -1023,7 +1016,7 @@ void BitcoinGUI::setEncryptionStatus(int status) labelEncryptionIcon->setToolTip(tr("Wallet is encrypted and currently unlocked")); encryptWalletAction->setChecked(true); changePassphraseAction->setEnabled(true); - encryptWalletAction->setEnabled(false); // TODO: decrypt currently not supported + encryptWalletAction->setEnabled(true); lockWalletAction->setEnabled(true); lockWalletAction->setChecked(false); @@ -1042,7 +1035,7 @@ void BitcoinGUI::setEncryptionStatus(int status) labelEncryptionIcon->setToolTip(tr("Wallet is encrypted and currently locked")); encryptWalletAction->setChecked(true); changePassphraseAction->setEnabled(true); - encryptWalletAction->setEnabled(false); // TODO: decrypt currently not supported + encryptWalletAction->setEnabled(true); lockWalletAction->setChecked(true); unlockWalletAction->setChecked(false); @@ -1116,7 +1109,7 @@ void BitcoinGUI::dumpWallet() QString filename = QFileDialog::getSaveFileName(this, tr("Dump Wallet"), saveDir, tr("Wallet dump (*.txt)")); if(!filename.isEmpty()) { if(!walletModel->dumpWallet(filename)) { - error(tr("Dump failed"), + message(tr("Dump failed"), tr("An error happened while trying to save the keys to your location.\n" "Keys were not saved.") ,CClientUIInterface::MSG_ERROR); @@ -1149,7 +1142,7 @@ void BitcoinGUI::importWallet() QString filename = QFileDialog::getOpenFileName(this, tr("Import Wallet"), openDir, tr("Wallet dump (*.txt)")); if(!filename.isEmpty()) { if(!walletModel->importWallet(filename)) { - error(tr("Import Failed"), + message(tr("Import Failed"), tr("An error happened while trying to import the keys.\n" "Some or all keys from:\n %1,\n were not imported into your wallet.") .arg(filename) @@ -1229,3 +1222,14 @@ void BitcoinGUI::toggleHidden() { showNormalIfMinimized(true); } + +void BitcoinGUI::error(const QString &title, const QString &message, bool modal) +{ + // Report errors from network/worker thread + if(modal) + { + QMessageBox::critical(this, title, message, QMessageBox::Ok, QMessageBox::Ok); + } else { + notificator->notify(Notificator::Critical, title, message); + } +}