summaryrefslogtreecommitdiffstats
path: root/kmouth/phrasebook/phrasetree.h
diff options
context:
space:
mode:
Diffstat (limited to 'kmouth/phrasebook/phrasetree.h')
-rw-r--r--kmouth/phrasebook/phrasetree.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/kmouth/phrasebook/phrasetree.h b/kmouth/phrasebook/phrasetree.h
new file mode 100644
index 0000000..bd0e1f5
--- /dev/null
+++ b/kmouth/phrasebook/phrasetree.h
@@ -0,0 +1,108 @@
+/***************************************************************************
+ phrasetree.h - description
+ -------------------
+ begin : Don Okt 24 2002
+ copyright : (C) 2002 by Gunnar Schmi Dt
+ email : kmouth@schmi-dt.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef PHRASETREE_H
+#define PHRASETREE_H
+
+#include <qpixmap.h>
+#include <kshortcut.h>
+#include <klistview.h>
+
+class PhraseBook;
+class PhraseShortcutRequest;
+
+/**The class PhraseTreeItem is an ListViewItem for either a phrase or a phrase book.
+ *@author Gunnar Schmi Dt
+ */
+
+class PhraseTreeItem : public KListViewItem {
+ friend class PhraseTree;
+private:
+ /** Creates a phrase item within a sub phrase book */
+ PhraseTreeItem (QListView *parent, QListViewItem *after, QString phrase, KShortcut shortcut, QPixmap icon);
+ /** Creates a phrase item at the top level */
+ PhraseTreeItem (QListViewItem *parent, QListViewItem *after, QString phrase, KShortcut shortcut, QPixmap icon);
+ /** Creates a phrase book item within a sub phrase book */
+ PhraseTreeItem (QListView *parent, QListViewItem *after, QString name, QPixmap icon);
+ /** Creates a phrase book item at the top level */
+ PhraseTreeItem (QListViewItem *parent, QListViewItem *after, QString name, QPixmap icon);
+
+public:
+ bool isPhrase();
+ KShortcut cut();
+ void setCut(KShortcut cut);
+
+private:
+ bool isPhraseValue;
+ KShortcut cutValue;
+};
+
+/**
+ * The class PhraseTree represents the ListView of the phrase book edit
+ * dialog. It extends KListView for providing better drag-and-drop support.
+ * @author Gunnar Schmi Dt
+ */
+
+class PhraseTree : public KListView {
+ friend class PhraseTreeItem;
+ Q_OBJECT
+public:
+ PhraseTree (QWidget *parent = 0, const char *name = 0);
+ ~PhraseTree ();
+
+ void keyPressEvent (QKeyEvent *e);
+
+ PhraseTreeItem *insertPhrase (QListViewItem *parent, QListViewItem *after, QString phrase, QString shortcut);
+ PhraseTreeItem *insertBook (QListViewItem *parent, QListViewItem *after, QString name);
+
+ QListViewItem *addBook (QListViewItem *parent, QListViewItem *after, PhraseBook *book);
+ void fillBook (PhraseBook *book, bool respectSelection);
+
+ QDragObject *dragObject ();
+ QDragObject *dragObject (bool isDependent);
+
+ void moveItem (QListViewItem *item, QListViewItem *parent, QListViewItem *above);
+
+ bool hasSelectedItems();
+ void deleteSelectedItems();
+
+protected:
+ bool acceptDrag (QDropEvent* event) const;
+
+private:
+ void _warning (const KKeySequence& cut, QString sAction, QString sTitle);
+ bool isStdAccelPresent (const KShortcut& cut, bool warnUser);
+ bool isGlobalKeyPresent (const KShortcut& cut, bool warnUser);
+ bool isApplicationKeyPresent (const KShortcut& cut, bool warnUser);
+ bool isPhraseKeyPresent (const KShortcut& cut, PhraseTreeItem* cutItem, bool warnUser);
+public:
+ bool isKeyPresent (const KShortcut& cut, PhraseTreeItem* cutItem, bool warnUser);
+
+public slots:
+ void itemExpanded (QListViewItem *item);
+ void itemCollapsed (QListViewItem *item);
+
+signals:
+ void shortcutRequest (PhraseShortcutRequest *request);
+
+private:
+ QPixmap phrasebook_open;
+ QPixmap phrasebook_closed;
+ QPixmap phrase;
+};
+
+#endif