aboutsummaryrefslogtreecommitdiff
path: root/src/qt/bitcoin.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-06-11 22:11:58 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2011-06-11 22:11:58 +0200
commitba4081c1fcaddf361abd61b2721994eff5475bb3 (patch)
tree8667eac9e13bde9d006407b55b73bacc830f46e6 /src/qt/bitcoin.cpp
parent5813089e0b5ab9cff50192f0068d256eb2602316 (diff)
move back to original directory structure
Diffstat (limited to 'src/qt/bitcoin.cpp')
-rw-r--r--src/qt/bitcoin.cpp122
1 files changed, 122 insertions, 0 deletions
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
new file mode 100644
index 0000000000..e003267426
--- /dev/null
+++ b/src/qt/bitcoin.cpp
@@ -0,0 +1,122 @@
+/*
+ * W.J. van der Laan 2011
+ */
+#include "bitcoingui.h"
+#include "clientmodel.h"
+#include "util.h"
+#include "init.h"
+#include "main.h"
+#include "externui.h"
+
+#include <QApplication>
+#include <QMessageBox>
+#include <QThread>
+
+// Need a global reference for the notifications to find the GUI
+BitcoinGUI *guiref;
+
+int MyMessageBox(const std::string& message, const std::string& caption, int style, wxWindow* parent, int x, int y)
+{
+ // Message from main thread
+ if(guiref)
+ {
+ guiref->error(QString::fromStdString(caption),
+ QString::fromStdString(message));
+ }
+ else
+ {
+ QMessageBox::critical(0, QString::fromStdString(caption),
+ QString::fromStdString(message),
+ QMessageBox::Ok, QMessageBox::Ok);
+ }
+ return 4;
+}
+
+int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style, wxWindow* parent, int x, int y)
+{
+ // Message from network thread
+ if(guiref)
+ {
+ QMetaObject::invokeMethod(guiref, "error", Qt::QueuedConnection,
+ Q_ARG(QString, QString::fromStdString(caption)),
+ Q_ARG(QString, QString::fromStdString(message)));
+ }
+ else
+ {
+ printf("%s: %s\n", caption.c_str(), message.c_str());
+ fprintf(stderr, "%s: %s\n", caption.c_str(), message.c_str());
+ }
+ return 4;
+}
+
+bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent)
+{
+ if(!guiref)
+ return false;
+ if(nFeeRequired < MIN_TX_FEE || nFeeRequired <= nTransactionFee || fDaemon)
+ return true;
+ bool payFee = false;
+
+ /* Call slot on GUI thread.
+ If called from another thread, use a blocking QueuedConnection.
+ */
+ Qt::ConnectionType connectionType = Qt::DirectConnection;
+ if(QThread::currentThread() != QCoreApplication::instance()->thread())
+ {
+ connectionType = Qt::BlockingQueuedConnection;
+ }
+
+ QMetaObject::invokeMethod(guiref, "askFee", connectionType,
+ Q_ARG(qint64, nFeeRequired),
+ Q_ARG(bool*, &payFee));
+
+ return payFee;
+}
+
+void CalledSetStatusBar(const std::string& strText, int nField)
+{
+ // Only used for built-in mining, which is disabled, simple ignore
+}
+
+void UIThreadCall(boost::function0<void> fn)
+{
+ // Only used for built-in mining, which is disabled, simple ignore
+}
+
+void MainFrameRepaint()
+{
+}
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ app.setQuitOnLastWindowClosed(false);
+
+ try
+ {
+ if(AppInit2(argc, argv))
+ {
+ BitcoinGUI window;
+ ClientModel model;
+ guiref = &window;
+ window.setModel(&model);
+
+ window.show();
+
+ int retval = app.exec();
+
+ guiref = 0;
+ Shutdown(NULL);
+
+ return retval;
+ }
+ else
+ {
+ return 1;
+ }
+ } catch (std::exception& e) {
+ PrintException(&e, "Runaway exception");
+ } catch (...) {
+ PrintException(NULL, "Runaway exception");
+ }
+}