r21054 by craig -

scribus-commit scribus-commit at lists.scribus.net
Fri Mar 4 19:34:42 UTC 2016


Author: craig
Date: Fri Mar  4 19:34:42 2016
New Revision: 21054

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=21054
Log:
Adjust zip capability to use directory structure of zip files, add ability to Resource Manager to download help files with checksum verification

Modified:
    trunk/Scribus/scribus/plugins/gettext/sxwim/sxwim.cpp
    trunk/Scribus/scribus/third_party/zip/scribus_zip.cpp
    trunk/Scribus/scribus/third_party/zip/scribus_zip.h
    trunk/Scribus/scribus/ui/helpbrowser.cpp
    trunk/Scribus/scribus/ui/resourcemanager.cpp
    trunk/Scribus/scribus/ui/resourcemanager.h

Modified: trunk/Scribus/scribus/plugins/gettext/sxwim/sxwim.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=21054&path=/trunk/Scribus/scribus/plugins/gettext/sxwim/sxwim.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/gettext/sxwim/sxwim.cpp	(original)
+++ trunk/Scribus/scribus/plugins/gettext/sxwim/sxwim.cpp	Fri Mar  4 19:34:42 2016
@@ -95,8 +95,8 @@
 	{
 		QTemporaryDir *dir = new QTemporaryDir();
 		QString baseDir = dir->path();
-		fun->extract(STYLE, baseDir);
-		fun->extract(CONTENT, baseDir);
+		fun->extract(STYLE, baseDir, ScZipHandler::SkipPaths);
+		fun->extract(CONTENT, baseDir, ScZipHandler::SkipPaths);
 		stylePath   = baseDir + "/" + STYLE;
 		contentPath = baseDir + "/" + CONTENT;
 		if ((!stylePath.isNull()) && (!contentPath.isNull()))

Modified: trunk/Scribus/scribus/third_party/zip/scribus_zip.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=21054&path=/trunk/Scribus/scribus/third_party/zip/scribus_zip.cpp
==============================================================================
--- trunk/Scribus/scribus/third_party/zip/scribus_zip.cpp	(original)
+++ trunk/Scribus/scribus/third_party/zip/scribus_zip.cpp	Fri Mar  4 19:34:42 2016
@@ -110,7 +110,7 @@
 	return retVal;
 }
 
-bool ScZipHandler::extract(QString name, QString path)
+bool ScZipHandler::extract(QString name, QString path, ExtractionOption eo)
 {
 	bool retVal = false;
 	if (m_uz != NULL)
@@ -126,7 +126,7 @@
 		if (!fi.isWritable())
 			outDir = ScPaths::getApplicationDataDir();
 		QDir::setCurrent(outDir);
-		UnZip::ErrorCode ec = m_uz->extractFile(name, outDir, UnZip::SkipPaths);
+		UnZip::ErrorCode ec = m_uz->extractFile(name, outDir, static_cast<UnZip::ExtractionOption>(eo));
 		retVal = (ec == UnZip::Ok);
 		QDir::setCurrent(pwd);
 	}

Modified: trunk/Scribus/scribus/third_party/zip/scribus_zip.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=21054&path=/trunk/Scribus/scribus/third_party/zip/scribus_zip.h
==============================================================================
--- trunk/Scribus/scribus/third_party/zip/scribus_zip.h	(original)
+++ trunk/Scribus/scribus/third_party/zip/scribus_zip.h	Fri Mar  4 19:34:42 2016
@@ -28,6 +28,14 @@
 class ScZipHandler
 {
 	public:
+		enum ExtractionOption
+		{
+			ExtractPaths = 0x0001,
+			SkipPaths = 0x0002,
+			VerifyOnly = 0x0004,
+			NoSilentDirectoryCreation = 0x0008
+		};
+
 		ScZipHandler(bool forWrite = false);
 		virtual ~ScZipHandler();
 		bool open(QString fileName);
@@ -35,7 +43,7 @@
 		bool contains(QString fileName);
 		bool read(QString fileName, QByteArray &buf);
 		bool write(QString dirName);
-		bool extract(QString name, QString path);
+		bool extract(QString name, QString path, ExtractionOption eo);
 		QStringList files();
 	private:
 		UnZip* m_uz;

Modified: trunk/Scribus/scribus/ui/helpbrowser.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=21054&path=/trunk/Scribus/scribus/ui/helpbrowser.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/helpbrowser.cpp	(original)
+++ trunk/Scribus/scribus/ui/helpbrowser.cpp	Fri Mar  4 19:34:42 2016
@@ -568,10 +568,10 @@
 			if (!language.isEmpty())
 			{
 				//Check if we can load, eg "de" when "de_CH" docs don't exist
-				QString baseHelpMenuFile3 = QDir::toNativeSeparators(baseHelpDir + language.left(2) + "/menu.xml");
-				QString altHelpMenuFile3 = QDir::toNativeSeparators(installHelpDir + language.left(2) + "/menu.xml");
-				QFileInfo fi3 = QFileInfo(baseHelpMenuFile3);
-				QFileInfo altfi3 = QFileInfo(altHelpMenuFile3);
+				QString baseHelpMenuFile3(QDir::toNativeSeparators(baseHelpDir + language.left(2) + "/menu.xml"));
+				QString altHelpMenuFile3(QDir::toNativeSeparators(installHelpDir + language.left(2) + "/menu.xml"));
+				QFileInfo fi3(baseHelpMenuFile3);
+				QFileInfo altfi3(altHelpMenuFile3);
 				if (fi3.exists())
 				{
 					language=language.left(2);

Modified: trunk/Scribus/scribus/ui/resourcemanager.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=21054&path=/trunk/Scribus/scribus/ui/resourcemanager.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/resourcemanager.cpp	(original)
+++ trunk/Scribus/scribus/ui/resourcemanager.cpp	Fri Mar  4 19:34:42 2016
@@ -19,11 +19,14 @@
 *                                                                         *
 ***************************************************************************/
 
+#include <QByteArray>
 #include <QComboBox>
+#include <QCryptographicHash>
 #include <QDebug>
 #include <QDomDocument>
 #include <QFile>
 #include <QFileInfo>
+#include <QList>
 #include <QMessageBox>
 #include <QString>
 #include <QStringList>
@@ -70,15 +73,20 @@
 	resourceCategories.insert(RM_FONTS, tr("Fonts"));
 	resourceCategories.insert(RM_HYPH, tr("Hyphenation Dictionaries"));
 	resourceCategories.insert(RM_SPELL, tr("Spelling Dictionaries"));
+	resourceCategories.insert(RM_HELP, tr("Help Manuals"));
 	//resourceCategories.insert(RM_TEMPLATES, tr("Templates"));
 	//resourceCategories.insert(RM_PROFILES, tr("Color Profiles"));
+//	resourceCategories.insert(RM_TEST, tr("Test"));
 
 	dataFiles.clear();
-	dataFiles.insert(RM_FONTS, "scribus_fonts_151.xml");
-	dataFiles.insert(RM_HYPH, "scribus_hyph_dicts_151.xml");
-	dataFiles.insert(RM_SPELL, "scribus_spell_dicts_151.xml");
+	dataFiles.insert(RM_FONTS, "scribus_fonts.xml");
+	dataFiles.insert(RM_HYPH, "scribus_hyph_dicts.xml");
+	dataFiles.insert(RM_SPELL, "scribus_spell_dicts.xml");
+	dataFiles.insert(RM_HELP, "scribus_help.xml");
 	//dataFiles.insert(RM_TEMPLATES, "scribus_templates.xml");
 	//dataFiles.insert(RM_PROFILES, "scribus_profiles.xml");
+//	dataFiles.insert(RM_TEST, "test.txt");
+
 
 	installedTableWidget->clear();
 	availableTableWidget->clear();
@@ -92,30 +100,6 @@
 		categoryComboBox->addItem(i.value(), i.key());
 	}
 	categoryChanged();
-}
-
-void ResourceManager::setFontCategory()
-{
-	updateInstalledFonts();
-	updateAvailableFonts();
-}
-
-void ResourceManager::setHyphCategory()
-{
-	updateInstalledHyph();
-	updateAvailableHyph();
-}
-
-void ResourceManager::setSpellCategory()
-{
-	updateInstalledSpell();
-	updateAvailableSpell();
-}
-
-void ResourceManager::setTemplatesCategory()
-{
-	updateInstalledTemplates();
-	updateAvailableTemplates();
 }
 
 void ResourceManager::updateInstalledFonts()
@@ -214,6 +198,19 @@
 
 void ResourceManager::updateInstalledTemplates()
 {
+	dictionaryMap.clear();
+	installedTableWidget->clear();
+}
+
+void ResourceManager::updateInstalledHelp()
+{
+	dictionaryMap.clear();
+	installedTableWidget->clear();
+}
+
+void ResourceManager::updateInstalledTest()
+{
+	dictionaryMap.clear();
 	installedTableWidget->clear();
 }
 
@@ -518,6 +515,108 @@
 	availableTableWidget->clear();
 }
 
+void ResourceManager::updateAvailableHelp()
+{
+	QFile dataFile(ScPaths::downloadDir() + dataFiles[RM_HELP]);
+	if (!dataFile.exists())
+		return;
+	dataFile.open(QIODevice::ReadOnly);
+	QTextStream ts(&dataFile);
+	ts.setCodec(QTextCodec::codecForName("UTF-8"));
+	QString errorMsg;
+	int eline;
+	int ecol;
+	QDomDocument doc( QString(dataFiles[RM_HELP]).remove(".xml") );
+	QString data(ts.readAll());
+	dataFile.close();
+	if ( !doc.setContent( data, &errorMsg, &eline, &ecol ))
+	{
+		if (data.toLower().contains("404 not found"))
+			qDebug()<<"File not found on server";
+		else
+			qDebug()<<"Could not open file"<<dataFile.fileName();
+		return;
+	}
+	helpList.clear();
+	QDomElement docElem = doc.documentElement();
+	QDomNode n = docElem.firstChild();
+	while( !n.isNull() )
+	{
+		QDomElement e = n.toElement();
+		if( !e.isNull() )
+		{
+			if (e.tagName()=="help")
+			{
+				if (e.hasAttribute("type") && e.hasAttribute("filetype"))
+				{
+					if (e.attribute("type")=="scribusofficial")
+					{
+						struct DownloadItem d;
+						d.desc=e.attribute("description");
+						d.download=false;
+						d.files=e.attribute("files");
+						d.extractfiles="";
+						d.url=e.attribute("URL");
+						d.version=e.attribute("version");
+						d.lang=e.attribute("language");
+						d.license=e.attribute("license");
+						d.filetype=e.attribute("filetype");
+						d.type=e.attribute("type");
+						QUrl url(d.url);
+						if (url.isValid() && !url.isEmpty() && !url.host().isEmpty())
+							helpList.append(d);
+					}
+				}
+			}
+		}
+		n = n.nextSibling();
+	}
+	availableTableWidget->clear();
+	if(helpList.isEmpty())
+	{
+		downloadButton->setEnabled(false);
+		return;
+	}
+	availableTableWidget->setRowCount(helpList.count());
+	availableTableWidget->setColumnCount(5);
+	availableTableWidget->setSortingEnabled(false);
+	int row=0;
+	foreach(DownloadItem d, helpList)
+	{
+		int column=0;
+		QTableWidgetItem *newItem1 = new QTableWidgetItem(d.desc);
+		newItem1->setFlags(newItem1->flags() & ~Qt::ItemIsEditable & ~Qt::ItemIsSelectable);
+		availableTableWidget->setItem(row, column++, newItem1);
+		QTableWidgetItem *newItem2 = new QTableWidgetItem(d.lang);
+		newItem2->setFlags(newItem1->flags());
+		availableTableWidget->setItem(row, column++, newItem2);
+		QTableWidgetItem *newItem3 = new QTableWidgetItem();
+		newItem3->setCheckState(dictionaryMap.contains(d.lang) ? Qt::Checked : Qt::Unchecked);
+		newItem3->setFlags(newItem1->flags() & ~Qt::ItemIsUserCheckable);
+		availableTableWidget->setItem(row, column++, newItem3);
+		QTableWidgetItem *newItem4 = new QTableWidgetItem(d.license);
+		availableTableWidget->setItem(row, column++, newItem4);
+		newItem4->setFlags(newItem4->flags() & ~Qt::ItemIsEditable);
+		QTableWidgetItem *newItem5 = new QTableWidgetItem();
+		newItem5->setFlags(newItem1->flags());
+		newItem5->setCheckState(d.download ? Qt::Checked : Qt::Unchecked);
+		availableTableWidget->setItem(row, column++, newItem5);
+		++row;
+	}
+	QStringList headers;
+	headers << tr("Description") << tr("Language") << tr("Installed") << tr("License") << tr("Download");
+	availableTableWidget->setHorizontalHeaderLabels(headers);
+	availableTableWidget->resizeColumnsToContents();
+	availableTableWidget->setSortingEnabled(true);
+	availableTableWidget->sortByColumn(0, Qt::AscendingOrder);
+	downloadButton->setEnabled(true);
+}
+
+void ResourceManager::updateAvailableTest()
+{
+	availableTableWidget->clear();
+}
+
 QString ResourceManager::findDestinationFolder()
 {
 	QString destinationFolder;
@@ -538,6 +637,12 @@
 			destinationFolder=ScPaths::getTempFileDir();
 			//TODO!!!! destinationFolder=ScPaths::getUserDictDir(true);
 			break;
+		case RM_HELP:
+			destinationFolder=ScPaths::getUserHelpFilesDir(true);
+			break;
+		case RM_TEST:
+			destinationFolder=ScPaths::downloadDir();
+			break;
 	}
 	return destinationFolder;
 }
@@ -548,16 +653,28 @@
 	switch (category)
 	{
 		case RM_FONTS:
-			setFontCategory();
+			updateInstalledFonts();
+			updateAvailableFonts();
 			break;
 		case RM_HYPH:
-			setHyphCategory();
+			updateInstalledHyph();
+			updateAvailableHyph();
 			break;
 		case RM_SPELL:
-			setSpellCategory();
+			updateInstalledSpell();
+			updateAvailableSpell();
 			break;
 		case RM_TEMPLATES:
-			setTemplatesCategory();
+			updateInstalledTemplates();
+			updateAvailableTemplates();
+			break;
+		case RM_HELP:
+			updateInstalledHelp();
+			updateAvailableHelp();
+			break;
+		case RM_TEST:
+			updateInstalledTest();
+			updateAvailableTest();
 			break;
 	}
 }
@@ -571,6 +688,8 @@
 	downloadProgressBar->setRange(0, dataFiles.count());
 	foreach(QString f, dataFiles)
 		ScQApp->dlManager()->addURL("http://services.scribus.net/"+f, true, ScPaths::downloadDir(), ScPaths::downloadDir());
+	foreach(QString f, dataFiles)
+		ScQApp->dlManager()->addURL("http://services.scribus.net/"+f+".sha256", true, ScPaths::downloadDir(), ScPaths::downloadDir());
 	connect(ScQApp->dlManager(), SIGNAL(finished()), this, SLOT(downloadListFinished()));
 	connect(ScQApp->dlManager(), SIGNAL(fileReceived(const QString&)), this, SLOT(updateProgressBar()));
 	connect(ScQApp->dlManager(), SIGNAL(fileFailed(const QString&)), this, SLOT(updateProgressBar()));
@@ -597,6 +716,18 @@
 			break;
 		case RM_TEMPLATES:
 			updateAvailableTemplates();
+			break;
+		case RM_HELP:
+			if (checkFileHash(ScPaths::downloadDir(), dataFiles[RM_HELP], dataFiles[RM_HELP] + ".sha256", QCryptographicHash::Sha256))
+				updateAvailableHelp();
+			else
+				qDebug()<<"Failure :(";
+			break;
+		case RM_TEST:
+			if (checkFileHash(ScPaths::downloadDir(), dataFiles[RM_TEST], dataFiles[RM_TEST] + ".sha256", QCryptographicHash::Sha256))
+				qDebug()<<"Success!!!";
+			else
+				qDebug()<<"Failure :(";
 			break;
 	}
 	updateAvailableButton->setEnabled(true);
@@ -613,7 +744,6 @@
 	categoryChanged();
 	downloadProgressBar->setValue(0);
 	downloadProgressBar->setVisible(false);
-//	dlLabel->setVisible(false);
 	downloadButton->setEnabled(true);
 
 	int category = categoryComboBox->currentData().toInt();
@@ -622,11 +752,9 @@
 		case RM_FONTS:
 			foreach(DownloadItem d, downloadList)
 			{
-				//qDebug()<<d.desc<<d.download<<d.files<<d.type;
 				if (d.filetype=="zip")
 				{
 					QString fn(ScPaths::getUserFontDir(true)+d.files);
-					//qDebug()<<fn;
 					QFile dledFile(fn);
 					QFileInfo fi(dledFile);
 					if (!dledFile.exists())
@@ -641,13 +769,12 @@
 							QStringList zipFileContents(fun->files());
 							QStringList extractFiles(d.extractfiles.split(";", QString::SkipEmptyParts));
 							QString toDir(ScPaths::getUserFontDir(false)+fi.baseName()+"/");
-							QDir d(ScPaths::getUserFontDir(false));
-							if (!d.exists(fi.baseName()))
-								d.mkdir(fi.baseName());
+							QDir dir(ScPaths::getUserFontDir(false));
+							if (!dir.exists(fi.baseName()))
+								dir.mkdir(fi.baseName());
 							foreach (QString f2e, zipFileContents)
 							{
-								//qDebug()<<"Unzipping"<<f2e<<"to"<<toDir;
-								fun->extract(f2e, toDir);
+								fun->extract(f2e, toDir, ScZipHandler::SkipPaths);
 							}
 						}
 						delete fun;
@@ -661,43 +788,90 @@
 			break;
 		case RM_HYPH:
 		case RM_SPELL:
-			int fileType = category == RM_HYPH ? ScPaths::Hyph : ScPaths::Spell;
-			foreach(DownloadItem d, downloadList)
 			{
-//				qDebug()<<d.desc<<d.download<<d.files<<d.type;
-				if (d.filetype=="zip")
-				{
-					QString fn(ScPaths::getUserDictDir(static_cast<ScPaths::DictType>(fileType), true)+d.files);
-//					qDebug()<<fn;
-					QFile dledFile(fn);
-					QFileInfo fi(dledFile);
-					if (!dledFile.exists())
-						qDebug()<<"File doesn\'t exist"<<fn;
-					else
-					{
-						ScZipHandler* fun = new ScZipHandler();
-						if (!fun->open(fn))
-							qDebug()<<"Zip file doesn\'t open"<<fn;
+				int fileType = category == RM_HYPH ? ScPaths::Hyph : ScPaths::Spell;
+				foreach(DownloadItem d, downloadList)
+				{
+					if (d.filetype=="zip")
+					{
+						QString fn(ScPaths::getUserDictDir(static_cast<ScPaths::DictType>(fileType), true)+d.files);
+						QFile dledFile(fn);
+						QFileInfo fi(dledFile);
+						if (!dledFile.exists())
+							qDebug()<<"File doesn\'t exist"<<fn;
 						else
 						{
-							QStringList zipContents(fun->files());
-							QStringList extractFiles(d.extractfiles.split(";", QString::SkipEmptyParts));
-//							QString toDir(ScPaths::getUserDictDir(false)+fi.baseName()+"/");
-							QString toDir(ScPaths::getUserDictDir(static_cast<ScPaths::DictType>(fileType), false));
-							QDir d(toDir);
-							if (d.exists())
+							ScZipHandler* fun = new ScZipHandler();
+							if (!fun->open(fn))
+								qDebug()<<"Zip file doesn\'t open"<<fn;
+							else
 							{
-								foreach (QString f2e, zipContents)
+								QStringList zipContents(fun->files());
+								QStringList extractFiles(d.extractfiles.split(";", QString::SkipEmptyParts));
+								QString toDir(ScPaths::getUserDictDir(static_cast<ScPaths::DictType>(fileType), false));
+								QDir dir(toDir);
+								if (dir.exists())
 								{
-									if (extractFiles.contains(f2e))
+									foreach (QString f2e, zipContents)
 									{
-//										qDebug()<<"Unzipping"<<f2e<<"to"<<toDir;
-										fun->extract(f2e, toDir);
+										if (extractFiles.contains(f2e))
+										{
+											fun->extract(f2e, toDir, ScZipHandler::SkipPaths);
+										}
 									}
 								}
 							}
+							delete fun;
 						}
-						delete fun;
+					}
+					if (d.filetype=="plain")
+					{
+						//do nothing as the file is alread in place from dl mgr
+					}
+				}
+			}
+			break;
+		case RM_HELP:
+			foreach(DownloadItem d, downloadList)
+			{
+				//qDebug()<<d.desc<<d.download<<d.files<<d.type;
+				if (d.filetype=="zip")
+				{
+					QString fn(ScPaths::getUserHelpFilesDir(true)+d.files);
+					//qDebug()<<fn;
+					QFile dledFile(fn);
+					QFileInfo fi(dledFile);
+					QFile dledFileSHA256(fn+".sha256");
+					QFileInfo fiSHA256(dledFileSHA256);
+					if (!dledFile.exists() || !dledFileSHA256.exists())
+						qDebug()<<"File doesn\'t exist"<<fn<<fn+".sha256";
+					else
+					{
+						if (checkFileHash(ScPaths::getUserHelpFilesDir(false), fi.fileName(), fiSHA256.fileName(), QCryptographicHash::Sha256))
+						{
+							ScZipHandler* fun = new ScZipHandler();
+							if (!fun->open(fn))
+								qDebug()<<"Zip file doesn\'t open"<<fn;
+							else
+							{
+								QStringList zipFileContents(fun->files());
+								QStringList extractFiles(d.extractfiles.split(";", QString::SkipEmptyParts));
+								QString toDir(ScPaths::getUserHelpFilesDir(false)+d.lang+"/");
+								QDir dir(ScPaths::getUserHelpFilesDir(false));
+								if (!dir.exists(d.lang))
+									dir.mkdir(d.lang);
+								foreach (QString f2e, zipFileContents)
+								{
+									//qDebug()<<"Unzipping"<<f2e<<"to"<<toDir;
+									fun->extract(f2e, toDir, ScZipHandler::ExtractPaths);
+								}
+							}
+							delete fun;
+						}
+						else
+							qDebug()<<"checksum failed for"<<fn + ".sha256";
+						dledFile.remove();
+						dledFileSHA256.remove();
 					}
 				}
 				if (d.filetype=="plain")
@@ -705,6 +879,7 @@
 					//do nothing as the file is alread in place from dl mgr
 				}
 			}
+			break;
 	}
 
 }
@@ -839,6 +1014,28 @@
 				}
 			}
 			break;
+		case RM_HELP:
+			foreach(DownloadItem d, helpList)
+			{
+//				qDebug()<<d.desc;
+				if (filesToDownload.contains(d.desc))
+				{
+					if (d.filetype=="zip")
+					{
+//						qDebug()<<"zip type:"<<d.url<<d.files;
+						QStringList plainURLs(d.files.split(";", QString::SkipEmptyParts));
+						foreach (QString s, plainURLs)
+						{
+							ScQApp->dlManager()->addURL(d.url+"/"+s, true, ScPaths::downloadDir(), destinationFolder);
+							ScQApp->dlManager()->addURL(d.url+"/"+s+".sha256", true, ScPaths::downloadDir(), destinationFolder);
+							dlCount+=2;
+						}
+						downloadList.append(d);
+						d.download=true;
+					}
+				}
+			}
+			break;
 		default:
 			break;
 	}
@@ -880,9 +1077,9 @@
 		{
 			QString destinationFolder=findDestinationFolder();
 			QFile dataFile(destinationFolder + licenceFileName);
-			QTextStream ts(&dataFile);
 			if (dataFile.exists())
 			{
+				QTextStream ts(&dataFile);
 				dataFile.open(QIODevice::ReadOnly);
 				data = ts.readAll();
 				dataFile.close();

Modified: trunk/Scribus/scribus/ui/resourcemanager.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=21054&path=/trunk/Scribus/scribus/ui/resourcemanager.h
==============================================================================
--- trunk/Scribus/scribus/ui/resourcemanager.h	(original)
+++ trunk/Scribus/scribus/ui/resourcemanager.h	Fri Mar  4 19:34:42 2016
@@ -44,7 +44,9 @@
 		RM_HYPH,
 		RM_PROFILES,
 		RM_SPELL,
-		RM_TEMPLATES
+		RM_TEMPLATES,
+		RM_HELP,
+		RM_TEST=99
 	};
 	public:
 		ResourceManager(QWidget* parent);
@@ -57,19 +59,19 @@
 		void languageChange();
 
 	protected:
-		void setFontCategory();
-		void setHyphCategory();
-		void setSpellCategory();
-		void setTemplatesCategory();
-
 		void updateInstalledFonts();
 		void updateInstalledHyph();
 		void updateInstalledSpell();
 		void updateInstalledTemplates();
+		void updateInstalledHelp();
+		void updateInstalledTest();
+
 		void updateAvailableFonts();
 		void updateAvailableHyph();
 		void updateAvailableSpell();
 		void updateAvailableTemplates();
+		void updateAvailableHelp();
+		void updateAvailableTest();
 
 		QString currentCategory;
 		QMap <int, QString> resourceCategories;
@@ -80,8 +82,10 @@
 		QList <DownloadItem> dictList;
 		QList <DownloadItem> fontList;
 		QList <DownloadItem> templateList;
+		QList <DownloadItem> helpList;
 		QList <DownloadItem> profileList;
 		QList <DownloadItem> downloadList;
+		QList <DownloadItem> testList;
 		QString affixFileName(QStringList files);
 		QString dictFileName(QStringList files);
 		QString findDestinationFolder();




More information about the scribus-commit mailing list