You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

options.cpp 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #include "options.h"
  2. #include <QDir>
  3. Options* Options::m_options = 0;
  4. Options*Options::instance()
  5. {
  6. return m_options;
  7. }
  8. void Options::init(QObject* p)
  9. {
  10. m_options = new Options(p);
  11. }
  12. bool Options::startAtBoot()
  13. {
  14. #ifdef Q_OS_WIN
  15. QSettings set("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
  16. return set.childKeys().contains("Epimafia Netsoul");
  17. #else
  18. #ifdef Q_OS_LINUX
  19. return false;
  20. #else
  21. #error "OS sepcific"
  22. #endif
  23. #endif
  24. }
  25. QString Options::getDefaultLogin(bool override)
  26. {
  27. if(override)
  28. {
  29. QStringList args = qApp->arguments();
  30. int index = args.indexOf("-login");
  31. if(index != -1 && index < args.size() - 1)
  32. return args.at(index + 1);
  33. }
  34. return m_settings.value("defaultLogin").toString();
  35. }
  36. bool Options::isAutoConnect()
  37. {
  38. return m_settings.value("autoConnect", false).toBool();
  39. }
  40. QStringList Options::getContacts()
  41. {
  42. return qvariant_cast<QStringList>(m_settings.value("contacts"));
  43. }
  44. int Options::getAutoReconnectInterval()
  45. {
  46. return m_settings.value("autoreconnectInterval", 1000).toInt();
  47. }
  48. void Options::setStartAtBoot(bool s)
  49. {
  50. #ifdef Q_OS_WIN
  51. QSettings set("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
  52. if(s)
  53. set.setValue("Epimafia Netsoul", "\"" + qApp->applicationFilePath() + "\"");
  54. else
  55. set.remove("Epimafia Netsoul");
  56. #else
  57. #ifdef Q_OS_LINUX
  58. #else
  59. #error "OS specific"
  60. #endif
  61. #endif
  62. }
  63. void Options::setDefaultLogin(QString login)
  64. {
  65. m_settings.setValue("defaultLogin", login);
  66. }
  67. void Options::setAutoConnect(bool c)
  68. {
  69. m_settings.setValue("autoConnect", c);
  70. }
  71. void Options::setContacts(QStringList contacts)
  72. {
  73. m_settings.setValue("contacts", contacts);
  74. }
  75. void Options::setAutoReconnectInterval(int t)
  76. {
  77. m_settings.setValue("autoreconnectInterval", t);
  78. }
  79. Options::Options(QObject *parent) : QObject(parent),
  80. #ifdef Q_OS_WIN
  81. m_settings("epimafianetsoul.ini", QSettings::IniFormat)
  82. #else
  83. #ifdef Q_OS_LINUX
  84. m_settings(QDir::homePath() + "/.epimafianetsoul.ini", QSettings::IniFormat)
  85. #else
  86. #error "OS specific"
  87. #endif
  88. #endif
  89. {
  90. }