Files
pilotclient/samples/blackgui/main.cpp
Klaus Basan f9eca1f3a5 refs #304, adjusted main window to previous changes
* new namespaces
* centralized icons
* dockable widgets
2014-08-05 23:31:52 +02:00

94 lines
2.6 KiB
C++

#include "introwindow.h"
#include "mainwindow.h"
#include "guimodeenums.h"
#include "blackgui/stylesheetutility.h"
#include "blackcore/blackcorefreefunctions.h"
#include "blackcore/context_runtime_config.h"
#include "blacksim/blacksimfreefunctions.h"
#include "blackmisc/blackmiscfreefunctions.h"
#include "blackmisc/iconsstandard.h"
#include <QtGlobal>
#include <QApplication>
#include <QMessageBox>
#include <QPushButton>
using namespace BlackGui;
/*!
* \brief Main
* \param argc
* \param argv
* \return
*/
int main(int argc, char *argv[])
{
// register
BlackMisc::initResources();
BlackMisc::registerMetadata();
BlackSim::registerMetadata();
BlackCore::registerMetadata();
// BlackMisc::displayAllUserMetatypesTypes();
// Translations
QFile file(":blackmisc/translations/blackmisc_i18n_de.qm");
qDebug() << (file.exists() ? "Found translations in resources" : "No translations in resources");
QTranslator translator;
if (translator.load("blackmisc_i18n_de", ":blackmisc/translations/"))
{
qDebug() << "Translator loaded";
}
// application
QApplication a(argc, argv);
QIcon icon(BlackMisc::CIconsStandard::swift24());
QApplication::setWindowIcon(icon);
const QString s = CStyleSheetUtility::instance().styles(
{
CStyleSheetUtility::fileNameFonts(),
CStyleSheetUtility::fileNameMainWindow()
}
);
a.installTranslator(&translator);
a.setStyleSheet(s);
// modes
GuiModes::WindowMode windowMode;
GuiModes::CoreMode coreMode;
// Dialog to decide external or internal core
CIntroWindow intro;
intro.setWindowIcon(icon);
BlackCore::CRuntimeConfig runtimeConfig;
if (intro.exec() == QDialog::Rejected)
{
return 0;
}
else
{
coreMode = intro.getCoreMode();
windowMode = intro.getWindowMode();
QString dbusAddress = BlackCore::CDBusServer::fixAddressToDBusAddress(intro.getDBusAddress());
switch (coreMode)
{
case GuiModes::CoreExternal:
runtimeConfig = BlackCore::CRuntimeConfig::remote(dbusAddress);
break;
case GuiModes::CoreInGuiProcess:
runtimeConfig = BlackCore::CRuntimeConfig::local(dbusAddress);
break;
case GuiModes::CoreExternalAudioLocal:
runtimeConfig = BlackCore::CRuntimeConfig::remoteLocalAudio(dbusAddress);
break;
}
}
intro.close();
// show window
MainWindow w(windowMode);
w.show();
w.init(runtimeConfig); // object is complete by now
int r = a.exec();
return r;
}