mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Implement the Buddy Filter interface.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
b1d76ed4d7
commit
358611d029
4 changed files with 38 additions and 1 deletions
|
@ -182,6 +182,7 @@ void MainWindow::recreateDiveList()
|
||||||
{
|
{
|
||||||
ui.ListWidget->reload(DiveTripModel::CURRENT);
|
ui.ListWidget->reload(DiveTripModel::CURRENT);
|
||||||
TagFilterModel::instance()->repopulate();
|
TagFilterModel::instance()->repopulate();
|
||||||
|
BuddyFilterModel::instance()->repopulate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::current_dive_changed(int divenr)
|
void MainWindow::current_dive_changed(int divenr)
|
||||||
|
|
|
@ -2412,7 +2412,6 @@ Qt::ItemFlags BuddyFilterModel::flags(const QModelIndex &index) const
|
||||||
|
|
||||||
void BuddyFilterModel::repopulate()
|
void BuddyFilterModel::repopulate()
|
||||||
{
|
{
|
||||||
|
|
||||||
QStringList list;
|
QStringList list;
|
||||||
struct dive *dive;
|
struct dive *dive;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
|
@ -481,12 +481,39 @@ void TagFilter::hideEvent(QHideEvent *event)
|
||||||
QWidget::hideEvent(event);
|
QWidget::hideEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BuddyFilter::BuddyFilter(QWidget *parent) : QWidget(parent)
|
||||||
|
{
|
||||||
|
ui.setupUi(this);
|
||||||
|
ui.label->setText(tr("Buddies: "));
|
||||||
|
#if QT_VERSION >= 0x050000
|
||||||
|
ui.filterInternalList->setClearButtonEnabled(true);
|
||||||
|
#endif
|
||||||
|
QSortFilterProxyModel *filter = new QSortFilterProxyModel();
|
||||||
|
filter->setSourceModel(BuddyFilterModel::instance());
|
||||||
|
connect(ui.filterInternalList, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString)));
|
||||||
|
ui.filterList->setModel(filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuddyFilter::showEvent(QShowEvent *event)
|
||||||
|
{
|
||||||
|
MultiFilterSortModel::instance()->addFilterModel(BuddyFilterModel::instance());
|
||||||
|
QWidget::showEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuddyFilter::hideEvent(QHideEvent *event)
|
||||||
|
{
|
||||||
|
MultiFilterSortModel::instance()->removeFilterModel(BuddyFilterModel::instance());
|
||||||
|
QWidget::hideEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
MultiFilter::MultiFilter(QWidget *parent): QScrollArea(parent)
|
MultiFilter::MultiFilter(QWidget *parent): QScrollArea(parent)
|
||||||
{
|
{
|
||||||
QWidget *w = new QWidget();
|
QWidget *w = new QWidget();
|
||||||
QHBoxLayout *l = new QHBoxLayout();
|
QHBoxLayout *l = new QHBoxLayout();
|
||||||
|
|
||||||
l->addWidget(new TagFilter());
|
l->addWidget(new TagFilter());
|
||||||
|
l->addWidget(new BuddyFilter());
|
||||||
|
|
||||||
l->setContentsMargins(0,0,0,0);
|
l->setContentsMargins(0,0,0,0);
|
||||||
l->setSpacing(1);
|
l->setSpacing(1);
|
||||||
w->setLayout(l);
|
w->setLayout(l);
|
||||||
|
|
|
@ -140,6 +140,16 @@ private:
|
||||||
Ui::FilterWidget ui;
|
Ui::FilterWidget ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class BuddyFilter : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
BuddyFilter(QWidget *parent = 0);
|
||||||
|
virtual void showEvent(QShowEvent *);
|
||||||
|
virtual void hideEvent(QHideEvent *);
|
||||||
|
private:
|
||||||
|
Ui::FilterWidget ui;
|
||||||
|
};
|
||||||
|
|
||||||
class MultiFilter : public QScrollArea {
|
class MultiFilter : public QScrollArea {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue