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

📄 hideproj.cpp

📁 Linux下的C、C++ IDE
💻 CPP
字号:
#include "hideproj.h"#include "langdef.h"#include <qfileinfo.h>#include <qdir.h>#include <fstream>#include <cstring>#include <cstdlib>#define PROJ_NAME		"PROJECT="#define PROJ_ROOT		"ROOT="#define PROJ_LANG		"LANG="#define PROJ_COPT		"COPT="#define PROJ_BOPT		"BOPT="#define PROJ_AUTH		"AUTH="#define PROJ_AUTOMAKE		"AUTOMAKE="#define PROJ_FILES_START	"[FILES]"#define PROJ_FILES_END		"[/FILES]"#define PROJ_GETSTRVAL(l, var) \strtok(l, "="); \if ((p = strtok(NULL, "\n"))) \	var = p#define PROJ_GETINTVAL(l, var) \strtok(l, "="); \if ((p = strtok(NULL, "\n"))) \	var = atoi(p)	bool HideProj::create(QString n, QString pr, QString l){	QFileInfo fi;	QDir dir;		fi.setFile((QString) pr + FILE_SEP + name + FILE_SEP + name + HIDE_PROJ_EXT);	if (fi.exists())		return false;	clear();	name = n;	projroot = pr + FILE_SEP + name;	lang = l;	dir.mkdir(projroot);		save();				return true;}bool HideProj::addFile(QString path){	for (unsigned i=0; i < listFiles.count(); i++)	{		if (listFiles[i] == path)			return false;	}		listFiles += path;		return true;}bool HideProj::removeFile(QString path){	for (unsigned i=0; i < listFiles.count(); i++)	{		if (listFiles[i] == path)		{			listFiles.erase(listFiles.at(i));						return true;		}	}		return false;}bool HideProj::save(){	std::ofstream out;	QString fpath = (QString) projroot + FILE_SEP + name + HIDE_PROJ_EXT;		out.open((const char *) fpath);		if (!out)		return false;	out << PROJ_NAME << (const char *) name << '\n';	out << PROJ_ROOT << (const char *) projroot << '\n';	out << PROJ_LANG << (const char *) lang << '\n';		if (copt != "")		out << PROJ_COPT << (const char *) copt << '\n';	if (bopt != "")		out << PROJ_BOPT << (const char *) bopt << '\n';	if ((lang == LANG_C) || (lang == LANG_CPP))		out << PROJ_AUTOMAKE << bAutoMake << '\n';	if (author != "")		out << PROJ_AUTH << (const char *) author << '\n';	if (!listFiles.isEmpty())	{		out << PROJ_FILES_START << '\n';				for (unsigned i=0; i < listFiles.count(); i++)			out << (const char *) listFiles[i] << '\n';					out << PROJ_FILES_END << '\n';	}				out.close();		return true;}bool HideProj::load(QString path){	std::ifstream in((const char *) path);	char line[2056], *p = NULL;		if (!in)		return false;	clear(); 			while (!in.eof())	{		in.getline(line, sizeof(line));				if (in.eof())			break;					if (strstr(line, PROJ_NAME))		{			PROJ_GETSTRVAL(line, name);		}		else		if (strstr(line, PROJ_ROOT))		{			PROJ_GETSTRVAL(line, projroot);		}		else		if (strstr(line, PROJ_LANG))		{			PROJ_GETSTRVAL(line, lang);		}		else		if (strstr(line, PROJ_COPT))		{			PROJ_GETSTRVAL(line, copt);		}		else		if (strstr(line, PROJ_BOPT))		{			PROJ_GETSTRVAL(line, bopt);		}		else		if (strstr(line, PROJ_AUTH))		{			PROJ_GETSTRVAL(line, author);		}		else		if (strstr(line, PROJ_AUTOMAKE))		{			PROJ_GETINTVAL(line, bAutoMake);		}		else		if (strstr(line, PROJ_FILES_START))		{			while (!in.eof())			{			 	in.getline(line, sizeof(line));			 				 	if (in.eof() || strstr(line, PROJ_FILES_END))			 		break;			 					 	listFiles += line;			}		}					}		in.close();			return true;}

⌨️ 快捷键说明

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