mirror of
https://github.com/clementine-player/Clementine
synced 2025-01-31 11:35:24 +01:00
Remove the individual provider buttons from the global search widget and replace them with one settings button instead. Also tweak the appearance of the tooltip
This commit is contained in:
parent
af59c517b7
commit
dc05c101a3
@ -99,7 +99,7 @@ void GlobalSearchSettingsPage::AddProviderItem(GlobalSearch* engine,
|
||||
if (!logged_in) {
|
||||
item->setData(0, Qt::CheckStateRole, Qt::Unchecked);
|
||||
item->setIcon(1, warning_icon_);
|
||||
item->setText(1, tr("Not logged in"));
|
||||
item->setText(1, tr("Not logged in") + " ");
|
||||
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
||||
} else if (enabled) {
|
||||
item->setData(0, Qt::CheckStateRole, Qt::Checked);
|
||||
|
@ -31,7 +31,7 @@
|
||||
|
||||
const qreal GlobalSearchTooltip::kBorderRadius = 8.0;
|
||||
const qreal GlobalSearchTooltip::kTotalBorderWidth = 4.0;
|
||||
const qreal GlobalSearchTooltip::kOuterBorderWidth = 1.0;
|
||||
const qreal GlobalSearchTooltip::kOuterBorderWidth = 0.5;
|
||||
const qreal GlobalSearchTooltip::kArrowWidth = 10.0;
|
||||
const qreal GlobalSearchTooltip::kArrowHeight = 10.0;
|
||||
|
||||
@ -177,7 +177,7 @@ bool GlobalSearchTooltip::event(QEvent* e) {
|
||||
void GlobalSearchTooltip::paintEvent(QPaintEvent*) {
|
||||
QPainter p(this);
|
||||
|
||||
const QColor outer_color = Qt::black;
|
||||
const QColor outer_color(0, 0, 0, 192);
|
||||
const QColor inner_color = palette().color(QPalette::Highlight);
|
||||
const QColor center_color = palette().color(QPalette::Base);
|
||||
|
||||
@ -189,6 +189,7 @@ void GlobalSearchTooltip::paintEvent(QPaintEvent*) {
|
||||
kTotalBorderWidth/2, kTotalBorderWidth/2));
|
||||
|
||||
// Draw the border
|
||||
p.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
p.setRenderHint(QPainter::Antialiasing);
|
||||
p.setPen(QPen(outer_color, kTotalBorderWidth));
|
||||
p.drawRoundedRect(area, kBorderRadius, kBorderRadius);
|
||||
@ -211,14 +212,15 @@ void GlobalSearchTooltip::paintEvent(QPaintEvent*) {
|
||||
inner_border_width/2, inner_border_width/2));
|
||||
|
||||
// Inner border
|
||||
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
|
||||
p.setBrush(center_color);
|
||||
p.setPen(QPen(inner_color, inner_border_width));
|
||||
p.drawRoundedRect(inner_area, kBorderRadius, kBorderRadius);
|
||||
|
||||
// Inner arrow
|
||||
arrow[0].setY(arrow[0].y() + kOuterBorderWidth);
|
||||
arrow[1].setX(arrow[1].x() + kOuterBorderWidth + 1);
|
||||
arrow[2].setY(arrow[2].y() - kOuterBorderWidth);
|
||||
arrow[0].setY(arrow[0].y() + kOuterBorderWidth + 0.5);
|
||||
arrow[1].setX(arrow[1].x() + kOuterBorderWidth + 1.5);
|
||||
arrow[2].setY(arrow[2].y() - kOuterBorderWidth - 0.5);
|
||||
|
||||
p.setBrush(inner_color);
|
||||
p.setPen(inner_color);
|
||||
|
@ -117,6 +117,9 @@ GlobalSearchWidget::GlobalSearchWidget(QWidget* parent)
|
||||
StyleSheetLoader* style_loader = new StyleSheetLoader(this);
|
||||
style_loader->SetStyleSheet(this, ":globalsearch.css");
|
||||
|
||||
// Icons
|
||||
ui_->settings->setIcon(IconLoader::Load("configure"));
|
||||
|
||||
swap_models_timer_->setSingleShot(true);
|
||||
swap_models_timer_->setInterval(kSwapModelsTimeoutMsec);
|
||||
|
||||
@ -125,6 +128,7 @@ GlobalSearchWidget::GlobalSearchWidget(QWidget* parent)
|
||||
connect(view_->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
|
||||
SLOT(UpdateTooltip()));
|
||||
connect(swap_models_timer_, SIGNAL(timeout()), SLOT(SwapModels()));
|
||||
connect(ui_->settings, SIGNAL(clicked()), SLOT(SettingsClicked()));
|
||||
}
|
||||
|
||||
GlobalSearchWidget::~GlobalSearchWidget() {
|
||||
@ -144,18 +148,6 @@ void GlobalSearchWidget::Init(GlobalSearch* engine) {
|
||||
connect(engine_, SIGNAL(TracksLoaded(int,MimeData*)), SLOT(TracksLoaded(int,MimeData*)),
|
||||
Qt::QueuedConnection);
|
||||
|
||||
connect(engine_, SIGNAL(ProviderAdded(const SearchProvider*)),
|
||||
SLOT(ProviderAdded(const SearchProvider*)));
|
||||
connect(engine_, SIGNAL(ProviderRemoved(const SearchProvider*)),
|
||||
SLOT(ProviderRemoved(const SearchProvider*)));
|
||||
connect(engine_, SIGNAL(ProviderToggled(const SearchProvider*,bool)),
|
||||
SLOT(ProviderToggled(const SearchProvider*,bool)));
|
||||
|
||||
// Take all the ProviderAdded signals we missed.
|
||||
foreach (const SearchProvider* provider, engine_->providers()) {
|
||||
ProviderAdded(provider);
|
||||
}
|
||||
|
||||
view_->setStyle(new PlaylistProxyStyle(style()));
|
||||
|
||||
// The style helper's base color doesn't get initialised until after the
|
||||
@ -325,10 +317,6 @@ bool GlobalSearchWidget::eventFilter(QObject* o, QEvent* e) {
|
||||
if (o == view_)
|
||||
return EventFilterPopup(o, e);
|
||||
|
||||
QToolButton* button = qobject_cast<QToolButton*>(o);
|
||||
if (button && provider_buttons_.right.count(button))
|
||||
return EventFilterProviderButton(button, e);
|
||||
|
||||
return QWidget::eventFilter(o, e);
|
||||
}
|
||||
|
||||
@ -472,28 +460,6 @@ bool GlobalSearchWidget::EventFilterPopup(QObject*, QEvent* e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GlobalSearchWidget::EventFilterProviderButton(QToolButton* button, QEvent* e) {
|
||||
switch (e->type()) {
|
||||
case QEvent::Enter:
|
||||
QToolTip::showText(button->mapToGlobal(button->rect().bottomLeft()),
|
||||
button->toolTip(), button);
|
||||
break;
|
||||
|
||||
case QEvent::Leave:
|
||||
QToolTip::hideText();
|
||||
break;
|
||||
|
||||
case QEvent::ToolTip:
|
||||
// Ignore normal tooltip events.
|
||||
return true;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void GlobalSearchWidget::LazyLoadArt(const QModelIndex& proxy_index) {
|
||||
if (!proxy_index.isValid() || proxy_index.data(Role_LazyLoadingArt).isValid()) {
|
||||
return;
|
||||
@ -692,97 +658,6 @@ void GlobalSearchWidget::UpdateTooltip() {
|
||||
tooltip_->ShowAt(view_->mapToGlobal(popup_pos));
|
||||
}
|
||||
|
||||
void GlobalSearchWidget::ProviderAdded(const SearchProvider* provider) {
|
||||
if (provider_buttons_.left.count(provider)) {
|
||||
qLog(Error) << "Tried to add the same provider twice:"
|
||||
<< provider->name() << provider->id();
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a button for the provider.
|
||||
QToolButton* button = new QToolButton(this);
|
||||
button->setToolTip(tr("Show results from %1").arg(provider->name()));
|
||||
button->setCheckable(true);
|
||||
button->setChecked(engine_->is_provider_enabled(provider));
|
||||
button->installEventFilter(this);
|
||||
|
||||
// Make the "Off" icon state greyed out, semi transparent and blurred.
|
||||
QImage disabled_image = provider->icon().pixmap(
|
||||
button->iconSize(), QIcon::Disabled).toImage();
|
||||
|
||||
QImage off_image = QImage(disabled_image.size(), QImage::Format_ARGB32);
|
||||
off_image.fill(Qt::transparent);
|
||||
|
||||
QPainter p(&off_image);
|
||||
p.setOpacity(0.5);
|
||||
qt_blurImage(&p, disabled_image, 3.0, true, false);
|
||||
p.end();
|
||||
|
||||
QIcon icon;
|
||||
icon.addPixmap(provider->icon().pixmap(button->iconSize(), QIcon::Normal),
|
||||
QIcon::Normal, QIcon::On);
|
||||
icon.addPixmap(QPixmap::fromImage(off_image), QIcon::Normal, QIcon::Off);
|
||||
|
||||
button->setIcon(icon);
|
||||
|
||||
connect(button, SIGNAL(toggled(bool)), SLOT(ProviderButtonToggled(bool)));
|
||||
|
||||
// Find the appropriate insertion point.
|
||||
bool inserted = false;
|
||||
for (int i = 0; i < ui_->provider_layout->count(); ++i) {
|
||||
QToolButton* item_button = static_cast<QToolButton*>(
|
||||
ui_->provider_layout->itemAt(i)->widget());
|
||||
|
||||
if (!item_button) {
|
||||
continue;
|
||||
}
|
||||
const QString& name = provider_buttons_.right.find(item_button)->second->name();
|
||||
if (provider->name() < name) {
|
||||
ui_->provider_layout->insertWidget(i, button);
|
||||
inserted = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!inserted) {
|
||||
// Insert it at the end but before the spacer.
|
||||
ui_->provider_layout->insertWidget(ui_->provider_layout->count() - 1, button);
|
||||
}
|
||||
|
||||
provider_buttons_.insert(ProviderButton(provider, button));
|
||||
}
|
||||
|
||||
void GlobalSearchWidget::ProviderRemoved(const SearchProvider* provider) {
|
||||
if (!provider_buttons_.left.count(provider)) {
|
||||
qLog(Error) << "Tried to remove a provider that hadn't been added yet:"
|
||||
<< provider->name() << provider->id();
|
||||
return;
|
||||
}
|
||||
|
||||
ProviderButtonMap::left_const_iterator it = provider_buttons_.left.find(provider);
|
||||
delete it->second;
|
||||
provider_buttons_.left.erase(provider);
|
||||
}
|
||||
|
||||
void GlobalSearchWidget::ProviderButtonToggled(bool on) {
|
||||
QToolButton* button = qobject_cast<QToolButton*>(sender());
|
||||
if (!button)
|
||||
return;
|
||||
|
||||
const SearchProvider* provider = provider_buttons_.right.find(button)->second;
|
||||
if (!provider)
|
||||
return;
|
||||
|
||||
if (!engine_->SetProviderEnabled(provider, on)) {
|
||||
// If we were not able to change provider state, toggle back provider button
|
||||
button->toggle();
|
||||
}
|
||||
}
|
||||
|
||||
void GlobalSearchWidget::ProviderToggled(const SearchProvider* provider, bool on) {
|
||||
QToolButton* button = provider_buttons_.left.find(provider)->second;
|
||||
if (!button)
|
||||
return;
|
||||
|
||||
button->setChecked(on);
|
||||
void GlobalSearchWidget::SettingsClicked() {
|
||||
emit OpenSettingsAtPage(SettingsDialog::Page_GlobalSearch);
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
#define GLOBALSEARCHWIDGET_H
|
||||
|
||||
#include "searchprovider.h"
|
||||
#include "ui/settingsdialog.h"
|
||||
|
||||
#include <QScopedPointer>
|
||||
#include <QWidget>
|
||||
@ -70,6 +71,7 @@ public slots:
|
||||
|
||||
signals:
|
||||
void AddToPlaylist(QMimeData* data);
|
||||
void OpenSettingsAtPage(SettingsDialog::Page page);
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent* e);
|
||||
@ -89,17 +91,13 @@ private slots:
|
||||
void AddAndQueueCurrent();
|
||||
void ReplaceCurrent();
|
||||
void ReplaceAndPlayCurrent();
|
||||
void SettingsClicked();
|
||||
|
||||
void HidePopup();
|
||||
void UpdateTooltip();
|
||||
|
||||
void SwapModels();
|
||||
|
||||
void ProviderAdded(const SearchProvider* provider);
|
||||
void ProviderRemoved(const SearchProvider* provider);
|
||||
void ProviderButtonToggled(bool on);
|
||||
void ProviderToggled(const SearchProvider* provider, bool on);
|
||||
|
||||
private:
|
||||
// Return values from CanCombineResults
|
||||
enum CombineAction {
|
||||
@ -114,7 +112,6 @@ private:
|
||||
|
||||
bool EventFilterSearchWidget(QObject* o, QEvent* e);
|
||||
bool EventFilterPopup(QObject* o, QEvent* e);
|
||||
bool EventFilterProviderButton(QToolButton* button, QEvent* e);
|
||||
|
||||
void LoadTracks(QAction* trigger);
|
||||
|
||||
@ -161,10 +158,6 @@ private:
|
||||
QAction* replace_;
|
||||
QAction* replace_and_play_;
|
||||
QList<QAction*> actions_;
|
||||
|
||||
typedef boost::bimap<const SearchProvider*, QToolButton*> ProviderButtonMap;
|
||||
typedef ProviderButtonMap::value_type ProviderButton;
|
||||
ProviderButtonMap provider_buttons_;
|
||||
};
|
||||
|
||||
#endif // GLOBALSEARCHWIDGET_H
|
||||
|
@ -7,13 +7,13 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>522</width>
|
||||
<height>101</height>
|
||||
<height>53</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="LineEdit" name="search">
|
||||
<property name="hint" stdset="0">
|
||||
@ -22,24 +22,17 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="provider_layout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
<widget class="QToolButton" name="settings">
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>16</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -347,7 +347,7 @@ msgstr ""
|
||||
msgid "Add directory..."
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1574
|
||||
#: ui/mainwindow.cpp:1575
|
||||
msgid "Add file"
|
||||
msgstr ""
|
||||
|
||||
@ -359,7 +359,7 @@ msgstr ""
|
||||
msgid "Add files to transcode"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1599
|
||||
#: ui/mainwindow.cpp:1600
|
||||
msgid "Add folder"
|
||||
msgstr ""
|
||||
|
||||
@ -427,7 +427,7 @@ msgstr ""
|
||||
msgid "Add stream..."
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1403
|
||||
#: ui/mainwindow.cpp:1404
|
||||
msgid "Add to another playlist"
|
||||
msgstr ""
|
||||
|
||||
@ -642,7 +642,7 @@ msgstr ""
|
||||
msgid "Artist"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:270
|
||||
#: ui/mainwindow.cpp:271
|
||||
msgid "Artist info"
|
||||
msgstr ""
|
||||
|
||||
@ -825,7 +825,7 @@ msgstr ""
|
||||
msgid "Change the language"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:610
|
||||
#: ui/mainwindow.cpp:611
|
||||
msgid "Check for updates..."
|
||||
msgstr ""
|
||||
|
||||
@ -1003,7 +1003,7 @@ msgstr ""
|
||||
msgid "Configure Spotify..."
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:504
|
||||
#: ui/mainwindow.cpp:505
|
||||
msgid "Configure library..."
|
||||
msgstr ""
|
||||
|
||||
@ -1036,12 +1036,12 @@ msgstr ""
|
||||
msgid "Convert any music that the device can't play"
|
||||
msgstr ""
|
||||
|
||||
#: library/libraryview.cpp:258 ui/mainwindow.cpp:537
|
||||
#: library/libraryview.cpp:258 ui/mainwindow.cpp:538
|
||||
#: widgets/fileviewlist.cpp:43
|
||||
msgid "Copy to device..."
|
||||
msgstr ""
|
||||
|
||||
#: devices/deviceview.cpp:223 ui/mainwindow.cpp:534
|
||||
#: devices/deviceview.cpp:223 ui/mainwindow.cpp:535
|
||||
#: widgets/fileviewlist.cpp:38
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
@ -1257,7 +1257,7 @@ msgid "Delete Grooveshark playlist"
|
||||
msgstr ""
|
||||
|
||||
#: devices/deviceview.cpp:393 library/libraryview.cpp:450
|
||||
#: ui/mainwindow.cpp:1837 widgets/fileview.cpp:185
|
||||
#: ui/mainwindow.cpp:1838 widgets/fileview.cpp:185
|
||||
msgid "Delete files"
|
||||
msgstr ""
|
||||
|
||||
@ -1265,7 +1265,7 @@ msgstr ""
|
||||
msgid "Delete from device..."
|
||||
msgstr ""
|
||||
|
||||
#: library/libraryview.cpp:260 ui/mainwindow.cpp:538
|
||||
#: library/libraryview.cpp:260 ui/mainwindow.cpp:539
|
||||
#: widgets/fileviewlist.cpp:44
|
||||
msgid "Delete from disk..."
|
||||
msgstr ""
|
||||
@ -1286,11 +1286,11 @@ msgstr ""
|
||||
msgid "Deleting files"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1348
|
||||
#: ui/mainwindow.cpp:1349
|
||||
msgid "Dequeue selected tracks"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1346
|
||||
#: ui/mainwindow.cpp:1347
|
||||
msgid "Dequeue track"
|
||||
msgstr ""
|
||||
|
||||
@ -1318,7 +1318,7 @@ msgstr ""
|
||||
msgid "Device properties..."
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:267
|
||||
#: ui/mainwindow.cpp:268
|
||||
msgid "Devices"
|
||||
msgstr ""
|
||||
|
||||
@ -1472,7 +1472,7 @@ msgstr ""
|
||||
msgid "Edit smart playlist..."
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1381
|
||||
#: ui/mainwindow.cpp:1382
|
||||
#, qt-format
|
||||
msgid "Edit tag \"%1\"..."
|
||||
msgstr ""
|
||||
@ -1579,8 +1579,8 @@ msgid "Equivalent to --log-levels *:3"
|
||||
msgstr ""
|
||||
|
||||
#: internet/magnatunedownloaddialog.cpp:225 library/libraryview.cpp:444
|
||||
#: ui/edittagdialog.cpp:719 ui/mainwindow.cpp:1805 ui/mainwindow.cpp:1910
|
||||
#: ui/mainwindow.cpp:2128
|
||||
#: ui/edittagdialog.cpp:719 ui/mainwindow.cpp:1806 ui/mainwindow.cpp:1911
|
||||
#: ui/mainwindow.cpp:2129
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
@ -1733,7 +1733,7 @@ msgstr ""
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:265
|
||||
#: ui/mainwindow.cpp:266
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
@ -1796,7 +1796,7 @@ msgid ""
|
||||
"to rescan all the songs again next time you connect it."
|
||||
msgstr ""
|
||||
|
||||
#: ../bin/src/ui_globalsearchwidget.h:64
|
||||
#: ../bin/src/ui_globalsearchwidget.h:59
|
||||
#: ../bin/src/ui_icecastfilterwidget.h:74
|
||||
#: ../bin/src/ui_internetviewcontainer.h:70
|
||||
#: ../bin/src/ui_libraryfilterwidget.h:114
|
||||
@ -1878,7 +1878,7 @@ msgstr ""
|
||||
msgid "Global Search"
|
||||
msgstr ""
|
||||
|
||||
#: ../bin/src/ui_globalsearchwidget.h:65
|
||||
#: ../bin/src/ui_globalsearchwidget.h:60
|
||||
msgid "Global search"
|
||||
msgstr ""
|
||||
|
||||
@ -2071,7 +2071,7 @@ msgstr ""
|
||||
msgid "Installed"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:266
|
||||
#: ui/mainwindow.cpp:267
|
||||
msgid "Internet"
|
||||
msgstr ""
|
||||
|
||||
@ -2267,7 +2267,7 @@ msgstr ""
|
||||
msgid "Length"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:241 ui/mainwindow.cpp:264
|
||||
#: ui/mainwindow.cpp:241 ui/mainwindow.cpp:265
|
||||
msgid "Library"
|
||||
msgstr ""
|
||||
|
||||
@ -2275,7 +2275,7 @@ msgstr ""
|
||||
msgid "Library advanced grouping"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:2030
|
||||
#: ui/mainwindow.cpp:2031
|
||||
msgid "Library rescan notice"
|
||||
msgstr ""
|
||||
|
||||
@ -2526,7 +2526,7 @@ msgstr ""
|
||||
msgid "Move down"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:535 widgets/fileviewlist.cpp:40
|
||||
#: ui/mainwindow.cpp:536 widgets/fileviewlist.cpp:40
|
||||
msgid "Move to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -2621,7 +2621,7 @@ msgstr ""
|
||||
msgid "Never start playing"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1420 ../bin/src/ui_mainwindow.h:680
|
||||
#: ui/mainwindow.cpp:1421 ../bin/src/ui_mainwindow.h:680
|
||||
msgid "New playlist"
|
||||
msgstr ""
|
||||
|
||||
@ -2672,7 +2672,7 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: library/libraryview.cpp:445 ui/mainwindow.cpp:1806 ui/mainwindow.cpp:1911
|
||||
#: library/libraryview.cpp:445 ui/mainwindow.cpp:1807 ui/mainwindow.cpp:1912
|
||||
msgid "None of the selected songs were suitable for copying to a device"
|
||||
msgstr ""
|
||||
|
||||
@ -2813,7 +2813,7 @@ msgstr ""
|
||||
msgid "Organise Files"
|
||||
msgstr ""
|
||||
|
||||
#: library/libraryview.cpp:256 ui/mainwindow.cpp:536
|
||||
#: library/libraryview.cpp:256 ui/mainwindow.cpp:537
|
||||
msgid "Organise files..."
|
||||
msgstr ""
|
||||
|
||||
@ -2864,7 +2864,7 @@ msgstr ""
|
||||
msgid "Password Protected"
|
||||
msgstr ""
|
||||
|
||||
#: core/globalshortcuts.cpp:46 ui/mainwindow.cpp:885 ui/mainwindow.cpp:1271
|
||||
#: core/globalshortcuts.cpp:46 ui/mainwindow.cpp:886 ui/mainwindow.cpp:1272
|
||||
#: ui/qtsystemtrayicon.cpp:178 wiimotedev/wiimotesettingspage.cpp:106
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
@ -2881,8 +2881,8 @@ msgstr ""
|
||||
msgid "Plain sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: core/globalshortcuts.cpp:45 ui/mainwindow.cpp:519 ui/mainwindow.cpp:853
|
||||
#: ui/mainwindow.cpp:872 ui/mainwindow.cpp:1274 ui/qtsystemtrayicon.cpp:166
|
||||
#: core/globalshortcuts.cpp:45 ui/mainwindow.cpp:520 ui/mainwindow.cpp:854
|
||||
#: ui/mainwindow.cpp:873 ui/mainwindow.cpp:1275 ui/qtsystemtrayicon.cpp:166
|
||||
#: ui/qtsystemtrayicon.cpp:192 wiimotedev/wiimotesettingspage.cpp:101
|
||||
#: ../bin/src/ui_mainwindow.h:631
|
||||
msgid "Play"
|
||||
@ -3090,12 +3090,12 @@ msgstr ""
|
||||
msgid "Queue Manager"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1352
|
||||
#: ui/mainwindow.cpp:1353
|
||||
msgid "Queue selected tracks"
|
||||
msgstr ""
|
||||
|
||||
#: globalsearch/globalsearchwidget.cpp:97 library/libraryview.cpp:244
|
||||
#: ui/mainwindow.cpp:1350
|
||||
#: ui/mainwindow.cpp:1351
|
||||
msgid "Queue track"
|
||||
msgstr ""
|
||||
|
||||
@ -3448,7 +3448,7 @@ msgstr ""
|
||||
msgid "Service offline"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1379
|
||||
#: ui/mainwindow.cpp:1380
|
||||
#, qt-format
|
||||
msgid "Set %1 to \"%2\"..."
|
||||
msgstr ""
|
||||
@ -3524,7 +3524,7 @@ msgstr ""
|
||||
msgid "Show above status bar"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:492
|
||||
#: ui/mainwindow.cpp:493
|
||||
msgid "Show all songs"
|
||||
msgstr ""
|
||||
|
||||
@ -3544,7 +3544,7 @@ msgstr ""
|
||||
msgid "Show fullsize..."
|
||||
msgstr ""
|
||||
|
||||
#: library/libraryview.cpp:268 ui/mainwindow.cpp:539
|
||||
#: library/libraryview.cpp:268 ui/mainwindow.cpp:540
|
||||
msgid "Show in file browser..."
|
||||
msgstr ""
|
||||
|
||||
@ -3552,19 +3552,14 @@ msgstr ""
|
||||
msgid "Show in various artists"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:493
|
||||
#: ui/mainwindow.cpp:494
|
||||
msgid "Show only duplicates"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:494
|
||||
#: ui/mainwindow.cpp:495
|
||||
msgid "Show only untagged"
|
||||
msgstr ""
|
||||
|
||||
#: globalsearch/globalsearchwidget.cpp:704
|
||||
#, qt-format
|
||||
msgid "Show results from %1"
|
||||
msgstr ""
|
||||
|
||||
#: ../bin/src/ui_lastfmsettingspage.h:151
|
||||
msgid "Show the \"love\" and \"ban\" buttons"
|
||||
msgstr ""
|
||||
@ -3657,7 +3652,7 @@ msgstr ""
|
||||
msgid "Song Information"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:269
|
||||
#: ui/mainwindow.cpp:270
|
||||
msgid "Song info"
|
||||
msgstr ""
|
||||
|
||||
@ -3753,7 +3748,7 @@ msgstr ""
|
||||
msgid "Stop after"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:521 ../bin/src/ui_mainwindow.h:639
|
||||
#: ui/mainwindow.cpp:522 ../bin/src/ui_mainwindow.h:639
|
||||
msgid "Stop after this track"
|
||||
msgstr ""
|
||||
|
||||
@ -3879,7 +3874,7 @@ msgstr ""
|
||||
msgid "The site you requested is not an image!"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:2023
|
||||
#: ui/mainwindow.cpp:2024
|
||||
msgid ""
|
||||
"The version of Clementine you've just updated to requires a full library "
|
||||
"rescan because of the new features listed below:"
|
||||
@ -3901,7 +3896,7 @@ msgid ""
|
||||
"deleted:"
|
||||
msgstr ""
|
||||
|
||||
#: library/libraryview.cpp:451 ui/mainwindow.cpp:1838 widgets/fileview.cpp:186
|
||||
#: library/libraryview.cpp:451 ui/mainwindow.cpp:1839 widgets/fileview.cpp:186
|
||||
msgid ""
|
||||
"These files will be deleted from disk, are you sure you want to continue?"
|
||||
msgstr ""
|
||||
@ -4006,7 +4001,7 @@ msgstr ""
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:1354
|
||||
#: ui/mainwindow.cpp:1355
|
||||
msgid "Toggle queue status"
|
||||
msgstr ""
|
||||
|
||||
@ -4329,7 +4324,7 @@ msgstr ""
|
||||
msgid "Windows Media audio"
|
||||
msgstr ""
|
||||
|
||||
#: ui/mainwindow.cpp:2028
|
||||
#: ui/mainwindow.cpp:2029
|
||||
msgid "Would you like to run a full rescan right now?"
|
||||
msgstr ""
|
||||
|
||||
@ -4448,7 +4443,7 @@ msgstr ""
|
||||
msgid "Your Magnatune credentials were incorrect"
|
||||
msgstr ""
|
||||
|
||||
#: ui/edittagdialog.cpp:719 ui/mainwindow.cpp:2128
|
||||
#: ui/edittagdialog.cpp:719 ui/mainwindow.cpp:2129
|
||||
msgid ""
|
||||
"Your gstreamer installation is missing the 'ofa' plugin. This is required "
|
||||
"for automatic tag fetching. Try installing the 'gstreamer-plugins-bad' "
|
||||
|
@ -259,6 +259,7 @@ MainWindow::MainWindow(
|
||||
|
||||
ui_->global_search->Init(global_search);
|
||||
connect(ui_->global_search, SIGNAL(AddToPlaylist(QMimeData*)), SLOT(AddToPlaylist(QMimeData*)));
|
||||
connect(ui_->global_search, SIGNAL(OpenSettingsAtPage(SettingsDialog::Page)), SLOT(OpenSettingsDialogAtPage(SettingsDialog::Page)));
|
||||
|
||||
// Add tabs to the fancy tab widget
|
||||
ui_->tabs->AddTab(library_view_, IconLoader::Load("folder-sound"), tr("Library"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user