From 09bebc64e6fc8ba9c88a198c0a89bbd8ed306ec8 Mon Sep 17 00:00:00 2001 From: Roman Moravcik Date: Thu, 4 Mar 2010 18:15:12 +0100 Subject: [PATCH] Automatically create MyDocs/mstardict directory if doesn't exist. Directory ~/.stardict/dic added to the list of watched directories for backward compatibility with stardict. --- src/dictmngr.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/dictmngr.cpp b/src/dictmngr.cpp index ce712cc..ec8d1c0 100644 --- a/src/dictmngr.cpp +++ b/src/dictmngr.cpp @@ -31,6 +31,7 @@ #include #include +#include #include #include @@ -40,6 +41,9 @@ #include "mstardict.hpp" #include "dictmngr.hpp" +#define DEFAULT_DICT_DIR "/home/user/MyDocs/mstardict" +#define STARDICT_DICT_DIR "/home/user/.stardict/dic" + enum { BOOKNAME_DICT_INFO_COLUMN, FILENAME_DICT_INFO_COLUMN, @@ -59,6 +63,12 @@ class GetAllDictList { DictMngr::DictMngr(MStarDict *mStarDict) { oStarDict = mStarDict; + + /* check if default dictionary exists */ + if (!g_file_test(DEFAULT_DICT_DIR, GFileTest(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) { + if (g_mkdir(DEFAULT_DICT_DIR, S_IRWXU)==-1) + g_warning("Cannot create directory %s.", DEFAULT_DICT_DIR); + } } DictMngr::~DictMngr() @@ -186,8 +196,11 @@ DictMngr::GetAllDictionaryList(std::list < std::string > &dict_list) strlist_t order_list; strlist_t disable_list; - /* dictionary directory */ - dicts_dir_list.push_back(std::string("/home/user/MyDocs/mstardict")); + /* default mstardict dictionary directory */ + dicts_dir_list.push_back(std::string(DEFAULT_DICT_DIR)); + + /* stardict dictionary directory */ + dicts_dir_list.push_back(std::string(STARDICT_DICT_DIR)); for_each_file(dicts_dir_list, ".ifo", order_list, disable_list, GetAllDictList(dict_list)); } -- 1.7.9.5