integration.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // This file is part of Desktop App Toolkit,
  2. // a set of libraries for developing nice desktop applications.
  3. //
  4. // For license and copyright information please follow this link:
  5. // https://github.com/desktop-app/legal/blob/master/LEGAL
  6. //
  7. #pragma once
  8. #include "base/basic_types.h"
  9. namespace base {
  10. class Integration {
  11. public:
  12. static void Set(not_null<Integration*> instance);
  13. static Integration &Instance();
  14. static bool Exists();
  15. Integration(int argc, char *argv[]);
  16. virtual void enterFromEventLoop(FnMut<void()> &&method) = 0;
  17. virtual bool logSkipDebug() = 0;
  18. virtual void logMessageDebug(const QString &message) = 0;
  19. virtual void logMessage(const QString &message) = 0;
  20. virtual void logAssertionViolation(const QString &info);
  21. virtual void setCrashAnnotation(
  22. const std::string &key,
  23. const QString &value);
  24. [[nodiscard]] QString executableDir() const;
  25. [[nodiscard]] QString executableName() const;
  26. [[nodiscard]] QString executablePath() const;
  27. virtual ~Integration() = default;
  28. private:
  29. QString _executableDir;
  30. QString _executableName;
  31. };
  32. } // namespace base