mirror-kde-plasma-desktop/applets/kickoff/core/favoritesmodel.h
Aleix Pol 88ae0b60b8 Initial import from the monolithic kde-workspace.
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
techbase wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:

http://community.kde.org/Frameworks/GitOldHistory

If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.

Branched from the monolithic repo kde-workspace, frameworks  branch, at commit
049113e719dd2fc4446d054fa1a3aada330094f0
2014-03-31 04:23:39 +02:00

72 lines
2.4 KiB
C++

/*
Copyright 2007 Robert Knight <robertknight@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef FAVORITESMODEL_H
#define FAVORITESMODEL_H
#include "kickoffmodel.h"
#include "models.h"
namespace Kickoff
{
/**
* A model which provides an ordered list of 'favorite' items chosen by the user.
* The items may represent documents, folders, applications, devices or anything else
* identified by a URL.
*
* The information persists between sessions.
*/
class FavoritesModel : public KickoffModel
{
Q_OBJECT
public:
FavoritesModel(QObject *parent = NULL);
virtual ~FavoritesModel();
/** Add a new item for @p url to the user's favorites list. */
Q_INVOKABLE static void add(const QString& url);
/** Remove the item associated with @p url from the user's favorites list. */
Q_INVOKABLE static void remove(const QString& url);
/** Returns true if @p url is in the list of the user's favorite URLs. */
Q_INVOKABLE static void move(int startRow, int destRow);
static int numberOfFavorites();
static void sortFavorites(Qt::SortOrder order);
Q_INVOKABLE static bool isFavorite(const QString& url);
using QAbstractItemModel::dropMimeData;
Q_INVOKABLE virtual bool dropMimeData(const QString& text, const QVariantList& urls,
int row, int column);
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
void setNameDisplayOrder(DisplayOrder displayOrder);
DisplayOrder nameDisplayOrder() const;
public Q_SLOTS:
void sortFavoritesAscending();
void sortFavoritesDescending();
private:
class Private;
Private * const d;
};
}
#endif // FAVORITESMODEL_H