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.
206 lines
5.3 KiB
206 lines
5.3 KiB
15 years ago
|
/****************************************************************************
|
||
|
|
||
|
KHotKeys
|
||
|
|
||
|
Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
|
||
|
|
||
|
Distributed under the terms of the GNU General Public License version 2.
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
#ifndef _ACTION_LIST_WIDGET_H_
|
||
|
#define _ACTION_LIST_WIDGET_H_
|
||
|
|
||
|
#include <qlistview.h>
|
||
|
|
||
|
#include <actions.h>
|
||
|
#include <kdialogbase.h>
|
||
|
|
||
|
#include <action_list_widget_ui.h>
|
||
|
|
||
|
#include "activate_window_widget.h"
|
||
|
|
||
|
namespace KHotKeys
|
||
|
{
|
||
|
|
||
|
class Action_data;
|
||
|
class Command_url_widget;
|
||
|
class Menuentry_widget;
|
||
|
class Dcop_widget;
|
||
|
class Keyboard_input_widget;
|
||
|
|
||
|
class Action_list_item;
|
||
|
|
||
|
class Action_list_widget
|
||
|
: public Action_list_widget_ui
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
Action_list_widget( QWidget* parent_P = NULL, const char* name_P = NULL );
|
||
|
virtual ~Action_list_widget();
|
||
|
void set_data( const Action_list* data_P );
|
||
|
Action_list* get_data( Action_data* data_P ) const;
|
||
|
public slots:
|
||
|
void clear_data();
|
||
|
protected:
|
||
|
Action_list_item* create_listview_item( Action* action_P, QListView* parent1_P,
|
||
|
QListViewItem* parent2_P, QListViewItem* after_P, bool copy_P );
|
||
|
void edit_listview_item( Action_list_item* item_P );
|
||
|
enum type_t { TYPE_COMMAND_URL_ACTION, TYPE_MENUENTRY_ACTION, TYPE_DCOP_ACTION,
|
||
|
TYPE_KEYBOARD_INPUT_ACTION, TYPE_ACTIVATE_WINDOW_ACTION };
|
||
|
protected slots:
|
||
|
void new_selected( int type_P );
|
||
|
virtual void copy_pressed();
|
||
|
virtual void delete_pressed();
|
||
|
virtual void modify_pressed();
|
||
|
virtual void current_changed( QListViewItem* item_P );
|
||
|
protected:
|
||
|
Action_list_item* selected_item;
|
||
|
};
|
||
|
|
||
|
typedef Action_list_widget Action_list_tab;
|
||
|
|
||
|
class Action_list_item
|
||
|
: public QListViewItem
|
||
|
{
|
||
|
public:
|
||
|
Action_list_item( QListView* parent_P, Action* action_P );
|
||
|
Action_list_item( QListViewItem* parent_P, Action* action_P );
|
||
|
Action_list_item( QListView* parent_P, QListViewItem* after_P, Action* action_P );
|
||
|
Action_list_item( QListViewItem* parent_P, QListViewItem* after_P, Action* action_P );
|
||
|
virtual ~Action_list_item();
|
||
|
virtual QString text( int column_P ) const;
|
||
|
Action* action() const;
|
||
|
void set_action( Action* action_P );
|
||
|
protected:
|
||
|
Action* _action; // owns it
|
||
|
};
|
||
|
|
||
|
class Action_dialog
|
||
|
{
|
||
|
public:
|
||
|
virtual Action* edit_action() = 0;
|
||
|
virtual ~Action_dialog();
|
||
|
};
|
||
|
|
||
|
class Command_url_action_dialog
|
||
|
: public KDialogBase, public Action_dialog
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
Command_url_action_dialog( Command_url_action* action_P );
|
||
|
virtual Action* edit_action();
|
||
|
protected:
|
||
|
virtual void accept();
|
||
|
Command_url_widget* widget;
|
||
|
Command_url_action* action;
|
||
|
};
|
||
|
|
||
|
class Menuentry_action_dialog
|
||
|
: public KDialogBase, public Action_dialog
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
Menuentry_action_dialog( Menuentry_action* action_P );
|
||
|
virtual Action* edit_action();
|
||
|
protected:
|
||
|
virtual void accept();
|
||
|
Menuentry_widget* widget;
|
||
|
Menuentry_action* action;
|
||
|
};
|
||
|
|
||
|
class Dcop_action_dialog
|
||
|
: public KDialogBase, public Action_dialog
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
Dcop_action_dialog( Dcop_action* action_P );
|
||
|
virtual Action* edit_action();
|
||
|
protected:
|
||
|
virtual void accept();
|
||
|
Dcop_widget* widget;
|
||
|
Dcop_action* action;
|
||
|
};
|
||
|
|
||
|
class Keyboard_input_action_dialog
|
||
|
: public KDialogBase, public Action_dialog
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
Keyboard_input_action_dialog( Keyboard_input_action* action_P );
|
||
|
virtual Action* edit_action();
|
||
|
protected:
|
||
|
virtual void accept();
|
||
|
Keyboard_input_widget* widget;
|
||
|
Keyboard_input_action* action;
|
||
|
};
|
||
|
|
||
|
class Activate_window_action_dialog
|
||
|
: public KDialogBase, public Action_dialog
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
Activate_window_action_dialog( Activate_window_action* action_P );
|
||
|
virtual Action* edit_action();
|
||
|
protected:
|
||
|
virtual void accept();
|
||
|
Activate_window_widget* widget;
|
||
|
Activate_window_action* action;
|
||
|
};
|
||
|
|
||
|
//***************************************************************************
|
||
|
// Inline
|
||
|
//***************************************************************************
|
||
|
|
||
|
// Action_list_item
|
||
|
|
||
|
inline
|
||
|
Action_list_item::Action_list_item( QListView* parent_P, Action* action_P )
|
||
|
: QListViewItem( parent_P ), _action( action_P )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
inline
|
||
|
Action_list_item::Action_list_item( QListViewItem* parent_P, Action* action_P )
|
||
|
: QListViewItem( parent_P ), _action( action_P )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
inline
|
||
|
Action_list_item::Action_list_item( QListView* parent_P, QListViewItem* after_P,
|
||
|
Action* action_P )
|
||
|
: QListViewItem( parent_P, after_P ), _action( action_P )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
inline
|
||
|
Action_list_item::Action_list_item( QListViewItem* parent_P, QListViewItem* after_P,
|
||
|
Action* action_P )
|
||
|
: QListViewItem( parent_P, after_P ), _action( action_P )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
inline
|
||
|
Action* Action_list_item::action() const
|
||
|
{
|
||
|
return _action;
|
||
|
}
|
||
|
|
||
|
inline
|
||
|
void Action_list_item::set_action( Action* action_P )
|
||
|
{
|
||
|
delete _action;
|
||
|
_action = action_P;
|
||
|
}
|
||
|
|
||
|
// Action_dialog
|
||
|
|
||
|
inline
|
||
|
Action_dialog::~Action_dialog()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
} // namespace KHotKeys
|
||
|
|
||
|
#endif
|