# # # patch "src/GuitoneStandalone.cpp" # from [50b0c665667b9d8f90c033cc0658b70fbcd6aab7] # to [0f45cc008f6c68151383d4b207bf28ea662ed911] # # patch "src/GuitoneStandalone.h" # from [a0683ca5bcf98a29699c8be753360fef9c5d0da2] # to [26fea437d47ba46c1928f52ba4ce9e5bd5a359ae] # ============================================================ --- src/GuitoneStandalone.cpp 50b0c665667b9d8f90c033cc0658b70fbcd6aab7 +++ src/GuitoneStandalone.cpp 0f45cc008f6c68151383d4b207bf28ea662ed911 @@ -33,8 +33,7 @@ GuitoneStandalone::GuitoneStandalone(int #endif GuitoneStandalone::GuitoneStandalone(int & argc, char** argv) - : GuitoneCore(argc, argv), - openPrompt(0), somethingLoaded(false) + : GuitoneCore(argc, argv), openPrompt(0) { #ifdef Q_WS_MACX // this is kind of backwards, but there is no other way to do it: @@ -54,6 +53,8 @@ GuitoneStandalone::GuitoneStandalone(int setQuitOnLastWindowClosed(false); + programArgs = arguments(); + connect( this, SIGNAL(monotoneBinaryPathSet()), this, SLOT(loadSomething()), @@ -72,18 +73,15 @@ void GuitoneStandalone::loadSomething() void GuitoneStandalone::loadSomething() { - // if something was already loaded, skip this - if (somethingLoaded) return; - I(manager()->monotoneBinaryPathSet()); D("checking command line arguments and file open requests"); - QStringList args = arguments(); - for (int i=1, j=args.size(); itype()) { case QEvent::FileOpen: { - D("got FileOpen event"); QString file = static_cast(ev)->file(); - I(manager()->monotoneBinaryPathSet()); - - if (tryLoadSomething(file)) + if (!manager()->monotoneBinaryPathSet()) { - somethingLoaded = true; + D("deferring FileOpen event since binary path is not yet set"); + programArgs.push_back(file); } + else + { + if (tryLoadSomething(file) && openPrompt) + { + openPrompt->hide(); + } + } eaten = true; break; } ============================================================ --- src/GuitoneStandalone.h a0683ca5bcf98a29699c8be753360fef9c5d0da2 +++ src/GuitoneStandalone.h 26fea437d47ba46c1928f52ba4ce9e5bd5a359ae @@ -62,10 +62,10 @@ private: bool closeAllWindows(); bool event(QEvent *); + QStringList programArgs; OpenPrompt * openPrompt; QList openWindows; QMutex lock; - bool somethingLoaded; }; #endif