X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fbitcoin.cpp;h=59e9f6da9f7f3c323642566a31005a46be134b73;hb=83e34b29071b58d6578b197430d12c55d277a515;hp=bfb49cbcab2965daa01bb5f8d5176e9f0850b5f6;hpb=fa2544e79faf75923766624acd638e3cbdb9be0d;p=novacoin.git diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index bfb49cb..59e9f6d 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -7,8 +7,8 @@ #include "optionsmodel.h" #include "guiutil.h" -#include "headers.h" #include "init.h" +#include "ui_interface.h" #include "qtipcserver.h" #include @@ -119,6 +119,15 @@ std::string _(const char* psz) return QCoreApplication::translate("bitcoin-core", psz).toStdString(); } +/* Handle runaway exceptions. Shows a message box with the problem and quits the program. + */ +static void handleRunawayException(std::exception *e) +{ + PrintExceptionContinue(e, "Runaway exception"); + QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occured. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + QString::fromStdString(strMiscWarning)); + exit(1); +} + #ifdef WIN32 #define strncasecmp strnicmp #endif @@ -159,20 +168,21 @@ int main(int argc, char *argv[]) ParseParameters(argc, argv); // ... then bitcoin.conf: - if (!ReadConfigFile(mapArgs, mapMultiArgs)) + if (!boost::filesystem::is_directory(GetDataDir(false))) { fprintf(stderr, "Error: Specified directory does not exist\n"); return 1; } + ReadConfigFile(mapArgs, mapMultiArgs); // Application identification (must be set before OptionsModel is initialized, // as it is used to locate QSettings) - app.setOrganizationName("Bitcoin"); - app.setOrganizationDomain("bitcoin.org"); + app.setOrganizationName("NovaCoin"); + app.setOrganizationDomain("novacoin.ru"); if(GetBoolArg("-testnet")) // Separate UI settings for testnet - app.setApplicationName("Bitcoin-Qt-testnet"); + app.setApplicationName("NovaCoin-Qt-testnet"); else - app.setApplicationName("Bitcoin-Qt"); + app.setApplicationName("NovaCoin-Qt"); // ... then GUI settings: OptionsModel optionsModel; @@ -271,12 +281,14 @@ int main(int argc, char *argv[]) #endif app.exec(); + window.hide(); window.setClientModel(0); window.setWalletModel(0); guiref = 0; clientmodel = 0; walletmodel = 0; } + // Shutdown the core and it's threads, but don't exit Bitcoin-Qt here Shutdown(NULL); } else @@ -284,9 +296,9 @@ int main(int argc, char *argv[]) return 1; } } catch (std::exception& e) { - PrintException(&e, "Runaway exception"); + handleRunawayException(&e); } catch (...) { - PrintException(NULL, "Runaway exception"); + handleRunawayException(NULL); } return 0; }