/** * Load settings from file */ void Settings::load() { // Search for a file from user's home directory QString path = QString(getenv("HOME")) + QString("/") + QString(KQLCUserDir); QString fileName = path + QString("/") + QString(KConfigFile); QPtrList <QString> list; if (FileHandler::readFileToList(fileName, list) == true) { for (QString* s = list.first(); s != NULL; s = list.next()) { if (*s == QString("Entry")) { if (*(list.next()) == QString("General")) { createContents(list); } } } } while (!list.isEmpty()) { delete list.take(0); } }
QLayoutItem *BorderLayoutIterator::takeCurrent() { BorderLayout::BorderLayoutStruct *b = idx < int( list->count() ) ? list->take( idx ) : 0; QLayoutItem *item = b ? b->item : 0; delete b; return item; }
//////////////////////// // Device Class stuff // //////////////////////// // // Read all device classes from files // void App::initDeviceClasses() { DeviceClass* dc = NULL; QString path = QString::null; QString dir; settings()->get(KEY_SYSTEM_DIR, dir); dir += QString("/") + DEVICECLASSPATH + QString("/"); QDir d(dir); d.setFilter(QDir::Files); d.setNameFilter("*.deviceclass"); if (d.exists() == false || d.isReadable() == false) { QString msg("Unable to read from device directory!"); QMessageBox::warning(this, KApplicationNameShort, msg); return; } QStringList dirlist(d.entryList()); QStringList::Iterator it; QPtrList <QString> list; // Our stringlist that contains the files' contents // Put a slash to the end of the directory name if it isn't there if (dir.right(1) != QString("/")) { dir = dir + QString("/"); } // Go thru all files for (it = dirlist.begin(); it != dirlist.end(); ++it) { path = dir + *it; FileHandler::readFileToList(path, list); dc = DeviceClass::createDeviceClass(list); if (dc != NULL) { addDeviceClass(dc); } // The list needs to be cleared between files while (list.isEmpty() == false) { list.first(); delete list.take(); } } }
void WQQuiz::listRandom() { QPtrList<void> list; for(int i = 0; i < m_quizList.count(); i++) list.append((void*) i); KRandomSequence seq; seq.randomize(&list); QuizList items; for(int i = 0; i < m_quizList.count(); i++) items.append(m_quizList[(long) list.take()]); m_quizList.clear(); for(int i = 0; i < items.count(); i++) m_quizList.append(items[i]); }
/** * Display a DMX value menu, divided into submenus of 16 values */ int VCXYPadProperties::invokeDMXValueMenu(const QPoint &point) { int result; QPopupMenu* menu = new QPopupMenu; QPtrList <QPopupMenu> deleteList; menu->insertItem("Value", KNoID); menu->insertSeparator(); menu->insertItem(QString::number(KChannelValueMin), KChannelValueMin); menu->insertItem(QString::number(KChannelValueMax), KChannelValueMax); for (t_value i = 0; i != KChannelValueMax; i += 15) { QPopupMenu* sub = new QPopupMenu(); deleteList.append(sub); QString top; top.sprintf("%d - %d", i+1, i + 15); for (t_value j = 1; j < 16; j++) { QString num; num.setNum(i + j); sub->insertItem(num, i + j); } menu->insertItem(top, sub); } result = menu->exec(point); while (deleteList.isEmpty() == false) { delete deleteList.take(0); } delete menu; return result; }
void KTabBar::setTabEnabled( int id, bool enabled ) { QTab * t = tab( id ); if ( t ) { if ( t->isEnabled() != enabled ) { t->setEnabled( enabled ); QRect r( t->rect() ); if ( !enabled && id == currentTab() && count()>1 ) { int index = indexOf( id ); index += ( index+1 == count() ) ? -1 : 1; t = tabAt( index ); if ( t->isEnabled() ) { r = r.unite( t->rect() ); QPtrList<QTab> *tablist = tabList(); tablist->append( tablist->take( tablist->findRef( t ) ) ); emit selected( t->identifier() ); } } repaint( r ); } } }
QLayoutItem *FlowLayoutIterator::takeCurrent() { return _idx < int(count()) ? _list->take( _idx ) : 0; }
QLayoutItem *SimpleFlowIterator::takeCurrent() { return idx < int(count()) ? list->take( idx ) : 0; }
bool DVBevents::tableEIT( unsigned char* buffer ) { unsigned char* buf = buffer; unsigned int length, loop, sid, tid, eid, tsid, sn, lsn, nid; int i, sec; EventDesc *desc=0, *itdesc=0; EventSid *slist; QPtrList<EventDesc> *currentEvents; bool nodesc, parse; QDateTime start, cur, dt; unsigned int cdt = QDateTime::currentDateTime().toTime_t(); tid = getBits(buf,0,8); length = getBits(buf,12,12); sid = getBits(buf,24,16); sn = getBits(buf,48,8); lsn = getBits(buf,56,8); tsid = getBits(buf,64,16); nid = getBits(buf,80,16); length -=11; buf +=14; slist = currentSrc->getEventSid( nid, tsid, sid ); if ( !slist ) return false; slist->lock(); currentEvents = slist->getEvents(); QPtrListIterator<EventDesc> it( *currentEvents ); while ( length>4 ) { nodesc=parse=false; if ( !safeLen( buf+2 ) ) goto stop; eid = getBits(buf,0,16); if ( !safeLen( buf+2+5 ) ) goto stop; start = getDateTime( buf+2 ); nodesc=parse=true; it.toFirst(); while ( (desc=it.current())!=0 ) { if ( desc->sid==sid ) { if ( desc->startDateTime==start || desc->eid==eid ) { if ( desc->tid==0x4e && tid!=0x4e ) { parse = false; nodesc = false; break; } else { nodesc = false; if ( (cdt-desc->loop)<300 ) { // only reparse events every 300 seconds parse = false; } else { desc->extEvents.clear(); desc->shortEvents.clear(); desc->title=desc->subtitle=""; } break; } } } ++it; } if ( nodesc ) desc = new EventDesc(); if ( parse ) { if ( !safeLen( buf+10 ) ) goto stop; desc->duration = getTime( buf+7 ); if ( !safeLen( buf+11 ) ) goto stop; desc->running = getBits(buf,80,3); desc->sid = sid; desc->tid = tid; desc->tsid = tsid; desc->nid = nid; desc->lsn = lsn; desc->sn = sn; desc->eid = eid; desc->loop = cdt; } if ( desc->sn != sn ) { slist->unlock(); return false; } if ( !safeLen( buf+12 ) ) goto stop; loop = getBits(buf,84,12); buf +=12; length -=(12+loop); while ( loop>0 ) { if ( parse ) { if ( !safeLen( buf+1 ) ) goto stop; switch ( getBits(buf,0,8) ) { case 0x4D : if ( !shortEventDesc( buf, desc ) ) goto stop; break; case 0x4E : if ( !extEventDesc( buf, desc ) ) goto stop; break; default : break; } } if ( !safeLen( buf+2 ) ) goto stop; loop -=( getBits(buf,8,8)+2 ); buf +=( getBits(buf,8,8)+2 ); } //out: if ( parse ) { if ( !nodesc ) { if ( start==desc->startDateTime ) goto ifend; currentEvents->take( currentEvents->find( desc ) ); } desc->startDateTime = start; for ( i=0; i<(int)currentEvents->count(); i++ ) { itdesc = currentEvents->at(i); if ( desc->startDateTime<itdesc->startDateTime ) { currentEvents->insert( i, desc ); break; } itdesc = 0; } if ( !itdesc ) currentEvents->append( desc ); } ifend: if ( parse ) ++(desc->sn); if ( nodesc ) { cur = QDateTime::currentDateTime(); dt = desc->startDateTime; sec = desc->duration.hour()*3600+desc->duration.minute()*60+desc->duration.second(); if ( dt.addSecs( sec )<cur || desc->title.length()<3 ) { currentEvents->remove( desc ); } else desc->source = currentSrc->getSource(); } } slist->unlock(); return true; stop: slist->unlock(); fprintf( stderr, "Stop parsing EIT (%d:%d)\n", adapter, tuner ); if ( nodesc ) delete desc; return false; }