Example #1
0
void DataManager::loadQuantities(const QDir& data_dir) {
	if( !data_dir.exists() ) {
		qWarning( "Error: incorrect data path.\nNothing will be loaded." );
		return;
	}

	QFile order_file(data_dir.path() + "/order");
	order_file.open(QIODevice::ReadOnly | QIODevice::Text);
	if( !order_file.exists() ) {
		qWarning("Error: order file is missing.\nNothing will be loaded.");
		return;
	}

	QDir quantities_dir( data_dir.path() + "/quantities",  QString("*.xml"), QDir::Name, QDir::Files );
	QDir icons_dir     ( data_dir.path() + "/icons",       QString("*.png"), QDir::Name, QDir::Files );

	//Read order file
	QString line;
	while( !order_file.atEnd() ) {
		line = order_file.readLine();
		line.remove('\n');

		//Try to open icon
		QPixmap icon;
		QString icon_path = icons_dir.path() + '/' + line + ".png";
		if( !icon.load(icon_path) ) {
			qWarning( "Icon for \"%s\" was not found.", qPrintable(line) );
			icon.load(":/icon/no_icon");
		}

		//Try to open XML file.
		QFile file( quantities_dir.path() + '/' + line + ".xml" );
		if(  !file.open(QIODevice::ReadOnly | QIODevice::Text)  ) {
			qWarning( "Error:Cannot open quantity %s.", qPrintable(file.fileName()) );
			continue;
		}

		//Try to load XML file.
		QDomDocument document;
		QString err_s;
		int err_l = 0, err_c = 0;
		if(  !document.setContent(&file, false, &err_s, &err_l, &err_c)  ) {
			qWarning(  "In quantity \"%s:\" At line %i, column %i. %s", qPrintable(file.fileName()), err_l, err_c, qPrintable(err_s)  );
			continue;
		}

		quantities.push_back( loadQuantity( document, icon ) );
	}
	order_file.close();
}
Example #2
0
QString VM_Wizard_Window::Find_OS_Icon( const QString os_name )
{
	if( os_name.isEmpty() )
	{
		AQError( "QString VM_Wizard_Window::Find_OS_Icon( const QString os_name )",
				 "os_name is Empty!" );
		return "";
	}
	else
	{
		// Find all os icons
		QDir icons_dir( QDir::toNativeSeparators(Settings.value("AQEMU_Data_Folder","").toString() + "/os_icons/") );
		QFileInfoList all_os_icons = icons_dir.entryInfoList( QStringList("*.png"), QDir::Files, QDir::Unsorted );
		
		QRegExp rex;
		rex.setPatternSyntax( QRegExp::Wildcard );
		rex.setCaseSensitivity( Qt::CaseInsensitive );
		
		for( int i = 0; i < all_os_icons.count(); i++ )
		{
			rex.setPattern( "*" + all_os_icons[i].baseName() + "*" );
			
			if( rex.exactMatch(os_name) )
			{
				return all_os_icons[ i ].absoluteFilePath();
			}
		}
		
		// select os family...
		
		// Linux
		rex.setPattern( "*linux*" );
		if( rex.exactMatch(os_name) )
		{
			return ":/images/default_linux.png";
		}
		
		// Windows
		rex.setPattern( "*windows*" );
		if( rex.exactMatch(os_name) )
		{
			return ":/images/default_windows.png";
		}
		
		return ":/images/other.png";
	}
}