Index: scpaths.cpp
===================================================================
RCS file: /cvs/Scribus/scribus/Attic/scpaths.cpp,v
retrieving revision 1.1.2.5
diff -u -r1.1.2.5 scpaths.cpp
--- scpaths.cpp	6 Jul 2005 20:07:15 -0000	1.1.2.5
+++ scpaths.cpp	26 Aug 2005 15:05:00 -0000
@@ -1,15 +1,20 @@
 #include "scpaths.h"
 #include <qapplication.h>
+#include <qdir.h>
 
 #include "scconfig.h"
 
-
 // On Qt/Mac we need CoreFoundation to discover the location
 // of the app bundle.
 #ifdef BUILD_MAC_BUNDLE
 #include <CoreFoundation/CoreFoundation.h>
 #endif
 
+#ifdef _WIN32
+#include <windows.h>
+#include <shlobj.h>
+#endif
+
 // Init the singleton's "self" address to NULL
 ScPaths* ScPaths::m_instance = NULL;
 
@@ -90,7 +95,17 @@
 	qDebug(QString("scpaths: plugin dir=%1").arg(m_pluginDir));
 	qDebug(QString("scpaths: qtplugins=%1").arg(QApplication::libraryPaths().join(":")));
 */
-#endif // defined(BUILD_MAC_BUNDLE)
+#elif defined(_WIN32)
+	QString appPath = qApp->applicationDirPath();
+	m_shareDir = strdup(QString("%1/share/").arg(appPath));
+	m_docDir = strdup(QString("%1/share/doc/").arg(appPath));
+	m_iconDir = strdup(QString("%1/share/icons/").arg(appPath));
+	m_sampleScriptDir = strdup(QString("%1/share/samples/").arg(appPath));
+	m_scriptDir = strdup(QString("%1/share/scripts/").arg(appPath));
+	m_templateDir = strdup(QString("%1/share/templates/").arg(appPath));
+	m_libDir = strdup(QString("%1/libs/").arg(appPath));
+	m_pluginDir = strdup(QString("%1/plugins/").arg(appPath));
+#endif
 }
 
 ScPaths::~ScPaths() {};
@@ -134,3 +149,67 @@
 {
 	return m_shareDir;
 }
+
+QStringList ScPaths::getSystemFontDirs(void)
+{
+	QStringList fontDirs;
+#ifdef BUILD_MAC_BUNDLE
+	fontDirs.append(QDir::homeDirPath() + "/Library/Fonts/");
+	fontDirs.append("/Library/Fonts/");
+	fontDirs.append("/Network/Library/Fonts/");
+	fontDirs.append("/System/Library/Fonts/");
+#else if defined(_WIN32)
+	fontDirs.append( getSpecialDir(CSIDL_FONTS) );
+#endif
+	return fontDirs;
+}
+
+QStringList ScPaths::getSystemProfilesDirs(void)
+{
+	QStringList iccProfDirs;
+#ifdef BUILD_MAC_BUNDLE
+	iccProfDirs.append(QDir::homeDirPath()+"/Library/ColorSync/Profiles/");
+	iccProfDirs.append("/System/Library/ColorSync/Profiles/");
+	iccProfDirs.append("/Library/ColorSync/Profiles/");
+#elif defined(Q_WS_X11)
+	iccProfDirs.append(QDir::homeDirPath()+"/color/icc/");
+	iccProfDirs.append(QDir::homeDirPath()+"/.color/icc/");
+	iccProfDirs.append("/usr/share/color/icc/");
+#elif defined(_WIN32)
+	// On Windows it's more complicated, profiles location depends on OS version
+	char sysDir[MAX_PATH + 1];
+	OSVERSIONINFO osVersion;
+	ZeroMemory( &osVersion, sizeof(OSVERSIONINFO));
+	osVersion.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); // Necessary for GetVersionEx to succeed
+	GetVersionEx(&osVersion);  // Get Windows version infos
+	GetSystemDirectory( sysDir, MAX_PATH ); // getSpecialDir(CSIDL_SYSTEM) fails on Win9x
+	QString winSysDir = QString(sysDir).replace('\\','/');
+	if( osVersion.dwPlatformId == VER_PLATFORM_WIN32_NT	) // Windows NT/2k/XP
+	{
+		if( osVersion.dwMajorVersion >= 5 ) // for 2k and XP dwMajorVersion == 5 
+			iccProfDirs.append( winSysDir + "/Spool/Drivers/Color/");
+	}
+	else if( osVersion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ) // Windows 9x/Me 
+	{
+		if( osVersion.dwMajorVersion >= 4 && osVersion.dwMinorVersion >= 10) // Win98 or WinMe
+			iccProfDirs.append( winSysDir + "/Color/");
+	}
+#endif
+	return iccProfDirs;
+}
+
+QString ScPaths::getSpecialDir(int folder)
+{
+	QString qstr;
+#if defined(_WIN32)
+	char dir[256];
+	SHGetSpecialFolderPath(NULL, dir, folder , false);
+	qstr = dir;
+	if( !qstr.endsWith("\\") )
+		qstr += "\\";
+	qstr.replace( '\\', '/' );
+#else
+	Q_ASSERT(false);
+#endif
+	return qstr;
+}
Index: scpaths.h
===================================================================
RCS file: /cvs/Scribus/scribus/Attic/scpaths.h,v
retrieving revision 1.1.2.3
diff -u -r1.1.2.3 scpaths.h
--- scpaths.h	10 Aug 2005 07:14:56 -0000	1.1.2.3
+++ scpaths.h	26 Aug 2005 16:48:27 -0000
@@ -38,12 +38,20 @@
 	/** @brief Return path to the Scribus share directory */
 	const QString& shareDir() const;
 
+	/** @brief Return paths to system font directories*/
+	static QStringList getSystemFontDirs(void);
+	/** @brief Return paths to system icc profiles directories*/
+	static QStringList getSystemProfilesDirs(void);
+
 protected:
 	/** @brief Constructor. Use ScPaths::instance() instead. */
 	ScPaths();
 	/** @brief Destructor. Use ScPaths::destroy() instead. */
 	~ScPaths();
 
+	/** @brief Return path to a special directory, should be used only on Windows*/
+	static QString getSpecialDir(int folder);
+
 	/** @brief Pointer to existing instance of ScPaths, if any. */
 	static ScPaths* m_instance;
 
