On Friday 04 July 2003 07:11, Christian B. Wiik wrote:
> Easy reproducable: Utilities -> hostname -> Run -> Close window ->
> crash.

my fix.

-- 
Buenos Aires, Argentina                          13°C with winds at 5 km/h WNW
Index: plugins/qt-gui//src/mainwin.cpp
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/mainwin.cpp,v
retrieving revision 1.292
diff -u -d -p -r1.292 mainwin.cpp
--- plugins/qt-gui//src/mainwin.cpp	2 Jul 2003 17:11:31 -0000	1.292
+++ plugins/qt-gui//src/mainwin.cpp	7 Jul 2003 00:00:54 -0000
@@ -3469,12 +3469,10 @@ void CMainWindow::changeDebug(int _nId)
 //-----CMainWindow::slot_utility----------------------------------------------
 void CMainWindow::slot_utility(int _nId)
 {
-  int nUtility = mnuUtilities->indexOf(_nId);
-  CUtility *u = gUtilityManager.Utility(nUtility);
-  if (u == NULL) return;
-  //unsigned long nUin = userView->SelectedItemUin();
-  unsigned long nUin = m_nUserMenuUin;
-  if (nUin != 0) (void) new CUtilityDlg(u, nUin, licqDaemon);
+  CUtility *u = gUtilityManager.Utility(mnuUtilities->indexOf(_nId));
+  
+  if ( u && m_szUserMenuId )
+  	(void) new CUtilityDlg(u, m_szUserMenuId, m_nUserMenuPPID, licqDaemon);
 }
 
 
Index: plugins/qt-gui//src/utilitydlg.cpp
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/utilitydlg.cpp,v
retrieving revision 1.27
diff -u -d -p -r1.27 utilitydlg.cpp
--- plugins/qt-gui//src/utilitydlg.cpp	2 Jul 2003 04:41:02 -0000	1.27
+++ plugins/qt-gui//src/utilitydlg.cpp	7 Jul 2003 00:01:03 -0000
@@ -120,92 +120,6 @@ CUtilityDlg::CUtilityDlg(CUtility *u, co
   show();
 }
 
-CUtilityDlg::CUtilityDlg(CUtility *u, unsigned long _nUin, CICQDaemon *_server)
-  : QWidget(0, "UtilityDialog",  WDestructiveClose)
-{
-  m_nUin = _nUin;
-  m_xUtility = u;
-  server = _server;
-  m_bIntWin = false;
-  intwin = NULL;
-  snOut = snErr = NULL;
-
-  m_xUtility->SetFields(m_nUin);
-
-  QGridLayout *lay = new QGridLayout(this, 1, 3, 8, 4);
-  lay->setColStretch(2, 2);
-  lay->addColSpacing(1, 8);
-  setCaption(QString(tr("Licq Utility: %1")).arg(m_xUtility->Name()));
-  lblUtility = new QLabel(tr("Command:"), this);
-  lay->addWidget(lblUtility, 0, 0);
-  nfoUtility = new CInfoField(this, true);
-  nfoUtility->setMinimumWidth(nfoUtility->sizeHint().width()*2);
-  lay->addWidget(nfoUtility, 0, 2);
-  nfoUtility->setText(m_xUtility->FullCommand());
-
-  lay->addWidget(new QLabel(tr("Window:"), this), 1, 0);
-  nfoWinType = new CInfoField(this, true);
-  lay->addWidget(nfoWinType, 1, 2);
-  switch (m_xUtility->WinType())
-  {
-    case UtilityWinGui: nfoWinType->setText(tr("GUI")); break;
-    case UtilityWinTerm: nfoWinType->setText(tr("Terminal")); break;
-    case UtilityWinLicq: nfoWinType->setText(tr("Internal")); break;
-  }
-
-  lay->addWidget(new QLabel(tr("Description:"), this), 2, 0);
-  nfoDesc = new CInfoField(this, true);
-  lay->addWidget(nfoDesc, 2, 2);
-  nfoDesc->setText(m_xUtility->Description());
-
-  chkEditFinal = new QCheckBox(tr("Edit final command"), this);
-  lay->addMultiCellWidget(chkEditFinal, 3, 3, 0, 2);
-
-  boxFields = new QGroupBox(1, Horizontal, tr("User Fields"), this);
-  lay->addMultiCellWidget(boxFields, 4, 4, 0, 2);
-  for (unsigned short i = 0; i < m_xUtility->NumUserFields(); i++)
-  {
-    QString s;
-    s.sprintf("%s (%%%d): ", m_xUtility->UserField(i)->Title(), i+1);
-    QLabel *lbl = new QLabel(s, boxFields);
-    lblFields.push_back(lbl);
-    QLineEdit *edt = new QLineEdit(boxFields);
-    edt->setText(m_xUtility->UserField(i)->FullDefault());
-    edt->setMinimumSize(edt->sizeHint());
-    edtFields.push_back(edt);
-  }
-
-  splOutput = new QSplitter(Vertical, boxFields);
-  splOutput->setOpaqueResize();
-  mleOut = new MLEditWrap(true, splOutput);
-  mleOut->setReadOnly(true);
-  mleErr = new MLEditWrap(true, splOutput);
-  mleErr->setReadOnly(true);
-
-  splOutput->setResizeMode(mleErr, QSplitter::Stretch);//FollowSizeHint);
-  splOutput->setResizeMode(mleOut, QSplitter::Stretch);
-  splOutput->hide();
-  if (m_xUtility->NumUserFields() == 0) boxFields->hide();
-
-  QHBoxLayout *hlay = new QHBoxLayout();
-  lay->addMultiCell(hlay, 5, 5, 0, 2);
-  hlay->addStretch(1);
-  btnRun = new QPushButton(tr("&Run"), this);
-  btnRun->setDefault(true);
-  btnRun->setMinimumWidth(75);
-  hlay->addWidget(btnRun, 0, AlignRight);
-  hlay->addSpacing(20);
-  btnCancel = new QPushButton(tr("&Cancel"), this);
-  btnCancel->setMinimumWidth(75);
-  hlay->addWidget(btnCancel, 0, AlignLeft);
-
-  connect(btnRun, SIGNAL(clicked()), SLOT(slot_run()));
-  connect(btnCancel, SIGNAL(clicked()), SLOT(slot_cancel()));
-
-  show();
-}
-
-
 CUtilityDlg::~CUtilityDlg()
 {
   delete intwin;
Index: plugins/qt-gui//src/utilitydlg.h
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/utilitydlg.h,v
retrieving revision 1.14
diff -u -d -p -r1.14 utilitydlg.h
--- plugins/qt-gui//src/utilitydlg.h	2 Jul 2003 04:41:02 -0000	1.14
+++ plugins/qt-gui//src/utilitydlg.h	7 Jul 2003 00:01:03 -0000
@@ -25,14 +25,12 @@ class CUtilityDlg : public QWidget
 {
   Q_OBJECT
 public:
-  CUtilityDlg(CUtility *u, unsigned long _nUin, CICQDaemon *_server);
   CUtilityDlg(CUtility *u, const char *szId, unsigned long nPPID,
     CICQDaemon *server);
   ~CUtilityDlg();
 protected:
   CUtility *m_xUtility;
   CICQDaemon *server;
-  unsigned long m_nUin;
   char *m_szId;
   unsigned long m_nPPID;
   bool m_bIntWin, m_bStdOutClosed, m_bStdErrClosed;

Attachment: pgp00000.pgp
Description: signature

Reply via email to