[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: porting from kde 1.x to 3.x
From: "Aaron J. Seigo" <aseigo () olympusproject ! org>
Date: 2002-07-31 23:53:13
[Download RAW message or body]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Wednesday 31 July 2002 05:18, David Bishop wrote:
> On Monday 29 July 2002 05:38 pm, Rob Kaper wrote:
> > On Tuesday 30 July 2002 01:09, David Bishop wrote:
> > Wouldn't this also work:
> >
> > QStringList errors = QStringList::split( "\n", QString::fromLocal8Bit(
> > buffer, buflen ));
> >
> > and in the loop error_listbox->insertItem(*it);
> >
> > (of course one should check for a valid *it as well, by adding && (*it)
> > to the loop condition)
> >
> > Rob
>
> Well, it *should* work :-) However, when I force an error in xmame,
> I get a crash in kmame, with the following to stdout (and bt attached):
>
> ASSERT: "it.node != node" in /usr/include/qt/qvaluelist.h (274)
>
> My code now looks like this:
>
> void MainDialog::ReadStderr(KProcess *, char *buffer, int buflen)
> {
>
> QString s = QString::fromLocal8Bit( buffer, buflen );
> QStringList errors = QStringList::split( "\n", s );
>
> if ( !m_str.isEmpty() ) {
> errors.first().prepend(m_str);
> m_str = QString::null;
> }
>
> if ( s.at(buflen) != '\n' ) {
> m_str = errors.last();
> errors.pop_back();
> }
>
> for ( QStringList::Iterator it = errors.begin() ; (it != errors.end()
> && (*it)); ++it ) { error_listbox->insertItem(*it);
> }
>
> error_listbox->setBottomItem(error_listbox->count());
> }
>
> I've also tried replacing the s.at(buflen) with s.at(s.length()) but that
> didn't seem to affect anything </wag>.
at(..) uses the index, which is zeroth counted... so you want:
s.at(buflen - 1);
also, not that it probably really matters, but the check for (*it) shouldn't
be necessary in your for loop because you know it's origins (the
QStringList::split above). you are pretty well guarenteed it will be alright.
- --
Aaron J. Seigo
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
"Everything should be made as simple as possible, but not simpler"
- Albert Einstein
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE9SHhq1rcusafx20MRAv+qAKCEH0bU/gTS1qrMqyoQ3Sil775cpQCgrRSk
PRcEtLj/HGoEj2+O1pYQSAc=
=T4bt
-----END PGP SIGNATURE-----
>> Visit http://mail.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