Merge pull request #1370 from ispyisail/fix/qt-colour-dialog

Fix saved custom colours being pushed out on Linux
This commit is contained in:
ispyisail
2026-10-07 21:23:10 +13:00
committed by GitHub
9 changed files with 20 additions and 8 deletions
@@ -329,7 +329,8 @@ void ReplaceConductorDialog::on_m_update_preview_pb_clicked()
void ReplaceConductorDialog::on_m_color_pb_clicked()
{
QColor color = QColorDialog::getColor(m_properties.color, this);
QColor color = QColorDialog::getColor(m_properties.color, this, QString(),
QColorDialog::DontUseNativeDialog);
if (color.isValid()) {
setColorButton(color);
}
@@ -337,7 +338,8 @@ void ReplaceConductorDialog::on_m_color_pb_clicked()
void ReplaceConductorDialog::on_m_color_2_pb_clicked()
{
QColor color = QColorDialog::getColor(m_properties.m_color_2, this);
QColor color = QColorDialog::getColor(m_properties.m_color_2, this, QString(),
QColorDialog::DontUseNativeDialog);
if (color.isValid()) {
setColorButton2(color);
}
+3
View File
@@ -178,6 +178,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);
+2 -1
View File
@@ -411,7 +411,8 @@ void TerminalEditor::labelColorClicked()
m_locked = true;
#ifdef BUILD_WITHOUT_KF
QColor new_color = QColorDialog::getColor(m_part->labelColor(), this);
QColor new_color = QColorDialog::getColor(m_part->labelColor(), this, QString(),
QColorDialog::DontUseNativeDialog);
if (new_color.isValid() && m_part->labelColor() != new_color) {
auto undo = new QPropertyUndoCommand(m_part, "label_color", m_part->labelColor(), new_color);
undo->setText(tr("Modifier la couleur du label"));
+2 -1
View File
@@ -387,7 +387,8 @@ void ColorAction::setColor(const QColor &color)
void ColorAction::chooseColor()
{
const QColor col = QColorDialog::getColor(m_color, nullptr);
const QColor col = QColorDialog::getColor(m_color, nullptr, QString(),
QColorDialog::DontUseNativeDialog);
if (col.isValid() && col != m_color) {
setColor(col);
emit colorChanged(m_color);
+1
View File
@@ -220,6 +220,7 @@ void ConductorColorToolButton::chooseOtherColor()
{
QColorDialog dialog(m_current, this);
dialog.setWindowTitle(tr("Choisir une couleur de conducteur"));
dialog.setOption(QColorDialog::DontUseNativeDialog);
ColorDialogDoubleClick::install(&dialog);
if (dialog.exec() == QDialog::Accepted && dialog.selectedColor().isValid()) {
applyColor(dialog.selectedColor());
@@ -96,7 +96,8 @@ void GuidesPropertiesWidget::addGuide() {
colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(defaultColor.name()));
connect(colorBtn, &QPushButton::clicked, [this, colorBtn]() {
QColor c = QColorDialog::getColor(colorBtn->property("color").value<QColor>(), this);
QColor c = QColorDialog::getColor(colorBtn->property("color").value<QColor>(), this,
QString(), QColorDialog::DontUseNativeDialog);
if (c.isValid()) {
colorBtn->setProperty("color", c);
colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(c.name()));
+2 -1
View File
@@ -186,7 +186,8 @@ void DiagramBgColorToolButton::applySystemColor()
void DiagramBgColorToolButton::chooseOtherColor()
{
const QColor c = QColorDialog::getColor(m_current, this,
tr("Choisir une couleur de fond"));
tr("Choisir une couleur de fond"),
QColorDialog::DontUseNativeDialog);
if (c.isValid()) {
applyColor(c);
}
+2 -1
View File
@@ -1729,7 +1729,8 @@ QWidget *DynamicTextItemDelegate::createEditor(
* handling, so it didn't crash). Resolving the dialog
* before returning removes the second, competing teardown
* path entirely. */
QColor color = QColorDialog::getColor(index.data(Qt::EditRole).value<QColor>(), parent);
QColor color = QColorDialog::getColor(index.data(Qt::EditRole).value<QColor>(), parent,
QString(), QColorDialog::DontUseNativeDialog);
QWidget *w = new QWidget(parent);
if (color.isValid())
{
+2 -1
View File
@@ -48,7 +48,8 @@ void KColorButton::setColor(const QColor &color)
void KColorButton::chooseColor()
{
const auto selected = QColorDialog::getColor(m_color, this);
const auto selected = QColorDialog::getColor(m_color, this, QString(),
QColorDialog::DontUseNativeDialog);
if (!selected.isValid() || selected == m_color) {
return;
}