
Originally Posted by
Gurpreet
mean of one by one is that second file must be shown after a one second of first file shown..
Hmmm.... why? 
class InsertToListDelayer
: public QObject { Q_OBJECT
public:
m_items = items;
m_list = list;
m_delay = delay;
m_timer = -1;
}
public slots:
void start(int delay = -1) {
if(delay > 0) m_delay = delay;
m_timer = startTimer(m_delay);
}
void stop() {
if(m_timer != -1) { killTimer(m_timer); m_timer = -1; }
}
signals:
void finished();
protected:
m_list->addItem(m_items.takeFirst());
if(m_items.isEmpty()) {
stop();
emit finished();
}
}
private:
int m_timer, m_delay;
};
class InsertToListDelayer : public QObject {
Q_OBJECT
public:
InsertToListDelayer(QStringList items, QListWidget *list, int delay = 1000, QObject *parent = 0) : QObject(parent) {
m_items = items;
m_list = list;
m_delay = delay;
m_timer = -1;
}
public slots:
void start(int delay = -1) {
if(delay > 0) m_delay = delay;
m_timer = startTimer(m_delay);
}
void stop() {
if(m_timer != -1) { killTimer(m_timer); m_timer = -1; }
}
signals:
void finished();
protected:
void timerEvent(QTimerEvent *te) {
m_list->addItem(m_items.takeFirst());
if(m_items.isEmpty()) {
stop();
emit finished();
}
}
private:
int m_timer, m_delay;
QStringList m_items;
QListWidget* m_list;
};
To copy to clipboard, switch view to plain text mode
InsertToListDelayer *del = new InsertToListDelayer(lsdir.entryList(), lw, 1000, this);
del->start();
connect(del, SIGNAL(finished()), del, SLOT(deleteLater()));
InsertToListDelayer *del = new InsertToListDelayer(lsdir.entryList(), lw, 1000, this);
del->start();
connect(del, SIGNAL(finished()), del, SLOT(deleteLater()));
To copy to clipboard, switch view to plain text mode
Bookmarks