示例#1
0
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());
}
示例#2
0
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);
	}
}
示例#3
0
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;
  }
}