summaryrefslogtreecommitdiff
path: root/noncore/net/opieirc/ircmisc.cpp
Unidiff
Diffstat (limited to 'noncore/net/opieirc/ircmisc.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/ircmisc.cpp44
1 files changed, 39 insertions, 5 deletions
diff --git a/noncore/net/opieirc/ircmisc.cpp b/noncore/net/opieirc/ircmisc.cpp
index df6f874..9b9bff8 100644
--- a/noncore/net/opieirc/ircmisc.cpp
+++ b/noncore/net/opieirc/ircmisc.cpp
@@ -1,12 +1,15 @@
1#include "ircmisc.h" 1#include "ircmisc.h"
2 2
3/* OPIE */ 3/* OPIE */
4#include <opie2/odebug.h> 4#include <opie2/odebug.h>
5#include <opie2/oconfig.h>
6#include <opie2/okeyconfigmanager.h>
5using namespace Opie::Core; 7using namespace Opie::Core;
6 8
9
7IRCTabBar::IRCTabBar(QWidget *parent, const char *name) : QTabBar(parent, name) { 10IRCTabBar::IRCTabBar(QWidget *parent, const char *name) : QTabBar(parent, name) {
8} 11}
9 12
10int IRCTabBar::insertTab(QTab *tab, int index) { 13int IRCTabBar::insertTab(QTab *tab, int index) {
11 /* FIXME: find some nicer way to do this */ 14 /* FIXME: find some nicer way to do this */
12 QExtTab *ext = new QExtTab(); 15 QExtTab *ext = new QExtTab();
@@ -39,12 +42,41 @@ IRCTabWidget::IRCTabWidget(QWidget *parent, const char *name) : QTabWidget(paren
39 42
40void IRCTabWidget::setTabColor(int index, QColor color) { 43void IRCTabWidget::setTabColor(int index, QColor color) {
41 ((IRCTabBar *)tabBar())->setTabColor(index, color); 44 ((IRCTabBar *)tabBar())->setTabColor(index, color);
42} 45}
43 46
44 47
48
49static OKeyConfigManager* s_manager = 0;
50OKeyConfigManager* IRCHistoryLineEdit::keyConfigInstance() {
51 if ( !s_manager ) {
52 /*
53 * black list with the DeviceButtons as default
54 * because we do not grab the keyboard and they
55 * wouldn't work
56 */
57 OKeyPair::List blackList = OKeyPair::hardwareKeys();
58 blackList.append( OKeyPair::returnKey() );
59 blackList.append( OKeyPair::leftArrowKey() );
60 blackList.append( OKeyPair::upArrowKey() );
61 blackList.append( OKeyPair::downArrowKey() );
62
63 s_manager = new OKeyConfigManager(new OConfig("opieirc-keys"),
64 "keys", blackList,
65 false, 0, "irc_history_line_keyconfigm" );
66 s_manager->addKeyConfig( OKeyConfigItem( tr("Next Tab"), "next_tab", QPixmap(),
67 KeyNextTab, OKeyPair(Qt::Key_N, Qt::ControlButton) ));
68 s_manager->addKeyConfig( OKeyConfigItem( tr("Previous Tab"), "prev_tab", QPixmap(),
69 KeyPrevTab, OKeyPair(Qt::Key_P, Qt::ControlButton) ));
70 s_manager->load();
71 }
72
73 return s_manager;
74}
75
76
45IRCHistoryLineEdit::IRCHistoryLineEdit(QWidget *parent, const char *name) : QLineEdit(parent, name) { 77IRCHistoryLineEdit::IRCHistoryLineEdit(QWidget *parent, const char *name) : QLineEdit(parent, name) {
46 m_index = -1; 78 m_index = -1;
47 installEventFilter(this); 79 installEventFilter(this);
48} 80}
49 81
50void IRCHistoryLineEdit::keyPressEvent(QKeyEvent *event) { 82void IRCHistoryLineEdit::keyPressEvent(QKeyEvent *event) {
@@ -63,21 +95,23 @@ void IRCHistoryLineEdit::keyPressEvent(QKeyEvent *event) {
63 m_index = -1; 95 m_index = -1;
64 setText(""); 96 setText("");
65 } 97 }
66 } else if (key == Key_Return) { 98 } else if (key == Key_Return) {
67 m_history.prepend(text()); 99 m_history.prepend(text());
68 m_index = -1; 100 m_index = -1;
69 } else if (key == Key_N && event->state() == Qt::ControlButton) { 101 }
102
103 switch( keyConfigInstance()->handleKeyEventId( event ) ) {
104 case KeyNextTab:
70 emit nextTab(); 105 emit nextTab();
71 return; 106 return;
72 } else if ( ( key == Key_Y || key == Key_Z ) && event->state() == Qt::ControlButton) { 107 case KeyPrevTab:
73 emit closeTab();
74 return;
75 } else if (key == Key_P && event->state() == Qt::ControlButton) {
76 emit prevTab(); 108 emit prevTab();
77 return; 109 return;
110 default:
111 break;
78 } 112 }
79 113
80 QLineEdit::keyPressEvent(event); 114 QLineEdit::keyPressEvent(event);
81} 115}
82 116
83bool IRCHistoryLineEdit::eventFilter(QObject *object, QEvent *event) { 117bool IRCHistoryLineEdit::eventFilter(QObject *object, QEvent *event) {