BitcoinGUI::BitcoinGUI(QWidget *parent) : QMainWindow(parent), clientModel(0), encryptWalletAction(0), changePassphraseAction(0), aboutQtAction(0), trayIcon(0), notificator(0), rpcConsole(0), prevBlocks(0) { restoreWindowGeometry(); setWindowTitle(tr("Jesuscoin") + " - " + tr("Wallet")); #ifndef Q_OS_MAC QApplication::setWindowIcon(QIcon(":icons/bitcoin")); setWindowIcon(QIcon(":icons/bitcoin")); #else setUnifiedTitleAndToolBarOnMac(true); QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Create wallet frame and make it the central widget walletFrame = new WalletFrame(this); setCentralWidget(walletFrame); // 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(); // Create status bar statusBar(); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setMinimumWidth(56); frameBlocks->setMaximumWidth(56); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); labelEncryptionIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); 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 QProgressBar(); 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); syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this); rpcConsole = new RPCConsole(this); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); // Install event filter to be able to catch status tip events (QEvent::StatusTip) this->installEventFilter(this); // Initially wallet actions should be disabled setWalletActionsEnabled(false); }
BitcoinGUI::BitcoinGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), encryptWalletAction(0), unlockForMintingAction(0), changePassphraseAction(0), aboutQtAction(0), trayIcon(0), notificator(0), rpcConsole(0) { resize(850, 550); setWindowTitle(tr("808 Wallet")); #ifndef Q_WS_MAC setWindowIcon(QIcon(":icons/808_icon")); #else setUnifiedTitleAndToolBarOnMac(true); QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Accept D&D of URIs setAcceptDrops(true); // Create actions for the toolbar, menu bar and tray/dock icon createActions(); // Create application menu bar createMenuBar(); // Create the toolbars createToolBars(); // Create the tray icon (or setup the dock icon) createTrayIcon(); // Create tabs overviewPage = new OverviewPage(); blockBrowser = new BlockBrowser(this); transactionsPage = new QWidget(this); QVBoxLayout *vbox = new QVBoxLayout(); transactionView = new TransactionView(this); vbox->addWidget(transactionView); transactionsPage->setLayout(vbox); mintingPage = new QWidget(this); QVBoxLayout *vboxMinting = new QVBoxLayout(); mintingView = new MintingView(this); vboxMinting->addWidget(mintingView); mintingPage->setLayout(vboxMinting); addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab); receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab); sendCoinsPage = new SendCoinsDialog(this); messagePage = new SignVerifyMessageDialog(this); multisigPage = new MultisigDialog(this); centralWidget = new QStackedWidget(this); centralWidget->addWidget(overviewPage); centralWidget->addWidget(transactionsPage); centralWidget->addWidget(mintingPage); centralWidget->addWidget(addressBookPage); centralWidget->addWidget(receiveCoinsPage); centralWidget->addWidget(sendCoinsPage); #ifdef FIRST_CLASS_MESSAGING centralWidget->addWidget(messagePage); #endif centralWidget->addWidget(blockBrowser); setCentralWidget(centralWidget); // Create status bar statusBar(); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setMinimumWidth(56); frameBlocks->setMaximumWidth(56); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); labelEncryptionIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); 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 QProgressBar(); progressBar->setAlignment(Qt::AlignCenter); progressBar->setVisible(false); statusBar()->addWidget(progressBarLabel); statusBar()->addWidget(progressBar); statusBar()->addPermanentWidget(frameBlocks); syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this); // Clicking on a transaction on the overview page simply sends you to transaction history page connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage())); // Doubleclicking on a transaction on the transaction history page shows details connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails())); rpcConsole = new RPCConsole(this); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); gotoOverviewPage(); }
BitcoinGUI::BitcoinGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), encryptWalletAction(0), unlockWalletAction(0), changePassphraseAction(0), aboutQtAction(0), trayIcon(0), notificator(0), rpcConsole(0) { resize(850, 550); setWindowTitle(tr("MicroCash") + " - " + tr("Wallet")); #ifndef Q_OS_MAC qApp->setWindowIcon(QIcon(":icons/bitcoin")); setWindowIcon(QIcon(":icons/bitcoin")); #else setUnifiedTitleAndToolBarOnMac(true); QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Accept D&D of URIs setAcceptDrops(true); // Create actions for the toolbar, menu bar and tray/dock icon createActions(); // Create application menu bar createMenuBar(); // Create the toolbars createToolBars(); // Create the tray icon (or setup the dock icon) createTrayIcon(); // Create tabs overviewPage = new OverviewPage(); transactionsPage = new QWidget(this); QVBoxLayout *vbox = new QVBoxLayout(); transactionView = new TransactionView(this); vbox->addWidget(transactionView); transactionsPage->setLayout(vbox); addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab); receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab); sendCoinsPage = new SendCoinsDialog(this); signVerifyMessageDialog = new SignVerifyMessageDialog(this); centralWidget = new QStackedWidget(this); centralWidget->addWidget(overviewPage); centralWidget->addWidget(transactionsPage); centralWidget->addWidget(addressBookPage); centralWidget->addWidget(receiveCoinsPage); centralWidget->addWidget(sendCoinsPage); setCentralWidget(centralWidget); // Create status bar statusBar(); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setMinimumWidth(56); frameBlocks->setMaximumWidth(56); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); labelEncryptionIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); 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 QProgressBar(); 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 = qApp->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); syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this); // Clicking on a transaction on the overview page simply sends you to transaction history page connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage())); connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), transactionView, SLOT(focusTransaction(QModelIndex))); // Double-clicking on a transaction on the transaction history page shows details connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails())); rpcConsole = new RPCConsole(this); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); // Clicking on "Verify Message" in the address book sends you to the verify message tab connect(addressBookPage, SIGNAL(verifyMessage(QString)), this, SLOT(gotoVerifyMessageTab(QString))); // Clicking on "Sign Message" in the receive coins page sends you to the sign message tab connect(receiveCoinsPage, SIGNAL(signMessage(QString)), this, SLOT(gotoSignMessageTab(QString))); gotoOverviewPage(); }
BitcoinGUI::BitcoinGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), encryptWalletAction(0), changePassphraseAction(0), aboutQtAction(0), trayIcon(0), notificator(0), rpcConsole(0) { resize(650, 550); // resize(530, 550); setWindowTitle(tr("LEOcoin") + " - " + tr("Wallet")); qApp->setStyleSheet( "QMainWindow { background: #e8e8e8;font-family:'Open Sans,sans-serif'; } " \ "QCheckBox { spacing: 5px; } "\ "QCheckBox::indicator { width: 24px; height: 24px; }" \ "QCheckBox::indicator:unchecked { image: url(:/images/checkbox_unchecked); }" \ "QCheckBox::indicator:checked { image: url(:/images/checkbox_checked); }" \ "QComboBox { border: 1px solid gray; border-radius: 3px; padding: 1px 18px 1px 3px; }" \ "QComboBox:editable { background: white; }" \ "QComboBox:!editable, QComboBox::drop-down:editable { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); } " \ "QComboBox:!editable:on, QComboBox::drop-down:editable:on { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #D3D3D3, stop: 0.4 #D8D8D8, stop: 0.5 #DDDDDD, stop: 1.0 #E1E1E1); } " \ "QComboBox:on { /* shift the text when the popup opens */ padding-top: 3px; padding-left: 4px; } " \ "QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 15px; border-left-width: 1px; border-left-color: darkgray; border-left-style: solid; /* just a single line */ border-top-right-radius: 3px; /* same radius as the QComboBox */ border-bottom-right-radius: 3px; } " \ "QComboBox::down-arrow1 { image: url(/usr/share/icons/crystalsvg/16x16/actions/1downarrow.png); } " \ "QComboBox::down-arrow:on { /* shift the arrow when popup is open */ top: 1px; left: 1px; }" \ "QLineEdit { border: 0px; border-radius1: 10px; padding: 0 8px; background: #c7c8ca; selection-background-color: #eea734; margin: 6px; }" \ "QLabel { color: #404041; } " \ "QTableView { background: #c7c8ca; border-color: #e8e8e8; margin: 6px; } " \ "QTableView QHeaderView { } " \ "QTableView QAbstractItemView { margin: 4px; min-height: 28px; border: 3px; } " \ "QStatusBar { background: #a7aaac; } " \ "#frame { } QToolBar QLabel { padding-top:15px;padding-bottom:10px;margin:0px; border: 0px; border-color: yellow;} " \ "#spacer { background:#a7aaac;border:none; } " \ "#toolbar { height:100%;padding-top:20px; background: #e8e8e8; text-align: left; min-width:200px;max-width:200px; border: none; margin: -2px; padding: -2px; } " \ "QToolBar QToolButton { font-family:Open Sans;padding-left:0px;padding-top:10px;padding-bottom:10px; width:200px; color: black; text-align: left; background-color: #a7aaac } " \ "QToolBar QToolButton:hover:!checked { color: #eea734; background-color: #a7aaac; border: none; } " \ "QToolBar QToolButton:pressed { color: #404041; background-color: #e8e8e8; border: none; } " \ "QToolBar QToolButton:checked { color: #eea734; background-color: #e8e8e8; border: none; } " \ "QToolBar QToolButton:disabled { color: grey; } " \ "QToolButton { color: black; background-color: #eea734; border: none; text-align: center; min-height: 24px; } " \ "#labelMiningIcon { padding-left:5px;font-family:Open Sans;width:100%;font-size:10px;text-align:center;color:grey; } " \ "QMenu { background: #a7aaac; color: #404041; padding-bottom:10px; border: 1px solid grey; } " \ "QMenu::item { color:#404041; background-color: transparent; } " \ "QMenu::item:selected { color: #282828; background-color: #e8e8e8; } " \ "QMenuBar { background: #a7aaac; color: #404041; } " \ "QMenuBar::item { font-size:12px;padding-bottom:12px;padding-top:12px;padding-left:15px;padding-right:15px;color:#282828; background-color: transparent; } " \ "QMenuBar::item:selected { color: #e8e8e8; background-color: #282828); }" "QTabWidget {background-color: #e8e8e8; }" \ "#debug QLabel {color: white; }" \ "QDateTime {}" ); #ifndef Q_OS_MAC qApp->setWindowIcon(QIcon(":icons/bitcoin")); setWindowIcon(QIcon(":icons/bitcoin")); #else setUnifiedTitleAndToolBarOnMac(true); QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Accept D&D of URIs setAcceptDrops(true); // Create actions for the toolbar, menu bar and tray/dock icon createActions(); // Create application menu bar createMenuBar(); // Create the toolbars createToolBars(); // Create the tray icon (or setup the dock icon) createTrayIcon(); // Create tabs overviewPage = new OverviewPage(); transactionsPage = new QWidget(this); QVBoxLayout *vbox = new QVBoxLayout(); transactionView = new TransactionView(this); vbox->addWidget(transactionView); transactionsPage->setLayout(vbox); addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab); receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab); sendCoinsPage = new SendCoinsDialog(this); signVerifyMessageDialog = new SignVerifyMessageDialog(this); centralWidget = new QStackedWidget(this); centralWidget->addWidget(overviewPage); centralWidget->addWidget(transactionsPage); centralWidget->addWidget(addressBookPage); centralWidget->addWidget(receiveCoinsPage); centralWidget->addWidget(sendCoinsPage); setCentralWidget(centralWidget); // Create status bar statusBar(); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setMinimumWidth(56); frameBlocks->setMaximumWidth(56); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); labelEncryptionIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); 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 QProgressBar(); progressBar->setAlignment(Qt::AlignCenter); progressBar->setVisible(false); progressBar->setStyleSheet("QProgressBar { background-color: #e8e8e8; border: 0px solid grey; border-radius: 7px; padding: 1px; text-align: center; } " \ "QProgressBar::chunk { background: #eea734; border-radius: 7px; margin: 0px; }"); // 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 = qApp->style()->metaObject()->className(); if(curStyle == "QWindowsStyle" || curStyle == "QWindowsXPStyle") { progressBar->setStyleSheet("QProgressBar { background-color: #e8e8e8; border: 0px solid grey; border-radius: 7px; padding: 1px; text-align: center; } " \ "QProgressBar::chunk { background: #eea734; border-radius: 7px; margin: 0px; }"); } statusBar()->addWidget(progressBarLabel); statusBar()->addWidget(progressBar); statusBar()->addPermanentWidget(frameBlocks); syncIconMovie = new QMovie(":/movies/update_spinner", "gif", this); syncIconMovie->setScaledSize(QSize(24,24)); // Clicking on a transaction on the overview page simply sends you to transaction history page connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage())); connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), transactionView, SLOT(focusTransaction(QModelIndex))); // Double-clicking on a transaction on the transaction history page shows details connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails())); rpcConsole = new RPCConsole(this); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); // Clicking on "Verify Message" in the address book sends you to the verify message tab connect(addressBookPage, SIGNAL(verifyMessage(QString)), this, SLOT(gotoVerifyMessageTab(QString))); // Clicking on "Sign Message" in the receive coins page sends you to the sign message tab connect(receiveCoinsPage, SIGNAL(signMessage(QString)), this, SLOT(gotoSignMessageTab(QString))); gotoOverviewPage(); }
BitcoinGUI::BitcoinGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), encryptWalletAction(0), changePassphraseAction(0), unlockWalletAction(0), lockWalletAction(0), aboutQtAction(0), trayIcon(0), notificator(0), rpcConsole(0) { setFixedSize(970, 550); setWindowTitle(tr("Xuro") + " " + tr("Wallet")); qApp->setStyleSheet("QMainWindow { background-color:#ecf0f1; font-family:'Open Sans,sans-serif'; } #frame { } QToolBar QLabel { padding-top:15px;padding-bottom:10px;margin:0px; } #spacer { background-color:transparent;border:none; } #toolbar2 { border:none;width:10px; background-color:qlineargradient(y1: 0, y2: 1, stop: 0 rgb(249,0,51), stop: 1 rgb(249,0,51)); } #toolbar { border:none;height:100%;padding-top:20px; background-color:#16151b; text-align: left; color: white; min-width:175px;max-width:175px;} QToolBar QToolButton:hover {background-color:transparent;} QToolBar QToolButton { font-family:Century Gothic;padding-left:20px;padding-right:200px;padding-top:10px;padding-bottom:10px; width:100%; color: white; text-align: left; background-color:transparent; } #labelMiningIcon { padding-left:5px;font-family:Century Gothic;width:100%;font-size:10px;text-align:center;color:white; } QMenu { background-color:#16151b; color:white; padding-bottom:10px; } QMenu::item { color:white; background-color: transparent; } QMenu::item:selected { background-color:transparent; } QMenuBar { background-color:#16151b; color:white; } QMenuBar::item { font-size:12px;padding-bottom:5px;padding-top:5px;padding-left:10px;padding-right:10px;color:white; background-color: transparent; } QMenuBar::item:selected { background-color:transparent; }"); #ifndef Q_OS_MAC qApp->setWindowIcon(QIcon(":icons/bitcoin")); setWindowIcon(QIcon(":icons/bitcoin")); #else setUnifiedTitleAndToolBarOnMac(true); QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Accept D&D of URIs setAcceptDrops(true); // Create actions for the toolbar, menu bar and tray/dock icon createActions(); // Create application menu bar createMenuBar(); // Create the toolbars createToolBars(); // Create the tray icon (or setup the dock icon) createTrayIcon(); // Create tabs overviewPage = new OverviewPage(); statisticsPage = new StatisticsPage(this); blockBrowser = new BlockBrowser(this); // poolBrowser = new PoolBrowser(this); transactionsPage = new QWidget(this); QVBoxLayout *vbox = new QVBoxLayout(); transactionView = new TransactionView(this); vbox->addWidget(transactionView); transactionsPage->setLayout(vbox); addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab); receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab); sendCoinsPage = new SendCoinsDialog(this); signVerifyMessageDialog = new SignVerifyMessageDialog(this); centralWidget = new QStackedWidget(this); centralWidget->addWidget(overviewPage); centralWidget->addWidget(statisticsPage); centralWidget->addWidget(blockBrowser); // centralWidget->addWidget(poolBrowser); centralWidget->addWidget(transactionsPage); centralWidget->addWidget(addressBookPage); centralWidget->addWidget(receiveCoinsPage); centralWidget->addWidget(sendCoinsPage); setCentralWidget(centralWidget); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setStyleSheet("frameBlocks { background: rgb(0,128,0); }"); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setMinimumWidth(30); frameBlocks->setMaximumWidth(30); QVBoxLayout *frameBlocksLayout = new QVBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(1,0,1,0); frameBlocksLayout->setSpacing(-1); labelEncryptionIcon = new QLabel(); labelStakingIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); frameBlocksLayout->addWidget(labelEncryptionIcon); frameBlocksLayout->addWidget(labelStakingIcon); frameBlocksLayout->addWidget(labelConnectionsIcon); frameBlocksLayout->addWidget(labelBlocksIcon); frameBlocksLayout->addStretch(); if (GetBoolArg("-staking", true)) { QTimer *timerStakingIcon = new QTimer(labelStakingIcon); connect(timerStakingIcon, SIGNAL(timeout()), this, SLOT(updateStakingIcon())); timerStakingIcon->start(30 * 1000); updateStakingIcon(); } // Progress bar and label for blocks download progressBarLabel = new QLabel(); progressBarLabel->setVisible(false); progressBar = new QProgressBar(); progressBar->setAlignment(Qt::AlignCenter); progressBar->setVisible(false); progressBar->setOrientation(Qt::Vertical); progressBar->setObjectName("progress"); progressBar->setStyleSheet("QProgressBar{" "border: 1px solid transparent;" "font-size:9px;" "text-align: center;" "color:rgba(0,0,0,100);" "border-radius: 5px;" "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(182, 182, 182, 100), stop:1 rgba(209, 209, 209, 100));" "}" "QProgressBar::chunk{" "background-color: rgba(0,255,0,100);" "}"); frameBlocks->setObjectName("frame"); addToolBarBreak(Qt::LeftToolBarArea); QToolBar *toolbar2 = addToolBar(tr("Tabs toolbar")); addToolBar(Qt::LeftToolBarArea,toolbar2); toolbar2->setOrientation(Qt::Vertical); toolbar2->setMovable( false ); toolbar2->setObjectName("toolbar2"); toolbar2->setFixedWidth(25); toolbar2->addWidget(frameBlocks); toolbar2->addWidget(progressBarLabel); toolbar2->addWidget(progressBar); syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this); // Clicking on a transaction on the overview page simply sends you to transaction history page connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage())); connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), transactionView, SLOT(focusTransaction(QModelIndex))); // Double-clicking on a transaction on the transaction history page shows details connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails())); rpcConsole = new RPCConsole(this); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); // Clicking on "Verify Message" in the address book sends you to the verify message tab connect(addressBookPage, SIGNAL(verifyMessage(QString)), this, SLOT(gotoVerifyMessageTab(QString))); // Clicking on "Sign Message" in the receive coins page sends you to the sign message tab connect(receiveCoinsPage, SIGNAL(signMessage(QString)), this, SLOT(gotoSignMessageTab(QString))); gotoOverviewPage(); }
void ConfigureDlg::layoutWindow() { QSettings settings; setModal(true); QVBoxLayout *centralLayout = new QVBoxLayout(this); centralLayout->setSpacing(20); centralLayout->setContentsMargins(11, 11, 11, 11); QFormLayout *formLayout = new QFormLayout(); formLayout->setSpacing(16); formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); m_brokerAddress = new QLineEdit(); m_brokerAddress->setText(settings.value(RTAUTOMATION_PARAMS_BROKERADDRESS).toString()); m_brokerAddress->setToolTip("The MQTT broker address (e.g. tcp://localhost:1883"); m_brokerAddress->setMinimumWidth(200); formLayout->addRow(tr("MQTT broker address:"), m_brokerAddress); m_clientID = new QLineEdit(); m_clientID->setText(settings.value(RTAUTOMATION_PARAMS_CLIENTID).toString()); m_clientID->setToolTip("The client ID is used to sign on to the NQTT broker"); m_clientID->setMinimumWidth(200); formLayout->addRow(tr("MQTT client ID:"), m_clientID); m_clientSecret = new QLineEdit(); m_clientSecret->setText(settings.value(RTAUTOMATION_PARAMS_CLIENTSECRET).toString()); m_clientSecret->setToolTip("The client secret may be used to sign on to the NQTT broker"); m_clientSecret->setMinimumWidth(200); m_clientSecret->setEchoMode(QLineEdit::Password); formLayout->addRow(tr("MQTT client secret:"), m_clientSecret); QFrame *line = new QFrame(this); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); line->setMinimumWidth(20); formLayout->addRow(line); m_automationServerID = new QLineEdit(); m_automationServerID->setText(settings.value(RTAUTOMATION_PARAMS_SERVERID).toString()); m_automationServerID->setToolTip("The device ID of the automation server"); m_automationServerID->setMinimumWidth(200); formLayout->addRow(tr("Automation server ID:"), m_automationServerID); settings.beginGroup(RTAUTOMATION_PARAMS_TOPICGROUP); m_statusTopic = new QLineEdit(); m_statusTopic->setText(settings.value(RTAUTOMATION_PARAMS_STATUSTOPIC).toString()); m_statusTopic->setToolTip("The topic to suscribe for status updates (e.g. status)"); m_statusTopic->setMinimumWidth(200); formLayout->addRow(tr("Status topic (sub):"), m_statusTopic); m_controlTopic = new QLineEdit(); m_controlTopic->setText(settings.value(RTAUTOMATION_PARAMS_CONTROLTOPIC).toString()); m_controlTopic->setToolTip("The topic to publish for control operations (e.g. control)"); m_controlTopic->setMinimumWidth(200); formLayout->addRow(tr("Control topic (pub):"), m_controlTopic); settings.endGroup(); centralLayout->addLayout(formLayout); m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); m_buttons->setCenterButtons(true); centralLayout->addWidget(m_buttons); }
AddonManagementDialog::AddonManagementDialog(QWidget * p) : QWidget(p) { setWindowTitle(__tr2qs_ctx("Manage Script-Based Addons","addon")); setObjectName("Addon manager"); setWindowIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Addons))); #ifdef COMPILE_WEBKIT_SUPPORT m_pWebInterfaceDialog = NULL; #endif //COMPILE_WEBKIT_SUPPORT m_pInstance = this; QGridLayout * g = new QGridLayout(this); KviTalHBox *hb = new KviTalHBox(this); hb->setMargin(1); hb->setSpacing(1); g->addWidget(hb,0,0); QToolButton * tb; QFrame * sep; m_pConfigureButton = new QToolButton(hb); m_pConfigureButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_ADDONS))); m_pConfigureButton->setIconSize(QSize(32,32)); KviTalToolTip::add(m_pConfigureButton,__tr2qs_ctx("Configure Addon...","addon")); connect(m_pConfigureButton,SIGNAL(clicked()),this,SLOT(configureScript())); m_pHelpButton = new QToolButton(hb); m_pHelpButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_HELP))); m_pHelpButton->setIconSize(QSize(32,32)); KviTalToolTip::add(m_pHelpButton,__tr2qs_ctx("Show Help","addon")); connect(m_pHelpButton,SIGNAL(clicked()),this,SLOT(showScriptHelp())); m_pUninstallButton = new QToolButton(hb); m_pUninstallButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_REMOVE))); m_pUninstallButton->setIconSize(QSize(32,32)); KviTalToolTip::add(m_pUninstallButton,__tr2qs_ctx("Delete Selected Addons","addon")); connect(m_pUninstallButton,SIGNAL(clicked()),this,SLOT(uninstallScript())); sep = new QFrame(hb); sep->setFrameStyle(QFrame::VLine | QFrame::Sunken); sep->setMinimumWidth(12); m_pPackButton = new QToolButton(hb); m_pPackButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_PACK))); m_pPackButton->setIconSize(QSize(32,32)); KviTalToolTip::add(m_pPackButton,__tr2qs_ctx("Create an Addon as a Distributable Package","addon")); connect(m_pPackButton,SIGNAL(clicked()),this,SLOT(packScript())); sep = new QFrame(hb); sep->setFrameStyle(QFrame::VLine | QFrame::Sunken); sep->setMinimumWidth(12); tb = new QToolButton(hb); tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_OPEN))); tb->setIconSize(QSize(32,32)); KviTalToolTip::add(tb,__tr2qs_ctx("Install Addon Package From Disk","addon")); connect(tb,SIGNAL(clicked()),this,SLOT(installScript())); tb = new QToolButton(hb); tb->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_WWW))); tb->setIconSize(QSize(32,32)); KviTalToolTip::add(tb,__tr2qs_ctx("Get More Addons...","addon")); connect(tb,SIGNAL(clicked()),this,SLOT(getMoreScripts())); QWidget *w= new QWidget(hb); w->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum); m_pListWidget = new KviTalListWidget(this); KviTalIconAndRichTextItemDelegate *itemDelegate=new KviTalIconAndRichTextItemDelegate(m_pListWidget); m_pListWidget->setItemDelegate(itemDelegate); m_pListWidget->setSelectionMode(QAbstractItemView::SingleSelection); m_pListWidget->setSortingEnabled(true); m_pListWidget->setMinimumHeight(400); m_pListWidget->setMinimumWidth(380); g->addWidget(m_pListWidget,1,0); fillListView(); currentChanged(0,0); connect(m_pListWidget,SIGNAL(currentItemChanged(QListWidgetItem *,QListWidgetItem *)),this,SLOT(currentChanged(QListWidgetItem *,QListWidgetItem *))); m_pListWidget->setCurrentItem(m_pListWidget->item(0)); QPushButton * pCloseBtn = new QPushButton(__tr2qs_ctx("Close","addon"),this); pCloseBtn->setMaximumSize(pCloseBtn->sizeHint().width(),pCloseBtn->sizeHint().height()); connect(pCloseBtn,SIGNAL(clicked()),this,SLOT(closeClicked())); g->addWidget(pCloseBtn,2,0); g->setMargin(5); g->setSpacing(5); g->setAlignment(pCloseBtn,Qt::AlignRight); if(g_rectManagementDialogGeometry.y() < 5) { g_rectManagementDialogGeometry.setY(5); } resize(g_rectManagementDialogGeometry.width(), g_rectManagementDialogGeometry.height()); QRect rect = g_pApp->desktop()->screenGeometry(g_pMainWindow); move(rect.x() + ((rect.width() - g_rectManagementDialogGeometry.width())/2),rect.y() + ((rect.height() - g_rectManagementDialogGeometry.height())/2)); new QShortcut(Qt::Key_Escape, this, SLOT(closeClicked())); }
ThemeManagementDialog::ThemeManagementDialog(QWidget * parent) : QWidget(parent) { m_pItemDelegate = NULL; #ifdef COMPILE_WEBKIT_SUPPORT m_pWebThemeInterfaceDialog = NULL; #endif setObjectName("theme_options_widget"); setWindowTitle(__tr2qs_ctx("Manage Themes - KVIrc","theme")); setWindowIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Theme))); m_pInstance = this; //QGridLayout * g = new QGridLayout(this); QVBoxLayout * pVBox = new QVBoxLayout(this); KviTalHBox * pHBox = new KviTalHBox(this); pHBox->setMargin(1); pHBox->setSpacing(1); //g->addWidget(pHBox,0,0); pVBox->addWidget(pHBox); QToolButton * pTool; QFrame * pSep; pTool = new QToolButton(pHBox); pTool->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_SAVE))); pTool->setIconSize(QSize(32,32)); pTool->setToolTip(__tr2qs_ctx("Save Current Theme...","theme")); connect(pTool,SIGNAL(clicked()),this,SLOT(saveCurrentTheme())); pSep = new QFrame(pHBox); pSep->setFrameStyle(QFrame::VLine | QFrame::Sunken); pSep->setMinimumWidth(12); m_pPackThemeButton = new QToolButton(pHBox); m_pPackThemeButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_PACK))); m_pPackThemeButton->setIconSize(QSize(32,32)); m_pPackThemeButton->setToolTip(__tr2qs_ctx("Export Selected Themes to a Distributable Package","theme")); connect(m_pPackThemeButton,SIGNAL(clicked()),this,SLOT(packTheme())); m_pDeleteThemeButton = new QToolButton(pHBox); m_pDeleteThemeButton->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_REMOVE))); m_pDeleteThemeButton->setIconSize(QSize(32,32)); m_pDeleteThemeButton->setToolTip(__tr2qs_ctx("Delete Selected Themes","theme")); connect(m_pDeleteThemeButton,SIGNAL(clicked()),this,SLOT(deleteTheme())); pSep = new QFrame(pHBox); pSep->setFrameStyle(QFrame::VLine | QFrame::Sunken); pSep->setMinimumWidth(12); pTool = new QToolButton(pHBox); pTool->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_OPEN))); pTool->setIconSize(QSize(32,32)); pTool->setToolTip(__tr2qs_ctx("Install Theme Package From Disk","theme")); connect(pTool,SIGNAL(clicked()),this,SLOT(installFromFile())); pTool = new QToolButton(pHBox); pTool->setIcon(*(g_pIconManager->getBigIcon(KVI_BIGICON_WWW))); pTool->setIconSize(QSize(32,32)); pTool->setToolTip(__tr2qs_ctx("Get More Themes...","theme")); connect(pTool,SIGNAL(clicked()),this,SLOT(getMoreThemes())); QWidget *w= new QWidget(pHBox); w->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum); m_pListWidget = new KviTalListWidget(this); m_pListWidget->setContextMenuPolicy(Qt::CustomContextMenu); m_pItemDelegate = new KviTalIconAndRichTextItemDelegate(m_pListWidget); m_pItemDelegate->setDefaultIcon(g_pIconManager->getBigIcon(QString(KVI_BIGICON_THEME))); m_pListWidget->setItemDelegate(m_pItemDelegate); m_pListWidget->setMinimumHeight(400); m_pListWidget->setMinimumWidth(420); m_pListWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); m_pListWidget->setSortingEnabled(true); connect(m_pListWidget,SIGNAL(itemDoubleClicked(QListWidgetItem *)),this,SLOT(applyTheme(QListWidgetItem *))); //FIXME tooltip //connect(m_pListWidget,SIGNAL(tipRequest(QListWidgetItem *,const QPoint &)),this,SLOT(tipRequest(QListWidgetItem *,const QPoint &))); connect(m_pListWidget,SIGNAL(customContextMenuRequested(const QPoint &)), this,SLOT(contextMenuRequested(const QPoint &))); connect(m_pListWidget,SIGNAL(itemSelectionChanged()),this,SLOT(enableDisableButtons())); pSep = new QFrame(this); pSep->setFrameStyle(QFrame::HLine | QFrame::Sunken); pSep->setMinimumWidth(300); pSep->setMinimumHeight(8); pVBox->addWidget(pSep); //g->addWidget(pSep,2,0); m_pCurrentInstalledThemeLabel = new QLabel(this); m_pCurrentInstalledThemeLabel->setText(__tr2qs_ctx("<b><u>Current Installed Theme:</u> ","theme") + " " + KVI_OPTION_STRING(KviOption_stringIconThemeSubdir) + "</b>"); // g->addWidget(pLabel,2,0); pVBox->addWidget(m_pCurrentInstalledThemeLabel); pSep = new QFrame(this); pSep->setFrameStyle(QFrame::HLine | QFrame::Sunken); pSep->setMinimumWidth(300); // g->addWidget(pSep,3,0); pVBox->addWidget(pSep); // g->addWidget(m_pListWidget,4,0); pVBox->addWidget(m_pListWidget); // KviDynamicToolTip * tip = new KviDynamicToolTip(m_pListWidget); // connect(tip,SIGNAL(tipRequest(KviDynamicToolTip *,const QPoint &)),this,SLOT(tipRequest(KviDynamicToolTip *,const QPoint &))); QPushButton * b = new QPushButton(__tr2qs("Close"),this); b->setMaximumSize(b->sizeHint().width(),b->sizeHint().height()); connect(b,SIGNAL(clicked()),this,SLOT(closeClicked())); // g->addWidget(b,5,0); pVBox->addWidget(b); // g->setMargin(1); // g->setSpacing(1); pVBox->setAlignment(b,Qt::AlignRight); fillThemeBox(); m_pContextPopup = new QMenu(this); if(g_rectManagementDialogGeometry.y() < 5) { g_rectManagementDialogGeometry.setY(5); } resize(g_rectManagementDialogGeometry.width(), g_rectManagementDialogGeometry.height()); QRect rect = g_pApp->desktop()->screenGeometry(g_pMainWindow); move(rect.x() + ((rect.width() - g_rectManagementDialogGeometry.width())/2),rect.y() + ((rect.height() - g_rectManagementDialogGeometry.height())/2)); new QShortcut(Qt::Key_Escape, this, SLOT(closeClicked())); }
QWidget* AutoReply::options() { if (!enabled) { return 0; } QWidget *optionsWid = new QWidget(); messageWidget = new QTextEdit(); messageWidget->setMaximumHeight(60); messageWidget->setText(Message); disableforWidget = new QTextEdit(); disableforWidget->setText(DisableFor); enabledisableWidget = new QComboBox(); enabledisableWidget->addItem(tr("Enable")); enabledisableWidget->addItem(tr("Disable")); enabledisableWidget->setCurrentIndex(EnableDisable); DisableForAccWidget = new QTextEdit(); DisableForAccWidget->setText(DisableForAcc); spinWidget = new QSpinBox(); spinWidget->setMinimum(-1); spinWidget->setValue(Times); resetWidget = new QSpinBox(); resetWidget->setMaximum(2000); resetWidget->setMinimum(1); resetWidget->setValue(ResetTime); activetabWidget = new QCheckBox(tr("Disable if chat window is active")); activetabWidget->setChecked(ActiveTabIsEnable); NotInRosterWidget = new QCheckBox(tr("Disable if contact isn't from your roster")); NotInRosterWidget->setChecked(NotInRoster); sonlineWidget = new QCheckBox(tr("Online")); sonlineWidget->setChecked(SOnline); sawayWidget = new QCheckBox(tr("Away")); sawayWidget->setChecked(SAway); sdndWidget = new QCheckBox(tr("Dnd")); sdndWidget->setChecked(SDnd); sxaWidget = new QCheckBox(tr("XA")); sxaWidget->setChecked(SXa); schatWidget = new QCheckBox(tr("Chat")); schatWidget->setChecked(SChat); sinvisWidget = new QCheckBox(tr("Invisible")); sinvisWidget->setChecked(SInvis); QGroupBox *groupBox = new QGroupBox(tr("Enable if status is:")); QHBoxLayout *statusLayout = new QHBoxLayout; statusLayout->addWidget(sonlineWidget); if(psiOptions->getGlobalOption("options.ui.menu.status.chat").toBool()) { statusLayout->addWidget(schatWidget); } statusLayout->addWidget(sawayWidget); statusLayout->addWidget(sdndWidget); if(psiOptions->getGlobalOption("options.ui.menu.status.xa").toBool()) { statusLayout->addWidget(sxaWidget); } if(psiOptions->getGlobalOption("options.ui.menu.status.invisible").toBool()) { statusLayout->addWidget(sinvisWidget); } statusLayout->addStretch(); groupBox->setLayout(statusLayout); QVBoxLayout *Layout = new QVBoxLayout; Layout->addWidget(new QLabel(tr("Auto Reply Message:"))); Layout->addWidget(messageWidget); QVBoxLayout *disableLayout = new QVBoxLayout; QHBoxLayout *EnDis = new QHBoxLayout; EnDis->addWidget(enabledisableWidget); EnDis->addWidget(new QLabel(tr("for JIDs and conferences:"))); QLabel *Label = new QLabel(tr("You can also specify a part of JID\n(without any additional symbols)")); QFont font; font.setPointSize(8); Label->setFont(font); disableLayout->addLayout(EnDis); disableLayout->addWidget(disableforWidget); disableLayout->addWidget(Label); QVBoxLayout *AccLayout = new QVBoxLayout; AccLayout->addWidget(new QLabel(tr("Disable for your accounts (specify your JIDs):"))); AccLayout->addWidget(DisableForAccWidget); QHBoxLayout *resetLayout = new QHBoxLayout; resetLayout->addWidget(new QLabel(tr("Timeout to reset counter:"))); resetLayout->addWidget(resetWidget); resetLayout->addWidget(new QLabel(tr("min."))); resetLayout->addStretch(); QHBoxLayout *timesLayout = new QHBoxLayout; timesLayout->addWidget(new QLabel(tr("Send maximum"))); timesLayout->addWidget(spinWidget); timesLayout->addWidget(new QLabel(tr("times (-1=infinite)"))); timesLayout->addStretch(); QVBoxLayout *flags = new QVBoxLayout; flags->addLayout(AccLayout); flags->addStretch(); flags->addLayout(timesLayout); flags->addLayout(resetLayout); flags->addWidget(activetabWidget); flags->addWidget(NotInRosterWidget); QHBoxLayout *hLayout = new QHBoxLayout; hLayout->addLayout(disableLayout); QFrame *frame = new QFrame(); frame->setMinimumWidth(8); hLayout->addWidget(frame); hLayout->addLayout(flags); QLabel *wikiLink = new QLabel(tr("<a href=\"http://psi-plus.com/wiki/plugins#autoreply_plugin\">Wiki (Online)</a>")); wikiLink->setOpenExternalLinks(true); QVBoxLayout *tab1Layout = new QVBoxLayout(optionsWid); tab1Layout->addLayout(Layout); tab1Layout->addStretch(); tab1Layout->addLayout(hLayout); tab1Layout->addWidget(groupBox); tab1Layout->addWidget(wikiLink); connect(enabledisableWidget, SIGNAL(currentIndexChanged(int)), SLOT(setEnableDisableText(int))); return optionsWid; }
BitcoinGUI::BitcoinGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), encryptWalletAction(0), changePassphraseAction(0), aboutQtAction(0), trayIcon(0), notificator(0), rpcConsole(0) { resize(850, 550); setWindowTitle(tr("NobleCoin") + " - " + tr("Wallet")); #ifndef Q_WS_MAC qApp->setWindowIcon(QIcon(":icons/bitcoin")); setWindowIcon(QIcon(":icons/bitcoin")); #else setUnifiedTitleAndToolBarOnMac(true); QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Accept D&D of URIs setAcceptDrops(true); // Create actions for the toolbar, menu bar and tray/dock icon createActions(); // Create application menu bar createMenuBar(); // Create the toolbars createToolBars(); // Create the tray icon (or setup the dock icon) createTrayIcon(); QPalette p; p.setColor(QPalette::Window, QColor(0x22, 0x22, 0x22)); p.setColor(QPalette::Button, QColor(0x22, 0x22, 0x22)); p.setColor(QPalette::Mid, QColor(0x22, 0x22, 0x22)); p.setColor(QPalette::Base, QColor(0x22, 0x22, 0x22)); p.setColor(QPalette::AlternateBase, QColor(0x22, 0x22, 0x22)); setPalette(p); QFile style(":/text/res/text/style.qss"); style.open(QFile::ReadOnly); setStyleSheet(QString::fromUtf8(style.readAll())); /* don't override the background color of the toolbar on mac os x due to the whole component it resides on not being paintable */ #ifdef Q_OS_MAC toolbar->setStyleSheet("QToolBar { background-color: transparent; border: 0px solid black; padding: 3px; }"); #endif // Create tabs overviewPage = new OverviewPage(); chatWindow = new ChatWindow(this); //Create Chat Window blockExplorer = new BlockExplorer(this); //Include Block Explorer transactionsPage = new QWidget(this); QVBoxLayout *vbox = new QVBoxLayout(); transactionView = new TransactionView(this); vbox->addWidget(transactionView); transactionsPage->setLayout(vbox); addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab); receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab); sendCoinsPage = new SendCoinsDialog(this); signVerifyMessageDialog = new SignVerifyMessageDialog(this); centralWidget = new QStackedWidget(this); centralWidget->addWidget(chatWindow); //Add Chat Window centralWidget->addWidget(blockExplorer); //Create Block Explorer centralWidget->addWidget(overviewPage); centralWidget->addWidget(transactionsPage); centralWidget->addWidget(addressBookPage); centralWidget->addWidget(receiveCoinsPage); centralWidget->addWidget(sendCoinsPage); #ifdef FIRST_CLASS_MESSAGING centralWidget->addWidget(signVerifyMessageDialog); #endif setCentralWidget(centralWidget); // Create status bar statusBar(); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setMinimumWidth(73); frameBlocks->setMaximumWidth(73); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); labelEncryptionIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelEncryptionIcon); frameBlocksLayout->addStretch(); 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 QProgressBar(); progressBar->setAlignment(Qt::AlignCenter); progressBar->setVisible(false); statusBar()->addWidget(progressBarLabel); statusBar()->addWidget(progressBar); statusBar()->addPermanentWidget(frameBlocks); syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this); // Clicking on a transaction on the overview page simply sends you to transaction history page connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage())); connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), transactionView, SLOT(focusTransaction(QModelIndex))); // Double-clicking on a transaction on the transaction history page shows details connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails())); rpcConsole = new RPCConsole(this); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); // Clicking on "Verify Message" in the address book sends you to the verify message tab connect(addressBookPage, SIGNAL(verifyMessage(QString)), this, SLOT(gotoVerifyMessageTab(QString))); // Clicking on "Sign Message" in the receive coins page sends you to the sign message tab connect(receiveCoinsPage, SIGNAL(signMessage(QString)), this, SLOT(gotoSignMessageTab(QString))); gotoOverviewPage(); }
TaskSheet::TaskSheet(TasksViewer *owner) : QScrollArea(owner) { QFrame *contentWidget = new QFrame(this); contentWidget->setMinimumWidth(300); contentWidget->setMinimumHeight(400); setWidget(contentWidget); setWidgetResizable(true); m_task = 0; int row = 0; m_viewer = owner; QGridLayout *layout = new QGridLayout(contentWidget); layout->setMargin(15); layout->setSpacing(8); layout->setColumnStretch(3, 1); layout->setColumnStretch(5, 1); layout->setColumnStretch(6, 4); layout->setColumnMinimumWidth(2, 70); layout->setColumnMinimumWidth(3, 70); layout->setColumnMinimumWidth(4, 40); layout->setColumnMinimumWidth(5, 100); contentWidget->setLayout(layout); ::create(m_name, layout, tr("Name:"), row++); ::create(m_status, layout, tr("Status:"), row++); ::create(m_commandLine, layout, tr("Command Line:"), row++); ::create(m_server, layout, tr("Server:"), row++); ::create(m_submittedBy, layout, tr("Submitted By:"), row++); ::create(m_submittedOn, layout, tr("Submitted On:"), row++); ::create(m_submitDate, layout, tr("Submission Date:"), row++); ::create(m_startDate, layout, tr("Start Date:"), row++); ::create(m_complDate, layout, tr("Completion Date:"), row++); ::create(m_duration, layout, tr("Duration:"), row++); // m_duration->setMaximumWidth(38); ::create(m_stepCount, layout, tr("Step Count:"), row++); // m_stepCount->setMaximumWidth(38); ::create(m_failedSteps, layout, tr("Failed Steps:"), row++); // m_failedSteps->setMaximumWidth(38); ::create(m_succSteps, layout, tr("Successful Steps:"), row++); // m_succSteps->setMaximumWidth(38); ::create(m_priority, layout, tr("Priority:"), row++); // m_priority->setMaximumWidth(40); layout->setColumnStretch(0, 0); layout->setColumnStretch(1, 0); layout->setColumnStretch(2, 1); layout->setColumnStretch(3, 1); layout->setColumnStretch(4, 1); layout->setColumnStretch(5, 1); int row1 = 0; m_boxComposer = new QFrame(contentWidget); m_boxComposer->setMinimumHeight(150); QGridLayout *layout1 = new QGridLayout(m_boxComposer); layout1->setMargin(0); layout1->setSpacing(8); m_boxComposer->setLayout(layout1); ::create(m_outputPath, layout1, tr("Output:"), row1++, 4); ::create(m_chunkSize, m_multimedia, layout1, tr("Frames per Chunk:"), tr("Multimedia:"), Qt::AlignRight | Qt::AlignTop, Qt::AlignLeft | Qt::AlignTop, row1++); ::create(m_from, m_to, layout1, tr("From:"), tr("To:"), Qt::AlignRight | Qt::AlignTop, Qt::AlignRight | Qt::AlignTop, row1++); ::create(m_step, m_shrink, layout1, tr("Step:"), tr("Shrink:"), Qt::AlignRight | Qt::AlignTop, Qt::AlignRight | Qt::AlignTop, row1++); layout1->setColumnMinimumWidth(2, 40); QStringList multimediaTypes; multimediaTypes << tr("None") << tr("Fx Schematic Flows") << tr("Fx Schematic Terminal Nodes"); m_multimedia->addItems(multimediaTypes); ::create(m_threadsCombo, layout1, tr("Dedicated CPUs:"), row1++, 3); QStringList threadsTypes; threadsTypes << tr("Single") << tr("Half") << tr("All"); m_threadsCombo->addItems(threadsTypes); ::create(m_rasterGranularityCombo, layout1, tr("Render Tile:"), row1++, 3); QStringList granularityTypes; granularityTypes << tr("None") << tr("Large") << tr("Medium") << tr("Small"); m_rasterGranularityCombo->addItems(granularityTypes); layout1->addWidget(new QWidget(), 0, 5); layout1->setColumnStretch(0, 0); layout1->setColumnStretch(1, 0); layout1->setColumnStretch(2, 0); layout1->setColumnStretch(3, 0); layout1->setColumnStretch(4, 0); layout1->setColumnStretch(5, 1); layout->addWidget(m_boxComposer, row++, 0, 1, 6 /*, Qt::AlignLeft|Qt::AlignTop*/); // tcleanupper Box m_boxCleanup = new QFrame(contentWidget); QGridLayout *layout2 = new QGridLayout(m_boxCleanup); layout2->setMargin(0); layout2->setSpacing(8); m_boxCleanup->setLayout(layout2); ::create(m_visible, layout2, tr("Visible Only"), 0); ::create(m_overwrite, layout2, tr("Overwrite"), 1, 1); QStringList overwriteOptions; overwriteOptions << tr("All") << tr("NoPaint") << tr("Off"); m_overwrite->addItems(overwriteOptions); m_overwrite->setCurrentIndex(2); // do not overwrite by default layout2->setColumnStretch(0, 0); layout2->setColumnStretch(1, 0); layout2->setColumnStretch(2, 1); layout->addWidget(m_boxCleanup, row++, 2, 1, 1, Qt::AlignLeft | Qt::AlignTop); QLabel *label = new QLabel(tr("Dependencies:"), contentWidget); label->setObjectName("TaskSheetItemLabel"); layout->addWidget(label, row, 0, 1, 2, Qt::AlignRight | Qt::AlignTop); m_addedBox = new QListWidget(contentWidget); m_addedBox->setSelectionMode(QAbstractItemView::ExtendedSelection); m_addedBox->setObjectName("tasksRemoveBox"); m_addedBox->setFrameStyle(QFrame::StyledPanel); layout->addWidget(m_addedBox, row, 2, 1, 2, Qt::AlignLeft | Qt::AlignTop); m_notAddedBox = new QListWidget(contentWidget); m_notAddedBox->setSelectionMode(QAbstractItemView::ExtendedSelection); m_notAddedBox->setObjectName("tasksAddBox"); m_notAddedBox->setFrameStyle(QFrame::StyledPanel); layout->addWidget(m_notAddedBox, row++, 4, 1, 2, Qt::AlignLeft | Qt::AlignTop); QPushButton *removeBtn = new QPushButton(tr("Remove >>")); layout->addWidget(removeBtn, row, 2, 1, 2, Qt::AlignRight | Qt::AlignTop); QPushButton *addBtn = new QPushButton(tr("<< Add")); layout->addWidget(addBtn, row++, 4, 1, 2, Qt::AlignLeft | Qt::AlignTop); bool ret = true; ret = ret && connect(m_name, SIGNAL(editingFinished()), this, SLOT(setName())); ret = ret && connect(m_from, SIGNAL(editingFinished()), this, SLOT(setFrom())); ret = ret && connect(m_to, SIGNAL(editingFinished()), this, SLOT(setTo())); ret = ret && connect(m_step, SIGNAL(editingFinished()), this, SLOT(setStep())); ret = ret && connect(m_shrink, SIGNAL(editingFinished()), this, SLOT(setShrink())); ret = ret && connect(m_outputPath, SIGNAL(editingFinished()), this, SLOT(setOutput())); ret = ret && connect(m_chunkSize, SIGNAL(editingFinished()), this, SLOT(setChunkSize())); ret = ret && connect(m_priority, SIGNAL(editingFinished()), this, SLOT(setPriority())); ret = ret && connect(m_name, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_from, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_to, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_step, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_shrink, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_outputPath, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_chunkSize, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_priority, SIGNAL(focusIn()), this, SLOT(onFocusIn())); ret = ret && connect(m_multimedia, SIGNAL(currentIndexChanged(int)), this, SLOT(setMultimedia(int))); ret = ret && connect(m_visible, SIGNAL(stateChanged(int)), this, SLOT(setVisible(int))); ret = ret && connect(m_overwrite, SIGNAL(currentIndexChanged(int)), this, SLOT(setOverwrite(int))); ret = ret && connect(m_addedBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(onRemovedItemDoubleClicked(QListWidgetItem *))); ret = ret && connect(m_notAddedBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(onAddedItemDoubleClicked(QListWidgetItem *))); ret = ret && connect(removeBtn, SIGNAL(clicked(bool)), this, SLOT(onRemoved(bool))); ret = ret && connect(addBtn, SIGNAL(clicked(bool)), this, SLOT(onAdded(bool))); ret = ret && connect(m_threadsCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(setThreadsCombo(int))); ret = ret && connect(m_rasterGranularityCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(setGranularityCombo(int))); assert(ret); // The following instruction is needed in order to prevent contentWidget from // shrinking // beyond the tolerable size for its grid layout. contentWidget->setMinimumSize(layout->minimumSize()); widget()->hide(); }
NoirSharesGUI::NoirSharesGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), encryptWalletAction(0), changePassphraseAction(0), aboutQtAction(0), trayIcon(0), notificator(0), rpcConsole(0) { resize(850, 550); setWindowTitle(tr("NoirShares") + " - " + tr("Wallet")); // QPalette pal = this->palette(); // pal.setColor(QPalette::Window, Qt::black); // pal.setColor(QPalette::WindowText, Qt::white); // this->setPalette(pal); // this->setAutoFillBackground(true); this->setStyleSheet("QMainWindow {background-color: black; color: white;} " #ifndef Q_OS_MAC "QToolButton {background-color: black; color: white;} " "QToolButton:hover {background-color: black; color: #ffff77;} " "QToolButton:pressed {background-color: #0000bb; color: white;} " "QToolButton:checked {background-color: #000099; color: white;} " "QToolButton:disabled {background-color: #333333; color: white;} " #endif "QComboBox {border:1px solid white; border-radius: 3px; min-width: 5em; " " color:white; background-color:black;} " "QComboBox::drop-down {border: 0px;} " "QComboBox * {color: black;} " "QComboBox:on {color: black} " "QComboBox:on *:hover {background-color: blue} " "QMessageBox QLabel {color: black;} " "AddressBookPage {background-color: black; border-color: white;" " color: white; border-width: 1px;} " "TransactionView {background-color: black; color: white;} " "transactionView {background-color: black; color: white;} " "QLabel {color: white;} " "QHeaderView::section{background-color: black; border-color:white;" " color: white; font-weight:bold;" " border-width: 1px; border-style: solid;} " "QValidatedLineEdit {border-style: solid; border-width: 1px;" " border-color: white;}" "QDoubleSpinBox {color:white;background-color:#222222; " " border-color:white;border-width:1px;font-weight:bold;} " "QLineEdit {border-style: solid; border-width: 1px;" " border-color: white;}" // "SendCoinsEntry {background-color: black; color: white; " // " border-color: white; border-width: 1px;} " // "SendCoinsDialog {background-color: black; color: white; " // " border-color: white; border-width: 1px;} " // "QScrollArea {background-color: white; border-color: white; " // " color: white; border-width: 1px;} " // "scrollAreaWidgetContents {background-color: white; border-color: white; " // " color: white; border-width: 1px;} " ); #ifndef Q_OS_MAC qApp->setWindowIcon(QIcon(":icons/NoirShares")); setWindowIcon(QIcon(":icons/NoirShares")); #else setUnifiedTitleAndToolBarOnMac(true); QApplication::setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Accept D&D of URIs setAcceptDrops(true); // Create actions for the toolbar, menu bar and tray/dock icon createActions(); // Create application menu bar createMenuBar(); // Create the toolbars createToolBars(); // Create the tray icon (or setup the dock icon) createTrayIcon(); // Create tabs overviewPage = new OverviewPage(); transactionsPage = new QWidget(this); QVBoxLayout *vbox = new QVBoxLayout(); transactionView = new TransactionView(this); vbox->addWidget(transactionView); transactionsPage->setLayout(vbox); addressBookPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::SendingTab); receiveCoinsPage = new AddressBookPage(AddressBookPage::ForEditing, AddressBookPage::ReceivingTab); sendCoinsPage = new SendCoinsDialog(this); signVerifyMessageDialog = new SignVerifyMessageDialog(this); centralWidget = new QStackedWidget(this); centralWidget->addWidget(overviewPage); centralWidget->addWidget(transactionsPage); centralWidget->addWidget(addressBookPage); centralWidget->addWidget(receiveCoinsPage); centralWidget->addWidget(sendCoinsPage); setCentralWidget(centralWidget); // Create status bar statusBar(); // Status bar notification icons QFrame *frameBlocks = new QFrame(); frameBlocks->setContentsMargins(0,0,0,0); frameBlocks->setMinimumWidth(56); frameBlocks->setMaximumWidth(56); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); labelEncryptionIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); 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 QProgressBar(); progressBar->setAlignment(Qt::AlignCenter); progressBar->setVisible(false); #ifdef Q_OS_MAC progressBarLabel->setStyleSheet("color:black"); #endif // 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 = qApp->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); syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this); // Clicking on a transaction on the overview page simply sends you to transaction history page connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage())); connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), transactionView, SLOT(focusTransaction(QModelIndex))); // Double-clicking on a transaction on the transaction history page shows details connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails())); rpcConsole = new RPCConsole(this); connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show())); // Clicking on "Verify Message" in the address book sends you to the verify message tab connect(addressBookPage, SIGNAL(verifyMessage(QString)), this, SLOT(gotoVerifyMessageTab(QString))); // Clicking on "Sign Message" in the receive coins page sends you to the sign message tab connect(receiveCoinsPage, SIGNAL(signMessage(QString)), this, SLOT(gotoSignMessageTab(QString))); gotoOverviewPage(); }