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

📄 afiletypes.cpp

📁 爱可视605看PDF程式源代码, 基于APDF
💻 CPP
字号:
#include "afiletypes.h"//#include <qtopia/applnk.h>//#include <qtopia/mimetype.h>//#include <qtopia/resource.h>#include <qfile.h>#include <qfileinfo.h>#include <qpixmap.h>#include <qstringlist.h>#include <qtextstream.h>#include <stdlib.h>#include "docicons.cpp"AFileTypes::AFileTypes()	: QDict<AFileType>(17, FALSE)	, icons(8, FALSE) {	//if(!load(QString(getenv("HOME"))+ "/filetypes"))			// first look in home	load(QString(getenv("QPEDIR"))+ "/filetypes");			// and fall back to ADIR if necessary	icons.insert("audio",            new QPixmap(audio_xpm));	icons.insert("documents_closed", new QPixmap(documents_closed_xpm));	icons.insert("documents_open",   new QPixmap(documents_open_xpm));	icons.insert("drive",            new QPixmap(drive_xpm));	icons.insert("folder_closed",    new QPixmap(folder_closed_xpm));	icons.insert("folder_open",      new QPixmap(folder_open_xpm));	icons.insert("hypertext",        new QPixmap(hypertext_xpm));	icons.insert("image",            new QPixmap(image_xpm));	icons.insert("music_closed",     new QPixmap(music_closed_xpm));	icons.insert("music_open",       new QPixmap(music_open_xpm));	icons.insert("photo_closed",     new QPixmap(photo_closed_xpm));	icons.insert("photo_open",       new QPixmap(photo_open_xpm));	icons.insert("playlist",         new QPixmap(playlist_xpm));	icons.insert("text",             new QPixmap(text_xpm));	icons.insert("unknown",          new QPixmap(unknown_xpm));	icons.insert("usb",              new QPixmap(usb_xpm));	icons.insert("video_closed",     new QPixmap(video_closed_xpm));	icons.insert("video_open",       new QPixmap(video_open_xpm));	icons.insert("video",            new QPixmap(video_xpm));}AFileType* AFileTypes::find(const QString &p_name) {	QString name= p_name;	QString suffix= name.right(name.length() - name.findRev('.') - 1);	if(suffix == "desktop") {		name= name.left(name.findRev('.'));		suffix= name.right(name.length() - name.findRev('.') - 1);	}	AFileType *res= QDict<AFileType>::find(suffix);	if(res == NULL) {		if(QFileInfo(p_name).isDir()) {			if(p_name.startsWith("/dev/shm/storage/") && p_name.length() == 18) {				res= QDict<AFileType>::find("drive");			} else {				res= QDict<AFileType>::find("folder");			}		} else {/*			MimeType m(name);			const AppLnk *app= m.application();			if(app) {				res= new AFileType;				res->editor= app->exec();				res->iconname= app->icon();				insert(suffix, res);			} else {*/				res= QDict<AFileType>::find("unknown");//			}		}	}	return res;}QString AFileTypes::findApp(const QString &name) {	QString res;		AFileType *ftype= find(name);	if(ftype != NULL)		res= ftype->editor;	/*	if(res.isEmpty()) {		MimeType m(name);		const AppLnk *applnk= m.application();		if(applnk != NULL)			res= applnk->exec();	}*/	return res;}QPixmap* AFileTypes::findIcon(const QString &name) {	QPixmap *res= NULL;	AFileType *ftype= find(name);		if(ftype!= NULL && ftype->iconname != "unknown")		res= getIcon(ftype->iconname);	if(res != NULL) return res;		res= getIcon(name);	if(res != NULL) return res;	/*	MimeType m(name);	QPixmap tmp(m.pixmap());	if(!tmp.isNull()) {		res= new QPixmap(tmp);		icons.insert(ftype != NULL ? ftype->iconname: name, res);		return res;	}	*/	res= getIcon("unknown");	return res;}QPixmap* AFileTypes::getIcon(const QString &name) {	QPixmap *res= icons.find(name);	/*	if(res == NULL) {		QPixmap tmp(Resource::loadPixmap(QString("docicons/") + name));		if(!tmp.isNull()) {			res= new QPixmap(tmp);			icons.insert(name, res);		}	}*/	return res;}// we actually should be more forgiving about the formatbool AFileTypes::load(const char *path) {	QFile in(path);	if(in.open(IO_ReadOnly| IO_Translate)) {		QTextStream tin(&in); 		QString line;		while(!(line= tin.readLine()).isNull()) {			if(line.startsWith("#"))				continue;					QStringList cols= QStringList::split('\t', line);			if(cols.count() > 1) {				AFileType *ftype= new AFileType;				ftype->iconname= cols[1];				if(cols.count()> 2)					ftype->editor= cols[2];				QString suffix= cols[0];				insert(suffix, ftype);			}		}		in.close();		return TRUE;	}	return FALSE;}QString	AFileTypes::createFilterFor(const QString &app) {	QString suffixes;		for(QDictIterator<AFileType> it(*this); it.current(); ++it) {		if((*it).editor== app) {			suffixes+= "*."+ it.currentKey()+ ";";			suffixes+= "*."+ it.currentKey().upper()+ ";";		}	}	suffixes= suffixes.left(suffixes.length()- 1);	return suffixes; }AFileTypes *AFileTypes::instance= NULL;

⌨️ 快捷键说明

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