Skip to content

Simplify MaximizeButton - #248

Merged
guiodic merged 3 commits into
nextfrom
smallfixes-buttons
Aug 25, 2026
Merged

Simplify MaximizeButton#248
guiodic merged 3 commits into
nextfrom
smallfixes-buttons

Conversation

@guiodic

@guiodic guiodic commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Riepilogo di Sourcery

Miglioramenti:

  • Semplificata la resa dell'icona del pulsante di massimizzazione utilizzando primitive rectangle e polyline, mantenendo l'allineamento dei pixel e ripristinando lo stato dell'antialiasing del painter.
Original summary in English

Summary by Sourcery

Enhancements:

  • Simplify maximize-button icon rendering by using rectangle and polyline primitives while preserving pixel alignment and restoring the painter's antialiasing state.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: b7915d51-4567-43b4-b6c0-4f66ae4e5a57

📥 Commits

Reviewing files that changed from the base of the PR and between c2bcbbd and b8bc6d5.

📒 Files selected for processing (1)
  • src/MaximizeButton.h

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Summary by CodeRabbit

  • Miglioramenti visivi
    • Migliorata la nitidezza dell’icona del pulsante di massimizzazione.
    • Ottimizzato il disegno di contorni e linee per un aspetto più uniforme e preciso.

Walkthrough

Il rendering dell’icona disabilita temporaneamente l’antialiasing, semplifica il disegno dei contorni con drawRect e drawPolyline, applica lo snapping diretto e ripristina lo stato grafico precedente.

Changes

Rendering dell’icona Maximize

Layer / File(s) Summary
Aggiornamento del disegno dell’icona
src/MaximizeButton.h
Il rendering salva e ripristina l’antialiasing. I contorni e i simboli usano drawRect e drawPolyline. Il percorso senza scala fisica applica direttamente lo snapping agli angoli del rettangolo.

Estimated code review effort: 2 (Semplice) | ~10 minuti

Merge Risk: ⚪ Minimal · up to b8bc6

This localized rendering change has no actionable merge-blocking risk remaining and is merge-ready after normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed Il titolo descrive in modo chiaro e conciso la semplificazione della resa di MaximizeButton, che rappresenta la modifica principale.
Description check ✅ Passed La descrizione è pertinente alle modifiche. Specifica l'uso di primitive rectangle e polyline, l'allineamento dei pixel e il ripristino dello stato dell'antialiasing.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch smallfixes-buttons

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sourcery-ai

sourcery-ai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Guida del revisore

Il disegnatore dell’icona di massimizzazione è stato semplificato utilizzando primitive Qt per rettangoli/polilinee invece di disegnare individualmente ogni bordo, disabilitando esplicitamente l’antialiasing e mantenendo il ridimensionamento della penna e l’allineamento ai pixel per una resa nitida.

Diagramma di sequenza per il disegno semplificato dell’icona di massimizzazione

sequenceDiagram
    participant MaximizeButton
    participant QPainter
    participant PixelSnapper

    MaximizeButton->>QPainter: testRenderHint(QPainter::Antialiasing)
    MaximizeButton->>QPainter: setRenderHint(QPainter::Antialiasing, false)
    MaximizeButton->>QPainter: setPenWidth(painter, penScale, true)
    MaximizeButton->>PixelSnapper: snapForPen(point, penWidth)
    alt checked maximize state
        MaximizeButton->>QPainter: drawRect(QRectF(...))
        MaximizeButton->>QPainter: drawPolyline(QVector<QPointF>{...})
    else unchecked maximize state
        MaximizeButton->>QPainter: drawRect(QRectF(...))
    end
    MaximizeButton->>QPainter: setPenWidth(painter, penScale, false)
    MaximizeButton->>QPainter: setRenderHint(QPainter::Antialiasing, wasAntialiased)
Loading

Modifiche a livello di file

Modifica Dettagli File
Semplificare il disegno della geometria dell’icona mantenendo i contorni allineati ai pixel.
  • Sostituire le linee emesse manualmente bordo per bordo con primitive per rettangoli e polilinee.
  • Mantenere il comportamento di allineamento per la geometria non ad alta densità di pixel e per i contorni a gradini dello stato di massimizzazione.
  • Disabilitare l’antialiasing durante il disegno dell’icona e ripristinare successivamente l’impostazione precedente del painter.
src/MaximizeButton.h

Suggerimenti e comandi

Interagire con Sourcery

  • Avviare una nuova revisione: commenta @sourcery-ai review nella pull request.
  • Continuare le discussioni: rispondi direttamente ai commenti di revisione di Sourcery.
  • Generare una issue GitHub da un commento di revisione: chiedi a Sourcery di creare una issue da un commento di revisione rispondendo a tale commento. Puoi anche rispondere a un commento di revisione con @sourcery-ai issue per creare una issue.
  • Generare il titolo di una pull request: scrivi @sourcery-ai in qualsiasi punto del titolo della pull request per generare un titolo in qualsiasi momento. Puoi anche commentare @sourcery-ai title nella pull request per generare nuovamente il titolo in qualsiasi momento.
  • Generare il riepilogo di una pull request: scrivi @sourcery-ai summary in qualsiasi punto del corpo della pull request per generare un riepilogo della PR esattamente nel punto desiderato, in qualsiasi momento. Puoi anche commentare @sourcery-ai summary nella pull request per generare nuovamente il riepilogo in qualsiasi momento.
  • Generare la guida del revisore: commenta @sourcery-ai guide nella pull request per generare nuovamente la guida del revisore in qualsiasi momento.
  • Risolvere tutti i commenti di Sourcery: commenta @sourcery-ai resolve nella pull request per risolvere tutti i commenti di Sourcery. È utile se hai già gestito tutti i commenti e non vuoi più visualizzarli.
  • Ignorare tutte le revisioni di Sourcery: commenta @sourcery-ai dismiss nella pull request per ignorare tutte le revisioni esistenti di Sourcery. È particolarmente utile se vuoi ricominciare da zero con una nuova revisione: non dimenticare di commentare @sourcery-ai review per avviare una nuova revisione!

Personalizzare la tua esperienza

Accedi alla tua dashboard per:

  • Abilitare o disabilitare funzionalità di revisione come il riepilogo della pull request generato da Sourcery, la guida del revisore e altre.
  • Modificare la lingua della revisione.
  • Aggiungere, rimuovere o modificare le istruzioni di revisione personalizzate.
  • Modificare altre impostazioni di revisione.

Ottenere assistenza

Original review guide in English

Reviewer's Guide

The maximize icon painter is simplified by using Qt rectangle/polyline primitives instead of individually drawing each edge, while explicitly disabling antialiasing and preserving pen scaling and pixel snapping for crisp rendering.

Sequence diagram for simplified maximize icon painting

sequenceDiagram
    participant MaximizeButton
    participant QPainter
    participant PixelSnapper

    MaximizeButton->>QPainter: testRenderHint(QPainter::Antialiasing)
    MaximizeButton->>QPainter: setRenderHint(QPainter::Antialiasing, false)
    MaximizeButton->>QPainter: setPenWidth(painter, penScale, true)
    MaximizeButton->>PixelSnapper: snapForPen(point, penWidth)
    alt checked maximize state
        MaximizeButton->>QPainter: drawRect(QRectF(...))
        MaximizeButton->>QPainter: drawPolyline(QVector<QPointF>{...})
    else unchecked maximize state
        MaximizeButton->>QPainter: drawRect(QRectF(...))
    end
    MaximizeButton->>QPainter: setPenWidth(painter, penScale, false)
    MaximizeButton->>QPainter: setRenderHint(QPainter::Antialiasing, wasAntialiased)
Loading

File-Level Changes

Change Details Files
Simplify icon geometry rendering while preserving pixel-aligned outlines.
  • Replace manually issued edge-by-edge lines with rectangle and polyline primitives.
  • Retain snapping behavior for non-high-DPI geometry and stepped maximize-state outlines.
  • Disable antialiasing during icon painting and restore the painter’s prior setting afterward.
src/MaximizeButton.h

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ehi, ho esaminato le tue modifiche e sembrano ottime!

Valutazione di Sourcery

Approvato.


Sourcery è gratuito per i progetti open source: se le nostre revisioni ti piacciono, considera l'idea di condividerle ✨
Aiutami a essere più utile! Fai clic su 👍 o 👎 per ogni commento e userò il feedback per migliorare le tue revisioni.
Original comment in English

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Approved.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@guiodic
guiodic merged commit 432df3c into next Aug 25, 2026
3 checks passed
@guiodic
guiodic deleted the smallfixes-buttons branch August 25, 2026 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant