diff --git a/src/appchooserdialog.cpp b/src/appchooserdialog.cpp --- a/src/appchooserdialog.cpp +++ b/src/appchooserdialog.cpp @@ -65,8 +65,9 @@ vboxLayout->addLayout(m_gridLayout); - QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel, this); + QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel | QDialogButtonBox::Open, this); connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); vboxLayout->addWidget(buttonBox, 0, Qt::AlignBottom | Qt::AlignRight); @@ -123,6 +124,10 @@ QString AppChooserDialog::selectedApplication() const { + if (m_selectedApplication.isEmpty()) { + return m_defaultApp; + } + return m_selectedApplication; } @@ -147,6 +152,9 @@ AppChooserDialogItem *item = new AppChooserDialogItem(applicationName, applicationIcon, choice, this); m_gridLayout->addWidget(item, i, j++, Qt::AlignHCenter); + connect(item, &AppChooserDialogItem::clicked, this, [this] (const QString &selectedApplication) { + m_selectedApplication = selectedApplication; + }); connect(item, &AppChooserDialogItem::doubleClicked, this, [this] (const QString &selectedApplication) { m_selectedApplication = selectedApplication; QDialog::accept(); diff --git a/src/appchooserdialogitem.h b/src/appchooserdialogitem.h --- a/src/appchooserdialogitem.h +++ b/src/appchooserdialogitem.h @@ -38,6 +38,7 @@ void mousePressEvent(QMouseEvent * event) override; void mouseReleaseEvent(QMouseEvent * event) override; Q_SIGNALS: + void clicked(const QString &applicationName); void doubleClicked(const QString &applicationName); private: diff --git a/src/appchooserdialogitem.cpp b/src/appchooserdialogitem.cpp --- a/src/appchooserdialogitem.cpp +++ b/src/appchooserdialogitem.cpp @@ -71,6 +71,8 @@ if (event->button() == Qt::LeftButton) { setDown(true); setChecked(true); + + Q_EMIT clicked(m_applicationName); } }