symbiansettingsgui.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #include <QDir>
  2. #include <QDebug>
  3. #include <QFileDialog>
  4. #include "settings.h"
  5. #include "symbiansettingsgui.h"
  6. #include "ui_symbiansettingsgui.h"
  7. SymbianSettingsGui::SymbianSettingsGui(QWidget *parent) :
  8. QWidget(parent),
  9. ui(new Ui::SymbianSettingsGui)
  10. {
  11. ui->setupUi(this);
  12. // Read values
  13. ui->uid3Value->setText(Settings::get(Settings::UID3).toString());
  14. ui->qtenvValue->setText(Settings::get(Settings::QtEnvBatPath).toString()); // Note: check for Qt before mobility path! Mobility tries to guess based on Qt path.
  15. ui->logFileValue->setText(Settings::get(Settings::LogFilePath).toString());
  16. ui->layoutValue->setCurrentIndex(Settings::get(Settings::WidgetLayout).toInt());
  17. ui->checkWidgetPannable->setChecked(Settings::get(Settings::PanningEnabled).toBool());
  18. ui->checkTextSelectable->setChecked(Settings::get(Settings::TextSelectionEnabled).toBool());
  19. if (Settings::get(Settings::FullS60SDK).toBool())
  20. {
  21. ui->radioSDKS60->setChecked(true);
  22. }
  23. else
  24. {
  25. ui->radioSDKQt->setChecked(true);
  26. }
  27. // Connect browse buttons
  28. connect(ui->buttonBrowseBat, SIGNAL(clicked()), this, SLOT(browseForBat()));
  29. connect(ui->buttonBrowseLog, SIGNAL(clicked()), this, SLOT(browseForLog()));
  30. }
  31. SymbianSettingsGui::~SymbianSettingsGui()
  32. {
  33. delete ui;
  34. }
  35. void SymbianSettingsGui::changeEvent(QEvent *e)
  36. {
  37. QWidget::changeEvent(e);
  38. switch (e->type()) {
  39. case QEvent::LanguageChange:
  40. ui->retranslateUi(this);
  41. break;
  42. default:
  43. break;
  44. }
  45. }
  46. void SymbianSettingsGui::saveSettings() const
  47. {
  48. Settings::set(Settings::UID3, ui->uid3Value->text().trimmed());
  49. Settings::set(Settings::QtEnvBatPath, ui->qtenvValue->text().trimmed());
  50. Settings::set(Settings::LogFilePath, ui->logFileValue->text().trimmed());
  51. Settings::set(Settings::WidgetLayout, ui->layoutValue->currentIndex());
  52. Settings::set(Settings::PanningEnabled, ui->checkWidgetPannable->isChecked());
  53. Settings::set(Settings::TextSelectionEnabled, ui->checkTextSelectable->isChecked());
  54. Settings::set(Settings::FullS60SDK, ui->radioSDKS60->isChecked());
  55. }
  56. void SymbianSettingsGui::browseForBat()
  57. {
  58. QFileInfo file = getFileInfo(Settings::get(Settings::QtEnvBatPath).toString());
  59. QString fileName = QFileDialog::getOpenFileName(this, tr("Select qtenv.bat"), file.absolutePath(), tr("Batch files") + " (*.bat);;" + tr("All Files (*)"));
  60. if (!fileName.isEmpty())
  61. {
  62. fileName = QDir::toNativeSeparators(fileName);
  63. ui->qtenvValue->setText(fileName);
  64. }
  65. }
  66. void SymbianSettingsGui::browseForLog()
  67. {
  68. // Existing
  69. QFileInfo file = getFileInfo(Settings::get(Settings::LogFilePath).toString());
  70. QString fileName = QFileDialog::getOpenFileName(this, tr("Select application log file"), file.absolutePath(), tr("Log files") + " (*.log);;" + tr("All Files (*)"));
  71. if (!fileName.isEmpty())
  72. {
  73. fileName = QDir::toNativeSeparators(fileName);
  74. ui->logFileValue->setText(fileName);
  75. }
  76. }
  77. QFileInfo SymbianSettingsGui::getFileInfo(QString fileName)
  78. {
  79. QFileInfo file(fileName);
  80. if (!QFile::exists(file.absolutePath()))
  81. {
  82. file = QFileInfo(QDir::root().absolutePath());
  83. }
  84. return file;
  85. }