Skip to content

Commit 2a8252e

Browse files
committed
GUI: Avoiding creating a new QPen instance when possible
1 parent 9f530c3 commit 2a8252e

File tree

2 files changed

+28
-39
lines changed

2 files changed

+28
-39
lines changed

src/gui/Src/BasicView/Disassembly.cpp

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
153153
bpColor = mBreakpointColor;
154154
if(bpColor == mCipBackgroundColor)
155155
bpColor = mCipColor;
156-
painter->setPen(QPen(bpColor));
156+
painter->setPen(bpColor);
157157
}
158158
else if(bpxtype & bp_hardware) //hardware breakpoint only
159159
{
@@ -166,7 +166,7 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
166166
}
167167
else //no breakpoint
168168
{
169-
painter->setPen(QPen(mCipColor));
169+
painter->setPen(mCipColor);
170170
}
171171
}
172172
else //bookmark
@@ -176,7 +176,7 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
176176
bookmarkColor = mBookmarkColor;
177177
if(bookmarkColor == mCipBackgroundColor)
178178
bookmarkColor = mCipColor;
179-
painter->setPen(QPen(bookmarkColor));
179+
painter->setPen(bookmarkColor);
180180
}
181181
}
182182
else //non-cip address
@@ -187,24 +187,24 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
187187
{
188188
if(bpxtype == bp_none) //label only
189189
{
190-
painter->setPen(QPen(mLabelColor)); //red -> address + label text
190+
painter->setPen(mLabelColor); //red -> address + label text
191191
painter->fillRect(QRect(x, y, w, h), QBrush(mLabelBackgroundColor)); //fill label background
192192
}
193193
else //label+breakpoint
194194
{
195195
if(bpxtype & bp_normal) //label + normal breakpoint
196196
{
197-
painter->setPen(QPen(mBreakpointColor));
197+
painter->setPen(mBreakpointColor);
198198
painter->fillRect(QRect(x, y, w, h), QBrush(mBreakpointBackgroundColor)); //fill red
199199
}
200200
else if(bpxtype & bp_hardware) //label + hardware breakpoint only
201201
{
202-
painter->setPen(QPen(mHardwareBreakpointColor));
202+
painter->setPen(mHardwareBreakpointColor);
203203
painter->fillRect(QRect(x, y, w, h), QBrush(mHardwareBreakpointBackgroundColor)); //fill ?
204204
}
205205
else //other cases -> do as normal
206206
{
207-
painter->setPen(QPen(mLabelColor)); //red -> address + label text
207+
painter->setPen(mLabelColor); //red -> address + label text
208208
painter->fillRect(QRect(x, y, w, h), QBrush(mLabelBackgroundColor)); //fill label background
209209
}
210210
}
@@ -217,12 +217,12 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
217217
if(wIsSelected)
218218
{
219219
background = mSelectedAddressBackgroundColor;
220-
painter->setPen(QPen(mSelectedAddressColor)); //black address (DisassemblySelectedAddressColor)
220+
painter->setPen(mSelectedAddressColor); //black address (DisassemblySelectedAddressColor)
221221
}
222222
else
223223
{
224224
background = mAddressBackgroundColor;
225-
painter->setPen(QPen(mAddressColor)); //DisassemblyAddressColor
225+
painter->setPen(mAddressColor); //DisassemblyAddressColor
226226
}
227227
if(background.alpha())
228228
painter->fillRect(QRect(x, y, w, h), QBrush(background)); //fill background
@@ -231,12 +231,12 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
231231
{
232232
if(bpxtype & bp_normal) //normal breakpoint
233233
{
234-
painter->setPen(QPen(mBreakpointColor));
234+
painter->setPen(mBreakpointColor);
235235
painter->fillRect(QRect(x, y, w, h), QBrush(mBreakpointBackgroundColor)); //fill red
236236
}
237237
else if(bpxtype & bp_hardware) //hardware breakpoint only
238238
{
239-
painter->setPen(QPen(mHardwareBreakpointColor));
239+
painter->setPen(mHardwareBreakpointColor);
240240
painter->fillRect(QRect(x, y, w, h), QBrush(mHardwareBreakpointBackgroundColor)); //fill red
241241
}
242242
else //other cases (memory breakpoint in disassembly) -> do as normal
@@ -245,12 +245,12 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
245245
if(wIsSelected)
246246
{
247247
background = mSelectedAddressBackgroundColor;
248-
painter->setPen(QPen(mSelectedAddressColor)); //black address (DisassemblySelectedAddressColor)
248+
painter->setPen(mSelectedAddressColor); //black address (DisassemblySelectedAddressColor)
249249
}
250250
else
251251
{
252252
background = mAddressBackgroundColor;
253-
painter->setPen(QPen(mAddressColor));
253+
painter->setPen(mAddressColor);
254254
}
255255
if(background.alpha())
256256
painter->fillRect(QRect(x, y, w, h), QBrush(background)); //fill background
@@ -264,15 +264,15 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
264264
{
265265
if(bpxtype == bp_none) //label + bookmark
266266
{
267-
painter->setPen(QPen(mLabelColor)); //red -> address + label text
267+
painter->setPen(mLabelColor); //red -> address + label text
268268
painter->fillRect(QRect(x, y, w, h), QBrush(mBookmarkBackgroundColor)); //fill label background
269269
}
270270
else //label+breakpoint+bookmark
271271
{
272272
QColor color = mBookmarkBackgroundColor;
273273
if(!color.alpha()) //we don't want transparent text
274274
color = mAddressColor;
275-
painter->setPen(QPen(color));
275+
painter->setPen(color);
276276
if(bpxtype & bp_normal) //label + bookmark + normal breakpoint
277277
{
278278
painter->fillRect(QRect(x, y, w, h), QBrush(mBreakpointBackgroundColor)); //fill red
@@ -287,15 +287,15 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
287287
{
288288
if(bpxtype == bp_none) //bookmark only
289289
{
290-
painter->setPen(QPen(mBookmarkColor)); //black address
290+
painter->setPen(mBookmarkColor); //black address
291291
painter->fillRect(QRect(x, y, w, h), QBrush(mBookmarkBackgroundColor)); //fill bookmark color
292292
}
293293
else //bookmark + breakpoint
294294
{
295295
QColor color = mBookmarkBackgroundColor;
296296
if(!color.alpha()) //we don't want transparent text
297297
color = mAddressColor;
298-
painter->setPen(QPen(color));
298+
painter->setPen(color);
299299
if(bpxtype & bp_normal) //bookmark + normal breakpoint
300300
{
301301
painter->fillRect(QRect(x, y, w, h), QBrush(mBreakpointBackgroundColor)); //fill red
@@ -306,7 +306,7 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
306306
}
307307
else //other cases (bookmark + memory breakpoint in disassembly) -> do as normal
308308
{
309-
painter->setPen(QPen(mBookmarkColor)); //black address
309+
painter->setPen(mBookmarkColor); //black address
310310
painter->fillRect(QRect(x, y, w, h), QBrush(mBookmarkBackgroundColor)); //fill bookmark color
311311
}
312312
}
@@ -422,21 +422,20 @@ QString Disassembly::paintContent(QPainter* painter, dsint rowBase, int rowOffse
422422
if(DbgGetCommentAt(rvaToVa(mInstBuffer.at(rowOffset).rva), comment))
423423
{
424424
QString commentText;
425-
QColor penColor;
426425
QColor backgroundColor;
427426
if(comment[0] == '\1') //automatic comment
428427
{
429-
penColor = mAutoCommentColor;
428+
painter->setPen(mAutoCommentColor);
430429
backgroundColor = mAutoCommentBackgroundColor;
431430
commentText = QString(comment + 1);
432431
}
433432
else //user comment
434433
{
435-
penColor = mCommentColor;
434+
painter->setPen(mCommentColor);
436435
backgroundColor = mCommentBackgroundColor;
437436
commentText = comment;
438437
}
439-
painter->setPen(penColor);
438+
440439
int width = getCharWidth() * commentText.length() + 4;
441440
if(width > w)
442441
width = w;

src/gui/Src/Gui/CPUSideBar.cpp

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -329,9 +329,7 @@ void CPUSideBar::drawJump(QPainter* painter, int startLine, int endLine, int jum
329329
int y = viewportHeight - 1;
330330
if(y > y_start)
331331
{
332-
QPen temp = painter->pen();
333-
temp.setStyle(Qt::SolidLine);
334-
painter->setPen(temp);
332+
painter->setPen(Qt::SolidLine);
335333
QPoint wPoints[] =
336334
{
337335
QPoint(x - 3, y - 3),
@@ -344,9 +342,7 @@ void CPUSideBar::drawJump(QPainter* painter, int startLine, int endLine, int jum
344342
else if(endLine == -6)
345343
{
346344
int y = 0;
347-
QPen temp = painter->pen();
348-
temp.setStyle(Qt::SolidLine);
349-
painter->setPen(temp);
345+
painter->setPen(Qt::SolidLine);
350346
QPoint wPoints[] =
351347
{
352348
QPoint(x - 3, y + 3),
@@ -357,9 +353,7 @@ void CPUSideBar::drawJump(QPainter* painter, int startLine, int endLine, int jum
357353
}
358354
else
359355
{
360-
QPen temp = painter->pen();
361-
temp.setStyle(Qt::SolidLine);
362-
painter->setPen(temp);
356+
painter->setPen(Qt::SolidLine);
363357
QPoint wPoints[] =
364358
{
365359
QPoint(x_right - 3, y_end - 3),
@@ -375,9 +369,7 @@ void CPUSideBar::drawJump(QPainter* painter, int startLine, int endLine, int jum
375369
{
376370
int y = viewportHeight - 1;
377371
x--;
378-
QPen temp = painter->pen();
379-
temp.setStyle(Qt::SolidLine);
380-
painter->setPen(temp);
372+
painter->setPen(Qt::SolidLine);
381373
QPoint wPoints[] =
382374
{
383375
QPoint(x - 3, y - 3),
@@ -389,9 +381,7 @@ void CPUSideBar::drawJump(QPainter* painter, int startLine, int endLine, int jum
389381
else if(endLine == -6)
390382
{
391383
int y = 0;
392-
QPen temp = painter->pen();
393-
temp.setStyle(Qt::SolidLine);
394-
painter->setPen(temp);
384+
painter->setPen(Qt::SolidLine);
395385
QPoint wPoints[] =
396386
{
397387
QPoint(x - 3, y + 3),
@@ -449,11 +439,11 @@ void CPUSideBar::drawLabel(QPainter* painter, int Line, QString Text)
449439

450440
// Draw rectangle
451441
painter->setBrush(IPLabelBG);
452-
painter->setPen(QPen(IPLabelBG));
442+
painter->setPen(IPLabelBG);
453443
painter->drawRect(rect);
454444

455445
// Draw text inside the rectangle
456-
painter->setPen(QPen(IPLabel));
446+
painter->setPen(IPLabel);
457447
painter->drawText(rect, Qt::AlignHCenter | Qt::AlignVCenter, Text);
458448

459449
// Draw arrow

0 commit comments

Comments
 (0)