⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hunter.cpp

📁 sip 开源代码 源于novell sip 开源代码 源于novell
💻 CPP
字号:
/* * Copyright (C) 2004-2005 Savoir-Faire Linux inc. * Author: Jean-Philippe Barrette-LaPierre *            (jean-philippe.barrette-lapierre@savoirfairelinux.com) * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2, * or (at your option) any later version. * * This is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with dpkg; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <iostream>#include <stdexcept>#include "Hunter.hpp"#include "WidgetBuilder.hpp"#include "WidgetBuilderFactory.hpp"#include "config.h"#include "qtutils.hpp"#define DEFAULT_DIRECTORY "skins/"#define fill_config_str(name, value) \  (_config.addConfigTreeItem(section, Conf::ConfigTreeItem(std::string(name), std::string(value), type_str)))#define fill_config_int(name, value) \  (_config.addConfigTreeItem(section, Conf::ConfigTreeItem(std::string(name), std::string(value), type_int)))taxidermy::Hunter::Hunter()  : mSkinsDirectory(DEFAULT_DIRECTORY){  qtutils::addFilePath(mSkinsDirectory.absPath());}taxidermy::Hunter::Hunter(const QString &directory)  : mSkinsDirectory(directory){  qtutils::addFilePath(mSkinsDirectory.absPath());}taxidermy::Hunter::Hunter(const QDir &directory)  : mSkinsDirectory(directory){  qtutils::addFilePath(mSkinsDirectory.absPath());}QStringListtaxidermy::Hunter::getSkinNames() {  QStringList skins;  mSkinsDirectory.setNameFilter("*.ini");  QStringList list = mSkinsDirectory.entryList(QDir::Files);  for(QStringList::Iterator it = list.begin(); it != list.end(); ++it) {    QString skin(*it);    skin = skin.left(skin.length() - 4);    skins.push_back(skin);  }  return skins;}QStringtaxidermy::Hunter::getSkinFile(const QString &name){  return mSkinsDirectory.absPath() + "/" + name + ".ini";}taxidermy::Taxidermisttaxidermy::Hunter::getTaxidermist(const QString &skinName){  taxidermy::Taxidermist skin(skinName);  qtutils::addFilePath(mSkinsDirectory.absFilePath(skinName));  load(&skin);    return skin;}// void// taxidermy::Hunter::load(taxidermy::Taxidermist *skin) // {//   load(mSkinsDirectory, skin);// }voidtaxidermy::Hunter::load(taxidermy::Taxidermist *skin) {  Conf::ConfigTree config;  config.populateFromFile(getSkinFile(skin->name()));  Conf::TokenList tree = config.getSectionNames();  for(Conf::TokenList::iterator it = tree.begin(); it != tree.end(); it++) {    Conf::ValuesMap values = config.getSection(*it);    Conf::ValuesMap::iterator type = values.find("type");    if(type == values.end()) {      std::cerr << "Widget named \"" << *it << "\" don't have a type.\n";    }    else {      QMap< QString, QString > v;      WidgetBuilder *builder = 	taxidermy::WidgetBuilderFactory::instance().create(type->second);      if(builder != NULL) {	for(Conf::ValuesMap::iterator pos = values.begin();	    pos != values.end();	    pos++) {	  v.insert(pos->first, pos->second);	}	builder->load(v);	skin->add(*it, builder);      }    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -