[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