/* This file is part of Clementine.
   Copyright 2011, David Sansome <me@davidsansome.com>

   Clementine 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 3 of the License, or
   (at your option) any later version.

   Clementine 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 Clementine.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef GLOBALSEARCHSETTINGSPAGE_H
#define GLOBALSEARCHSETTINGSPAGE_H

#include "ui/settingspage.h"

#include <QIcon>
#include <QScopedPointer>

class GlobalSearch;
class SearchProvider;
class Ui_GlobalSearchSettingsPage;

class QTreeWidgetItem;

class GlobalSearchSettingsPage : public SettingsPage {
  Q_OBJECT

 public:
  GlobalSearchSettingsPage(SettingsDialog* dialog);
  ~GlobalSearchSettingsPage();

  void Load();
  void Save();

 protected:
  void showEvent(QShowEvent* e);

 private slots:
  void MoveUp();
  void MoveDown();
  void ConfigureProvider();

  void CurrentProviderChanged(QTreeWidgetItem* item);

 private:
  void AddProviderItem(GlobalSearch* engine, SearchProvider* provider);
  void UpdateLoggedInState(GlobalSearch* engine, QTreeWidgetItem* item,
                           bool set_checked_state);
  void MoveCurrentItem(int d);

 private:
  QScopedPointer<Ui_GlobalSearchSettingsPage> ui_;

  QIcon warning_icon_;
};

#endif  // GLOBALSEARCHSETTINGSPAGE_H
