void AccountingSelector::setupTreeWidget() { // search the item edit_item = 0; if(!isnewaccount) { edit_s = gpppdata.accountingFile(); } else edit_s = ""; tl->addColumn( i18n("Available Rules") ); tl->setColumnWidth(0, 205); tl->setRootIsDecorated(true); // look in ~/.kde/share/apps/kppp/Rules and $KDEDIR/share/apps/kppp/Rules QStringList dirs = KGlobal::dirs()->resourceDirs("appdata"); for (QStringList::ConstIterator it = dirs.begin(); it != dirs.end(); it++) { insertDir(QDir((*it) + "Rules"), 0); } // when mode is "Edit", then hightlight the // appropriate item if(!isnewaccount && edit_item) { tl->setSelected(edit_item, true); tl->setOpen(edit_item->parent(), true); tl->ensureItemVisible(edit_item); } enableItems(enable_accounting->isChecked()); }
void MaHost::inheritHost(MaHost *host) { MaHandler *hp; MaHandlerService *hs; MaLocation *lp; MaDir *dp; MaAlias *ap; // // Inherit key settings // httpVersion = host->httpVersion; #if BLD_FEATURE_KEEP_ALIVE keepAlive = host->keepAlive; keepAliveTimeout = host->keepAliveTimeout; maxKeepAlive = host->maxKeepAlive; #endif timeout = host->timeout; #if BLD_FEATURE_SESSION sessionTimeout = host->sessionTimeout; #endif #if BLD_FEATURE_ACCESS_LOG logHost = host->logHost; #endif setMimeTypes(host->mimeTypes); // // Inherit Aliases // ap = (MaAlias*) host->aliases.getFirst(); while (ap) { insertAlias(new MaAlias(ap)); ap = (MaAlias*) host->aliases.getNext(ap); } // // Inherit Directories // dp = (MaDir*) host->dirs.getFirst(); while (dp) { insertDir(new MaDir(this, dp)); dp = (MaDir*) host->dirs.getNext(dp); } // // Inherit Handlers // hp = (MaHandler*) host->handlers.getFirst(); while (hp) { hs = server->http->lookupHandlerService(hp->getName()); insertHandler(hs->newHandler(host->getServer(), this, hp->getExtensions())); hp = (MaHandler*) host->handlers.getNext(hp); } // // Inherit Locations // lp = (MaLocation*) host->locations.getFirst(); while (lp) { insertLocation(new MaLocation(lp)); lp = (MaLocation*) host->locations.getNext(lp); } }
void AccountingSelector::insertDir(QDir d, QListViewItem *root) { QListViewItem* tli = 0; // sanity check if(!d.exists() || !d.isReadable()) return; // set up filter d.setNameFilter("*.rst"); d.setFilter(QDir::Files); d.setSorting(QDir::Name); // read the list of files const QFileInfoList_qt3 *list = d.entryInfoList_qt3(); QFileInfoListIterator it( *list ); QFileInfo *fi; // traverse the list and insert into the widget while((fi = it.current())) { ++it; QString samename = fi->fileName(); QListViewItem *i = findByName(samename); // skip this file if already in tree if(i) continue; // check if this is the file we should mark QString name = fileNameToName(fi->baseName(true)); if(root) tli = new QListViewItem(root, name); else tli = new QListViewItem(tl, name); tli->setPixmap(0, pmfile); // check if this is the item we are searching for // (only in "Edit"-mode, not in "New"-mode if(!isnewaccount && !edit_s.isEmpty() && (edit_s == QString(fi->filePath()).right(edit_s.length()))) { edit_item = tli; } } // set up a filter for the directories d.setFilter(QDir::Dirs); d.setNameFilter("*"); const QFileInfoList_qt3 *dlist = d.entryInfoList_qt3(); QFileInfoListIterator dit(*dlist); while((fi = dit.current())) { // skip "." and ".." directories if(fi->fileName().left(1) != ".") { // convert to human-readable name QString name = fileNameToName(fi->fileName()); // if the tree already has an item with this name, // skip creation and use this one, otherwise // create a new entry QListViewItem *i = findByName(name); if(!i) { QListViewItem* item; if(root) item = new QListViewItem(root, name); else item = new QListViewItem(tl, name); item->setPixmap(0, pmfolder); insertDir(QDir(fi->filePath()), item); } else insertDir(QDir(fi->filePath()), i); } ++dit; } }