ich hab das Problem, dass sich mein gesamtes Programm beendet, wenn ich das "SelectMovie" Fenster schließe und davor der Speicher von "buffer" und "http" freigegeben wird. Hat da jemand eine Idee?
Code: Alles auswählen
void AddMovie::getMovieList()
{
buffer = new QBuffer(this);
buffer->open(QBuffer::ReadWrite);
http = new QHttp(this);
http->setHost("imdb.com");
http->get("/find?s=tt&q=" + ui.titleALineEdit->text().replace(" ", "+"), buffer);
connect(http, SIGNAL(requestFinished(int, bool)), this, SLOT(showMovieList(int, bool)));
}
void AddMovie::showMovieList(int id, bool error)
{
if(id == 2 && error == false)
{
QStringList movieList;
QString data;
buffer->close();
data = buffer->data();
QRegExp rx("Popular Titles.*<ol>((?:.|\n)*)</ol>");
rx.setMinimal(true);
rx.indexIn(data);
QRegExp rx2("href=\"(.*)\"\\s.*>(.*)</a>\\s\\(([0-9]{4})\\)");
rx2.setMinimal(true);
int pos = 0;
while((pos = rx2.indexIn(rx.cap(1), pos)) != -1)
{
movieList << rx2.cap(1) << rx2.cap(2) << rx2.cap(3);
pos += rx2.matchedLength();
}
delete buffer;
delete http;
SelectMovie sMovie(this, movieList);
sMovie.exec();
}
}