aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Ui/qsui/CMakeLists.txt1
-rw-r--r--src/plugins/Ui/qsui/actionmanager.h1
-rw-r--r--src/plugins/Ui/qsui/mainwindow.cpp6
-rw-r--r--src/plugins/Ui/qsui/mainwindow.h2
-rw-r--r--src/plugins/Ui/qsui/qsui.pro6
-rw-r--r--src/plugins/Ui/qsui/qsuiquicksearch.cpp59
-rw-r--r--src/plugins/Ui/qsui/qsuiquicksearch.h45
-rw-r--r--src/plugins/Ui/qsui/toolbareditor.cpp2
8 files changed, 119 insertions, 3 deletions
diff --git a/src/plugins/Ui/qsui/CMakeLists.txt b/src/plugins/Ui/qsui/CMakeLists.txt
index 627f04a5a..e6d4c5209 100644
--- a/src/plugins/Ui/qsui/CMakeLists.txt
+++ b/src/plugins/Ui/qsui/CMakeLists.txt
@@ -53,6 +53,7 @@ SET(libqsui_SRCS
playlistheader.cpp
hotkeyeditor.cpp
volumeslider.cpp
+ qsuiquicksearch.cpp
)
SET(libqsui_HDRS
diff --git a/src/plugins/Ui/qsui/actionmanager.h b/src/plugins/Ui/qsui/actionmanager.h
index e68c525e8..acc0c617b 100644
--- a/src/plugins/Ui/qsui/actionmanager.h
+++ b/src/plugins/Ui/qsui/actionmanager.h
@@ -109,6 +109,7 @@ public:
//widgets
UI_POS_SLIDER, //external
UI_VOL_SLIDER, //external
+ UI_QUICK_SEARCH, //external
UI_SEPARATOR,
};
diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp
index 084e05cbf..e21b066f0 100644
--- a/src/plugins/Ui/qsui/mainwindow.cpp
+++ b/src/plugins/Ui/qsui/mainwindow.cpp
@@ -56,6 +56,7 @@
#include "playlistbrowser.h"
#include "volumeslider.h"
#include "qsuitabwidget.h"
+#include "qsuiquicksearch.h"
#include "equalizer.h"
#define KEY_OFFSET 10000
@@ -143,6 +144,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
connect(m_core, SIGNAL(mutedChanged(bool)), ACTION(ActionManager::VOL_MUTE), SLOT(setChecked(bool)));
m_volumeSlider->setValue(m_core->volume());
updateVolumeIcon();
+ //quick search
+ m_quickSearch = new QSUIQuickSearch(this);
+ m_quickSearch->setMaximumWidth(250);
//visualization
m_analyzer = new QSUiAnalyzer(this);
m_ui.analyzerDockWidget->setWidget(m_analyzer);
@@ -449,6 +453,8 @@ void MainWindow::createActions()
tr("Position"), "position_slider");
ActionManager::instance()->registerWidget(ActionManager::UI_VOL_SLIDER, m_volumeSlider,
tr("Volume"), "volume_slider");
+ ActionManager::instance()->registerWidget(ActionManager::UI_QUICK_SEARCH, m_quickSearch,
+ tr("Quick Search"), "quick_search");
//playback
SET_ACTION(ActionManager::PREVIOUS, m_player, SLOT(previous()));
SET_ACTION(ActionManager::PLAY, m_player, SLOT(play()));
diff --git a/src/plugins/Ui/qsui/mainwindow.h b/src/plugins/Ui/qsui/mainwindow.h
index 6aa2c15a3..36e5c70cd 100644
--- a/src/plugins/Ui/qsui/mainwindow.h
+++ b/src/plugins/Ui/qsui/mainwindow.h
@@ -42,6 +42,7 @@ class KeyboardManager;
class QSUiAnalyzer;
class ListWidget;
class QSUiTabWidget;
+class QSUIQuickSearch;
/**
@@ -111,6 +112,7 @@ private:
QMenu *m_pl_menu;
QMenu *m_tab_menu;
QSlider *m_volumeSlider;
+ QSUIQuickSearch *m_quickSearch;
KeyboardManager *m_key_manager;
QSUiAnalyzer *m_analyzer;
QToolButton *m_addListButton, *m_tabListMenuButton;
diff --git a/src/plugins/Ui/qsui/qsui.pro b/src/plugins/Ui/qsui/qsui.pro
index c6b02b4f6..158c5edf3 100644
--- a/src/plugins/Ui/qsui/qsui.pro
+++ b/src/plugins/Ui/qsui/qsui.pro
@@ -37,7 +37,8 @@ SOURCES += \
listwidgetdrawer.cpp \
playlistheader.cpp \
hotkeyeditor.cpp \
- volumeslider.cpp
+ volumeslider.cpp \
+ qsuiquicksearch.cpp
HEADERS += mainwindow.h \
listwidget.h \
visualmenu.h \
@@ -68,7 +69,8 @@ HEADERS += mainwindow.h \
listwidgetdrawer.h \
playlistheader.h \
hotkeyeditor.h \
- volumeslider.h
+ volumeslider.h \
+ qsuiquicksearch.h
FORMS += forms/mainwindow.ui \
forms/shortcutdialog.ui \
diff --git a/src/plugins/Ui/qsui/qsuiquicksearch.cpp b/src/plugins/Ui/qsui/qsuiquicksearch.cpp
new file mode 100644
index 000000000..ed5011716
--- /dev/null
+++ b/src/plugins/Ui/qsui/qsuiquicksearch.cpp
@@ -0,0 +1,59 @@
+/***************************************************************************
+ * Copyright (C) 2017 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#include <QLineEdit>
+#include <QHBoxLayout>
+#include <QToolButton>
+#include <QStyle>
+#include <QEvent>
+#include <QApplication>
+#include "qsuiquicksearch.h"
+
+QSUIQuickSearch::QSUIQuickSearch(QWidget *parent) :
+ QWidget(parent)
+{
+ m_lineEdit = new QLineEdit(this);
+ QHBoxLayout *layout = new QHBoxLayout;
+ layout->setSpacing(0);
+ layout->setMargin(0);
+ setLayout(layout);
+ layout->addWidget(m_lineEdit);
+ m_lineEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+
+ QToolButton *downButton = new QToolButton(this);
+ downButton->setAutoRaise(true);
+ downButton->setIcon(style()->standardIcon(QStyle::QStyle::SP_ArrowDown));
+ layout->addWidget(downButton);
+ QToolButton *upButton = new QToolButton(this);
+ upButton->setIcon(style()->standardIcon(QStyle::QStyle::SP_ArrowUp));
+ upButton->setAutoRaise(true);
+ layout->addWidget(upButton);
+
+ connect(qApp, SIGNAL(focusChanged(QWidget*,QWidget*)), SLOT(onFocusChanged(QWidget*,QWidget*)));
+}
+
+void QSUIQuickSearch::onFocusChanged(QWidget *old, QWidget *now)
+{
+ if(now == m_lineEdit)
+ qDebug("focus in");
+ else if(old == m_lineEdit)
+ qDebug("focus out");
+}
+
diff --git a/src/plugins/Ui/qsui/qsuiquicksearch.h b/src/plugins/Ui/qsui/qsuiquicksearch.h
new file mode 100644
index 000000000..f6bccf238
--- /dev/null
+++ b/src/plugins/Ui/qsui/qsuiquicksearch.h
@@ -0,0 +1,45 @@
+/***************************************************************************
+ * Copyright (C) 2017 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef QSUIQUICKSEARCH_H
+#define QSUIQUICKSEARCH_H
+
+#include <QWidget>
+
+class QLineEdit;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class QSUIQuickSearch : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit QSUIQuickSearch(QWidget *parent = 0);
+
+private slots:
+ void onFocusChanged(QWidget *old, QWidget *now);
+
+private:
+ QLineEdit *m_lineEdit;
+
+};
+
+#endif // QSUIQUICKSEARCH_H
diff --git a/src/plugins/Ui/qsui/toolbareditor.cpp b/src/plugins/Ui/qsui/toolbareditor.cpp
index 20d67e810..ee5f7f40a 100644
--- a/src/plugins/Ui/qsui/toolbareditor.cpp
+++ b/src/plugins/Ui/qsui/toolbareditor.cpp
@@ -82,7 +82,7 @@ void ToolBarEditor::populateActionList(bool reset)
m_ui->toolbarNameComboBox->addItem(info.title);
}
- for(int id = ActionManager::PLAY; id <= ActionManager::UI_VOL_SLIDER; ++id)
+ for(int id = ActionManager::PLAY; id <= ActionManager::UI_QUICK_SEARCH; ++id)
{
QAction *action = ACTION(id);
if(!action || actionNames.contains(action->objectName()))