fb2app.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include <QErrorMessage>
  2. #include <QLocale>
  3. #include <QTranslator>
  4. #include "fb2app.hpp"
  5. #include "fb2main.hpp"
  6. #ifndef PACKAGE_NAME
  7. #define PACKAGE_NAME "fb2edit"
  8. #define PACKAGE_VENDOR "LinTest"
  9. #define PACKAGE_VERSION "0.XX.XX"
  10. #endif // PACKAGE_VERSION
  11. QString FbApplication::lastCommit()
  12. {
  13. #ifdef COMMIT_INFO
  14. return QString(COMMIT_INFO).replace("//", "<br>");
  15. #else
  16. return QString();
  17. #endif // PACKAGE_VERSION
  18. }
  19. void FbApplication::handleMessage(QtMsgType type, const char *msg)
  20. {
  21. /*
  22. switch (type) {
  23. case QtDebugMsg:
  24. fprintf(stderr, "Debug: %s\n", msg);
  25. break;
  26. case QtWarningMsg:
  27. fprintf(stderr, "Warning: %s\n", msg);
  28. break;
  29. case QtCriticalMsg:
  30. fprintf(stderr, "Critical: %s\n", msg);
  31. break;
  32. case QtFatalMsg:
  33. fprintf(stderr, "Fatal: %s\n", msg);
  34. abort();
  35. }
  36. */
  37. emit logMessage( QString::fromUtf8(msg));
  38. }
  39. static void fb2MessageHandler(QtMsgType type, const char *msg)
  40. {
  41. ((FbApplication*)qApp)->handleMessage(type, msg);
  42. }
  43. int main(int argc, char *argv[])
  44. {
  45. Q_INIT_RESOURCE(fb2edit);
  46. FbApplication app(argc, argv);
  47. app.setApplicationName(QString(PACKAGE_NAME));
  48. app.setOrganizationName(QString(PACKAGE_VENDOR));
  49. app.setApplicationVersion(QString(PACKAGE_VERSION));
  50. QTranslator translator;
  51. translator.load(QLocale::system().name(), ":ts");
  52. app.installTranslator(&translator);
  53. int count = app.arguments().count();
  54. for (int i = 1; i < count; i++) {
  55. QString arg = app.arguments().at(i);
  56. (new FbMainWindow(arg))->show();
  57. }
  58. if (count == 1) (new FbMainWindow)->show();
  59. qInstallMsgHandler(fb2MessageHandler);
  60. return app.exec();
  61. }