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(); }
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"; } }