summaryrefslogtreecommitdiffstats
path: root/krusader/ActionMan/useractionlistview.h
diff options
context:
space:
mode:
Diffstat (limited to 'krusader/ActionMan/useractionlistview.h')
-rw-r--r--krusader/ActionMan/useractionlistview.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/krusader/ActionMan/useractionlistview.h b/krusader/ActionMan/useractionlistview.h
new file mode 100644
index 0000000..e0a57f6
--- /dev/null
+++ b/krusader/ActionMan/useractionlistview.h
@@ -0,0 +1,81 @@
+//
+// C++ Interface: useractionlistview
+//
+// Description:
+//
+//
+// Author: Jonas Bähr, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef USERACTIONLISTVIEW_H
+#define USERACTIONLISTVIEW_H
+
+#include <klistview.h>
+
+class KrAction;
+class QString;
+class UserActionListViewItem;
+class QDomDocument;
+
+/**
+ * @author Jonas Bähr
+ */
+class UserActionListView : public KListView {
+public:
+ UserActionListView( QWidget* parent = 0, const char* name = 0 );
+ ~UserActionListView();
+ virtual QSize sizeHint() const;
+
+ void update();
+ void update( KrAction* action );
+ UserActionListViewItem* insertAction( KrAction* action );
+
+ KrAction* currentAction() const;
+ void setCurrentAction( const KrAction* );
+
+ QDomDocument dumpSelectedActions( QDomDocument* mergeDoc = 0 ) const;
+
+ void removeSelectedActions();
+
+ /**
+ * makes the first action in the list current
+ */
+ void setFirstActionCurrent();
+
+ /**
+ * makes @e item current and ensures its visibility
+ */
+ virtual void setCurrentItem( QListViewItem* item );
+
+protected:
+ QListViewItem* findCategoryItem( const QString& category );
+ UserActionListViewItem* findActionItem( const KrAction* action );
+};
+
+
+/**
+ * @author Jonas Bähr
+ */
+class UserActionListViewItem : public KListViewItem {
+public:
+ UserActionListViewItem( QListView* view, KrAction* action );
+ UserActionListViewItem( QListViewItem* item, KrAction* action );
+ ~UserActionListViewItem();
+
+ void setAction( KrAction* action );
+ KrAction* action() const;
+ void update();
+
+ /**
+ * This reimplements qt's compare-function in order to have categories on the top of the list
+ */
+ int compare ( QListViewItem * i, int col, bool ascending ) const;
+
+private:
+ KrAction* _action;
+};
+
+
+#endif //USERACTIONLISTVIEW_H