Git commit 1bec0981ca382ec15f327b3194e8e042462c6b01 by David E. Narv?ez. Committed on 20/11/2011 at 18:35. Pushed by narvaez into branch 'master'.
Replacing Repositories QComboBox by Filtered QListWidget Eases searching for a project when submitting a patch GUI: Reviewboard plugin now uses a Filtered QListWidget to show projects M +16 -17 plugins/reviewboard/reviewpatch.ui M +9 -4 plugins/reviewboard/reviewpatchdialog.cpp http://commits.kde.org/kdevplatform/1bec0981ca382ec15f327b3194e8e042462c6b01 diff --git a/plugins/reviewboard/reviewpatch.ui b/plugins/reviewboard/reviewpatch.ui index 809769c..5b2acef 100644 --- a/plugins/reviewboard/reviewpatch.ui +++ b/plugins/reviewboard/reviewpatch.ui @@ -94,37 +94,36 @@ </property> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <widget class="QComboBox" name="repositories"/> + <widget class="KListWidgetSearchLine" name="repositoriesFilter"> + <property name="clickMessage"> + <string>Filter repositories</string> + </property> + </widget> + </item> + <item> + <widget class="QListWidget" name="repositories"/> </item> </layout> </widget> </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> </layout> </widget> <customwidgets> <customwidget> - <class>KUrlRequester</class> - <extends>QFrame</extends> - <header>kurlrequester.h</header> + <class>KListWidgetSearchLine</class> + <extends>QLineEdit</extends> + <header>klistwidgetsearchline.h</header> </customwidget> <customwidget> <class>KLineEdit</class> <extends>QLineEdit</extends> <header>klineedit.h</header> </customwidget> + <customwidget> + <class>KUrlRequester</class> + <extends>QFrame</extends> + <header>kurlrequester.h</header> + </customwidget> </customwidgets> <resources/> <connections/> diff --git a/plugins/reviewboard/reviewpatchdialog.cpp b/plugins/reviewboard/reviewpatchdialog.cpp index c0fb8d3..ea3996a 100644 --- a/plugins/reviewboard/reviewpatchdialog.cpp +++ b/plugins/reviewboard/reviewpatchdialog.cpp @@ -29,7 +29,7 @@ ReviewPatchDialog::ReviewPatchDialog(QWidget* parent) m_ui=new Ui::ReviewPatch; QWidget* w= new QWidget(this); m_ui->setupUi(w); - m_ui->repositories->setInsertPolicy(QComboBox::InsertAlphabetically); + m_ui->repositoriesFilter->setListWidget(m_ui->repositories); setMainWidget(w); connect(m_ui->server, SIGNAL(textChanged(QString)), SLOT(serverChanged())); @@ -76,14 +76,19 @@ void ReviewPatchDialog::receivedProjects(KJob* job) QVariantList repos = pl->repositories(); foreach(const QVariant& repo, repos) { QVariantMap repoMap=repo.toMap(); - m_ui->repositories->addItem(repoMap["name"].toString(), repoMap["path"].toString()); + QListWidgetItem *repoItem = new QListWidgetItem(); + + repoItem->setText(repoMap["name"].toString()); + repoItem->setData(Qt::UserRole, repoMap["path"]); + m_ui->repositories->addItem(repoItem); } + m_ui->repositories->sortItems(Qt::AscendingOrder); m_ui->repositoriesBox->setEnabled(job->error()==0); } QString ReviewPatchDialog::repository() const { - Q_ASSERT(m_ui->repositories->currentIndex()>=0); - return m_ui->repositories->itemData(m_ui->repositories->currentIndex(),Qt::UserRole).toString(); + Q_ASSERT(m_ui->repositories->currentIndex().isValid()); + return m_ui->repositories->currentItem()->data(Qt::UserRole).toString(); }