Get rid of the old path finding methods in util.cpp
authorManuel Nickschas <sputnick@quassel-irc.org>
Sat, 17 Jan 2009 00:37:08 +0000 (01:37 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 20 Jan 2009 21:07:48 +0000 (22:07 +0100)
Use the stuff in Quassel:: now. And use --configdir to specify the config dir
on the cli, rather than the now deprecated --datadir.

src/common/network.cpp
src/common/quassel.cpp
src/common/quassel.h
src/common/util.cpp
src/common/util.h
src/core/sqlitestorage.cpp
src/core/sslserver.cpp

index 9a4994f..c71b5c2 100644 (file)
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
-#include "network.h"
-
-#include <QDebug>
 #include <QSettings>
 #include <QTextCodec>
 
 #include <QSettings>
 #include <QTextCodec>
 
+#include "network.h"
+#include "quassel.h"
+
 QTextCodec *Network::_defaultCodecForServer = 0;
 QTextCodec *Network::_defaultCodecForEncoding = 0;
 QTextCodec *Network::_defaultCodecForDecoding = 0;
 QTextCodec *Network::_defaultCodecForServer = 0;
 QTextCodec *Network::_defaultCodecForEncoding = 0;
 QTextCodec *Network::_defaultCodecForDecoding = 0;
@@ -403,7 +403,7 @@ QByteArray Network::encodeServerString(const QString &string) const {
 QStringList Network::presetNetworks(bool onlyDefault) {
   // lazily find the file, make sure to not call one of the other preset functions first (they'll fail else)
   if(_networksIniPath.isNull()) {
 QStringList Network::presetNetworks(bool onlyDefault) {
   // lazily find the file, make sure to not call one of the other preset functions first (they'll fail else)
   if(_networksIniPath.isNull()) {
-    _networksIniPath = findDataFilePath("networks.ini");
+    _networksIniPath = Quassel::findDataFilePath("networks.ini");
     if(_networksIniPath.isNull()) {
       _networksIniPath = ""; // now we won't check again, as it's not null anymore
       return QStringList();
     if(_networksIniPath.isNull()) {
       _networksIniPath = ""; // now we won't check again, as it's not null anymore
       return QStringList();
index 849920d..bd31929 100644 (file)
@@ -249,6 +249,9 @@ QString Quassel::configDirPath() {
 #endif
   }
 
 #endif
   }
 
+  if(!_configDirPath.endsWith('/'))
+    _configDirPath += '/';
+
   QDir qDir(_configDirPath);
   if(!qDir.exists(_configDirPath)) {
     if(!qDir.mkpath(_configDirPath)) {
   QDir qDir(_configDirPath);
   if(!qDir.exists(_configDirPath)) {
     if(!qDir.mkpath(_configDirPath)) {
index cb29f3f..9492ec6 100644 (file)
@@ -64,7 +64,21 @@ public:
   static inline RunMode runMode();
 
   static QString configDirPath();
   static inline RunMode runMode();
 
   static QString configDirPath();
+
+  //! Returns a list of data directory paths
+  /** There are several locations for applications to install their data files in. On Unix,
+  *  a common location is /usr/share; others include $PREFIX/share and additional directories
+  *  specified in the env variable XDG_DATA_DIRS.
+  *  \return A list of directory paths to look for data files in
+  */
   static QStringList dataDirPaths();
   static QStringList dataDirPaths();
+
+  //! Searches for a data file in the possible data directories
+  /** Data files can reside in $DATA_DIR/apps/quassel, where $DATA_DIR is one of the directories
+  *  returned by \sa dataDirPaths().
+  *  \Note With KDE integration enabled, files are searched (only) in KDE's appdata dirs.
+  *  \return The full path to the data file if found; a null QString else
+  */
   static QString findDataFilePath(const QString &filename);
 
   static inline void setCliParser(AbstractCliParser *cliParser);
   static QString findDataFilePath(const QString &filename);
 
   static inline void setCliParser(AbstractCliParser *cliParser);
index a8a3887..4698b30 100644 (file)
@@ -92,31 +92,6 @@ QString decodeString(const QByteArray &input, QTextCodec *codec) {
   return codec->toUnicode(input);
 }
 
   return codec->toUnicode(input);
 }
 
-/* not needed anymore
-void writeDataToDevice(QIODevice *dev, const QVariant &item) {
-  QByteArray block;
-  QDataStream out(&block, QIODevice::WriteOnly);
-  out.setVersion(QDataStream::Qt_4_2);
-  out << (quint32)0 << item;
-  out.device()->seek(0);
-  out << (quint32)(block.size() - sizeof(quint32));
-  dev->write(block);
-}
-
-bool readDataFromDevice(QIODevice *dev, quint32 &blockSize, QVariant &item) {
-  QDataStream in(dev);
-  in.setVersion(QDataStream::Qt_4_2);
-
-  if(blockSize == 0) {
-    if(dev->bytesAvailable() < (int)sizeof(quint32)) return false;
-    in >> blockSize;
-  }
-  if(dev->bytesAvailable() < blockSize) return false;
-  in >> item;
-  return true;
-}
-*/
-
 uint editingDistance(const QString &s1, const QString &s2) {
   uint n = s1.size()+1;
   uint m = s2.size()+1;
 uint editingDistance(const QString &s1, const QString &s2) {
   uint n = s1.size()+1;
   uint m = s2.size()+1;
@@ -151,59 +126,6 @@ uint editingDistance(const QString &s1, const QString &s2) {
   return matrix[n-1][m-1];
 }
 
   return matrix[n-1][m-1];
 }
 
-QDir quasselDir() {
-  QString quasselDir;
-  if(Quassel::isOptionSet("datadir")) {
-    quasselDir = Quassel::optionValue("datadir");
-  } else {
-    // FIXME use QDesktopServices
-#ifdef Q_OS_WIN32
-    quasselDir = qgetenv("APPDATA") + "/quassel/";
-#elif defined Q_WS_MAC
-    quasselDir = QDir::homePath() + "/Library/Application Support/Quassel/";
-#else
-    quasselDir = QDir::homePath() + "/.quassel/";
-#endif
-  }
-
-  QDir qDir(quasselDir);
-  if(!qDir.exists(quasselDir)) {
-    if(!qDir.mkpath(quasselDir)) {
-      qCritical() << "Unable to create Quassel data directory:" << qPrintable(qDir.absolutePath());
-    }
-  }
-
-  return qDir;
-}
-
-QStringList dataDirPaths() {
-  QStringList dataDirNames = QString(qgetenv("XDG_DATA_DIRS")).split(':', QString::SkipEmptyParts);
-
-  // Provide a fallback
-# ifdef Q_OS_UNIX
-  if(dataDirNames.isEmpty()) dataDirNames.append("/usr/share");
-  // on UNIX, we always check our install prefix
-  QString appDir = QCoreApplication::applicationDirPath();
-  int binpos = appDir.lastIndexOf("/bin");
-  if(binpos >= 0) {
-    appDir.replace(binpos, 4, "/share");
-    if(!dataDirNames.contains(appDir)) dataDirNames.append(appDir);
-  }
-# endif
-
-  return dataDirNames;
-}
-
-QString findDataFilePath(const QString &fileName) {
-  QStringList dataDirs = dataDirPaths();
-  foreach(QString dataDir, dataDirs) {
-    QString path = dataDir + "/apps/quassel/" + fileName;
-    if(QFile::exists(path))
-      return path;
-  }
-  return QString();
-}
-
 void loadTranslation(const QLocale &locale) {
   QTranslator *qtTranslator = QCoreApplication::instance()->findChild<QTranslator *>("QtTr");
   QTranslator *quasselTranslator = QCoreApplication::instance()->findChild<QTranslator *>("QuasselTr");
 void loadTranslation(const QLocale &locale) {
   QTranslator *qtTranslator = QCoreApplication::instance()->findChild<QTranslator *>("QtTr");
   QTranslator *quasselTranslator = QCoreApplication::instance()->findChild<QTranslator *>("QuasselTr");
index 28639ba..66a36e2 100644 (file)
@@ -50,23 +50,6 @@ QString decodeString(const QByteArray &input, QTextCodec *codec = 0);
 
 uint editingDistance(const QString &s1, const QString &s2);
 
 
 uint editingDistance(const QString &s1, const QString &s2);
 
-QDir quasselDir();
-
-//! Returns a list of data directory paths
-/** There are several locations for applications to install their data files in. On Unix,
- *  a common location is /usr/share; others include $PREFIX/share and additional directories
- *  specified in the env variable XDG_DATA_DIRS.
- *  \return A list of directory paths to look for data files in
- */
-QStringList dataDirPaths();
-
-//! Searches for a data file in the possible data directories
-/** Data files can reside in $DATA_DIR/apps/quassel, where $DATA_DIR is one of the directories
- *  returned by \sa dataDirPaths().
- *  \return The full path to the data file if found; a null QString else
- */
-QString findDataFilePath(const QString &fileName);
-
 void loadTranslation(const QLocale &locale);
 
 template<typename T>
 void loadTranslation(const QLocale &locale);
 
 template<typename T>
index 974740d..e199409 100644 (file)
 
 #include <QtSql>
 
 
 #include <QtSql>
 
-#include "network.h"
-
-#include "util.h"
 #include "logger.h"
 #include "logger.h"
+#include "network.h"
+#include "quassel.h"
 
 int SqliteStorage::_maxRetryCount = 150; // yes this is a large number... only other way to "handle" this is bailing out...
 
 
 int SqliteStorage::_maxRetryCount = 150; // yes this is a large number... only other way to "handle" this is bailing out...
 
@@ -969,7 +968,7 @@ QList<Message> SqliteStorage::requestAllMsgs(UserId user, MsgId first, MsgId las
 }
 
 QString SqliteStorage::backlogFile() {
 }
 
 QString SqliteStorage::backlogFile() {
-  return quasselDir().absolutePath() + "/quassel-storage.sqlite";
+  return Quassel::configDirPath() + "quassel-storage.sqlite";
 }
 
 bool SqliteStorage::safeExec(QSqlQuery &query, int retryCount) {
 }
 
 bool SqliteStorage::safeExec(QSqlQuery &query, int retryCount) {
index f256923..aa5be2c 100644 (file)
@@ -27,7 +27,7 @@
 #include <QFile>
 
 #include "logger.h"
 #include <QFile>
 
 #include "logger.h"
-#include "util.h"
+#include "quassel.h"
 
 #ifdef HAVE_SSL
 
 
 #ifdef HAVE_SSL
 
@@ -36,7 +36,7 @@ SslServer::SslServer(QObject *parent)
   _isCertValid(false)
 {
   static bool sslWarningShown = false;
   _isCertValid(false)
 {
   static bool sslWarningShown = false;
-  if(!setCertificate(quasselDir().absolutePath() + "/quasselCert.pem")) {
+  if(!setCertificate(Quassel::configDirPath() + "quasselCert.pem")) {
     if(!sslWarningShown) {
       quWarning()
         << "SslServer: Unable to set certificate file\n"
     if(!sslWarningShown) {
       quWarning()
         << "SslServer: Unable to set certificate file\n"