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

📄 rs_patternlist.cpp

📁 qcad2.05可用于windows和linux的源码
💻 CPP
字号:
/****************************************************************************** $Id: rs_patternlist.cpp 1938 2004-12-09 23:09:53Z andrew $**** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.**** This file is part of the qcadlib Library project.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid qcadlib Professional Edition licenses may use ** this file in accordance with the qcadlib Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.ribbonsoft.com for further details.**** Contact info@ribbonsoft.com if any conditions of this licensing are** not clear to you.************************************************************************/#include "rs_patternlist.h"#include "rs_fileinfo.h"#include "rs_stringlist.h"#include "rs_system.h"RS_PatternList* RS_PatternList::uniqueInstance = NULL;/** * Default constructor. */RS_PatternList::RS_PatternList() {    patterns.setAutoDelete(true);    //patternListListeners.setAutoDelete(false);}/** * Initializes the pattern list by creating empty RS_Pattern  * objects, one for each pattern that could be found. */void RS_PatternList::init() {    RS_DEBUG->print("RS_PatternList::initPatterns");    RS_StringList list = RS_SYSTEM->getPatternList();    RS_Pattern* pattern;	patterns.clear();    for (RS_StringList::Iterator it = list.begin();            it != list.end(); ++it) {        RS_DEBUG->print("pattern: %s:", (*it).latin1());        RS_FileInfo fi(*it);        pattern = new RS_Pattern(fi.baseName().lower());        patterns.append(pattern);        RS_DEBUG->print("base: %s", pattern->getFileName().latin1());    }}/** * Removes all patterns in the patternlist. */void RS_PatternList::clearPatterns() {    patterns.clear();}/** * Removes a pattern from the list. * Listeners are notified after the pattern was removed from  * the list but before it gets deleted. */void RS_PatternList::removePattern(RS_Pattern* pattern) {    RS_DEBUG->print("RS_PatternList::removePattern()");    // here the pattern is removed from the list but not deleted    patterns.remove(pattern);    //for (uint i=0; i<patternListListeners.count(); ++i) {    //    RS_PatternListListener* l = patternListListeners.at(i);    //    l->patternRemoved(pattern);    //}}/** * @return Pointer to the pattern with the given name or * \p NULL if no such pattern was found. The pattern will be loaded into * memory if it's not already. */RS_Pattern* RS_PatternList::requestPattern(const RS_String& name) {    RS_DEBUG->print("RS_PatternList::requestPattern %s", name.latin1());    RS_String name2 = name.lower();    RS_Pattern* foundPattern = NULL;    RS_DEBUG->print("name2: %s", name2.latin1());    // Search our list of available patterns:    for (RS_Pattern* p=patterns.first();            p!=NULL;            p=patterns.next()) {        if (p->getFileName()==name2) {            // Make sure this pattern is loaded into memory:            p->loadPattern();            foundPattern = p;            break;        }    }    //if (foundPattern==NULL && name!="standard") {    //    foundPattern = requestPattern("standard");    //}    return foundPattern;}	bool RS_PatternList::contains(const RS_String& name) {    RS_String name2 = name.lower();    // Search our list of available patterns:    for (RS_Pattern* p=patterns.first();            p!=NULL;            p=patterns.next()) {        if (p->getFileName()==name2) {			return true;		}	}	return false;}/** * Dumps the patterns to stdout. */std::ostream& operator << (std::ostream& os, RS_PatternList& l) {    os << "Patternlist: \n";    for (RS_Pattern* p=l.firstPattern();            p!=NULL;            p=l.nextPattern()) {        os << *p << "\n";    }    return os;}

⌨️ 快捷键说明

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