You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kplayer/kplayer/kplayernodeaction.h

223 lines
6.0 KiB

/***************************************************************************
kplayernodeaction.h
-------------------
begin : Wed Apr 05 2006
copyright : (C) 2006-2007 by kiriuja
email : http://kplayer.sourceforge.net/email.html
***************************************************************************/
/***************************************************************************
* 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 3 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef KPLAYERNODEACTION_H
#define KPLAYERNODEACTION_H
#include <tdeactionclasses.h>
#include "kplayeractionlist.h"
class KPlayerNode;
class KPlayerContainerNode;
class KPlayerDeviceNode;
class KPlayerDiskNode;
class KPlayerNodeList;
/**Node action list.
*@author kiriuja
*/
class KPlayerNodeActionList : public KPlayerActionList
{
Q_OBJECT
public:
/** Constructor. */
KPlayerNodeActionList (const TQString& text, const TQString& status,
const TQString& whatsthis, TQObject* parent, const char* name);
/** Destructor. */
virtual ~KPlayerNodeActionList();
/** Initializes the node and actions. */
void initialize (const KURL& url);
/** Populates the node. */
virtual void populateNode (void);
/** Vacates the node. */
virtual void vacateNode (void);
/** Returns the node. */
KPlayerContainerNode* node (void) const
{ return m_node; }
/** Returns the maximum list size. */
int maximumSize (void) const
{ return m_size; }
/** Sets the maximum list size. */
void setMaximumSize (int size)
{ m_size = size; }
/** Returns whether the given node can be included on the list. */
virtual bool canInclude (KPlayerNode* node) const;
/** Frees up resources. */
void terminate (void);
protected slots:
/** Adds the given nodes to the list. */
void added (KPlayerContainerNode* parent, const KPlayerNodeList& nodes, KPlayerNode* after = 0);
/** Removes the given nodes from the list. */
void removed (KPlayerContainerNode* parent, const KPlayerNodeList& nodes);
/** Updates the given node attributes. */
void updated (KPlayerContainerNode* parent, KPlayerNode* node);
/** Emits the activated signal with the selected node. */
void actionActivated (void);
protected:
/** Updates the node list. */
void updateActions (void);
/** Creates an action for the given node. */
virtual TDEAction* createAction (KPlayerNode* node);
/** Container node. */
KPlayerContainerNode* m_node;
/** Maximum list size. */
int m_size;
signals:
/** Emitted when the node is selected. */
void activated (KPlayerNode*);
};
/**Container action list.
*@author kiriuja
*/
class KPlayerContainerActionList : public KPlayerNodeActionList
{
Q_OBJECT
public:
/** Constructor. */
KPlayerContainerActionList (const TQString& text, const TQString& status,
const TQString& whatsthis, TQObject* parent, const char* name);
/** Destructor. */
virtual ~KPlayerContainerActionList();
/** Populates the node. */
virtual void populateNode (void);
/** Vacates the node. */
virtual void vacateNode (void);
/** Returns whether the given node can be included on the list. */
virtual bool canInclude (KPlayerNode* node) const;
};
/**Devices action list.
*@author kiriuja
*/
class KPlayerDevicesActionList : public KPlayerContainerActionList
{
Q_OBJECT
public:
/** Constructor. */
KPlayerDevicesActionList (const TQString& text, const TQString& status,
const TQString& whatsthis, TQObject* parent, const char* name);
/** Destructor. */
virtual ~KPlayerDevicesActionList();
protected:
/** Creates an action for the given node. */
virtual TDEAction* createAction (KPlayerNode* node);
};
/**Device action menu class.
*@author kiriuja
*/
class KPlayerDeviceActionMenu : public TDEActionMenu
{
Q_OBJECT
public:
/** Constructor. */
KPlayerDeviceActionMenu (KPlayerDeviceNode* node);
/** Destructor. */
virtual ~KPlayerDeviceActionMenu();
/** Updates device actions. */
virtual void setup (void);
/** Returns the node. */
KPlayerDeviceNode* device (void) const
{ return (KPlayerDeviceNode*) parent(); }
protected slots:
/** Plays the selected item. */
void play (void);
/** Adds the given nodes to the list. */
void added (KPlayerContainerNode*, const KPlayerNodeList& nodes, KPlayerNode* after);
/** Removes the given nodes from the list. */
void removed (KPlayerContainerNode*, const KPlayerNodeList& nodes);
/** Updates the given node attributes. */
void updated (KPlayerContainerNode* parent, KPlayerNode* node);
protected:
/** Updates the device action list. */
virtual void updateActions (void);
/** Device actions. */
TQPtrList<TDEAction> m_actions;
/** Indicates whether the device node was populated. */
bool m_populated;
signals:
/** Emitted when the node is selected. */
void activated (KPlayerNode*);
};
/**Disk action menu class.
*@author kiriuja
*/
class KPlayerDiskActionMenu : public KPlayerDeviceActionMenu
{
Q_OBJECT
public:
/** Constructor. */
KPlayerDiskActionMenu (KPlayerDeviceNode* node);
/** Destructor. */
virtual ~KPlayerDiskActionMenu();
/** Updates device actions. */
virtual void setup (void);
/** Returns the node. */
KPlayerDiskNode* device (void) const
{ return (KPlayerDiskNode*) parent(); }
/** Sets the action text. */
virtual void setText (const TQString& text);
protected slots:
/** Loads the disk. */
void loadDisk (void);
/** Plays the disk. */
void playDisk (void);
protected:
/** Updates the device action list. */
virtual void updateActions (void);
/** Load disk action. */
TDEAction* m_load_action;
/** Play disk action. */
TDEAction* m_play_action;
/** Indicates disk being loaded for playing. */
bool m_play_disk;
};
#endif