From 84da08d7b7fcda12c85caeb5a10b4903770a6f69 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeaddons@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- noatun-plugins/oblique/selector.h | 76 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 noatun-plugins/oblique/selector.h (limited to 'noatun-plugins/oblique/selector.h') diff --git a/noatun-plugins/oblique/selector.h b/noatun-plugins/oblique/selector.h new file mode 100644 index 0000000..1447dec --- /dev/null +++ b/noatun-plugins/oblique/selector.h @@ -0,0 +1,76 @@ +// Copyright (c) 2003 Charles Samuels +// See the file COPYING for redistribution terms. + +#ifndef SELECTOR_H +#define SELECTOR_H + +#include +#include "file.h" + +class Item : public PlaylistItemData +{ + File mFile; + +public: + Item(const File &file); + + File itemFile() const { return mFile; } + + virtual QString property(const QString &key, const QString &def=0) const; + virtual void setProperty(const QString &key, const QString &property); + virtual void clearProperty (const QString &key); + virtual QStringList properties() const; + + virtual bool isProperty(const QString &key) const; + + virtual bool operator==(const PlaylistItemData &d) const; + virtual void remove(); +}; + +/** + * a selector is an object that can get items from the + * playlist in a certain order + **/ +class Selector +{ +public: + Selector(); + virtual ~Selector(); + virtual Item *next()=0; + virtual Item *previous()=0; + virtual Item *current()=0; + virtual void setCurrent(const Item &item)=0; +}; + +class Tree; +class TreeItem; + +class SequentialSelector : public Selector +{ + Tree *mTree; + +public: + SequentialSelector(Tree *tree); + virtual ~SequentialSelector(); + virtual Item *next(); + virtual Item *previous(); + virtual Item *current(); + virtual void setCurrent(const Item &item); + virtual void setCurrent(TreeItem *current); +}; + +class RandomSelector : public Selector +{ + Tree *mTree; + TreeItem *mPrevious; +public: + RandomSelector(Tree *tree); + + virtual Item *next(); + virtual Item *previous(); + virtual Item *current(); + virtual void setCurrent(const Item &item); + virtual void setCurrent(TreeItem *item, TreeItem *previous); +}; + +#endif -- cgit v1.2.1