author | zecke <zecke> | 2004-09-06 23:51:20 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-09-06 23:51:20 (UTC) |
commit | e6798d7ec0a3b86e412bd67faad24a737a67aa5f (patch) (unidiff) | |
tree | ff10e927aff440d8dca2e0fe8976aadb3ff011d2 | |
parent | 8f18e8b46dfaaa7e03b9ed1f3faed12da5b30cd5 (diff) | |
download | opie-e6798d7ec0a3b86e412bd67faad24a737a67aa5f.zip opie-e6798d7ec0a3b86e412bd67faad24a737a67aa5f.tar.gz opie-e6798d7ec0a3b86e412bd67faad24a737a67aa5f.tar.bz2 |
Use OKeyConfigWidget/Manager for managing next and prev tab
keyboard shortcuts
-rw-r--r-- | noncore/net/opieirc/ircmisc.cpp | 44 | ||||
-rw-r--r-- | noncore/net/opieirc/ircmisc.h | 14 | ||||
-rw-r--r-- | noncore/net/opieirc/ircsettings.cpp | 20 | ||||
-rw-r--r-- | noncore/net/opieirc/ircsettings.h | 4 | ||||
-rw-r--r-- | noncore/net/opieirc/irctab.cpp | 9 | ||||
-rw-r--r-- | noncore/net/opieirc/mainwindow.cpp | 1 |
6 files changed, 84 insertions, 8 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 | |||
@@ -2,8 +2,11 @@ | |||
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> | ||
5 | using namespace Opie::Core; | 7 | using namespace Opie::Core; |
6 | 8 | ||
9 | |||
7 | IRCTabBar::IRCTabBar(QWidget *parent, const char *name) : QTabBar(parent, name) { | 10 | IRCTabBar::IRCTabBar(QWidget *parent, const char *name) : QTabBar(parent, name) { |
8 | } | 11 | } |
9 | 12 | ||
@@ -42,6 +45,35 @@ void IRCTabWidget::setTabColor(int index, QColor color) { | |||
42 | } | 45 | } |
43 | 46 | ||
44 | 47 | ||
48 | |||
49 | static OKeyConfigManager* s_manager = 0; | ||
50 | OKeyConfigManager* 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 | |||
45 | IRCHistoryLineEdit::IRCHistoryLineEdit(QWidget *parent, const char *name) : QLineEdit(parent, name) { | 77 | IRCHistoryLineEdit::IRCHistoryLineEdit(QWidget *parent, const char *name) : QLineEdit(parent, name) { |
46 | m_index = -1; | 78 | m_index = -1; |
47 | installEventFilter(this); | 79 | installEventFilter(this); |
@@ -66,15 +98,17 @@ void IRCHistoryLineEdit::keyPressEvent(QKeyEvent *event) { | |||
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); |
diff --git a/noncore/net/opieirc/ircmisc.h b/noncore/net/opieirc/ircmisc.h index c42dcbd..37eed28 100644 --- a/noncore/net/opieirc/ircmisc.h +++ b/noncore/net/opieirc/ircmisc.h | |||
@@ -28,6 +28,13 @@ | |||
28 | #include <qcolor.h> | 28 | #include <qcolor.h> |
29 | #include <qarray.h> | 29 | #include <qarray.h> |
30 | 30 | ||
31 | namespace Opie { | ||
32 | namespace Core { | ||
33 | class OKeyConfigManager; | ||
34 | } | ||
35 | } | ||
36 | |||
37 | |||
31 | /* Custom colored QTabWidget */ | 38 | /* Custom colored QTabWidget */ |
32 | 39 | ||
33 | class QExtTab : public QTab { | 40 | class QExtTab : public QTab { |
@@ -59,6 +66,13 @@ protected: | |||
59 | class IRCHistoryLineEdit : public QLineEdit { | 66 | class IRCHistoryLineEdit : public QLineEdit { |
60 | Q_OBJECT | 67 | Q_OBJECT |
61 | public: | 68 | public: |
69 | enum KeyMode { | ||
70 | KeyNextTab, | ||
71 | KeyPrevTab | ||
72 | }; | ||
73 | |||
74 | static Opie::Core::OKeyConfigManager* keyConfigInstance(); | ||
75 | |||
62 | IRCHistoryLineEdit(QWidget *parent = 0, const char *name = 0); | 76 | IRCHistoryLineEdit(QWidget *parent = 0, const char *name = 0); |
63 | virtual bool eventFilter(QObject *object, QEvent *event); | 77 | virtual bool eventFilter(QObject *object, QEvent *event); |
64 | public slots: | 78 | public slots: |
diff --git a/noncore/net/opieirc/ircsettings.cpp b/noncore/net/opieirc/ircsettings.cpp index 13fcc24..1fba030 100644 --- a/noncore/net/opieirc/ircsettings.cpp +++ b/noncore/net/opieirc/ircsettings.cpp | |||
@@ -1,10 +1,12 @@ | |||
1 | 1 | ||
2 | #include "ircsettings.h" | 2 | #include "ircsettings.h" |
3 | #include "irctab.h" | 3 | #include "irctab.h" |
4 | #include "ircmisc.h" | ||
4 | 5 | ||
5 | /* OPIE */ | 6 | /* OPIE */ |
6 | #include <opie2/ocolorbutton.h> | 7 | #include <opie2/ocolorbutton.h> |
7 | #include <opie2/otabwidget.h> | 8 | #include <opie2/otabwidget.h> |
9 | #include <opie2/okeyconfigwidget.h> | ||
8 | #include <qpe/qpeapplication.h> | 10 | #include <qpe/qpeapplication.h> |
9 | 11 | ||
10 | /* QT */ | 12 | /* QT */ |
@@ -78,8 +80,19 @@ IRCSettings::IRCSettings(QWidget* parent, const char* name, bool modal, WFlags) | |||
78 | QWhatsThis::add(m_notification, tr("Text color to be used to display notifications")); | 80 | QWhatsThis::add(m_notification, tr("Text color to be used to display notifications")); |
79 | layout->addWidget(m_notification, 6, 1); | 81 | layout->addWidget(m_notification, 6, 1); |
80 | tw->addTab(view, "opieirc/colors", tr("Colors")); | 82 | tw->addTab(view, "opieirc/colors", tr("Colors")); |
81 | tw->setCurrentTab( genwidget ); | ||
82 | 83 | ||
84 | |||
85 | /* | ||
86 | * IRC EditLine KeyConfiguration | ||
87 | */ | ||
88 | m_keyConf = new Opie::Ui::OKeyConfigWidget(tw, "KEyConfig GUI" ); | ||
89 | m_keyConf->setChangeMode( OKeyConfigWidget::Queue ); | ||
90 | m_keyConf->insert( tr("Keyboard Shortcuts"), | ||
91 | IRCHistoryLineEdit::keyConfigInstance() ); | ||
92 | m_keyConf->load(); | ||
93 | tw->addTab(m_keyConf, "SettingsIcon", tr("Keyboard Shortcuts") ); | ||
94 | |||
95 | tw->setCurrentTab( genwidget ); | ||
83 | QPEApplication::showDialog( this ); | 96 | QPEApplication::showDialog( this ); |
84 | } | 97 | } |
85 | 98 | ||
@@ -93,6 +106,9 @@ void IRCSettings::accept() | |||
93 | IRCTab::m_serverColor = m_server->color().name(); | 106 | IRCTab::m_serverColor = m_server->color().name(); |
94 | IRCTab::m_notificationColor = m_notification->color().name(); | 107 | IRCTab::m_notificationColor = m_notification->color().name(); |
95 | IRCTab::m_maxLines = m_lines->text().toInt(); | 108 | IRCTab::m_maxLines = m_lines->text().toInt(); |
109 | m_keyConf->save(); | ||
110 | |||
111 | |||
96 | m_config->writeEntry("BackgroundColor", IRCTab::m_backgroundColor); | 112 | m_config->writeEntry("BackgroundColor", IRCTab::m_backgroundColor); |
97 | m_config->writeEntry("TextColor", IRCTab::m_textColor); | 113 | m_config->writeEntry("TextColor", IRCTab::m_textColor); |
98 | m_config->writeEntry("ErrorColor", IRCTab::m_errorColor); | 114 | m_config->writeEntry("ErrorColor", IRCTab::m_errorColor); |
@@ -101,6 +117,8 @@ void IRCSettings::accept() | |||
101 | m_config->writeEntry("ServerColor", IRCTab::m_serverColor); | 117 | m_config->writeEntry("ServerColor", IRCTab::m_serverColor); |
102 | m_config->writeEntry("NotificationColor", IRCTab::m_notificationColor); | 118 | m_config->writeEntry("NotificationColor", IRCTab::m_notificationColor); |
103 | m_config->writeEntry("Lines", m_lines->text()); | 119 | m_config->writeEntry("Lines", m_lines->text()); |
120 | IRCHistoryLineEdit::keyConfigInstance()->save(); | ||
121 | |||
104 | QDialog::accept(); | 122 | QDialog::accept(); |
105 | } | 123 | } |
106 | 124 | ||
diff --git a/noncore/net/opieirc/ircsettings.h b/noncore/net/opieirc/ircsettings.h index 56e667b..a032aff 100644 --- a/noncore/net/opieirc/ircsettings.h +++ b/noncore/net/opieirc/ircsettings.h | |||
@@ -27,6 +27,9 @@ | |||
27 | 27 | ||
28 | namespace Opie { | 28 | namespace Opie { |
29 | class OColorButton; | 29 | class OColorButton; |
30 | namespace Ui { | ||
31 | class OKeyConfigWidget; | ||
32 | } | ||
30 | } | 33 | } |
31 | 34 | ||
32 | class IRCSettings : public QDialog { | 35 | class IRCSettings : public QDialog { |
@@ -45,6 +48,7 @@ protected: | |||
45 | Opie::OColorButton *m_server; | 48 | Opie::OColorButton *m_server; |
46 | Opie::OColorButton *m_other; | 49 | Opie::OColorButton *m_other; |
47 | Opie::OColorButton *m_notification; | 50 | Opie::OColorButton *m_notification; |
51 | Opie::Ui::OKeyConfigWidget *m_keyConf; | ||
48 | QLineEdit *m_lines; | 52 | QLineEdit *m_lines; |
49 | }; | 53 | }; |
50 | 54 | ||
diff --git a/noncore/net/opieirc/irctab.cpp b/noncore/net/opieirc/irctab.cpp index 8e1dc16..2b3ecd4 100644 --- a/noncore/net/opieirc/irctab.cpp +++ b/noncore/net/opieirc/irctab.cpp | |||
@@ -1,8 +1,13 @@ | |||
1 | #include "irctab.h" | ||
2 | #include "mainwindow.h" | ||
3 | |||
4 | #include <opie2/okeyconfigmanager.h> | ||
1 | #include <qpe/resource.h> | 5 | #include <qpe/resource.h> |
6 | |||
7 | |||
2 | #include <qpushbutton.h> | 8 | #include <qpushbutton.h> |
3 | #include <qwhatsthis.h> | 9 | #include <qwhatsthis.h> |
4 | #include "irctab.h" | 10 | |
5 | #include "mainwindow.h" | ||
6 | 11 | ||
7 | QString IRCTab::m_errorColor; | 12 | QString IRCTab::m_errorColor; |
8 | QString IRCTab::m_serverColor; | 13 | QString IRCTab::m_serverColor; |
diff --git a/noncore/net/opieirc/mainwindow.cpp b/noncore/net/opieirc/mainwindow.cpp index 1143213..2e674c5 100644 --- a/noncore/net/opieirc/mainwindow.cpp +++ b/noncore/net/opieirc/mainwindow.cpp | |||
@@ -76,6 +76,7 @@ void MainWindow::changeEvent(IRCTab *tab) { | |||
76 | void MainWindow::killTab(IRCTab *tab) { | 76 | void MainWindow::killTab(IRCTab *tab) { |
77 | m_tabWidget->removePage(tab); | 77 | m_tabWidget->removePage(tab); |
78 | m_tabs.remove(tab); | 78 | m_tabs.remove(tab); |
79 | |||
79 | /* there might be nicer ways to do this .. */ | 80 | /* there might be nicer ways to do this .. */ |
80 | delete tab; | 81 | delete tab; |
81 | } | 82 | } |