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;
pgp00000.pgp
Description: signature
