#include <QStackedWidget>
#include <QDateTime>
#include <QMovie>
+#include <QTimer>
#include <QDragEnterEvent>
#include <QUrl>
QMainWindow(parent),
clientModel(0),
walletModel(0),
- dummyWidget(0),
encryptWalletAction(0),
changePassphraseAction(0),
aboutQtAction(0),
// Create the tray icon (or setup the dock icon)
createTrayIcon();
- // Dummy widget used when restoring window state after minimization
- dummyWidget = new QWidget();
-
// Create tabs
overviewPage = new OverviewPage();
#ifdef Q_WS_MAC
delete appMenuBar;
#endif
- delete dummyWidget;
}
void BitcoinGUI::createActions()
}
#endif
-void BitcoinGUI::showNormal()
-{
- // Reparent window to the desktop (in case it was hidden on minimize)
- if(parent() != NULL)
- setParent(NULL, Qt::Window);
- QMainWindow::showNormal();
-}
-
void BitcoinGUI::optionsClicked()
{
if(!clientModel || !clientModel->getOptionsModel())
setNumBlocks(clientModel->getNumBlocks());
}
-void BitcoinGUI::error(const QString &title, const QString &message)
+void BitcoinGUI::error(const QString &title, const QString &message, bool modal)
{
// Report errors from network/worker thread
- notificator->notify(Notificator::Critical, title, message);
+ if (modal)
+ {
+ QMessageBox::critical(this, title, message, QMessageBox::Ok, QMessageBox::Ok);
+ } else {
+ notificator->notify(Notificator::Critical, title, message);
+ }
}
void BitcoinGUI::changeEvent(QEvent *e)
{
+ QMainWindow::changeEvent(e);
#ifndef Q_WS_MAC // Ignored on Mac
if(e->type() == QEvent::WindowStateChange)
{
if(clientModel && clientModel->getOptionsModel()->getMinimizeToTray())
{
- if(isMinimized())
+ QWindowStateChangeEvent *wsevt = static_cast<QWindowStateChangeEvent*>(e);
+ if(!(wsevt->oldState() & Qt::WindowMinimized) && isMinimized())
{
- // Hiding the window from taskbar
- setParent(dummyWidget, Qt::SubWindow);
- return;
- }
- else
- {
- showNormal();
+ QTimer::singleShot(0, this, SLOT(hide()));
+ e->ignore();
}
}
}
#endif
- QMainWindow::changeEvent(e);
}
void BitcoinGUI::closeEvent(QCloseEvent *event)