Use Mac search widget for library & magnatune.
This commit is contained in:
parent
dedb9621e8
commit
d87733b005
|
@ -20,6 +20,7 @@
|
|||
#include "ui_libraryfilterwidget.h"
|
||||
#include "ui/iconloader.h"
|
||||
#include "ui/settingsdialog.h"
|
||||
#include "widgets/maclineedit.h"
|
||||
|
||||
#include <QMenu>
|
||||
#include <QActionGroup>
|
||||
|
@ -100,6 +101,16 @@ LibraryFilterWidget::LibraryFilterWidget(QWidget *parent)
|
|||
library_menu_->addMenu(group_by_menu_);
|
||||
library_menu_->addSeparator();
|
||||
ui_->options->setMenu(library_menu_);
|
||||
|
||||
#ifdef Q_OS_DARWIN
|
||||
delete ui_->filter;
|
||||
MacLineEdit* lineedit = new MacLineEdit(this);
|
||||
ui_->horizontalLayout->insertWidget(1, lineedit);
|
||||
filter_ = lineedit;
|
||||
ui_->clear->setHidden(true);
|
||||
#else
|
||||
filter_ = ui_->filter;
|
||||
#endif
|
||||
}
|
||||
|
||||
LibraryFilterWidget::~LibraryFilterWidget() {
|
||||
|
@ -111,7 +122,7 @@ void LibraryFilterWidget::SetLibraryModel(LibraryModel *model) {
|
|||
disconnect(model_, 0, this, 0);
|
||||
disconnect(model_, 0, group_by_dialog_.get(), 0);
|
||||
disconnect(group_by_dialog_.get(), 0, model_, 0);
|
||||
disconnect(ui_->filter, 0, model_, 0);
|
||||
disconnect(filter_->object(), 0, model_, 0);
|
||||
disconnect(filter_age_mapper_, 0, model_, 0);
|
||||
}
|
||||
|
||||
|
@ -124,7 +135,7 @@ void LibraryFilterWidget::SetLibraryModel(LibraryModel *model) {
|
|||
SLOT(GroupingChanged(LibraryModel::Grouping)));
|
||||
connect(group_by_dialog_.get(), SIGNAL(Accepted(LibraryModel::Grouping)),
|
||||
model_, SLOT(SetGroupBy(LibraryModel::Grouping)));
|
||||
connect(ui_->filter, SIGNAL(textChanged(QString)), model_, SLOT(SetFilterText(QString)));
|
||||
connect(filter_->object(), SIGNAL(textChanged(QString)), model_, SLOT(SetFilterText(QString)));
|
||||
connect(filter_age_mapper_, SIGNAL(mapped(int)), model_, SLOT(SetFilterAge(int)));
|
||||
|
||||
// Load settings
|
||||
|
@ -172,12 +183,12 @@ void LibraryFilterWidget::GroupingChanged(const LibraryModel::Grouping& g) {
|
|||
}
|
||||
|
||||
void LibraryFilterWidget::ClearFilter() {
|
||||
ui_->filter->clear();
|
||||
ui_->filter->setFocus();
|
||||
filter_->clear();
|
||||
filter_->setFocus();
|
||||
}
|
||||
|
||||
void LibraryFilterWidget::SetFilterHint(const QString& hint) {
|
||||
ui_->filter->SetHint(hint);
|
||||
filter_->SetHint(hint);
|
||||
}
|
||||
|
||||
void LibraryFilterWidget::SetAgeFilterEnabled(bool enabled) {
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "librarymodel.h"
|
||||
|
||||
class GroupByDialog;
|
||||
class LineEditInterface;
|
||||
class SettingsDialog;
|
||||
class Ui_LibraryFilterWidget;
|
||||
|
||||
|
@ -65,6 +66,8 @@ class LibraryFilterWidget : public QWidget {
|
|||
QSignalMapper* filter_age_mapper_;
|
||||
|
||||
QString settings_group_;
|
||||
|
||||
LineEditInterface* filter_;
|
||||
};
|
||||
|
||||
#endif // LIBRARYFILTERWIDGET_H
|
||||
|
|
|
@ -86,7 +86,7 @@ PlaylistContainer::PlaylistContainer(QWidget *parent)
|
|||
delete ui_->filter;
|
||||
MacLineEdit* filter = new MacLineEdit(ui_->toolbar);
|
||||
filter->setObjectName("filter");
|
||||
ui_->horizontalLayout->addWidget(ui_->filter);
|
||||
ui_->horizontalLayout->addWidget(filter);
|
||||
connect(filter, SIGNAL(textChanged(QString)), SLOT(UpdateFilter()));
|
||||
filter->SetHint(tr("Playlist search"));
|
||||
filter_ = filter;
|
||||
|
|
|
@ -20,7 +20,8 @@
|
|||
#include <QPaintEvent>
|
||||
|
||||
LineEdit::LineEdit(QWidget* parent)
|
||||
: QLineEdit(parent)
|
||||
: QLineEdit(parent),
|
||||
LineEditInterface(this)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -21,10 +21,18 @@
|
|||
|
||||
class LineEditInterface {
|
||||
public:
|
||||
LineEditInterface(QObject* object) : object_(object) {}
|
||||
virtual ~LineEditInterface() {}
|
||||
virtual void clear() = 0;
|
||||
virtual void setFocus() = 0;
|
||||
virtual void setText(const QString&) = 0;
|
||||
virtual QString text() const = 0;
|
||||
virtual void SetHint(const QString&) = 0;
|
||||
|
||||
QObject* object() const { return object_; }
|
||||
|
||||
private:
|
||||
QObject* object_;
|
||||
};
|
||||
|
||||
// Remove in Qt 4.7: QLineEdit has placeholderText
|
||||
|
|
|
@ -74,7 +74,8 @@ void SearchTargetWrapper::SetHint(const QString& hint) {
|
|||
|
||||
|
||||
MacLineEdit::MacLineEdit(QWidget* parent)
|
||||
: QMacCocoaViewContainer(0, parent) {
|
||||
: QMacCocoaViewContainer(0, parent),
|
||||
LineEditInterface(this) {
|
||||
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSSearchField* search = [[NSSearchField alloc] init];
|
||||
|
|
Loading…
Reference in New Issue