##// END OF EJS Templates
added outdated marker for registers
jeandet -
r14:9180c6ebb055 default
parent child
Show More
@@ -135,6 +135,8 void peripheralWidget::keyPressEvent(QKe
135 break;
135 break;
136 case Qt::Key_W:
136 case Qt::Key_W:
137 emit writeRegSig(registersWdgts.at(selectedReg)->address(),registersWdgts.at(selectedReg)->value());
137 emit writeRegSig(registersWdgts.at(selectedReg)->address(),registersWdgts.at(selectedReg)->value());
138 registersWdgts.at(selectedReg)->setUpdated(true);
139 registersWdgts.at(selectedReg)->repaint();
138 break;
140 break;
139 case Qt::Key_R:
141 case Qt::Key_R:
140 qint32 value;
142 qint32 value;
@@ -171,6 +173,16 void peripheralWidget::keyPressEvent(QKe
171 case Qt::Key_Down:
173 case Qt::Key_Down:
172 down();
174 down();
173 break;
175 break;
176 case Qt::Key_W:
177 emit writeRegSig(registersWdgts.at(selectedReg)->address(),registersWdgts.at(selectedReg)->value());
178 registersWdgts.at(selectedReg)->setUpdated(true);
179 registersWdgts.at(selectedReg)->repaint();
180 break;
181 case Qt::Key_R:
182 qint32 value;
183 value = emit readRegSig(registersWdgts.at(selectedReg)->address());
184 registersWdgts.at(selectedReg)->setValue(value);
185 break;
174 default:
186 default:
175 break;
187 break;
176 }
188 }
@@ -132,10 +132,11 QString registerWidget::bitFieldToBin(in
132 return QString("Out of range");
132 return QString("Out of range");
133 }
133 }
134
134
135 void registerWidget::setValue(qint32 value)
135 void registerWidget::setValue(qint32 value, bool updated)
136 {
136 {
137 this->p_value = value;
137 this->p_value = value;
138 this->p_fieldsEl->setValue(QString("%1").arg((uint)p_value,32,2).replace(" ","0"));
138 this->p_fieldsEl->setValue(QString("%1").arg((uint)p_value,32,2).replace(" ","0"));
139 this->p_fieldsEl->setUpdated(updated);
139 emit this->repaint();
140 emit this->repaint();
140 }
141 }
141
142
@@ -169,16 +170,25 void registerWidget::leave()
169
170
170 void registerWidget::clear(int index)
171 void registerWidget::clear(int index)
171 {
172 {
172 p_value &= ~(1<<index);
173 if(!this->p_fieldsEl->readonly(index))
173 this->p_fieldsEl->setValue(QString("%1").arg((uint)p_value,32,2).replace(" ","0"));
174 {
174 emit this->repaint();
175 qint32 old = p_value;
176 p_value &= ~(1<<index);
177 if(old!=p_value)
178 p_fieldsEl->setUpdated(false);
179 this->p_fieldsEl->setValue(QString("%1").arg((uint)p_value,32,2).replace(" ","0"));
180 emit this->repaint();
181 }
175 }
182 }
176
183
177 void registerWidget::set(int index)
184 void registerWidget::set(int index)
178 {
185 {
179 if(!this->p_fieldsEl->readonly(index))
186 if(!this->p_fieldsEl->readonly(index))
180 {
187 {
188 qint32 old = p_value;
181 p_value |= 1<<index;
189 p_value |= 1<<index;
190 if(old!=p_value)
191 p_fieldsEl->setUpdated(false);
182 this->p_fieldsEl->setValue(QString("%1").arg((uint)p_value,32,2).replace(" ","0"));
192 this->p_fieldsEl->setValue(QString("%1").arg((uint)p_value,32,2).replace(" ","0"));
183 emit this->repaint();
193 emit this->repaint();
184 }
194 }
@@ -206,7 +216,9 bitfieldsElement::bitfieldsElement(const
206 p_dx=QFontMetrics(p_font).width("0")+4;
216 p_dx=QFontMetrics(p_font).width("0")+4;
207 p_blinkTextBgColor = QColor(Qt::black);
217 p_blinkTextBgColor = QColor(Qt::black);
208 p_blinkTextColor = QColor(Qt::white);
218 p_blinkTextColor = QColor(Qt::white);
219 p_outdated = QColor(Qt::red);
209 p_cursorBlinkEnable = false;
220 p_cursorBlinkEnable = false;
221 p_changed = false;
210 updateBoundingRect();
222 updateBoundingRect();
211 }
223 }
212
224
@@ -263,7 +275,13 QPoint bitfieldsElement::paint(QPainter
263 painter->drawLine(xpos+(p_xMargins/2),p_boundingRec.height()-6,xpos+(p_xMargins/2),p_boundingRec.height()+6);
275 painter->drawLine(xpos+(p_xMargins/2),p_boundingRec.height()-6,xpos+(p_xMargins/2),p_boundingRec.height()+6);
264 xpos+=p_xMargins;
276 xpos+=p_xMargins;
265 }
277 }
278 QPen svg = painter->pen();
279 if(p_changed)
280 {
281 painter->setPen(p_outdated);
282 }
266 painter->drawRect(0,0,p_boundingRec.width(),p_boundingRec.height());
283 painter->drawRect(0,0,p_boundingRec.width(),p_boundingRec.height());
284 painter->setPen(svg);
267 return QPoint(p_boundingRec.width()+4+p_xMargins,0);
285 return QPoint(p_boundingRec.width()+4+p_xMargins,0);
268 }
286 }
269
287
@@ -137,6 +137,10 public:
137 }
137 }
138 return QString("");
138 return QString("");
139 }
139 }
140 void setUpdated(bool updated=true)
141 {
142 this->p_changed = !updated;
143 }
140 private:
144 private:
141 uint p_valueUint(int index)
145 uint p_valueUint(int index)
142 {
146 {
@@ -170,9 +174,10 private:
170 uint p_startSelectionIndex;
174 uint p_startSelectionIndex;
171 uint p_stopSelectionIndex;
175 uint p_stopSelectionIndex;
172 bool p_cursorBlinkEnable;
176 bool p_cursorBlinkEnable;
177 bool p_changed;
173 int p_dx;
178 int p_dx;
174 QList<bitFieldAttribute*> attributesLUT;
179 QList<bitFieldAttribute*> attributesLUT;
175 QColor p_blinkTextColor,p_blinkTextBgColor;
180 QColor p_blinkTextColor,p_blinkTextBgColor,p_outdated;
176
181
177 };
182 };
178
183
@@ -197,6 +202,10 public:
197 QString bitFieldToHex(int bitIndex);
202 QString bitFieldToHex(int bitIndex);
198 QString bitFieldToDec(int bitIndex);
203 QString bitFieldToDec(int bitIndex);
199 QString bitFieldToBin(int bitIndex);
204 QString bitFieldToBin(int bitIndex);
205 void setUpdated(bool updated=true)
206 {
207 this->p_fieldsEl->setUpdated(updated);
208 }
200 signals:
209 signals:
201 void cursorUp(int pos);
210 void cursorUp(int pos);
202 void cursorDown(int pos);
211 void cursorDown(int pos);
@@ -204,7 +213,7 signals:
204 void repaint();
213 void repaint();
205
214
206 public slots:
215 public slots:
207 void setValue(qint32 value);
216 void setValue(qint32 value,bool updated=true);
208 void blinkCursor();
217 void blinkCursor();
209 void moveCursorLeft(int count);
218 void moveCursorLeft(int count);
210 void moveCursorRight(int count);
219 void moveCursorRight(int count);
General Comments 0
You need to be logged in to leave comments. Login now