// // C++ Interface: actionproperty // // Description: // // // Author: Jonas Bähr (C) 2004 // // Copyright: See COPYING file that comes with this distribution // // #ifndef ACTIONPROPERTY_H #define ACTIONPROPERTY_H #include "actionpropertybase.h" class KrAction; class TDEShortcut; /** * Use this widget where ever you need to manipulate a UserAction * @author Jonas Bähr (http://www.jonas-baehr.de) */ class ActionProperty : public ActionPropertyBase { TQ_OBJECT public: ActionProperty( TQWidget *parent=0, const char *name=0, KrAction *action=0 ); ~ActionProperty(); /** * @return the currently displayed action */ KrAction* action() { return _action; }; /** * This inits the widget with the actions properties. * If no action is provided, the last used will be taken! * It also resets the changed() state. * @param action the action which should be displayd */ void updateGUI( KrAction *action = 0 ); /** * This writes the displayed properties back into the action. * If no action is provided, the last used will be taken! * It also resets the changed() state. * @param action the action which should be manipulated */ void updateAction( KrAction *action = 0 ); /** * clears everything */ void clear(); /** * @return true if all properties got valid values */ bool validProperties(); /** * @return true if any property got changed */ bool isModified() { return _modified; }; signals: /** * emited when any actionproperty changed. This signal is only emited when * the _modified attribute changes to true. If there are changes made and * _modified is already true, no signal is emited! */ void changed(); protected slots: void setModified( bool m = true ); /** * executes the AddPlaceholderPopup */ void addPlaceholder(); /** * asks for an existing path */ void addStartpath(); /** * (availability) asks for a new protocol */ void newProtocol(); /** * (availability) changes a protocol of the list */ void editProtocol(); /** * (availability) removes a protocol from the list */ void removeProtocol(); /** * (availability) asks for a new path */ void addPath(); /** * (availability) edits a path of the list */ void editPath(); /** * (availability) removes a path from the list */ void removePath(); /** * (availability) asks for a new mime-type */ void addMime(); /** * (availability) changes a mime-type of the list */ void editMime(); /** * (availability) removes a mime-type from the list */ void removeMime(); /** * (availability) asks for a new file-filter */ void newFile(); /** * (availability) edits a file-filter of the list */ void editFile(); /** * (availability) removes a file-filter from the lsit */ void removeFile(); private: KrAction *_action; bool _modified; private slots: /** * This updates the ShortcutButton * @internal */ void changedShortcut(const TDEShortcut& shortcut); }; #endif