TARGET = novacoin-qt
VERSION = 0.7.5
INCLUDEPATH += src src/json src/qt
+QT += core gui network
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE
CONFIG += no_include_pwd
CONFIG += thread
+CONFIG += static
# for boost 1.37, add -mt to the boost libraries
# use: qmake BOOST_LIB_SUFFIX=-mt
# Dependency library locations can be customized with:
# BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH,
# BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively
+BOOST_LIB_SUFFIX=-mgw49-mt-s-1_55
+BOOST_INCLUDE_PATH=C:/deps/boost_1_55_0
+BOOST_LIB_PATH=C:/deps/boost_1_55_0/stage/lib
+BDB_INCLUDE_PATH=C:/deps/db-6.0.20/build_unix
+BDB_LIB_PATH=C:/deps/db-6.0.20/build_unix
+OPENSSL_INCLUDE_PATH=C:/deps/openssl-1.0.1j/include
+OPENSSL_LIB_PATH=C:/deps/openssl-1.0.1j
+MINIUPNPC_INCLUDE_PATH=C:/deps/
+MINIUPNPC_LIB_PATH=C:/deps/miniupnpc
+QRENCODE_INCLUDE_PATH=C:/deps/qrencode-3.4.4
+QRENCODE_LIB_PATH=C:/deps/qrencode-3.4.4/.libs
OBJECTS_DIR = build
MOC_DIR = build
# This can be enabled for Windows, when we switch to MinGW >= 4.4.x.
}
# for extra security on Windows: enable ASLR and DEP via GCC linker flags
-win32:QMAKE_LFLAGS *= -Wl,--dynamicbase -Wl,--nxcompat
-win32:QMAKE_LFLAGS += -static-libgcc -static-libstdc++
+
+win32:QMAKE_LFLAGS *= -Wl,--large-address-aware -static
# use: qmake "USE_QRCODE=1"
# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support
QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib)
}
LIBS += -lshlwapi
- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
+ #genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a
}
genleveldb.target = $$PWD/src/leveldb/libleveldb.a
genleveldb.depends = FORCE
#include "aboutdialog.h"
#include "ui_aboutdialog.h"
+
+#include "dialogwindowflags.h"
+
#include "clientmodel.h"
#include "version.h"
AboutDialog::AboutDialog(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::AboutDialog)
{
ui->setupUi(this);
// Set column widths
ui->tableView->horizontalHeader()->resizeSection(
AddressTableModel::Address, 320);
+#if QT_VERSION < 0x050000
ui->tableView->horizontalHeader()->setResizeMode(
AddressTableModel::Label, QHeaderView::Stretch);
-
+#else
+ ui->tableView->horizontalHeader()->setSectionResizeMode(
+ AddressTableModel::Label, QHeaderView::Stretch);
+#endif
connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(selectionChanged()));
#include "ui_askpassphrasedialog.h"
#include "guiconstants.h"
+#include "dialogwindowflags.h"
#include "walletmodel.h"
#include <QMessageBox>
extern bool fWalletUnlockMintOnly;
AskPassphraseDialog::AskPassphraseDialog(Mode mode, QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::AskPassphraseDialog),
mode(mode),
model(0),
#include <QApplication>
#include <QMessageBox>
+#if QT_VERSION < 0x050000
#include <QTextCodec>
+#endif
#include <QLocale>
#include <QTranslator>
#include <QSplashScreen>
{
// Do this early as we don't want to bother initializing if we are just calling IPC
ipcScanRelay(argc, argv);
-
+#if QT_VERSION < 0x050000
// Internal string conversion is all UTF-8
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForTr());
-
+#endif
Q_INIT_RESOURCE(bitcoin);
QApplication app(argc, argv);
#endif
#include <QApplication>
+#if QT_VERSION < 0x050000
#include <QMainWindow>
+#endif
#include <QMenuBar>
#include <QMenu>
#include <QIcon>
#include <QDateTime>
#include <QMovie>
#include <QFileDialog>
+#if QT_VERSION < 0x050000
#include <QDesktopServices>
+#else
+#include <QStandardPaths>
+#endif
#include <QTimer>
#include <QDragEnterEvent>
+#if QT_VERSION < 0x050000
#include <QUrl>
+#endif
#include <QStyle>
+#include <QMimeData>
#include <iostream>
void BitcoinGUI::backupWallet()
{
+#if QT_VERSION < 0x050000
QString saveDir = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
+#else
+ QString saveDir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
+#endif
QString filename = QFileDialog::getSaveFileName(this, tr("Backup Wallet"), saveDir, tr("Wallet Data (*.dat)"));
if(!filename.isEmpty()) {
if(!walletModel->backupWallet(filename)) {
#include "addresstablemodel.h"
#include "optionsmodel.h"
#include "coincontrol.h"
+#include "dialogwindowflags.h"
#include <QApplication>
#include <QCheckBox>
CCoinControl* CoinControlDialog::coinControl = new CCoinControl();
CoinControlDialog::CoinControlDialog(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::CoinControlDialog),
model(0)
{
connect(ui->treeWidget, SIGNAL(itemChanged( QTreeWidgetItem*, int)), this, SLOT(viewItemChanged( QTreeWidgetItem*, int)));
// click on header
+#if QT_VERSION < 0x050000
ui->treeWidget->header()->setClickable(true);
+#else
+ ui->treeWidget->header()->setSectionsClickable(true);
+#endif
connect(ui->treeWidget->header(), SIGNAL(sectionClicked(int)), this, SLOT(headerSectionClicked(int)));
// ok button
--- /dev/null
+#ifndef DIALOGWINDOWFLAGS_H
+#define DIALOGWINDOWFLAGS_H
+// Dialog Window Flags
+#if QT_VERSION < 0x050000
+ static const Qt::WindowFlags DIALOGWINDOWHINTS = Qt::WindowSystemMenuHint | Qt::WindowTitleHint;
+#else
+ static const Qt::WindowFlags DIALOGWINDOWHINTS = Qt::WindowCloseButtonHint | Qt::WindowTitleHint;
+#endif
+#endif
\ No newline at end of file
#include "editaddressdialog.h"
#include "ui_editaddressdialog.h"
#include "addresstablemodel.h"
+#include "dialogwindowflags.h"
+#include "guiconstants.h"
#include "guiutil.h"
#include <QDataWidgetMapper>
#include <QMessageBox>
EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::EditAddressDialog), mapper(0), mode(mode), model(0)
{
ui->setupUi(this);
#define EDITADDRESSDIALOG_H
#include <QDialog>
+#include "dialogwindowflags.h"
QT_BEGIN_NAMESPACE
class QDataWidgetMapper;
#include <QDoubleValidator>
#include <QFont>
#include <QLineEdit>
+#if QT_VERSION >= 0x050000
+#include <QUrlQuery>
+#else
#include <QUrl>
-#include <QTextDocument> // For Qt::escape
+#endif
+#include <QTextDocument> // For Qt::mightBeRichText
#include <QAbstractItemView>
#include <QApplication>
#include <QClipboard>
SendCoinsRecipient rv;
rv.address = uri.path();
rv.amount = 0;
+#if QT_VERSION < 0x050000
QList<QPair<QString, QString> > items = uri.queryItems();
+#else
+ QUrlQuery uriQuery(uri);
+ QList<QPair<QString, QString> > items = uriQuery.queryItems();
+#endif
for (QList<QPair<QString, QString> >::iterator i = items.begin(); i != items.end(); i++)
{
bool fShouldReturnFalse = false;
QString HtmlEscape(const QString& str, bool fMultiLine)
{
+#if QT_VERSION < 0x050000
QString escaped = Qt::escape(str);
+#else
+ QString escaped = str.toHtmlEscaped();
+#endif
if(fMultiLine)
{
escaped = escaped.replace("\n", "<br>\n");
QString myDir;
if(dir.isEmpty()) // Default to user documents location
{
+#if QT_VERSION < 0x050000
myDir = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
+#else
+ myDir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
+#endif
}
else
{
#include "monitoreddatamapper.h"
#include "netbase.h"
#include "optionsmodel.h"
+#include "guiconstants.h"
+#include "dialogwindowflags.h"
#include <QDir>
#include <QIntValidator>
#include <QRegExpValidator>
OptionsDialog::OptionsDialog(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::OptionsDialog),
model(0),
mapper(0),
bool confirmed = index.data(TransactionTableModel::ConfirmedRole).toBool();
QVariant value = index.data(Qt::ForegroundRole);
QColor foreground = option.palette.color(QPalette::Text);
+#if QT_VERSION < 0x050000
if(qVariantCanConvert<QColor>(value))
+#else
+ if(value.canConvert(QMetaType::QColor))
+#endif
{
foreground = qvariant_cast<QColor>(value);
}
#include "ui_qrcodedialog.h"
#include "bitcoinunits.h"
+#include "dialogwindowflags.h"
#include "guiconstants.h"
#include "guiutil.h"
#include "optionsmodel.h"
#include <qrencode.h>
QRCodeDialog::QRCodeDialog(const QString &addr, const QString &label, bool enableReq, QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::QRCodeDialog),
model(0),
address(addr)
#include "clientmodel.h"
#include "bitcoinrpc.h"
#include "guiutil.h"
+#include "dialogwindowflags.h"
#include <QTime>
#include <QTimer>
}
RPCConsole::RPCConsole(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::RPCConsole),
historyPtr(0)
{
#include "optionsmodel.h"
#include "sendcoinsentry.h"
#include "guiutil.h"
+#include "guiconstants.h"
+#include "dialogwindowflags.h"
#include "askpassphrasedialog.h"
#include "coincontrol.h"
#include <QClipboard>
SendCoinsDialog::SendCoinsDialog(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::SendCoinsDialog),
model(0)
{
QStringList formatted;
foreach(const SendCoinsRecipient &rcp, recipients)
{
+#if QT_VERSION < 0x050000
formatted.append(tr("<b>%1</b> to %2 (%3)").arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, rcp.amount), Qt::escape(rcp.label), rcp.address));
+#else
+ formatted.append(tr("<b>%1</b> to %2 (%3)").arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, rcp.amount), rcp.label.toHtmlEscaped(), rcp.address));
+#endif
}
fNewRecipientAllowed = false;
#include "addressbookpage.h"
#include "base58.h"
#include "guiutil.h"
+#include "guiconstants.h"
+#include "dialogwindowflags.h"
#include "init.h"
#include "main.h"
#include "optionsmodel.h"
#include <QClipboard>
SignVerifyMessageDialog::SignVerifyMessageDialog(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::SignVerifyMessageDialog),
model(0)
{
#include "ui_transactiondescdialog.h"
#include "transactiontablemodel.h"
+#include "dialogwindowflags.h"
#include <QModelIndex>
TransactionDescDialog::TransactionDescDialog(const QModelIndex &idx, QWidget *parent) :
- QDialog(parent),
+ QDialog(parent, DIALOGWINDOWHINTS),
ui(new Ui::TransactionDescDialog)
{
ui->setupUi(this);
TransactionTableModel::Date, 120);
transactionView->horizontalHeader()->resizeSection(
TransactionTableModel::Type, 120);
+#if QT_VERSION < 0x050000
transactionView->horizontalHeader()->setResizeMode(
TransactionTableModel::ToAddress, QHeaderView::Stretch);
+#else
+ transactionView->horizontalHeader()->setSectionResizeMode(TransactionTableModel::ToAddress, QHeaderView::Stretch);
+#endif
transactionView->horizontalHeader()->resizeSection(
TransactionTableModel::Amount, 100);
}
int64 n_abs = (n > 0 ? n : -n);
int64 quotient = n_abs/COIN;
int64 remainder = n_abs%COIN;
- string str = strprintf("%"PRI64d".%06"PRI64d, quotient, remainder);
+ string str = strprintf("%"PRI64d".%08"PRI64d, quotient, remainder);
// Right-trim excess zeros before the decimal point:
int nTrim = 0;