Always use Qt's own colour dialog

On GTK desktops (Mint, XFCE, GNOME) Qt hands QColorDialog to GTK's
chooser. Its "Custom" row is a recent-colours list kept by GTK: every
colour picked is pushed in on the left and the oldest drops out, so a
user's saved wire colours are lost (forum topic 3190). It also ignores
the custom colours QET saves (#918) and has no swatch grid for the
double-click to accept (#1172).

Pass DontUseNativeDialog at every colour dialog, so all platforms get
the dialog Windows already shows: 16 custom slots that change only on
"Add to Custom Colors", saved across restarts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ispyisail
2026-10-07 20:53:11 +13:00
parent 437729df15
commit 72b215bb23
9 changed files with 20 additions and 8 deletions
+3
View File
@@ -177,6 +177,9 @@ DiagramView::DiagramView(Diagram *diagram, QWidget *parent) :
#ifdef Q_OS_MACOS
color_dialog -> setWindowFlags(Qt::Sheet);
#endif
// Qt's own dialog on every platform: the GTK one keeps its own
// recent-colours row and ignores the custom colours QET saves
color_dialog->setOption(QColorDialog::DontUseNativeDialog);
color_dialog->setCurrentColor(initial_properties.color);
ColorDialogDoubleClick::install(color_dialog);