summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opieirc/ircchanneltab.cpp17
-rw-r--r--noncore/net/opieirc/ircchanneltab.h4
-rw-r--r--noncore/net/opieirc/ircmessageparser.cpp2
-rw-r--r--noncore/net/opieirc/ircmisc.cpp53
-rw-r--r--noncore/net/opieirc/ircmisc.h27
-rw-r--r--noncore/net/opieirc/ircquerytab.cpp15
-rw-r--r--noncore/net/opieirc/ircquerytab.h6
-rw-r--r--noncore/net/opieirc/ircservertab.cpp15
-rw-r--r--noncore/net/opieirc/ircservertab.h4
-rw-r--r--noncore/net/opieirc/ircsettings.cpp58
-rw-r--r--noncore/net/opieirc/ircsettings.h2
-rw-r--r--noncore/net/opieirc/irctab.cpp2
-rw-r--r--noncore/net/opieirc/irctab.h3
-rw-r--r--noncore/net/opieirc/ircversion.h2
-rw-r--r--noncore/net/opieirc/mainwindow.cpp5
-rw-r--r--noncore/net/opieirc/opie-irc.control3
16 files changed, 169 insertions, 49 deletions
diff --git a/noncore/net/opieirc/ircchanneltab.cpp b/noncore/net/opieirc/ircchanneltab.cpp
index ddd6cf1..f19e019 100644
--- a/noncore/net/opieirc/ircchanneltab.cpp
+++ b/noncore/net/opieirc/ircchanneltab.cpp
@@ -1,6 +1,7 @@
1#include <qpe/qpeapplication.h> 1#include <qpe/qpeapplication.h>
2#include <qpe/resource.h> 2#include <qpe/resource.h>
3#include <qcursor.h> 3#include <qcursor.h>
4#include <stdio.h>
4#include <qhbox.h> 5#include <qhbox.h>
5#include "ircchanneltab.h" 6#include "ircchanneltab.h"
6#include "ircservertab.h" 7#include "ircservertab.h"
@@ -22,11 +23,13 @@ IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainW
22 m_list = new IRCChannelList(m_channel, hbox); 23 m_list = new IRCChannelList(m_channel, hbox);
23 m_list->update(); 24 m_list->update();
24 m_list->setMaximumWidth(LISTWIDTH); 25 m_list->setMaximumWidth(LISTWIDTH);
25 m_field = new QLineEdit(this); 26 m_field = new IRCHistoryLineEdit(this);
26 m_popup = new QPopupMenu(m_list); 27 m_popup = new QPopupMenu(m_list);
28 m_lines = 0;
27 /* Required so that embedded-style "right" clicks work */ 29 /* Required so that embedded-style "right" clicks work */
28 QPEApplication::setStylusOperation(m_list->viewport(), QPEApplication::RightOnHold); 30 QPEApplication::setStylusOperation(m_list->viewport(), QPEApplication::RightOnHold);
29 connect(m_list, SIGNAL(mouseButtonPressed(int, QListBoxItem *, const QPoint&)), this, SLOT(mouseButtonPressed(int, QListBoxItem *, const QPoint &))); 31 connect(m_list, SIGNAL(mouseButtonPressed(int, QListBoxItem *, const QPoint&)), this, SLOT(mouseButtonPressed(int, QListBoxItem *, const QPoint &)));
32
30 /* Construct the popup menu */ 33 /* Construct the popup menu */
31 QPopupMenu *ctcpMenu = new QPopupMenu(m_list); 34 QPopupMenu *ctcpMenu = new QPopupMenu(m_list);
32 m_popup->insertItem(Resource::loadPixmap("opieirc/ctcp"), tr("CTCP"), ctcpMenu); 35 m_popup->insertItem(Resource::loadPixmap("opieirc/ctcp"), tr("CTCP"), ctcpMenu);
@@ -45,7 +48,16 @@ IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainW
45 48
46void IRCChannelTab::appendText(QString text) { 49void IRCChannelTab::appendText(QString text) {
47 /* not using append because it creates layout problems */ 50 /* not using append because it creates layout problems */
48 m_textview->setText(m_textview->text() + text); 51 QString txt = m_textview->text() + text + "\n";
52 if (m_maxLines > 0 && m_lines >= m_maxLines) {
53 int firstBreak = txt.find('\n');
54 if (firstBreak != -1) {
55 txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1));
56 }
57 } else {
58 m_lines++;
59 }
60 m_textview->setText(txt);
49 m_textview->ensureVisible(0, m_textview->contentsHeight()); 61 m_textview->ensureVisible(0, m_textview->contentsHeight());
50 emit changed(this); 62 emit changed(this);
51} 63}
@@ -76,6 +88,7 @@ void IRCChannelTab::processCommand() {
76 88
77void IRCChannelTab::settingsChanged() { 89void IRCChannelTab::settingsChanged() {
78 m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); 90 m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>");
91 m_lines = 0;
79} 92}
80 93
81void IRCChannelTab::toggleList() { 94void IRCChannelTab::toggleList() {
diff --git a/noncore/net/opieirc/ircchanneltab.h b/noncore/net/opieirc/ircchanneltab.h
index 971614b..a03ee3e 100644
--- a/noncore/net/opieirc/ircchanneltab.h
+++ b/noncore/net/opieirc/ircchanneltab.h
@@ -25,6 +25,7 @@
25#include <qpushbutton.h> 25#include <qpushbutton.h>
26#include "irctab.h" 26#include "irctab.h"
27#include "ircsession.h" 27#include "ircsession.h"
28#include "ircmisc.h"
28#include "mainwindow.h" 29#include "mainwindow.h"
29#include "ircchannellist.h" 30#include "ircchannellist.h"
30 31
@@ -62,9 +63,10 @@ protected:
62 QPushButton *m_listButton; 63 QPushButton *m_listButton;
63 MainWindow *m_mainWindow; 64 MainWindow *m_mainWindow;
64 QTextView *m_textview; 65 QTextView *m_textview;
65 QLineEdit *m_field; 66 IRCHistoryLineEdit *m_field;
66 QPopupMenu *m_popup; 67 QPopupMenu *m_popup;
67 bool m_listVisible; 68 bool m_listVisible;
69 int m_lines;
68}; 70};
69 71
70#endif /* __IRCCHANNELTAB_H */ 72#endif /* __IRCCHANNELTAB_H */
diff --git a/noncore/net/opieirc/ircmessageparser.cpp b/noncore/net/opieirc/ircmessageparser.cpp
index a95c64e..e8d3b1a 100644
--- a/noncore/net/opieirc/ircmessageparser.cpp
+++ b/noncore/net/opieirc/ircmessageparser.cpp
@@ -517,5 +517,5 @@ void IRCMessageParser::parseNumericalTopic(IRCMessage *message) {
517 } 517 }
518} 518}
519 519
520void IRCMessageParser::parseNumericalTopicWhoTime(IRCMessage *message) { 520void IRCMessageParser::parseNumericalTopicWhoTime(IRCMessage *) {
521} 521}
diff --git a/noncore/net/opieirc/ircmisc.cpp b/noncore/net/opieirc/ircmisc.cpp
index dd7292c..2e7f316 100644
--- a/noncore/net/opieirc/ircmisc.cpp
+++ b/noncore/net/opieirc/ircmisc.cpp
@@ -30,21 +30,24 @@ QColor IRCFramedColorLabel::color() {
30 return m_label->color(); 30 return m_label->color();
31} 31}
32 32
33
33IRCTabBar::IRCTabBar(QWidget *parent, const char *name) : QTabBar(parent, name) { 34IRCTabBar::IRCTabBar(QWidget *parent, const char *name) : QTabBar(parent, name) {
34} 35}
35 36
36int IRCTabBar::insertTab(QTab *tab, int index = -1) { 37int IRCTabBar::insertTab(QTab *tab, int index = -1) {
37 if (m_colors.size() == (unsigned int)count()) 38 /* FIXME: find some nicer way to do this */
38 m_colors.resize(m_colors.size() * 2 + 1); 39 QExtTab *ext = new QExtTab();
39 if (index == -1) 40 ext->color = black;
40 m_colors.insert(count(), &black); 41 ext->label = tab->text();
41 else 42 ext->r = tab->rect();
42 m_colors.insert(index, &black); 43 ext->enabled = tab->isEnabled();
43 return QTabBar::insertTab(tab, index); 44 ext->iconset = tab->iconSet();
45 delete tab;
46 return QTabBar::insertTab(ext, index);
44} 47}
45 48
46void IRCTabBar::setTabColor(int index, const QColor *color) { 49void IRCTabBar::setTabColor(int index, QColor color) {
47 m_colors.insert(index, color); 50 ((QExtTab *)tab(index))->color = color;
48 update(); 51 update();
49} 52}
50 53
@@ -53,7 +56,7 @@ void IRCTabBar::paintLabel(QPainter* p, const QRect& br, QTab* t, bool focus) co
53 QTabBar::paintLabel(p, br, t, focus); 56 QTabBar::paintLabel(p, br, t, focus);
54 if (t->id == currentTab()) 57 if (t->id == currentTab())
55 r.setBottom(r.bottom() - style().defaultFrameWidth()); 58 r.setBottom(r.bottom() - style().defaultFrameWidth());
56 p->setPen(*m_colors.at(t->id)); 59 p->setPen(((QExtTab *)t)->color);
57 p->drawText(r, AlignCenter | ShowPrefix, t->label); 60 p->drawText(r, AlignCenter | ShowPrefix, t->label);
58} 61}
59 62
@@ -61,6 +64,34 @@ IRCTabWidget::IRCTabWidget(QWidget *parent, const char *name) : QTabWidget(paren
61 setTabBar(new IRCTabBar(this, "tab control")); 64 setTabBar(new IRCTabBar(this, "tab control"));
62} 65}
63 66
64void IRCTabWidget::setTabColor(int index, const QColor *color) { 67void IRCTabWidget::setTabColor(int index, QColor color) {
65 ((IRCTabBar *)tabBar())->setTabColor(index, color); 68 ((IRCTabBar *)tabBar())->setTabColor(index, color);
66} 69}
70
71
72IRCHistoryLineEdit::IRCHistoryLineEdit(QWidget *parent, const char *name) : QLineEdit(parent, name) {
73 m_index = -1;
74}
75
76void IRCHistoryLineEdit::keyPressEvent(QKeyEvent *event) {
77 int key = event->key();
78 if (key == Key_Up) {
79 if (m_history.count() > 0 && m_index < (signed int)m_history.count()-1) {
80 m_index++;
81 setText(m_history[m_index]);
82 }
83 } else if (key == Key_Down) {
84 if (m_history.count() > 0 && m_index > 0) {
85 m_index--;
86 setText(m_history[m_index]);
87 }
88 if (m_index == 0) {
89 m_index = -1;
90 setText("");
91 }
92 } else if (key == Key_Return) {
93 m_history.prepend(text());
94 m_index = -1;
95 }
96 QLineEdit::keyPressEvent(event);
97}
diff --git a/noncore/net/opieirc/ircmisc.h b/noncore/net/opieirc/ircmisc.h
index 4df6ce0..7151e6b 100644
--- a/noncore/net/opieirc/ircmisc.h
+++ b/noncore/net/opieirc/ircmisc.h
@@ -22,10 +22,11 @@
22#define __IRCMISC_H 22#define __IRCMISC_H
23 23
24#include <qtabwidget.h> 24#include <qtabwidget.h>
25#include <qlineedit.h>
25#include <qtabbar.h> 26#include <qtabbar.h>
26#include <qlabel.h> 27#include <qlabel.h>
27#include <qcolor.h> 28#include <qcolor.h>
28#include <qvector.h> 29#include <qarray.h>
29 30
30/* IRCFramedColorLabel is used to display a color */ 31/* IRCFramedColorLabel is used to display a color */
31 32
@@ -50,23 +51,41 @@ protected:
50 51
51/* Custom colored QTabWidget */ 52/* Custom colored QTabWidget */
52 53
54class QExtTab : public QTab {
55public:
56 QColor color;
57};
58
53class IRCTabWidget : public QTabWidget { 59class IRCTabWidget : public QTabWidget {
54 Q_OBJECT 60 Q_OBJECT
55public: 61public:
56 IRCTabWidget(QWidget *parent = 0, const char *name = 0); 62 IRCTabWidget(QWidget *parent = 0, const char *name = 0);
57 void setTabColor(int index, const QColor *color); 63 void setTabColor(int index, QColor color);
58}; 64};
59 65
60class IRCTabBar : public QTabBar { 66class IRCTabBar : public QTabBar {
61 Q_OBJECT 67 Q_OBJECT
62public: 68public:
63 IRCTabBar(QWidget *parent = 0, const char *name = 0); 69 IRCTabBar(QWidget *parent = 0, const char *name = 0);
64 void setTabColor(int index, const QColor *color); 70 void setTabColor(int index, QColor color);
65protected: 71protected:
66 void paintLabel(QPainter*, const QRect&, QTab*, bool) const; 72 void paintLabel(QPainter*, const QRect&, QTab*, bool) const;
67 int insertTab(QTab *, int index = -1); 73 int insertTab(QTab *, int index = -1);
68protected: 74protected:
69 QVector<QColor> m_colors; 75 QArray<QColor> m_colors;
76};
77
78/* A QLineEdit with history functionality */
79
80class IRCHistoryLineEdit : public QLineEdit {
81 Q_OBJECT
82public:
83 IRCHistoryLineEdit(QWidget *parent = 0, const char *name = 0);
84protected:
85 void keyPressEvent(QKeyEvent *);
86protected:
87 QStringList m_history;
88 int m_index;
70}; 89};
71 90
72#endif /* __IRCMISC_H */ 91#endif /* __IRCMISC_H */
diff --git a/noncore/net/opieirc/ircquerytab.cpp b/noncore/net/opieirc/ircquerytab.cpp
index b946174..869e4f7 100644
--- a/noncore/net/opieirc/ircquerytab.cpp
+++ b/noncore/net/opieirc/ircquerytab.cpp
@@ -5,6 +5,7 @@
5IRCQueryTab::IRCQueryTab(IRCPerson *person, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { 5IRCQueryTab::IRCQueryTab(IRCPerson *person, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) {
6 m_mainWindow = mainWindow; 6 m_mainWindow = mainWindow;
7 m_parentTab = parentTab; 7 m_parentTab = parentTab;
8 m_lines = 0;
8 m_person = new IRCPerson(*person); /* We need this (the person might sign off and the original IRCPerson gets deleted) */ 9 m_person = new IRCPerson(*person); /* We need this (the person might sign off and the original IRCPerson gets deleted) */
9 m_description->setText(tr("Talking to ") + " <b>" + person->nick() + "</b>"); 10 m_description->setText(tr("Talking to ") + " <b>" + person->nick() + "</b>");
10 QHBox *hbox = new QHBox(this); 11 QHBox *hbox = new QHBox(this);
@@ -12,7 +13,7 @@ IRCQueryTab::IRCQueryTab(IRCPerson *person, IRCServerTab *parentTab, MainWindow
12 m_textview->setHScrollBarMode(QScrollView::AlwaysOff); 13 m_textview->setHScrollBarMode(QScrollView::AlwaysOff);
13 m_textview->setVScrollBarMode(QScrollView::AlwaysOn); 14 m_textview->setVScrollBarMode(QScrollView::AlwaysOn);
14 m_textview->setTextFormat(RichText); 15 m_textview->setTextFormat(RichText);
15 m_field = new QLineEdit(this); 16 m_field = new IRCHistoryLineEdit(this);
16 m_layout->add(hbox); 17 m_layout->add(hbox);
17 hbox->show(); 18 hbox->show();
18 m_layout->add(m_field); 19 m_layout->add(m_field);
@@ -23,7 +24,16 @@ IRCQueryTab::IRCQueryTab(IRCPerson *person, IRCServerTab *parentTab, MainWindow
23 24
24void IRCQueryTab::appendText(QString text) { 25void IRCQueryTab::appendText(QString text) {
25 /* not using append because it creates layout problems */ 26 /* not using append because it creates layout problems */
26 m_textview->setText(m_textview->text() + text); 27 QString txt = m_textview->text() + text + "\n";
28 if (m_maxLines > 0 && m_lines >= m_maxLines) {
29 int firstBreak = txt.find('\n');
30 if (firstBreak != -1) {
31 txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1));
32 }
33 } else {
34 m_lines++;
35 }
36 m_textview->setText(txt);
27 m_textview->ensureVisible(0, m_textview->contentsHeight()); 37 m_textview->ensureVisible(0, m_textview->contentsHeight());
28 emit changed(this); 38 emit changed(this);
29} 39}
@@ -63,6 +73,7 @@ void IRCQueryTab::display(IRCOutput output) {
63 73
64void IRCQueryTab::settingsChanged() { 74void IRCQueryTab::settingsChanged() {
65 m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); 75 m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>");
76 m_lines = 0;
66} 77}
67 78
68QString IRCQueryTab::title() { 79QString IRCQueryTab::title() {
diff --git a/noncore/net/opieirc/ircquerytab.h b/noncore/net/opieirc/ircquerytab.h
index 07fa57f..f9cc8e1 100644
--- a/noncore/net/opieirc/ircquerytab.h
+++ b/noncore/net/opieirc/ircquerytab.h
@@ -21,8 +21,9 @@
21#ifndef __IRCQUERYTAB_H 21#ifndef __IRCQUERYTAB_H
22#define __IRCQUERYTAB_H 22#define __IRCQUERYTAB_H
23 23
24#include "ircsession.h"
25#include "mainwindow.h" 24#include "mainwindow.h"
25#include "ircsession.h"
26#include "ircmisc.h"
26 27
27class IRCServerTab; 28class IRCServerTab;
28class IRCQueryTab : public IRCTab { 29class IRCQueryTab : public IRCTab {
@@ -46,7 +47,8 @@ protected:
46 IRCServerTab *m_parentTab; 47 IRCServerTab *m_parentTab;
47 IRCPerson *m_person; 48 IRCPerson *m_person;
48 QTextView *m_textview; 49 QTextView *m_textview;
49 QLineEdit *m_field; 50 IRCHistoryLineEdit *m_field;
51 int m_lines;
50}; 52};
51 53
52#endif /* __IRCQUERYTAB_H */ 54#endif /* __IRCQUERYTAB_H */
diff --git a/noncore/net/opieirc/ircservertab.cpp b/noncore/net/opieirc/ircservertab.cpp
index 4ed5364..5d1e290 100644
--- a/noncore/net/opieirc/ircservertab.cpp
+++ b/noncore/net/opieirc/ircservertab.cpp
@@ -7,13 +7,14 @@ IRCServerTab::IRCServerTab(IRCServer server, MainWindow *mainWindow, QWidget *pa
7 m_session = new IRCSession(&m_server); 7 m_session = new IRCSession(&m_server);
8 m_mainWindow = mainWindow; 8 m_mainWindow = mainWindow;
9 m_close = FALSE; 9 m_close = FALSE;
10 m_lines = 0;
10 m_description->setText(tr("Connection to")+" <b>" + server.hostname() + ":" + QString::number(server.port()) + "</b>"); 11 m_description->setText(tr("Connection to")+" <b>" + server.hostname() + ":" + QString::number(server.port()) + "</b>");
11 m_textview = new QTextView(this); 12 m_textview = new QTextView(this);
12 m_textview->setHScrollBarMode(QScrollView::AlwaysOff); 13 m_textview->setHScrollBarMode(QScrollView::AlwaysOff);
13 m_textview->setVScrollBarMode(QScrollView::AlwaysOn); 14 m_textview->setVScrollBarMode(QScrollView::AlwaysOn);
14 m_textview->setTextFormat(RichText); 15 m_textview->setTextFormat(RichText);
15 m_layout->add(m_textview); 16 m_layout->add(m_textview);
16 m_field = new QLineEdit(this); 17 m_field = new IRCHistoryLineEdit(this);
17 m_layout->add(m_field); 18 m_layout->add(m_field);
18 connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); 19 connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand()));
19 m_field->setFocus(); 20 m_field->setFocus();
@@ -23,7 +24,16 @@ IRCServerTab::IRCServerTab(IRCServer server, MainWindow *mainWindow, QWidget *pa
23 24
24void IRCServerTab::appendText(QString text) { 25void IRCServerTab::appendText(QString text) {
25 /* not using append because it creates layout problems */ 26 /* not using append because it creates layout problems */
26 m_textview->setText(m_textview->text() + text); 27 QString txt = m_textview->text() + text + "\n";
28 if (m_maxLines > 0 && m_lines >= m_maxLines) {
29 int firstBreak = txt.find('\n');
30 if (firstBreak != -1) {
31 txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1));
32 }
33 } else {
34 m_lines++;
35 }
36 m_textview->setText(txt);
27 m_textview->ensureVisible(0, m_textview->contentsHeight()); 37 m_textview->ensureVisible(0, m_textview->contentsHeight());
28 emit changed(this); 38 emit changed(this);
29} 39}
@@ -58,6 +68,7 @@ IRCServer *IRCServerTab::server() {
58 68
59void IRCServerTab::settingsChanged() { 69void IRCServerTab::settingsChanged() {
60 m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); 70 m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>");
71 m_lines = 0;
61} 72}
62 73
63void IRCServerTab::executeCommand(IRCTab *tab, QString line) { 74void IRCServerTab::executeCommand(IRCTab *tab, QString line) {
diff --git a/noncore/net/opieirc/ircservertab.h b/noncore/net/opieirc/ircservertab.h
index 698689a..8d24cba 100644
--- a/noncore/net/opieirc/ircservertab.h
+++ b/noncore/net/opieirc/ircservertab.h
@@ -26,6 +26,7 @@
26#include "mainwindow.h" 26#include "mainwindow.h"
27#include "ircchanneltab.h" 27#include "ircchanneltab.h"
28#include "ircquerytab.h" 28#include "ircquerytab.h"
29#include "ircmisc.h"
29 30
30class IRCServerTab : public IRCTab { 31class IRCServerTab : public IRCTab {
31 Q_OBJECT 32 Q_OBJECT
@@ -58,12 +59,13 @@ public slots:
58protected slots: 59protected slots:
59 void display(IRCOutput output); 60 void display(IRCOutput output);
60protected: 61protected:
62 int m_lines;
61 bool m_close; 63 bool m_close;
62 IRCServer m_server; 64 IRCServer m_server;
63 IRCSession *m_session; 65 IRCSession *m_session;
64 MainWindow *m_mainWindow; 66 MainWindow *m_mainWindow;
65 QTextView *m_textview; 67 QTextView *m_textview;
66 QLineEdit *m_field; 68 IRCHistoryLineEdit *m_field;
67 /* Channel tabs associated with this server tab */ 69 /* Channel tabs associated with this server tab */
68 QList<IRCChannelTab> m_channelTabs; 70 QList<IRCChannelTab> m_channelTabs;
69 /* Query tabs associated with this server tab */ 71 /* Query tabs associated with this server tab */
diff --git a/noncore/net/opieirc/ircsettings.cpp b/noncore/net/opieirc/ircsettings.cpp
index d1fef67..1903e87 100644
--- a/noncore/net/opieirc/ircsettings.cpp
+++ b/noncore/net/opieirc/ircsettings.cpp
@@ -1,43 +1,65 @@
1#include <qlayout.h> 1#include <qlayout.h>
2#include <qvalidator.h>
3#include <qscrollview.h>
2#include "ircsettings.h" 4#include "ircsettings.h"
3#include "irctab.h" 5#include "irctab.h"
4#include "ircmisc.h" 6#include "ircmisc.h"
5#include <stdio.h>
6 7
7IRCSettings::IRCSettings(QWidget* parent, const char* name, bool modal, WFlags f) : QDialog(parent, name, modal, f) { 8IRCSettings::IRCSettings(QWidget* parent, const char* name, bool modal, WFlags f) : QDialog(parent, name, modal, f) {
9 setCaption("Settings");
8 m_config = new Config("OpieIRC"); 10 m_config = new Config("OpieIRC");
9 m_config->setGroup("OpieIRC"); 11 m_config->setGroup("OpieIRC");
12 QHBoxLayout *l = new QHBoxLayout(this, 2, 2);
13 QTabWidget *tw = new QTabWidget(this);
14 l->addWidget(tw);
15 /* General Configuration */
16 QWidget *widget = new QWidget(tw);
17 QGridLayout *layout = new QGridLayout(widget, 1, 2, 5, 0);
18 QLabel *label = new QLabel(tr("Lines displayed :"), widget);
19 layout->addWidget(label, 0, 0);
20 m_lines = new QLineEdit(m_config->readEntry("Lines", "100"), widget);
21 QIntValidator *validator = new QIntValidator(this);
22 validator->setTop(10000);
23 validator->setBottom(0);
24 m_lines->setValidator(validator);
25 layout->addWidget(m_lines, 0, 1);
26 tw->addTab(widget, tr("General"));
10 27
11 setCaption("Settings"); 28 /* Color configuration */
12 QGridLayout *layout = new QGridLayout(this, 7, 2, 5, 0); 29 QScrollView *view = new QScrollView(tw);
13 QLabel *label = new QLabel(tr("Background color :"), this); 30 view->setResizePolicy(QScrollView::AutoOneFit);
31 widget = new QWidget(view->viewport());
32 view->addChild(widget);
33 layout = new QGridLayout(widget, 7, 2, 5, 0);
34 label = new QLabel(tr("Background color :"), widget);
14 layout->addWidget(label, 0, 0); 35 layout->addWidget(label, 0, 0);
15 m_background = new IRCFramedColorLabel(QColor(m_config->readEntry("BackgroundColor", "#FFFFFF")), this); 36 m_background = new IRCFramedColorLabel(QColor(m_config->readEntry("BackgroundColor", "#FFFFFF")), widget);
16 layout->addWidget(m_background, 0, 1); 37 layout->addWidget(m_background, 0, 1);
17 label = new QLabel(tr("Normal text color :"), this); 38 label = new QLabel(tr("Normal text color :"), widget);
18 layout->addWidget(label, 1, 0); 39 layout->addWidget(label, 1, 0);
19 m_text = new IRCFramedColorLabel(m_config->readEntry("TextColor", "#000000"), this); 40 m_text = new IRCFramedColorLabel(m_config->readEntry("TextColor", "#000000"), widget);
20 layout->addWidget(m_text, 1, 1); 41 layout->addWidget(m_text, 1, 1);
21 label = new QLabel(tr("Error color :"), this); 42 label = new QLabel(tr("Error color :"), widget);
22 layout->addWidget(label, 2, 0); 43 layout->addWidget(label, 2, 0);
23 m_error = new IRCFramedColorLabel(m_config->readEntry("ErrorColor", "#FF0000"), this); 44 m_error = new IRCFramedColorLabel(m_config->readEntry("ErrorColor", "#FF0000"), widget);
24 layout->addWidget(m_error, 2, 1); 45 layout->addWidget(m_error, 2, 1);
25 label = new QLabel(tr("Text written by yourself :"), this); 46 label = new QLabel(tr("Text written by yourself :"), widget);
26 layout->addWidget(label, 3, 0); 47 layout->addWidget(label, 3, 0);
27 m_self = new IRCFramedColorLabel(m_config->readEntry("SelfColor", "#CC0000"), this); 48 m_self = new IRCFramedColorLabel(m_config->readEntry("SelfColor", "#CC0000"), widget);
28 layout->addWidget(m_self, 3, 1); 49 layout->addWidget(m_self, 3, 1);
29 label = new QLabel(tr("Text written by others :"), this); 50 label = new QLabel(tr("Text written by others :"), widget);
30 layout->addWidget(label, 4, 0); 51 layout->addWidget(label, 4, 0);
31 m_other = new IRCFramedColorLabel(m_config->readEntry("OtherColor", "#0000BB"), this); 52 m_other = new IRCFramedColorLabel(m_config->readEntry("OtherColor", "#0000BB"), widget);
32 layout->addWidget(m_other, 4, 1); 53 layout->addWidget(m_other, 4, 1);
33 label = new QLabel(tr("Text written by the server :"), this); 54 label = new QLabel(tr("Text written by the server :"), widget);
34 layout->addWidget(label, 5, 0); 55 layout->addWidget(label, 5, 0);
35 m_server = new IRCFramedColorLabel(m_config->readEntry("ServerColor", "#0000FF"), this); 56 m_server = new IRCFramedColorLabel(m_config->readEntry("ServerColor", "#0000FF"), widget);
36 layout->addWidget(m_server, 5, 1); 57 layout->addWidget(m_server, 5, 1);
37 label = new QLabel(tr("Notifications :"), this); 58 label = new QLabel(tr("Notifications :"), widget);
38 layout->addWidget(label, 6, 0); 59 layout->addWidget(label, 6, 0);
39 m_notification = new IRCFramedColorLabel(m_config->readEntry("NotificationColor", "#AAE300"), this); 60 m_notification = new IRCFramedColorLabel(m_config->readEntry("NotificationColor", "#AAE300"), widget);
40 layout->addWidget(m_notification, 6, 1); 61 layout->addWidget(m_notification, 6, 1);
62 tw->addTab(view, tr("Colors"));
41 showMaximized(); 63 showMaximized();
42} 64}
43 65
@@ -56,6 +78,7 @@ void IRCSettings::accept() {
56 IRCTab::m_otherColor = getColorString(m_other); 78 IRCTab::m_otherColor = getColorString(m_other);
57 IRCTab::m_serverColor = getColorString(m_server); 79 IRCTab::m_serverColor = getColorString(m_server);
58 IRCTab::m_notificationColor = getColorString(m_notification); 80 IRCTab::m_notificationColor = getColorString(m_notification);
81 IRCTab::m_maxLines = m_lines->text().toInt();
59 m_config->writeEntry("BackgroundColor", getColorString(m_background)); 82 m_config->writeEntry("BackgroundColor", getColorString(m_background));
60 m_config->writeEntry("TextColor", getColorString(m_text)); 83 m_config->writeEntry("TextColor", getColorString(m_text));
61 m_config->writeEntry("ErrorColor", getColorString(m_error)); 84 m_config->writeEntry("ErrorColor", getColorString(m_error));
@@ -63,6 +86,7 @@ void IRCSettings::accept() {
63 m_config->writeEntry("OtherColor", getColorString(m_other)); 86 m_config->writeEntry("OtherColor", getColorString(m_other));
64 m_config->writeEntry("ServerColor", getColorString(m_server)); 87 m_config->writeEntry("ServerColor", getColorString(m_server));
65 m_config->writeEntry("NotificationColor", getColorString(m_notification)); 88 m_config->writeEntry("NotificationColor", getColorString(m_notification));
89 m_config->writeEntry("Lines", m_lines->text());
66 QDialog::accept(); 90 QDialog::accept();
67} 91}
68 92
diff --git a/noncore/net/opieirc/ircsettings.h b/noncore/net/opieirc/ircsettings.h
index 1d3aeb7..190abaf 100644
--- a/noncore/net/opieirc/ircsettings.h
+++ b/noncore/net/opieirc/ircsettings.h
@@ -23,6 +23,7 @@
23 23
24#include <qpe/config.h> 24#include <qpe/config.h>
25#include <qdialog.h> 25#include <qdialog.h>
26#include <qlineedit.h>
26 27
27class IRCSettings : public QDialog { 28class IRCSettings : public QDialog {
28 Q_OBJECT 29 Q_OBJECT
@@ -41,6 +42,7 @@ protected:
41 QWidget *m_server; 42 QWidget *m_server;
42 QWidget *m_other; 43 QWidget *m_other;
43 QWidget *m_notification; 44 QWidget *m_notification;
45 QLineEdit *m_lines;
44}; 46};
45 47
46#endif /* __IRCSETTINGS_H */ 48#endif /* __IRCSETTINGS_H */
diff --git a/noncore/net/opieirc/irctab.cpp b/noncore/net/opieirc/irctab.cpp
index a4dd7e2..0bb9d4c 100644
--- a/noncore/net/opieirc/irctab.cpp
+++ b/noncore/net/opieirc/irctab.cpp
@@ -10,7 +10,7 @@ QString IRCTab::m_backgroundColor;
10QString IRCTab::m_selfColor; 10QString IRCTab::m_selfColor;
11QString IRCTab::m_otherColor; 11QString IRCTab::m_otherColor;
12QString IRCTab::m_notificationColor; 12QString IRCTab::m_notificationColor;
13 13int IRCTab::m_maxLines;
14 14
15IRCTab::IRCTab(QWidget *parent, const char *name, WFlags f) : QWidget(parent, name, f) { 15IRCTab::IRCTab(QWidget *parent, const char *name, WFlags f) : QWidget(parent, name, f) {
16 m_layout = new QVBoxLayout(this); 16 m_layout = new QVBoxLayout(this);
diff --git a/noncore/net/opieirc/irctab.h b/noncore/net/opieirc/irctab.h
index e3a1857..7a2d0a2 100644
--- a/noncore/net/opieirc/irctab.h
+++ b/noncore/net/opieirc/irctab.h
@@ -35,6 +35,7 @@ class IRCTab : public QWidget {
35 Q_OBJECT 35 Q_OBJECT
36public: 36public:
37 IRCTab(QWidget *parent = 0, const char *name = 0, WFlags f = 0); 37 IRCTab(QWidget *parent = 0, const char *name = 0, WFlags f = 0);
38 /* The ID is required to store the position of this IRCTab inside the IRCTabWidget */
38 void setID(int id); 39 void setID(int id);
39 int id(); 40 int id();
40 virtual QString title() = 0; 41 virtual QString title() = 0;
@@ -58,6 +59,8 @@ public:
58 static QString m_selfColor; 59 static QString m_selfColor;
59 static QString m_otherColor; 60 static QString m_otherColor;
60 static QString m_notificationColor; 61 static QString m_notificationColor;
62 /* Max number of lines to be displayed */
63 static int m_maxLines;
61}; 64};
62 65
63#endif /* __IRCTAB_H */ 66#endif /* __IRCTAB_H */
diff --git a/noncore/net/opieirc/ircversion.h b/noncore/net/opieirc/ircversion.h
index f0f196e..ec6acfa 100644
--- a/noncore/net/opieirc/ircversion.h
+++ b/noncore/net/opieirc/ircversion.h
@@ -21,7 +21,7 @@
21#ifndef __IRCVERSION_H 21#ifndef __IRCVERSION_H
22#define __IRCVERSION_H 22#define __IRCVERSION_H
23 23
24#define APP_VERSION "OpieIRC 0.3" 24#define APP_VERSION "OpieIRC 0.4"
25#define APP_COPYSTR "(c) 2002 by Wenzel Jakob" 25#define APP_COPYSTR "(c) 2002 by Wenzel Jakob"
26 26
27#endif /* __IRCVERSION_H */ 27#endif /* __IRCVERSION_H */
diff --git a/noncore/net/opieirc/mainwindow.cpp b/noncore/net/opieirc/mainwindow.cpp
index fe59c3b..bb03a1c 100644
--- a/noncore/net/opieirc/mainwindow.cpp
+++ b/noncore/net/opieirc/mainwindow.cpp
@@ -36,10 +36,11 @@ void MainWindow::loadSettings() {
36 IRCTab::m_otherColor = config.readEntry("OtherColor", "#0000BB"); 36 IRCTab::m_otherColor = config.readEntry("OtherColor", "#0000BB");
37 IRCTab::m_serverColor = config.readEntry("ServerColor", "#0000FF"); 37 IRCTab::m_serverColor = config.readEntry("ServerColor", "#0000FF");
38 IRCTab::m_notificationColor = config.readEntry("NotificationColor", "#AA3300"); 38 IRCTab::m_notificationColor = config.readEntry("NotificationColor", "#AA3300");
39 IRCTab::m_maxLines = config.readNumEntry("Lines", 100);
39} 40}
40 41
41void MainWindow::selected(QWidget *) { 42void MainWindow::selected(QWidget *) {
42 m_tabWidget->setTabColor(m_tabWidget->currentPageIndex(), &black); 43 m_tabWidget->setTabColor(m_tabWidget->currentPageIndex(), black);
43} 44}
44 45
45void MainWindow::addTab(IRCTab *tab) { 46void MainWindow::addTab(IRCTab *tab) {
@@ -52,7 +53,7 @@ void MainWindow::addTab(IRCTab *tab) {
52 53
53void MainWindow::changeEvent(IRCTab *tab) { 54void MainWindow::changeEvent(IRCTab *tab) {
54 if (tab->id() != m_tabWidget->currentPageIndex()) 55 if (tab->id() != m_tabWidget->currentPageIndex())
55 m_tabWidget->setTabColor(tab->id(), &blue); 56 m_tabWidget->setTabColor(tab->id(), blue);
56} 57}
57 58
58void MainWindow::killTab(IRCTab *tab) { 59void MainWindow::killTab(IRCTab *tab) {
diff --git a/noncore/net/opieirc/opie-irc.control b/noncore/net/opieirc/opie-irc.control
index 9e93991..aada957 100644
--- a/noncore/net/opieirc/opie-irc.control
+++ b/noncore/net/opieirc/opie-irc.control
@@ -5,5 +5,4 @@ Maintainer: Wenzel Jakob <root@wazlaf.de>
5Architecture: arm 5Architecture: arm
6Version: $QPE_VERSION-$SUB_VERSION 6Version: $QPE_VERSION-$SUB_VERSION
7Depends: opie-base ($QPE_VERSION) 7Depends: opie-base ($QPE_VERSION)
8Description: The Opie IRC client lets you chat on your favorite 8Description: The Opie IRC client lets you chat on your favorite IRC server using your handheld computer
9 IRC server using your zaurus or ipaq