void kthememanager::slotCreateTheme() { KNewThemeDlg dlg( this ); KEMailSettings es; es.setProfile( es.defaultProfileName() ); dlg.setName( i18n( "My Theme" ) ); dlg.setAuthor( es.getSetting( KEMailSettings::RealName ) ) ; dlg.setEmail( es.getSetting( KEMailSettings::EmailAddress ) ); dlg.setVersion( "0.1" ); if ( dlg.exec() == QDialog::Accepted ) { QString themeName = dlg.getName(); if ( themeExist(themeName) ) { KMessageBox::information( this, i18n( "Theme %1 already exists." ).arg( themeName ) ); } else { if ( getThemeVersion( themeName ) != -1 ) // remove the installed theme first { KTheme::remove( themeName ); } m_theme = new KTheme( this, true ); m_theme->setName( dlg.getName() ); m_theme->setAuthor( dlg.getAuthor() ); m_theme->setEmail( dlg.getEmail() ); m_theme->setHomepage( dlg.getHomepage() ); m_theme->setComment( dlg.getComment().replace( "\n", "" ) ); m_theme->setVersion( dlg.getVersion() ); QString result = m_theme->createYourself( true ); m_theme->addPreview(); if ( !result.isEmpty() ) KMessageBox::information( this, i18n( "Your theme has been successfully created in %1." ).arg( result ), i18n( "Theme Created" ), "theme_created_ok" ); else KMessageBox::error( this, i18n( "An error occurred while creating your theme." ), i18n( "Theme Not Created" ) ); delete m_theme; m_theme = 0; listThemes(); } } }
void kthememanager::slotRemoveTheme() { // get the selected item from the listview QListViewItem * cur = dlg->lvThemes->currentItem(); // ask and remove it if ( cur ) { QString themeName = cur->text( 0 ); if ( KMessageBox::warningContinueCancel( this, "<qt>" + i18n( "Do you really want to remove the theme <b>%1</b>?" ).arg( themeName ), i18n( "Remove Theme" ), KGuiItem( i18n( "&Remove" ), "editdelete" ) ) == KMessageBox::Continue ) { KTheme::remove( themeName ); listThemes(); } updateButton(); } }
void kthememanager::load(bool useDefaults) { listThemes(); // Load the current theme name KConfig conf("kcmthememanagerrc", false, false); conf.setReadDefaults( useDefaults ); conf.setGroup( "General" ); QString themeName = conf.readEntry( "CurrentTheme" ); QListViewItem * cur = dlg->lvThemes->findItem( themeName, 0 ); if ( cur ) { dlg->lvThemes->setSelected( cur, true ); dlg->lvThemes->ensureItemVisible( cur ); slotThemeChanged( cur ); } emit changed( true ); }
void kthememanager::addNewTheme( const KURL & url ) { if ( url.isValid() ) { QString themeName = QFileInfo( url.fileName() ).baseName(); if ( getThemeVersion( themeName ) != -1 ) // theme exists already { KTheme::remove( themeName ); // remove first } m_theme = new KTheme(this); if ( m_theme->load( url ) ) { listThemes(); emit changed( true ); } delete m_theme; m_theme = 0; updateButton(); } }
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) { setMinimumSize(850,600); resize(850,600); setWindowTitle(tr("ColossusCoin2") + " - " + 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); /* zeewolf: Hot swappable wallet themes */ // Discover themes listThemes(themesList); /* /zeewolf: Hot swappable wallet themes */ // 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); chatWindow = new ChatWindow(this); blockBrowser = new BlockBrowser(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(chatWindow); centralWidget->addWidget(blockBrowser); 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->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); QHBoxLayout *frameBlocksLayout = new QHBoxLayout(frameBlocks); frameBlocksLayout->setContentsMargins(3,0,3,0); frameBlocksLayout->setSpacing(3); labelEncryptionIcon = new QLabel(); labelStakingIcon = new QLabel(); labelConnectionsIcon = new QLabel(); labelBlocksIcon = new QLabel(); frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelEncryptionIcon); frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelStakingIcon); frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelConnectionsIcon); frameBlocksLayout->addStretch(); frameBlocksLayout->addWidget(labelBlocksIcon); frameBlocksLayout->addStretch(); if (GetBoolArg("-staking", true)) { QTimer *timerStakingIcon = new QTimer(labelStakingIcon); connect(timerStakingIcon, SIGNAL(timeout()), this, SLOT(updateStakingIcon())); timerStakingIcon->start(5 * 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); // 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(); }