diff options
author | Ken Moore <ken@ixsystems.com> | 2017-02-06 15:50:26 -0500 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2017-02-06 15:50:26 -0500 |
commit | 964b3593b55fe5743154c58dc881241649c1719f (patch) | |
tree | 3762a31ad3e79ddaf7770bcdaf46cadd052e0299 /src-qt5/core-utils/lumina-config/AppDialog.h | |
parent | Remove the "Quick Save" button in lumina-screenshot. (diff) | |
parent | Merge pull request #375 from antab/app-selection-default (diff) | |
download | lumina-964b3593b55fe5743154c58dc881241649c1719f.tar.gz lumina-964b3593b55fe5743154c58dc881241649c1719f.tar.bz2 lumina-964b3593b55fe5743154c58dc881241649c1719f.zip |
Merge branch 'master' of github.com:trueos/lumina
Diffstat (limited to 'src-qt5/core-utils/lumina-config/AppDialog.h')
-rw-r--r-- | src-qt5/core-utils/lumina-config/AppDialog.h | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/src-qt5/core-utils/lumina-config/AppDialog.h b/src-qt5/core-utils/lumina-config/AppDialog.h index ea7615e2..2b03fc76 100644 --- a/src-qt5/core-utils/lumina-config/AppDialog.h +++ b/src-qt5/core-utils/lumina-config/AppDialog.h @@ -23,13 +23,22 @@ private: Ui::AppDialog *ui; public: - AppDialog(QWidget *parent = 0) : QDialog(parent), ui(new Ui::AppDialog){ + AppDialog(QWidget *parent = 0, QString defaultPath = "") : QDialog(parent), ui(new Ui::AppDialog){ ui->setupUi(this); //load the designer file appreset = false; - ui->comboBox->clear(); + ui->listApps->clear(); + QListWidgetItem *defaultItem = nullptr; QList<XDGDesktop*> APPS = LXDG::sortDesktopNames(APPSLIST->apps(false,false)); //Don't show all/hidden for(int i=0; i<APPS.length(); i++){ - ui->comboBox->addItem( LXDG::findIcon(APPS[i]->icon,"application-x-executable"), APPS[i]->name, APPS[i]->filePath); + QListWidgetItem *app = new QListWidgetItem(LXDG::findIcon(APPS[i]->icon,"application-x-executable"), APPS[i]->name); + app->setData(Qt::UserRole, APPS[i]->filePath); + ui->listApps->addItem(app); + if(APPS[i]->filePath == defaultPath){ + defaultItem = app; + } + } + if(ui->listApps->count()){ + ui->listApps->setCurrentItem(defaultItem != nullptr ? defaultItem : ui->listApps->item(0)); } this->setWindowIcon( LXDG::findIcon("system-search","") ); if(parent!=0){ @@ -56,7 +65,10 @@ public: private slots: void on_buttonBox_accepted(){ - appselected = ui->comboBox->currentData().toString(); + QListWidgetItem *item = ui->listApps->currentItem(); + if(item != nullptr){ + appselected = item->data(Qt::UserRole).toString(); + } this->close(); } void on_buttonBox_rejected(){ @@ -68,6 +80,26 @@ private slots: this->close(); } } + void on_listApps_itemDoubleClicked(QListWidgetItem *item){ + appselected = item->data(Qt::UserRole).toString(); + this->close(); + } + void on_lineSearch_textChanged(const QString &term){ + QListWidgetItem *first_visible = nullptr; + for(int i = 0; i < ui->listApps->count(); i++){ + QListWidgetItem *item = ui->listApps->item(i); + bool visible = item->text().contains(term, Qt::CaseInsensitive); + item->setHidden(!visible); + if(visible && first_visible == nullptr){ + first_visible = item; + } + } + //Select the first app + ui->listApps->setCurrentItem(first_visible); + if(first_visible != nullptr){ + ui->listApps->scrollToItem(first_visible); + } + } }; #endif |