qpidctrl  0.7.1
qpidsettingsdialog.cpp
Go to the documentation of this file.
1 #include "qpidsettingsdialog.h"
2 #include "ui_qpidsettingsdialog.h"
3 #include "qpidcontroller.h"
4 #include "qpiddevicethread.h"
5 #include "qpidserver.h"
6 #include "qpidlogger.h"
7 #include <QFileDialog>
8 
10  QDialog(parent),
11  ui(new Ui::QPidSettingsDialog),
12  m_Controller(ctl)
13 {
14  ui->setupUi(this);
15 
16  ui->m_GraphLength->setValue(m_Controller->get_GraphLength());
17  ui->m_GraphInterval->setValue(m_Controller->get_GraphInterval());
18 
19  QPidServerPtr srv(m_Controller->server());
20 
21  if (srv) {
22  ui->m_SocketServerPort->setValue(srv->get_PidServerPort());
23  }
24 
25  QPidLoggerPtr logger(m_Controller->logger());
26 
27  if (logger) {
28  ui->m_LogFileEnabled->setChecked(logger->get_Enabled());
29  ui->m_LogFileName->setText(logger->get_FileName());
30  ui->m_LogFileInterval->setValue(logger->get_UpdateInterval());
31  ui->m_LogFileScanSize->setValue(logger->get_PointLimit());
32  connect(ui->m_ChooseLogFile, SIGNAL(clicked()), this, SLOT(chooseLogFile()));
33  }
34 
35  connect(ui->m_ButtonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));
36 
37  setupDebugWidgets(m_Controller->get_Debug());
38 }
39 
41 {
42  delete ui;
43 }
44 
45 void QPidSettingsDialog::onButtonClicked(QAbstractButton *b)
46 {
47  if (ui->m_ButtonBox->buttonRole(b) == QDialogButtonBox::ApplyRole) {
48  applyChanges();
49  }
50 }
51 
53 {
54  QString filePath = QFileDialog::getSaveFileName(this, "Save Log File as...", ui->m_LogFileName->text(), "Log File (*.log);; Any file (* *.*)");
55 
56  if (filePath != "") {
57  ui->m_LogFileName->setText(filePath);
58  }
59 }
60 
62 {
63  if (qcepDebug(DEBUG_PREFS)) {
64  m_Controller->printMessage("QPidSettingsDialog::applyChanges");
65  }
66 
67  int debugLevel = readDebugWidgets();
68 
69  m_Controller -> set_GraphLength(ui->m_GraphLength->value());
70  m_Controller -> set_GraphInterval(ui->m_GraphInterval->value());
71 
72  QPidServerPtr srv(m_Controller->server());
73 
74  if (srv) {
75  srv->set_PidServerPort(ui->m_SocketServerPort->value());
76  }
77 
78  m_Controller -> set_Debug(debugLevel);
79 
80  QPidLoggerPtr logger(m_Controller->logger());
81 
82  if (logger) {
83  logger->set_Enabled(ui->m_LogFileEnabled->isChecked());
84  logger->set_FileName(ui->m_LogFileName->text());
85  logger->set_UpdateInterval(ui->m_LogFileInterval->value());
86  logger->set_PointLimit(ui->m_LogFileScanSize->value());
87  }
88 }
89 
91 {
92  applyChanges();
93 
94  close();
95 }
96 
98 {
99  ui->m_DebugLevel->setValue(dbg);
100 
101  if (g_DebugLevel == NULL) {
102  m_Controller->printMessage("g_DebugLevel == NULL in QxrdGlobalPreferencesDialog::setupDebugWidgets");
103  } else {
104  QGridLayout *grid = new QGridLayout(ui->m_DebugWidgets);
105 
106  for (int mask=1; mask; mask <<= 1) {
107  QString msg = g_DebugLevel->message(mask);
108 
109  if (msg.length() > 0) {
110  QCheckBox *cb = new QCheckBox(msg);
111  cb->setChecked(dbg & mask);
112 
113  m_DebugWidgetList.append(cb);
114 
115  connect(cb, SIGNAL(toggled(bool)), this, SLOT(onDebugWidgetChanged()));
116  } else {
117  break;
118  }
119  }
120 
121  int ndebug = m_DebugWidgetList.count();
122  int ncol = ndebug - ndebug/2;
123 
124  for (int i=0; i<ndebug; i++) {
125  QCheckBox *cb = m_DebugWidgetList[i];
126 
127  if (i < ncol) {
128  grid->addWidget(cb, i, 0);
129  } else {
130  grid->addWidget(cb, i - ncol, 1);
131  }
132  }
133  }
134 
135  connect(ui->m_DebugLevel, SIGNAL(valueChanged(int)), this, SLOT(onDebugValueChanged(int)));
136 }
137 
139 {
140  for (int mask=1, i=0; mask; mask <<= 1, i++) {
141  QCheckBox *cb = m_DebugWidgetList.value(i);
142 
143  if (cb) {
144  cb -> setChecked(dbg & mask);
145  }
146  }
147 }
148 
150 {
151  int mask = 1;
152  int newDbg = 0;
153  int ndebug = m_DebugWidgetList.count();
154 
155  for (int i=0; i<ndebug; i++) {
156  if (m_DebugWidgetList[i]->isChecked()) {
157  newDbg |= mask;
158  }
159 
160  mask <<= 1;
161  }
162 
163  return newDbg;
164 }
165 
167 {
168  if (readDebugWidgets() != dbg) {
169  writeDebugWidgets(dbg);
170  }
171 }
172 
174 {
175  if (readDebugWidgets() != ui->m_DebugLevel->value()) {
176  ui->m_DebugLevel->setValue(readDebugWidgets());
177  }
178 }
Ui::QPidSettingsDialog * ui
QSharedPointer< QPidLogger > QPidLoggerPtr
Definition: qpidlogger-ptr.h:6
void onDebugValueChanged(int dbg)
QSharedPointer< QPidController > QPidControllerPtr
void writeDebugWidgets(int dbg)
void onButtonClicked(QAbstractButton *b)
QPidSettingsDialog(QPidControllerPtr ctl, QWidget *parent=0)
void setupDebugWidgets(int dbg)
QVector< QCheckBox * > m_DebugWidgetList
QPidControllerPtr m_Controller
QSharedPointer< QPidServer > QPidServerPtr
Definition: qpidserver-ptr.h:6