[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: kppp miniterm patch & questions
From: Juerg Marti <tschortsch () gmx ! ch>
Date: 2001-07-30 22:45:14
[Download RAW message or body]
On Monday 30 July 2001 12:30, Harri Porten wrote:
> Going for KMainWindow (probably also non-existant at that time) would be
> nice. Can you send me a patch ? :)
Here is the patch :)
But don't apply it, there is a problem with it. The QTabDialog tabWindow is
modal. Then MiniTerm is showed from that dialog. Now the MiniTerm is blocked.
I guess it's impossible to create and show a modalless dialog from a modal
dialog.
> > 5) Is it really necessary to delete toolbar and statusbar in the
> > destructor? They are children of MiniTerm, so they should be deleted by
> > qt.
>
> Yes. Traces of people learning how to program C++ and Qt ... ;)
No it's not necessary. (at least in my version, but it was in the original
one)
I've done:
toolbar=new KMenuBar(this)
statusbar=new QLabel(this)
so the toolbar is a childwidget of MiniTerm.
so the toolbar's parent (=MiniTerm) will delete the toolbar .
["miniterm.diff" (text/x-diff)]
? miniterm.diff
Index: general.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kppp/general.cpp,v
retrieving revision 1.74
diff -u -3 -p -u -r1.74 general.cpp
--- general.cpp 2001/04/08 21:23:05 1.74
+++ general.cpp 2001/07/30 21:55:28
@@ -582,8 +582,8 @@ void ModemWidget2::query_modem() {
void ModemWidget2::terminal() {
- MiniTerm terminal(NULL,NULL);
- terminal.exec();
+ MiniTerm *terminal=new MiniTerm(NULL,NULL);
+ terminal->show();
}
Index: miniterm.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kppp/miniterm.cpp,v
retrieving revision 1.35
diff -u -3 -p -u -r1.35 miniterm.cpp
--- miniterm.cpp 2001/07/30 10:25:21 1.35
+++ miniterm.cpp 2001/07/30 21:55:29
@@ -38,20 +38,20 @@
#include <kglobal.h>
#include <kpopupmenu.h>
+
extern PPPData gpppdata;
MiniTerm::MiniTerm(QWidget *parent, const char *name)
- : QDialog(parent, name, true)
+ : KMainWindow(parent, name)
{
setCaption(i18n("Kppp Mini-Terminal"));
KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon());
- m_file = new QPopupMenu(this);
+ m_file = new KPopupMenu(this);
m_file->insertItem( i18n("&Close"),this, SLOT(cancelbutton()) );
- m_options = new QPopupMenu(this);
+ m_options = new KPopupMenu(this);
m_options->insertItem(i18n("&Reset Modem"),this,SLOT(resetModem()));
- m_help =
- new KHelpMenu(this,
+ m_help = helpMenu(
i18n("MiniTerm - A terminal emulation for KPPP\n\n"
"(c) 1997 Bernd Johannes Wuebben <wuebben@kde.org>\n"
"(c) 1998 Harri Porten <porten@kde.org>\n"
@@ -60,23 +60,16 @@ MiniTerm::MiniTerm(QWidget *parent, cons
"(GNU General Public License)"
));
- menubar = new KMenuBar(this);
+ menubar = menuBar();
menubar->insertItem( i18n("&File"), m_file );
menubar->insertItem( i18n("&Modem"), m_options );
- menubar->insertItem( i18n("&Help"), m_help->menu());
-
- statusbar = new QLabel(this);
- statusbar->setFrameStyle(QFrame::Panel | QFrame::Sunken);
+ menubar->insertItem( i18n("&Help"), m_help);
+ statusbar = statusBar();
terminal = new MyTerm(this, "term");
setupToolbar();
-
- QVBoxLayout *layout=new QVBoxLayout(this);
- layout->addWidget(menubar);
- layout->addWidget(toolbar);
- layout->addWidget(terminal);
- layout->addWidget(statusbar);
+ setCentralWidget(terminal);
inittimer = new QTimer(this);
connect(inittimer,SIGNAL(timeout()),this,SLOT(init()));
@@ -86,14 +79,8 @@ MiniTerm::MiniTerm(QWidget *parent, cons
}
-MiniTerm::~MiniTerm() {
- delete toolbar;
- delete statusbar;
-}
-
-
void MiniTerm::setupToolbar() {
- toolbar = new KToolBar( this );
+ toolbar = toolBar();
QPixmap pixmap;
@@ -120,17 +107,17 @@ void MiniTerm::setupToolbar() {
void MiniTerm::init() {
inittimer->stop();
- statusbar->setText(i18n("Initializing Modem"));
+ statusbar->insertItem(i18n("Initializing Modem"),0,1);
kapp->processEvents();
int lock = Modem::modem->lockdevice();
if (lock == 1) {
- statusbar->setText(i18n("Sorry, modem device is locked."));
+ statusbar->changeItem(i18n("Sorry, modem device is locked."),0);
return;
}
if (lock == -1) {
- statusbar->setText(i18n("Sorry, can't create modem lock file."));
+ statusbar->changeItem(i18n("Sorry, can't create modem lock file."),0);
return;
}
@@ -146,7 +133,7 @@ void MiniTerm::init() {
Modem::modem->writeLine(gpppdata.modemInitStr().local8Bit());
usleep(gpppdata.modemInitDelay() * 10000);
- statusbar->setText(i18n("Modem Ready"));
+ statusbar->changeItem(i18n("Modem Ready"),0);
terminal->setFocus();
kapp->processEvents();
@@ -158,7 +145,7 @@ void MiniTerm::init() {
}
// opentty() or hangup() failed
- statusbar->setText(Modem::modem->modemMessage());
+ statusbar->changeItem(Modem::modem->modemMessage(),0);
Modem::modem->unlockdevice();
}
@@ -187,7 +174,7 @@ void MiniTerm::readChar(unsigned char c)
void MiniTerm::cancelbutton() {
Modem::modem->stop();
- statusbar->setText(i18n("Hanging up ..."));
+ statusbar->changeItem(i18n("Hanging up ..."),0);
kapp->processEvents();
kapp->flushX();
@@ -196,19 +183,19 @@ void MiniTerm::cancelbutton() {
Modem::modem->closetty();
Modem::modem->unlockdevice();
- reject();
+ close();
}
void MiniTerm::resetModem() {
- statusbar->setText(i18n("Resetting Modem"));
+ statusbar->changeItem(i18n("Resetting Modem"),0);
terminal->newLine();
kapp->processEvents();
kapp->flushX();
Modem::modem->hangup();
- statusbar->setText(i18n("Modem Ready"));
+ statusbar->changeItem(i18n("Modem Ready"),0);
}
Index: miniterm.h
===================================================================
RCS file: /home/kde/kdenetwork/kppp/miniterm.h,v
retrieving revision 1.13
diff -u -3 -p -u -r1.13 miniterm.h
--- miniterm.h 2001/07/30 10:25:41 1.13
+++ miniterm.h 2001/07/30 21:55:29
@@ -28,11 +28,9 @@
#ifndef _MINITERM_H_
#define _MINITERM_H_
-#include <qdialog.h>
#include <qpixmap.h>
#include <qlayout.h>
#include <qpopupmenu.h>
-#include <qlabel.h>
#include <qevent.h>
#include <qtimer.h>
#include <qframe.h>
@@ -41,7 +39,9 @@
#include <ktoolbar.h>
#include <kmenubar.h>
+#include <kmainwindow.h>
class KHelpMenu;
+class KStatusBar;
class MyTerm : public QMultiLineEdit {
Q_OBJECT
@@ -58,12 +58,12 @@ public:
};
-class MiniTerm : public QDialog {
+class MiniTerm : public KMainWindow {
Q_OBJECT
public:
MiniTerm(QWidget *parent=0, const char *name=0);
- ~MiniTerm();
+ ~MiniTerm(){};
void closeEvent( QCloseEvent *e );
@@ -77,26 +77,16 @@ public slots:
protected:
void setupToolbar();
- QPushButton *cancel;
MyTerm *terminal;
QTimer *inittimer;
- QMenuBar * menubar;
+ KMenuBar * menubar;
KToolBar * toolbar;
- QPopupMenu * m_file;
- QPopupMenu * m_edit;
- QPopupMenu * m_options;
- KHelpMenu * m_help;
- QLabel * statusbar;
- QPushButton *pb1;
- QPushButton *pb2;
- QPushButton *pb3;
- QPushButton *pb4;
-
- QPixmap pb1_pixmap;
- QPixmap pb2_pixmap;
- QPixmap pb3_pixmap;
- QPixmap pb4_pixmap;
+ KPopupMenu * m_file;
+ KPopupMenu * m_edit;
+ KPopupMenu * m_options;
+ KPopupMenu * m_help;
+ KStatusBar * statusbar;
};
>> Visit http://master.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic