app_settings.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef AVPLAYER2_APP_SETTINGS_H
  2. #define AVPLAYER2_APP_SETTINGS_H
  3. #pragma once
  4. #include <QSettings>
  5. #include <QDebug>
  6. #include <QDir>
  7. #include <QVAriant>
  8. #include <memory>
  9. #include "common.h"
  10. class AppSettings
  11. {
  12. public:
  13. explicit AppSettings(const QString& file = "VideoPlayer.ini");
  14. ~AppSettings(){};
  15. public:
  16. QVariant get_general(const QString& key) const;
  17. void set_general(const QString& key, const QVariant& value);
  18. QVariant get_info(const QString& key) const;
  19. void set_info(const QString& key, const QVariant& value);
  20. QVariant get_recentfiles(const QString& key = "files") const;
  21. void set_recentfiles(const QVariant& value = QVariant::Invalid, const QString& key = "files");
  22. QVariant get_savedplaylists(const QString& key = "files") const;
  23. void set_savedplaylists(const QVariant& value = QVariant::Invalid, const QString& key = "files");
  24. private:
  25. enum SectionID
  26. {
  27. SECTION_ID_NONE = -1,
  28. SECTION_ID_GENERAL,
  29. SECTION_ID_INFO,
  30. SECTION_ID_RECENTFILES,
  31. SECTION_ID_SAVEDPLAYLISTFILES,
  32. SECTION_ID_MAX
  33. };
  34. typedef struct Section
  35. {
  36. SectionID id;
  37. const char* str;
  38. } Section;
  39. private:
  40. void print_settings() const;
  41. void set_value(SectionID id, const QString& key, const QVariant& value);
  42. void set_value(const QString& group, const QString& key, const QVariant& value);
  43. QVariant get_value(const QString& group, const QString& key) const;
  44. QVariant get_value(SectionID id, const QString& key) const;
  45. inline static QString group_key(const QString& group, const QString& key);
  46. private:
  47. std::unique_ptr<QSettings> m_pSettings;
  48. static const Section m_sections[];
  49. };
  50. #endif // AVPLAYER2_APP_SETTINGS_H