void MibitDialog::keyPressEvent ( QKeyEvent * event ) { if ( event->key() == Qt::Key_Escape ) { hideDialog(); } //else ignore event. }
void LabDialog::closeCallback(Ref *sender, Widget::TouchEventType type) { if(type == Widget::TouchEventType::ENDED) { auto btn = (Button*)sender; btn->setTouchEnabled(false); hideDialog(); } }
MibitDialog::MibitDialog( QWidget *parent, const QString &msg, const QString &file, const QPixmap &icon, AnimationType animation ) : QSvgWidget( parent ) { if (file != 0) setSVG(file); m_parent = parent; animType = animation; setMinimumHeight(100); setFixedSize(0,0); //until show we grow it setMaxHeight(maxH); //default sizes setMaxWidth(maxW); animRate = 500; //default animation speed (half second rate). shakeTimeToLive = 0; par = false; parTimes = 0; img = new QLabel(); hLayout = new QHBoxLayout(); vLayout = new QVBoxLayout(); text = new QLabel(msg); btnClose = new QPushButton("Close"); ///TODO: what about translations??? shakeTimer = new QTimer(this); shakeTimer->setInterval(20); img->setPixmap(icon); img->setMaximumHeight(54); //the icon size is hardcoded now. img->setMaximumWidth(54); img->setAlignment(Qt::AlignLeft); img->setMargin(4); btnClose->setMaximumWidth(120); setLayout(vLayout); text->setWordWrap(true); text->setAlignment(Qt::AlignJustify|Qt::AlignVCenter); text->setMargin(5); hLayout->addWidget(img,0,Qt::AlignCenter); hLayout->addWidget(text,1,Qt::AlignCenter); vLayout->addLayout(hLayout,2); vLayout->addWidget(btnClose,1,Qt::AlignCenter); timeLine = new QTimeLine(animRate, this); wTimeLine = new QTimeLine(2000, this); wTimeLine->setFrameRange(90,190); wTimeLine->setCurveShape(QTimeLine::CosineCurve); connect(timeLine, SIGNAL(frameChanged(int)), this, SLOT(animate(int))); connect(wTimeLine, SIGNAL(frameChanged(int)), this, SLOT(waveIt(int))); connect(btnClose,SIGNAL(clicked()),this, SLOT(hideDialog())); connect(timeLine,SIGNAL(finished()), this, SLOT(onAnimationFinished())); connect(shakeTimer,SIGNAL(timeout()), this, SLOT(shakeIt())); }
ProgressDialog::ProgressDialog(QWidget * parent, QString textStr) : QDialog(parent,Qt::Popup | Qt::Dialog) { setupUi(this); textLbl->setText(textStr); setProgressBar(0); connect(cancelBtn,SIGNAL(clicked()),this,SIGNAL(cancel()), Qt::UniqueConnection); connect(hideBtn,SIGNAL(clicked()),this,SIGNAL(hideDialog()), Qt::UniqueConnection); QFile fileSpecific(":/res/ui_styles.qss"); QFile fileCommons(":/res/ui_styles_generic.qss"); fileSpecific.open(QFile::ReadOnly); fileCommons.open(QFile::ReadOnly); QString styles = QLatin1String(fileSpecific.readAll() + fileCommons.readAll()); setStyleSheet(styles); hideBtn->hide(); }
BitcoinGUI::BitcoinGUI(const NetworkStyle &networkStyle, QWidget *parent) : QMainWindow(parent), clientModel(0), walletFrame(0), unitDisplayControl(0), labelEncryptionIcon(0), labelConnectionsIcon(0), labelBlocksIcon(0), progressBarLabel(0), progressBar(0), progressDialog(0), appMenuBar(0), overviewAction(0), historyAction(0), quitAction(0), sendCoinsAction(0), sendCoinsMenuAction(0), usedSendingAddressesAction(0), usedReceivingAddressesAction(0), signMessageAction(0), verifyMessageAction(0), aboutAction(0), receiveCoinsAction(0), receiveCoinsMenuAction(0), optionsAction(0), toggleHideAction(0), encryptWalletAction(0), backupWalletAction(0), changePassphraseAction(0), aboutQtAction(0), openRPCConsoleAction(0), openAction(0), showHelpMessageAction(0), trayIcon(0), trayIconMenu(0), notificator(0), rpcConsole(0), infoQueue(this), prevBlocks(0), spinnerFrame(0) { GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this); QString windowTitle = tr("Bitcoin XT") + " - "; #ifdef ENABLE_WALLET /* if compiled with wallet support, -disablewallet can still disable the wallet */ enableWallet = !GetBoolArg("-disablewallet", false); #else enableWallet = false; #endif // ENABLE_WALLET if(enableWallet) { windowTitle += tr("Wallet"); } else { windowTitle += tr("Node"); } windowTitle += " " + networkStyle.getTitleAddText(); #ifndef Q_OS_MAC QApplication::setWindowIcon(networkStyle.getTrayAndWindowIcon()); setWindowIcon(networkStyle.getTrayAndWindowIcon()); #else // TODO we convert a QImage to a pixmap, to an icon and in the MacDockIconHandler we // do it in the opposite directoin just go arrive at a QImage again. // A mac hacker should fix that so we just pass a QImage (networkStyle::getAppIcon()). MacDockIconHandler::instance()->setIcon(networkStyle.getTrayAndWindowIcon()); #endif setWindowTitle(windowTitle); #if defined(Q_OS_MAC) && QT_VERSION < 0x050000 // This property is not implemented in Qt 5. Setting it has no effect. // A replacement API (QtMacUnifiedToolBar) is available in QtMacExtras. setUnifiedTitleAndToolBarOnMac(true); #endif rpcConsole = new RPCConsole(0); #ifdef ENABLE_WALLET if(enableWallet) { /** Create wallet frame and make it the central widget */ walletFrame = new WalletFrame(this); setCentralWidget(walletFrame); } else #endif // ENABLE_WALLET { /* When compiled without wallet or -disablewallet is provided, * the central widget is the rpc console. */ setCentralWidget(rpcConsole); } // Accept D&D of URIs setAcceptDrops(true); // Create actions for the toolbar, menu bar and tray/dock icon // Needs walletFrame to be initialized createActions(); // Create application menu bar createMenuBar(); // Create the toolbars createToolBars(); // Create system tray icon and notification createTrayIcon(networkStyle); // Create status bar statusBar(); // Disable size grip because it looks ugly and nobody needs it statusBar()->setSizeGripEnabled(false); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); unitDisplayControl = new UnitDisplayStatusBarControl(); labelEncryptionIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); if(enableWallet) { frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(unitDisplayControl); frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelEncryptionIcon); } frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelConnectionsIcon); frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelBlocksIcon); frameBlocksLayout->addStretch(); // Progress bar and label for blocks download progressBarLabel = new QLabel(); progressBarLabel->setVisible(false); progressBar = new GUIUtil::ProgressBar(); progressBar->setAlignment(Qt::AlignCenter); progressBar->setVisible(false); // Override style sheet for progress bar for styles that have a segmented progress bar, // as they make the text unreadable (workaround for issue #1071) // See https://qt-project.org/doc/qt-4.8/gallery.html QString curStyle = QApplication::style()->metaObject()->className(); if(curStyle == "QWindowsStyle" || curStyle == "QWindowsXPStyle") { progressBar->setStyleSheet("QProgressBar { background-color: #e8e8e8; border: 1px solid grey; border-radius: 7px; padding: 1px; text-align: center; } QProgressBar::chunk { background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #FF8000, stop: 1 orange); border-radius: 7px; margin: 0px; }"); } statusBar()->addWidget(progressBarLabel); statusBar()->addWidget(progressBar); statusBar()->addPermanentWidget(frameBlocks); // prevents an open debug window from becoming stuck/unusable on client shutdown connect(quitAction, SIGNAL(triggered()), rpcConsole, SLOT(hide())); // ditto for the notification dialog connect(quitAction, SIGNAL(triggered()), &infoQueue, SLOT(hideDialog())); // Install event filter to be able to catch status tip events (QEvent::StatusTip) this->installEventFilter(this); // Initially wallet actions should be disabled setWalletActionsEnabled(false); // Subscribe to notifications from core subscribeToCoreSignals(); }