--- a/src/application.cpp
+++ b/src/application.cpp
@@ -131,14 +131,14 @@
 
 	Util::InstallTranslator ("", "qt", "qt4");
 
-	QDir home = QDir::home ();
-	if (!home.exists (".leechcraft"))
-		if (!home.mkdir (".leechcraft"))
+	QDir home = /*QDir::home ();*/ QApplication::applicationDirPath();
+	if (!home.exists ("UserData"))
+		if (!home.mkdir ("UserData"))
 		{
 			QMessageBox::critical (0,
 					tr ("LeechCraft"),
-					QDir::toNativeSeparators (tr ("Could not create path %1/.leechcraft")
-						.arg (QDir::homePath ())));
+					QDir::toNativeSeparators (tr ("Could not create path %1/UserData")
+					.arg (QApplication::applicationDirPath())));
 			std::exit (EPaths);
 		}
 
--- a/src/debugmessagehandler.cpp
+++ b/src/debugmessagehandler.cpp
@@ -23,6 +23,7 @@
 #include <execinfo.h>
 #endif
 #include <QThread>
+#include <QCoreApplication>
 #include <QDateTime>
 #include <QDir>
 
@@ -33,8 +34,8 @@
 {
 	void Write (QtMsgType type, const char *message, bool bt)
 	{
-		QString name (QDir::homePath ());
-		name += ("/.leechcraft/");
+		QString name (/*QDir::homePath ()*/ QCoreApplication::applicationDirPath());
+		name += ("/UserData/");
 		switch (type)
 		{
 			case QtDebugMsg:
--- a/src/handlerchoicedialog.cpp
+++ b/src/handlerchoicedialog.cpp
@@ -203,8 +203,8 @@
 		else
 			result = Ui_.LocationsBox_->currentText ();
 
-		QSettings settings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName ());
+		QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+			QSettings::IniFormat);
 		settings.setValue ("PreviousEntitySavePath", result);
 
 		settings.beginGroup ("SavePaths");
@@ -225,8 +225,8 @@
 
 	QStringList HandlerChoiceDialog::GetPluginSavePaths (const QString& plugin) const
 	{
-		QSettings settings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName ());
+		QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+			QSettings::IniFormat);
 		settings.beginGroup ("SavePaths");
 		QStringList pluginTexts = settings.value (plugin).toStringList ();
 		settings.endGroup ();
@@ -257,8 +257,8 @@
 		QString plugin = checked->property ("PluginName").toString ();
 		QStringList pluginTexts = GetPluginSavePaths (plugin).mid (0, 7);
 
-		QSettings settings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName ());
+		QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+			QSettings::IniFormat);
 		settings.beginGroup ("SavePaths");
 		QStringList otherPlugins = settings.childKeys ();
 		settings.endGroup ();
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -99,7 +99,8 @@
             {
                 PluginsActionsBar_ = new QToolBar (tr ("Actions"), this);
 				Qt::ToolBarArea area;
-				QSettings settings ("Deviant", "Leechcraft");
+				QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+					QSettings::IniFormat);
 				settings.beginGroup ("Window");
 				area = static_cast<Qt::ToolBarArea> (settings
 						.value ("PluginsArea", 1).toInt ());
@@ -295,7 +296,8 @@
 
 void LeechCraft::MainWindow::ReadSettings ()
 {
-	QSettings settings ("Deviant", "Leechcraft");
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+		QSettings::IniFormat);
 	settings.beginGroup ("geometry");
 	resize (settings.value ("size", QSize  (750, 550)).toSize ());
 	move   (settings.value ("pos",  QPoint (10, 10)).toPoint ());
@@ -310,7 +312,8 @@
 
 void LeechCraft::MainWindow::WriteSettings ()
 {
-	QSettings settings ("Deviant", "Leechcraft");
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+		QSettings::IniFormat);
 	settings.beginGroup ("geometry");
 	settings.setValue ("size", size ());
 	settings.setValue ("pos",  pos ());
--- a/src/networkaccessmanager.cpp
+++ b/src/networkaccessmanager.cpp
@@ -65,8 +65,9 @@
 	CustomCookieJar *jar = new CustomCookieJar (this);
 	setCookieJar (jar);
 	handleFilterTrackingCookies ();
-	QFile file (QDir::homePath () +
-			"/.leechcraft/core/cookies.txt");
+	//QFile file (QDir::homePath () +
+	//		"/.leechcraft/core/cookies.txt");
+	QFile file (QApplication::applicationDirPath() + "/UserData/core/cookies.txt");
 	if (file.open (QIODevice::ReadOnly))
 		jar->Load (file.readAll ());
 	else
@@ -182,8 +183,8 @@
 void LeechCraft::NetworkAccessManager::handleSslErrors (QNetworkReply *reply,
 		const QList<QSslError>& errors)
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName ());
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+		QSettings::IniFormat);
 	settings.beginGroup ("SSL exceptions");
 	QStringList keys = settings.allKeys ();
 	if (keys.contains (reply->url ().toString ())) 
@@ -228,8 +229,8 @@
 
 void LeechCraft::NetworkAccessManager::saveCookies () const
 {
-	QDir dir = QDir::home ();
-	dir.cd (".leechcraft");
+	QDir dir = QApplication::applicationDirPath();
+	dir.cd ("UserData");
 	if (!dir.exists ("core") &&
 			!dir.mkdir ("core"))
 	{
@@ -237,8 +238,9 @@
 		return;
 	}
 
-	QFile file (QDir::homePath () +
-			"/.leechcraft/core/cookies.txt");
+	//QFile file (QDir::homePath () +
+	//		"/.leechcraft/core/cookies.txt");
+	QFile file (QApplication::applicationDirPath() + "/UserData/core/cookies.txt");
 	if (!file.open (QIODevice::WriteOnly | QIODevice::Truncate))
 	{
 		emit error (tr ("Could not save cookies, error opening cookie file."));
--- a/src/networkdiskcache.cpp
+++ b/src/networkdiskcache.cpp
@@ -17,6 +17,7 @@
  **********************************************************************/
 
 #include "networkdiskcache.h"
+#include <QCoreApplication>
 #include <QtDebug>
 #include <QDateTime>
 #include <QDir>
@@ -27,7 +28,8 @@
 	NetworkDiskCache::NetworkDiskCache (QObject *parent)
 	: QNetworkDiskCache (parent)
 	{
-		setCacheDirectory (QDir::homePath () + "/.leechcraft/core/cache");
+		/*setCacheDirectory (QDir::homePath () + "/.leechcraft/core/cache");*/
+		setCacheDirectory(QCoreApplication::applicationDirPath() + "/UserData/core/cache");
 
 		XmlSettingsManager::Instance ()->RegisterObject ("CacheSize",
 				this, "handleCacheSize");
--- a/src/plugininterface/util.cpp
+++ b/src/plugininterface/util.cpp
@@ -151,8 +151,8 @@
 
 QString LeechCraft::Util::GetLocaleName ()
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName ());
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+			QSettings::IniFormat);
 	QString localeName = settings.value ("Language", "system").toString ();
 
 	if (localeName == "system")


@@ -183,23 +183,24 @@
 
 QDir LeechCraft::Util::CreateIfNotExists (const QString& path)
 {
-	QDir home = QDir::home ();
-	home.cd (".leechcraft");
+	//QDir home = QDir::home ();
+	QDir home = QApplication::applicationDirPath();
+	home.cd ("UserData");
 	if (home.exists (path) && !home.cd (path))
 	{
 		throw std::runtime_error (qPrintable (QObject::tr ("Could not cd into %1")
 					.arg (QDir::toNativeSeparators (home.filePath (path)))));
 	}
-	home = QDir::home ();
-	home.cd (".leechcraft");
+	home = QApplication::applicationDirPath();
+	home.cd ("UserData");
 	if (!home.exists (path) && !home.mkpath (path))
 	{
 		throw std::runtime_error (qPrintable (QObject::tr ("Could not create %1")
 					.arg (QDir::toNativeSeparators (home.filePath (path)))));
 	}
 
-	home = QDir::home ();
-	home.cd (".leechcraft");
+	home = QApplication::applicationDirPath();
+	home.cd ("UserData");
 	home.cd (path);
 	return home;
 }
--- a/src/pluginmanager.cpp
+++ b/src/pluginmanager.cpp
@@ -102,8 +102,8 @@
 				{
 					case Qt::DisplayRole:
 						{
-							QSettings settings (QCoreApplication::organizationName (),
-									QCoreApplication::applicationName () + "-pg");
+							QSettings settings (QString("%1/psettings/LeechCraft-%2.ini").arg(QApplication::applicationDirPath()).arg("-pg"),
+								QSettings::IniFormat);
 							settings.beginGroup ("Plugins");
 							settings.beginGroup (AvailablePlugins_.at (index.row ())->fileName ());
 							QVariant result = settings.value ("Name");
@@ -113,8 +113,8 @@
 						}
 					case Qt::DecorationRole:
 						{
-							QSettings settings (QCoreApplication::organizationName (),
-									QCoreApplication::applicationName () + "-pg");
+							QSettings settings (QString("%1/psettings/LeechCraft-%2.ini").arg(QApplication::applicationDirPath()).arg("-pg"),
+								QSettings::IniFormat);
 							settings.beginGroup ("Plugins");
 							settings.beginGroup (AvailablePlugins_.at (index.row ())->fileName ());
 							QVariant result = settings.value ("Icon");
@@ -124,8 +124,8 @@
 						}
 					case Qt::CheckStateRole:
 						{
-							QSettings settings (QCoreApplication::organizationName (),
-									QCoreApplication::applicationName () + "-pg");
+							QSettings settings (QString("%1/psettings/LeechCraft-%2.ini").arg(QApplication::applicationDirPath()).arg("-pg"),
+								QSettings::IniFormat);
 							settings.beginGroup ("Plugins");
 							settings.beginGroup (AvailablePlugins_.at (index.row ())->fileName ());
 							bool result = settings.value ("AllowLoad", true).toBool ();
@@ -145,8 +145,8 @@
 			case 1:
 				if (role == Qt::DisplayRole)
 				{
-					QSettings settings (QCoreApplication::organizationName (),
-							QCoreApplication::applicationName () + "-pg");
+					QSettings settings (QString("%1/psettings/LeechCraft-%2.ini").arg(QApplication::applicationDirPath()).arg("-pg"),
+						QSettings::IniFormat);
 					settings.beginGroup ("Plugins");
 					settings.beginGroup (AvailablePlugins_.at (index.row ())->fileName ());
 					QVariant result = settings.value ("Info");
@@ -209,8 +209,8 @@
 				role != Qt::CheckStateRole)
 			return false;
 
-		QSettings settings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName () + "-pg");
+		QSettings settings (QString("%1/psettings/LeechCraft-%2.ini").arg(QApplication::applicationDirPath()).arg("-pg"),
+			QSettings::IniFormat);
 		settings.beginGroup ("Plugins");
 		settings.beginGroup (AvailablePlugins_.at (index.row ())->fileName ());
 		settings.setValue ("AllowLoad", data.toBool ());
@@ -317,8 +317,8 @@
 
 	void PluginManager::ScanDir (const QString& dir)
 	{
-		QSettings settings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName () + "-pg");
+		QSettings settings (QString("%1/psettings/LeechCraft-%2.ini").arg(QApplication::applicationDirPath()).arg("-pg"),
+			QSettings::IniFormat);
 		settings.beginGroup ("Plugins");
 
 		QDir pluginsDir = QDir (dir);
@@ -345,8 +345,8 @@
 
 	void PluginManager::CheckPlugins ()
 	{
-		QSettings settings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName () + "-pg");
+		QSettings settings (QString("%1/psettings/LeechCraft-%2.ini").arg(QApplication::applicationDirPath()).arg("-pg"),
+			QSettings::IniFormat);
 		settings.beginGroup ("Plugins");
 
 		for (int i = 0; i < Plugins_.size (); ++i)
--- a/src/plugins/aggregator/core.cpp
+++ b/src/plugins/aggregator/core.cpp
@@ -229,9 +229,10 @@
 			
 			bool Core::DoDelayedInit ()
 			{
-				QDir dir = QDir::home ();
-				if (!dir.cd (".leechcraft/aggregator") &&
-						!dir.mkpath (".leechcraft/aggregator"))
+				/*QDir dir = QDir::home ();*/
+				QDir dir = QApplication::applicationDirPath();
+				if (!dir.cd ("UserData/aggregator") &&
+						!dir.mkpath ("UserData/aggregator"))
 				{
 					qCritical () << Q_FUNC_INFO << "could not create neccessary "
 						"directories for Aggregator";
--- a/src/plugins/aggregator/itemmodel.cpp
+++ b/src/plugins/aggregator/itemmodel.cpp
@@ -39,8 +39,8 @@
 			{
 				ItemHeaders_ << tr ("Name");
 			
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Aggregator");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Aggregator.ini"),
+					QSettings::IniFormat);
 				int numItems = settings.beginReadArray ("ItemBucket");
 				for (int i = 0; i < numItems; ++i)
 				{
@@ -157,8 +157,8 @@
 			
 			void ItemModel::saveSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Aggregator");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Aggregator.ini"),
+					QSettings::IniFormat);
 				settings.beginWriteArray ("ItemBucket");
 				settings.remove ("");
 				for (size_t i = 0; i < Items_.size (); ++i)
--- a/src/plugins/aggregator/regexpmatchermanager.cpp
+++ b/src/plugins/aggregator/regexpmatchermanager.cpp
@@ -356,8 +356,8 @@
 			
 			void RegexpMatcherManager::saveSettings () const
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Aggregator");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Aggregator.ini"),
+					QSettings::IniFormat);
 				settings.beginWriteArray ("RegexpMatcher");
 				settings.remove ("");
 				std::for_each (Items_.begin (), Items_.end (), WriteOut (settings));
@@ -368,8 +368,8 @@
 			
 			void RegexpMatcherManager::RestoreSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Aggregator");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Aggregator.ini"),
+					QSettings::IniFormat);
 				int size = settings.beginReadArray ("RegexpMatcher");
 				for (int i = 0; i < size; ++i)
 				{
--- a/src/plugins/aggregator/sqlstoragebackend.cpp
+++ b/src/plugins/aggregator/sqlstoragebackend.cpp
@@ -53,8 +53,9 @@
 				{
 					case SBSQLite:
 						{
-							QDir dir = QDir::home ();
-							dir.cd (".leechcraft");
+							/*QDir dir = QDir::home ();*/
+							QDir dir = QApplication::applicationDirPath();
+							dir.cd ("UserData");
 							dir.cd ("aggregator");
 							DB_.setDatabaseName (dir.filePath ("aggregator.db"));
 						}
--- a/src/plugins/aggregator/xmlsettingsmanager.cpp
+++ b/src/plugins/aggregator/xmlsettingsmanager.cpp
@@ -39,8 +39,8 @@
 			QSettings* XmlSettingsManager::BeginSettings () const
 			{
 				QSettings *settings =
-					new QSettings (QCoreApplication::organizationName (),
-							QCoreApplication::applicationName () + "_Aggregator");
+					new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Aggregator.ini"),
+					QSettings::IniFormat);
 				return settings;
 			}
 			
--- a/src/plugins/bittorrent/core.cpp
+++ b/src/plugins/bittorrent/core.cpp
@@ -1479,8 +1479,10 @@
 					return;
 				}
 
-				QFile file (QDir::homePath () +
-						"/.leechcraft/bittorrent/" +
+				//QFile file (QDir::homePath () +
+				//		"/.leechcraft/bittorrent/" +
+				QFile file (QApplication::applicationDirPath() +
+					"/UserData/bittorrent/" +
 						torrent->TorrentFileName_ +
 						".resume");
 			
@@ -1814,8 +1816,8 @@
 			
 			void Core::RestoreTorrents ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Torrent");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Torrent.ini"),
+					QSettings::IniFormat);
 				settings.beginGroup ("Core");
 				int torrents = settings.beginReadArray ("AddedTorrents");
 				for (int i = 0; i < torrents; ++i)
@@ -1823,7 +1825,8 @@
 					settings.setArrayIndex (i);
 					boost::filesystem::path path = settings.value ("SavePath").toString ().toStdString ();
 					QString filename = settings.value ("Filename").toString ();
-					QFile torrent (QDir::homePath () + "/.leechcraft/bittorrent/" + filename);
+					//QFile torrent (QDir::homePath () + "/.leechcraft/bittorrent/" + filename);
+					QFile torrent (QApplication::applicationDirPath() + "/UserData/bittorrent/" + filename);
 					if (!torrent.open (QIODevice::ReadOnly))
 					{
 						emit error (tr ("Could not open saved torrent %1 for read.").arg (filename));
@@ -1834,7 +1837,8 @@
 					if (data.isEmpty ())
 						continue;
 			
-					QFile resumeDataFile (QDir::homePath () + "/.leechcraft/bittorrent/" +
+					/*QFile resumeDataFile (QDir::homePath () + "/.leechcraft/bittorrent/" +*/
+					QFile resumeDataFile (QApplication::applicationDirPath() + "/UserData/bittorrent/" +
 							filename + ".resume");
 					QByteArray resumed;
 					if (resumeDataFile.open (QIODevice::ReadOnly))


@@ -2164,17 +2168,17 @@
 			void Core::writeSettings ()
 			{
 				SaveScheduled_ = false;
-				QDir home = QDir::home ();
-				if (!home.exists (".leechcraft/bittorrent"))
-					if (!home.mkdir (".leechcraft/bittorrent"))
+				QDir home = /*QDir::home ();*/ QApplication::applicationDirPath();
+				if (!home.exists ("UserData/bittorrent"))
+					if (!home.mkdir ("UserData/bittorrent"))
 					{
-						emit error (QDir::toNativeSeparators (tr ("Could not create path %1/.leechcraft/bittorrent"))
-								.arg (QDir::toNativeSeparators (QDir::homePath ())));
+						emit error (QDir::toNativeSeparators (tr ("Could not create path %1/UserData/bittorrent"))
+							.arg (QDir::toNativeSeparators (QApplication::applicationDirPath())));
 						return;
 					}
 			
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Torrent");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Torrent.ini"),
+					QSettings::IniFormat);
 				settings.beginGroup ("Core");
 				settings.beginWriteArray ("AddedTorrents");
 				settings.remove ("");
@@ -2200,8 +2204,10 @@
 					CurrentTorrent_ = i;
 					try
 					{
-						QFile file_info (QDir::homePath () +
-								"/.leechcraft/bittorrent/" +
+						//QFile file_info (QDir::homePath () +
+						//		"/.leechcraft/bittorrent/" +
+						QFile file_info (QApplication::applicationDirPath() +
+							"/UserData/bittorrent/" +
 								Handles_.at (i).TorrentFileName_);
 						if (!file_info.open (QIODevice::WriteOnly))
 							emit error (QString ("Cannot write settings! "
--- a/src/plugins/bittorrent/fastspeedcontrolwidget.cpp
+++ b/src/plugins/bittorrent/fastspeedcontrolwidget.cpp
@@ -37,8 +37,8 @@
 			
 			void FastSpeedControlWidget::LoadSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Torrent");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Torrent.ini"),
+					QSettings::IniFormat);
 				settings.beginGroup ("FastSpeedControl");
 				int num = settings.beginReadArray ("Values");
 				if (!num)
@@ -63,8 +63,8 @@
 
 			void FastSpeedControlWidget::SaveSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Torrent");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Torrent.ini"),
+					QSettings::IniFormat);
 				settings.beginGroup ("FastSpeedControl");
 				settings.remove ("");
 				settings.beginWriteArray ("Values");
--- a/src/plugins/bittorrent/speedselectoraction.cpp
+++ b/src/plugins/bittorrent/speedselectoraction.cpp
@@ -81,8 +81,8 @@
 					return;
 				}
 
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Torrent");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Torrent.ini"),
+					QSettings::IniFormat);
 				settings.beginGroup ("FastSpeedControl");
 				int num = settings.beginReadArray ("Values");
 				for (int i = 0; i < num; ++i)
--- a/src/plugins/bittorrent/xmlsettingsmanager.cpp
+++ b/src/plugins/bittorrent/xmlsettingsmanager.cpp
@@ -42,8 +42,8 @@
 			QSettings* XmlSettingsManager::BeginSettings () const
 			{
 				QSettings *settings =
-					new QSettings (QCoreApplication::organizationName (),
-							QCoreApplication::applicationName () + "_Torrent");
+					new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Torrent.ini"),
+					QSettings::IniFormat);
 				return settings;
 			}
 			
--- a/src/plugins/chatter/fsettings.cpp
+++ b/src/plugins/chatter/fsettings.cpp
@@ -18,9 +18,11 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 #include "fsettings.h"
+#include <QCoreApplication>
 //#include <QtCore/QDebug>
 
-fSettings::fSettings() : QSettings("NBL", "fsirc")
+fSettings::fSettings() : QSettings(QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Chatter-fsirc.ini"),
+								   QSettings::IniFormat)
 {
 
 }
--- a/src/plugins/chatter/xmlsettingsmanager.cpp
+++ b/src/plugins/chatter/xmlsettingsmanager.cpp
@@ -16,8 +16,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_Chatter");
+	QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Chatter.ini"),
+		QSettings::IniFormat);
 	return settings;
 }
 
--- a/src/plugins/cstp/core.cpp
+++ b/src/plugins/cstp/core.cpp
@@ -578,8 +578,8 @@
 			
 			void Core::writeSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_CSTP");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("CSTP.ini"),
+					QSettings::IniFormat);
 				settings.beginWriteArray ("ActiveTasks");
 				settings.remove ("");
 				int taskIndex = 0;
@@ -608,8 +608,8 @@
 			
 			void Core::ReadSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_CSTP");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("CSTP.ini"),
+					QSettings::IniFormat);
 				int size = settings.beginReadArray ("ActiveTasks");
 				for (int i = 0; i < size; ++i)
 				{
--- a/src/plugins/cstp/xmlsettingsmanager.cpp
+++ b/src/plugins/cstp/xmlsettingsmanager.cpp
@@ -38,8 +38,8 @@
 			
 			QSettings* XmlSettingsManager::BeginSettings () const
 			{
-				QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_CSTP");
+				QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("CSTP.ini"),
+					QSettings::IniFormat);
 				return settings;
 			}
 			
--- a/src/plugins/dbusmanager/xmlsettingsmanager.cpp
+++ b/src/plugins/dbusmanager/xmlsettingsmanager.cpp
@@ -34,8 +34,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_DBusManager");
+	QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("DBusManager.ini"),
+		QSettings::IniFormat);
 	return settings;
 }
 
--- a/src/plugins/deadlyrics/lyricscache.cpp
+++ b/src/plugins/deadlyrics/lyricscache.cpp
@@ -18,6 +18,7 @@
 
 #include "lyricscache.h"
 #include <stdexcept>
+#include <QCoreApplication>
 #include <QFile>
 #include <QtDebug>
 #include <plugininterface/util.h>
@@ -40,8 +41,9 @@
 					return;
 				}
 			
-				Dir_ = QDir::homePath ();
-				Dir_.cd (".leechcraft/deadlyrics/cache");
+				/*Dir_ = QDir::homePath ();*/
+				Dir_ = QCoreApplication::applicationDirPath();
+				Dir_.cd ("UserData/deadlyrics/cache");
 			}
 			
 			LyricsCache& LyricsCache::Instance ()
--- a/src/plugins/deadlyrics/xmlsettingsmanager.cpp
+++ b/src/plugins/deadlyrics/xmlsettingsmanager.cpp
@@ -34,8 +34,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_DeadLyrics");
+	QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("DeadLyrics.ini"),
+		QSettings::IniFormat);
 	return settings;
 }
 
--- a/src/plugins/historyholder/core.cpp
+++ b/src/plugins/historyholder/core.cpp
@@ -71,8 +71,8 @@
 	qRegisterMetaType<HistoryEntry> ("LeechCraft::Plugins::HistoryHolder::Core::HistoryEntry");
 	qRegisterMetaTypeStreamOperators<HistoryEntry> ("LeechCraft::Plugins::HistoryHolder::Core::HistoryEntry");
 
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_HistoryHolder");
+	QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("HistoryHolder.ini"),
+		QSettings::IniFormat);
 	int size = settings.beginReadArray ("History");
 	for (int i = 0; i < size; ++i)
 	{
@@ -244,8 +244,8 @@
 
 void Core::WriteSettings ()
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_HistoryHolder");
+	QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("HistoryHolder.ini"),
+		QSettings::IniFormat);
 	settings.beginWriteArray ("History");
 	settings.remove ("");
 	int i = 0;
--- a/src/plugins/lcftp/core.cpp
+++ b/src/plugins/lcftp/core.cpp
@@ -767,8 +767,8 @@
 
 			void Core::SaveTasks ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_LCFTP");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("LCFTP.ini"),
+					QSettings::IniFormat);
 				settings.beginWriteArray ("Tasks");
 				settings.remove ("");
 
@@ -796,8 +796,8 @@
 
 			void Core::loadTasks ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_LCFTP");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("LCFTP.ini"),
+					QSettings::IniFormat);
 				int size = settings.beginReadArray ("Tasks");
 				for (int i = 0; i < size; ++i)
 				{
--- a/src/plugins/lcftp/xmlsettingsmanager.cpp
+++ b/src/plugins/lcftp/xmlsettingsmanager.cpp
@@ -38,8 +38,8 @@
 			
 			QSettings* XmlSettingsManager::BeginSettings () const
 			{
-				QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_LCFTP");
+				QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("LCFTP.ini"),
+					QSettings::IniFormat);
 				return settings;
 			}
 			
--- a/src/plugins/lmp/xmlsettingsmanager.cpp
+++ b/src/plugins/lmp/xmlsettingsmanager.cpp
@@ -34,8 +34,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_LMP");
+	QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("LMP.ini"),
+					QSettings::IniFormat);
 	return settings;
 }
 
--- a/src/plugins/poshuku/core.cpp
+++ b/src/plugins/poshuku/core.cpp
@@ -75,8 +75,8 @@
 			{
 				qRegisterMetaType<BrowserWidgetSettings> ("LeechCraft::Plugins::Poshuku::BrowserWidgetSettings");
 				qRegisterMetaTypeStreamOperators<BrowserWidgetSettings> ("LeechCraft::Plugins::Poshuku::BrowserWidgetSettings");
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Poshuku");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Poshuku.ini"),
+					QSettings::IniFormat);
 				int size = settings.beginReadArray ("Saved session");
 				if (size)
 					for (int i = 0; i < size; ++i)
@@ -105,9 +105,10 @@
 			
 			bool Core::Init ()
 			{
-				QDir dir = QDir::home ();
-				if (!dir.cd (".leechcraft/poshuku") &&
-						!dir.mkpath (".leechcraft/poshuku"))
+				//QDir dir = QDir::home ();
+				QDir dir = QApplication::applicationDirPath();
+				if (!dir.cd ("UserData/poshuku") &&
+					!dir.mkpath ("UserData/poshuku"))
 				{
 					qCritical () << Q_FUNC_INFO
 						<< "could not create neccessary directories for Poshuku";
@@ -876,8 +877,8 @@
 					return;
 			
 				int pos = 0;
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Poshuku");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Poshuku.ini"),
+					QSettings::IniFormat);
 				settings.beginWriteArray ("Saved session");
 				settings.remove ("");
 				for (widgets_t::const_iterator i = Widgets_.begin (),
@@ -903,8 +904,8 @@
 					return;
 				}
 
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Poshuku");
+				QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Poshuku.ini"),
+					QSettings::IniFormat);
 				settings.beginWriteArray ("Saved session");
 				for (int i = 0, size = Widgets_.size (); i < size; ++i)
 					if (Widgets_.at (i) == source)
--- a/src/plugins/poshuku/plugins/cleanweb/core.cpp
+++ b/src/plugins/poshuku/plugins/cleanweb/core.cpp
@@ -211,8 +211,9 @@
 		return;
 	}
 
-	QDir home = QDir::home ();
-	home.cd (".leechcraft");
+	/*QDir home = QDir::home ();*/
+	QDir home = QApplication::applicationDirPath();
+	home.cd ("UserData");
 	home.cd ("cleanweb");
 	QFileInfoList infos = home.entryInfoList (QDir::Files | QDir::Readable);
 	Q_FOREACH (QFileInfo info, infos)
@@ -635,8 +636,9 @@
 
 bool Core::Load (const QUrl& url, const QString& subscrName)
 {
-	QDir home = QDir::home ();
-	home.cd (".leechcraft");
+	/*QDir home = QDir::home ();*/
+	QDir home = QApplication::applicationDirPath();
+	home.cd ("UserData");
 	home.cd ("cleanweb");
 
 	QString name = QFileInfo (url.path ()).fileName ();
@@ -678,8 +680,10 @@
 
 void Core::Remove (const QString& fileName)
 {
-	QDir home = QDir::home ();
-	home.cd (".leechcraft");
+	//QDir home = QDir::home ();
+	//home.cd (".leechcraft");
+	QDir home = QApplication::applicationDirPath();
+	home.cd ("UserData");
 	home.cd ("cleanweb");
 	home.remove (fileName);
 
@@ -701,8 +705,8 @@
 
 void Core::WriteSettings ()
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_CleanWeb");
+	QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("CleanWeb.ini"),
+					QSettings::IniFormat);
 	settings.beginWriteArray ("Subscriptions");
 	settings.remove ("");
 
@@ -721,8 +725,8 @@
 
 void Core::ReadSettings ()
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_CleanWeb");
+	QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("CleanWeb.ini"),
+					QSettings::IniFormat);
 	int size = settings.beginReadArray ("Subscriptions");
 
 	for (int i = 0; i < size; ++i)
--- a/src/plugins/poshuku/plugins/cleanweb/flashonclickwhitelist.cpp
+++ b/src/plugins/poshuku/plugins/cleanweb/flashonclickwhitelist.cpp
@@ -40,8 +40,8 @@
 					{
 						Model_->setHorizontalHeaderLabels (QStringList (tr ("Whitelist")));
 
-						QSettings settings (QCoreApplication::organizationName (),
-								QCoreApplication::applicationName () + "_CleanWeb");
+						QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("CleanWeb.ini"),
+							QSettings::IniFormat);
 						settings.beginGroup ("FlashOnClick");
 						int size = settings.beginReadArray ("Whitelist");
 						for (int i = 0; i < size; ++i)
@@ -136,8 +136,8 @@
 
 					void FlashOnClickWhitelist::SaveSettings ()
 					{
-						QSettings settings (QCoreApplication::organizationName (),
-								QCoreApplication::applicationName () + "_CleanWeb");
+						QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("CleanWeb.ini"),
+							QSettings::IniFormat);
 						settings.beginGroup ("FlashOnClick");
 						settings.beginWriteArray ("Whitelist");
 						settings.remove ("");
--- a/src/plugins/poshuku/plugins/cleanweb/userfiltersmodel.cpp
+++ b/src/plugins/poshuku/plugins/cleanweb/userfiltersmodel.cpp
@@ -235,8 +235,8 @@
 
 					void UserFiltersModel::ReadSettings ()
 					{
-						QSettings settings (QCoreApplication::organizationName (),
-								QCoreApplication::applicationName () + "_CleanWeb_Subscr");
+						QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("CleanWeb_Subscr.ini"),
+							QSettings::IniFormat);
 						Filter_.ExceptionStrings_ = settings.value ("Exceptions").toStringList ();
 						Filter_.FilterStrings_ = settings.value ("Filters").toStringList ();
 						Filter_.RegExps_ = settings.value ("RegExps").value<RegExpsDict_t> ();
@@ -245,8 +245,8 @@
 
 					void UserFiltersModel::WriteSettings () const
 					{
-						QSettings settings (QCoreApplication::organizationName (),
-								QCoreApplication::applicationName () + "_CleanWeb_Subscr");
+						QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("CleanWeb_Subscr.ini"),
+							QSettings::IniFormat);
 						settings.setValue ("Exceptions", Filter_.ExceptionStrings_);
 						settings.setValue ("Filters", Filter_.FilterStrings_);
 						settings.setValue ("RegExps", QVariant::fromValue (Filter_.RegExps_));
--- a/src/plugins/poshuku/plugins/cleanweb/xmlsettingsmanager.cpp
+++ b/src/plugins/poshuku/plugins/cleanweb/xmlsettingsmanager.cpp
@@ -34,8 +34,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	return new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_CleanWeb");
+	return new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("CleanWeb.ini"),
+					QSettings::IniFormat);
 }
 
 void XmlSettingsManager::EndSettings (QSettings*) const
--- a/src/plugins/poshuku/plugins/fua/fua.cpp
+++ b/src/plugins/poshuku/plugins/fua/fua.cpp
@@ -61,8 +61,8 @@
 				<< tr ("Agent")
 				<< tr ("Identification string"));
 
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_Poshuku_FUA");
+	QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Poshuku_FUA.ini"),
+					QSettings::IniFormat);
 	int size = settings.beginReadArray ("Fakes");
 	for (int i = 0; i < size; ++i)
 	{
@@ -154,8 +154,8 @@
 
 void FUA::Save () const
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_Poshuku_FUA");
+	QSettings settings (QString("%1/psettings/%2").arg(QApplication::applicationDirPath()).arg("Poshuku_FUA.ini"),
+					QSettings::IniFormat);
 	settings.beginWriteArray ("Fakes");
 	settings.remove ("");
 	for (int i = 0; i < Model_->rowCount (); ++i)
--- a/src/plugins/poshuku/plugins/fua/xmlsettingsmanager.cpp
+++ b/src/plugins/poshuku/plugins/fua/xmlsettingsmanager.cpp
@@ -34,8 +34,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_Poshuku_FUA");
+	QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Poshuku_FUA.ini"),
+					QSettings::IniFormat);
 	return settings;
 }
 
--- a/src/plugins/poshuku/plugins/wyfv/xmlsettingsmanager.cpp
+++ b/src/plugins/poshuku/plugins/wyfv/xmlsettingsmanager.cpp
@@ -34,8 +34,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	return new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_Poshuku_WYFV");
+	return new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Poshuku_WYFV.ini"),
+					QSettings::IniFormat);
 }
 
 void XmlSettingsManager::EndSettings (QSettings*) const
--- a/src/plugins/poshuku/sqlstoragebackend.cpp
+++ b/src/plugins/poshuku/sqlstoragebackend.cpp
@@ -18,6 +18,7 @@
 
 #include "sqlstoragebackend.h"
 #include <stdexcept>
+#include <QCoreApplication>
 #include <QDir>
 #include <QSqlQuery>
 #include <QSqlError>
@@ -49,8 +50,9 @@
 				{
 					case SBSQLite:
 						{
-							QDir dir = QDir::home ();
-							dir.cd (".leechcraft");
+							/*QDir dir = QDir::home ();*/
+							QDir dir = QCoreApplication::applicationDirPath();
+							dir.cd ("UserData");
 							dir.cd ("poshuku");
 							DB_.setDatabaseName (dir.filePath ("poshuku.db"));
 						}
--- a/src/plugins/poshuku/xmlsettingsmanager.cpp
+++ b/src/plugins/poshuku/xmlsettingsmanager.cpp
@@ -38,8 +38,8 @@
 			
 			QSettings* XmlSettingsManager::BeginSettings () const
 			{
-				QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_Poshuku");
+				QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("Poshuku.ini"),
+					QSettings::IniFormat);
 				return settings;
 			}
 			
--- a/src/plugins/seekthru/core.cpp
+++ b/src/plugins/seekthru/core.cpp
@@ -570,8 +570,8 @@
 			
 			void Core::ReadSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_SeekThru");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("SeekThru.ini"),
+					QSettings::IniFormat);
 				int size = settings.beginReadArray ("Descriptions");
 				for (int i = 0; i < size; ++i)
 				{
@@ -583,8 +583,8 @@
 			
 			void Core::WriteSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_SeekThru");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("SeekThru.ini"),
+					QSettings::IniFormat);
 				settings.beginWriteArray ("Descriptions");
 				for (int i = 0; i < Descriptions_.size (); ++i)
 				{
--- a/src/plugins/seekthru/xmlsettingsmanager.cpp
+++ b/src/plugins/seekthru/xmlsettingsmanager.cpp
@@ -42,8 +42,8 @@
 			
 			QSettings* XmlSettingsManager::BeginSettings () const
 			{
-				QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_SeekThru");
+				QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("SeekThru.ini"),
+					QSettings::IniFormat);
 				return settings;
 			}
 			
--- a/src/plugins/vgrabber/categoriesselector.cpp
+++ b/src/plugins/vgrabber/categoriesselector.cpp
@@ -64,8 +64,8 @@
 			{
 				Ui_.CategoriesTree_->clear ();
 
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_vGrabber");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("vGrabber.ini"),
+					QSettings::IniFormat);
 				settings.beginGroup ("Categories");
 
 				int size = settings.beginReadArray (QString::number (Type_));
@@ -110,8 +110,8 @@
 
 			void CategoriesSelector::WriteSettings ()
 			{
-				QSettings settings (QCoreApplication::organizationName (),
-						QCoreApplication::applicationName () + "_vGrabber");
+				QSettings settings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("vGrabber.ini"),
+					QSettings::IniFormat);
 				settings.beginGroup ("Categories");
 				settings.beginWriteArray (QString::number (Type_));
 				for (int i = 0, size = Ui_.CategoriesTree_->topLevelItemCount ();
--- a/src/plugins/vgrabber/xmlsettingsmanager.cpp
+++ b/src/plugins/vgrabber/xmlsettingsmanager.cpp
@@ -34,8 +34,8 @@
 
 QSettings* XmlSettingsManager::BeginSettings () const
 {
-	QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName () + "_vGrabber");
+	QSettings *settings = new QSettings (QString("%1/psettings/%2").arg(QCoreApplication::applicationDirPath()).arg("vGrabber.ini"),
+					QSettings::IniFormat);
 	return settings;
 }
 
--- a/src/shortcutmanager.cpp
+++ b/src/shortcutmanager.cpp
@@ -68,7 +68,8 @@
 		return;
 	}
 
-	QSettings settings ("Deviant", "Leechcraft");
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+		QSettings::IniFormat);
 	settings.beginGroup ("Shortcuts");
 
 	QStringList pstrings;
@@ -150,7 +151,8 @@
 
 void ShortcutManager::accept ()
 {
-	QSettings settings ("Deviant", "Leechcraft");
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+		QSettings::IniFormat);
 	settings.beginGroup ("Shortcuts");
 	for (int i = 0, size = Ui_.Tree_->topLevelItemCount ();
 			i < size; ++i)
--- a/src/skinengine.cpp
+++ b/src/skinengine.cpp
@@ -155,11 +155,13 @@
 		IconSets_ << dir.entryList (QStringList ("*.mapping"));
 #endif
 
-	dir = QDir::home ();
+	/*dir = QDir::home ();*/
+	dir = QApplication::applicationDirPath();
 	if (dir.cd (".icons"))
 		IconSets_ << dir.entryList (QStringList ("*.mapping"));
-	dir = QDir::home ();
-	if (dir.cd (".leechcraft") && dir.cd ("icons"))
+	/*dir = QDir::home ();*/
+	dir = QApplication::applicationDirPath();
+	if (dir.cd ("UserData") && dir.cd ("icons"))
 		IconSets_ << dir.entryList (QStringList ("*.mapping"));
 
 	for (QStringList::iterator i = IconSets_.begin (),
@@ -185,10 +187,10 @@
 
 		OldIconSet_ = iconSet;
 
-		FillMapping (QDir::homePath () + "/.icons", iconSet);
-		FillMapping (QDir::homePath () + "/.leechcraft/icons", iconSet);
-		CollectDir (QDir::homePath () + "/.icons", iconSet);
-		CollectDir (QDir::homePath () + "/.leechcraft/icons", iconSet);
+		FillMapping (QApplication::applicationDirPath() + "/.icons", iconSet);
+		FillMapping (QApplication::applicationDirPath() + "/UserData/icons", iconSet);
+		CollectDir (QApplication::applicationDirPath() + "/.icons", iconSet);
+		CollectDir (QApplication::applicationDirPath() + "/UserData/icons", iconSet);
 
 #if defined (Q_OS_UNIX)
 		FillMapping ("/usr/share/leechcraft/icons", iconSet);
--- a/src/sqlstoragebackend.cpp
+++ b/src/sqlstoragebackend.cpp
@@ -17,6 +17,7 @@
  **********************************************************************/
 
 #include "sqlstoragebackend.h"
+#include <QCoreApplication>
 #include <QDir>
 #include <QSqlQuery>
 #include <QSqlError>
@@ -29,8 +30,9 @@
 SQLStorageBackend::SQLStorageBackend ()
 : DB_ (QSqlDatabase::addDatabase ("QSQLITE", "CoreConnection"))
 {
-	QDir dir = QDir::home ();
-	dir.cd (".leechcraft");
+	/*QDir dir = QDir::home ();*/
+	QDir dir = QCoreApplication::applicationDirPath();
+	dir.cd ("UserData");
 	dir.cd ("core");
 	DB_.setDatabaseName (dir.filePath ("core.db"));
 	if (!DB_.open ())
--- a/src/tagsmanager.cpp
+++ b/src/tagsmanager.cpp
@@ -169,8 +169,8 @@
 
 void TagsManager::ReadSettings ()
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName ());
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QCoreApplication::applicationDirPath()),
+		QSettings::IniFormat);
 	settings.beginGroup ("Tags");
 	Tags_ = settings.value ("Dict").value<TagsDictionary_t> ();
 	beginInsertRows (QModelIndex (), 0, Tags_.size () - 1);
@@ -180,8 +180,8 @@
 
 void TagsManager::WriteSettings () const
 {
-	QSettings settings (QCoreApplication::organizationName (),
-			QCoreApplication::applicationName ());
+	QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QCoreApplication::applicationDirPath()),
+		QSettings::IniFormat);
 	settings.beginGroup ("Tags");
 	settings.setValue ("Dict", QVariant::fromValue<TagsDictionary_t> (Tags_));
 	settings.endGroup ();
--- a/src/xmlsettingsdialog/xmlsettingsdialog.cpp
+++ b/src/xmlsettingsdialog/xmlsettingsdialog.cpp
@@ -349,8 +349,8 @@
 {
 	QString GetLanguageHack ()
 	{
-		QSettings settings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName ());
+		QSettings settings (QString("%1/psettings/LeechCraft.ini").arg(QApplication::applicationDirPath()),
+			QSettings::IniFormat);
 		QString localeName = settings.value ("Language", "system").toString ();
 
 		if (localeName == "system")
--- a/src/xmlsettingsmanager.cpp
+++ b/src/xmlsettingsmanager.cpp
@@ -41,8 +41,8 @@
 
 	QSettings* XmlSettingsManager::BeginSettings () const
 	{
-		QSettings *settings = new QSettings (QCoreApplication::organizationName (),
-				QCoreApplication::applicationName ());
+		QSettings *settings = new QSettings (QString("%1/psettings/LeechCraft.ini").arg(QCoreApplication::applicationDirPath()),
+			QSettings::IniFormat);
 		return settings;
 	}
 