Changeset 558 for trunk


Ignore:
Timestamp:
08/23/08 19:34:11 (11 years ago)
Author:
Eoin
Message:

Settings stored in Application Folder if reg entry present.

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/sln/HaliteWix/Product.wxs

    r557 r558  
    1919<?define CpuPostfix = " (x64 edition)" ?> 
    2020<?define Is64 = "yes" ?> 
    21 <?define ReleaseFolder = "x64\Release\" ?> 
     21<?define ReleaseFolder = "x64\$(var.Configuration)\" ?> 
    2222<?else ?> 
    2323<?define CpuId = "1" ?> 
     
    2626<?define CpuPostfix = "" ?> 
    2727<?define Is64 = "no" ?> 
    28 <?define ReleaseFolder = "Release\" ?> 
     28<?define ReleaseFolder = "$(var.Configuration)\" ?> 
    2929<?endif ?> 
    3030 
  • trunk/src/Halite.cpp

    r557 r558  
    1616#include <winstl/registry/reg_key.hpp> 
    1717#include <winstl/registry/reg_value.hpp> 
     18 
     19#include <boost/filesystem/convenience.hpp> 
    1820 
    1921#include "WinAPIMutex.hpp" 
     
    6062                if (halite().logToFile()) 
    6163                { 
    62                         if (!wofs.is_open()) wofs.open(hal::app().working_directory()/L"HaliteLog.txt"); 
     64                        if (!wofs.is_open()) wofs.open(hal::app().get_working_directory()/L"HaliteLog.txt"); 
    6365                         
    6466                        wofs << (hal::wform(L"%1% %2%, %3%\r\n")  
     
    111113{ 
    112114 
    113 //      hal::event_log.post(shared_ptr<hal::EventDetail>(new hal::EventDebug(hal::event_logger::info, L"Hello"))); 
    114  
    115 //      ::SetProcessAffinityMask(::GetCurrentProcess(), (DWORD_PTR)0x1); 
    116  
    117115        try  
    118116        { 
     
    120118        boost::filesystem::path::default_name_check(boost::filesystem::native); 
    121119 
    122         winstl::reg_key_w reg_path(HKEY_CURRENT_USER, L"SOFTWARE\\Halite"); 
    123         winstl::reg_value_w reg_path_value = reg_path.get_value(L"path"); 
    124  
    125          
    126                 hal::event_log.post(shared_ptr<hal::EventDetail>( 
    127                         new hal::EventMsg(hal::wform(L"Exe Path: %1%.") % hal::app().exe_path())));              
     120        try 
     121        { 
     122                winstl::reg_key_w reg_path(HKEY_CURRENT_USER, L"SOFTWARE\\Halite"); 
     123                winstl::reg_value_w reg_path_value = reg_path.get_value(L"path"); 
     124 
     125                if (hal::app().get_local_appdata()) 
     126                        hal::app().working_directory = hal::app().get_local_appdata().get()/L"Halite"; 
     127        } 
     128        catch(...) 
     129        { 
     130                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     131                        new hal::EventMsg(L"No registry entry found.")));                
     132        } 
     133         
     134        if (!boost::filesystem::is_directory(hal::app().working_directory)) 
     135                boost::filesystem::create_directories(hal::app().working_directory); 
    128136 
    129137        WTL::AtlInitCommonControls(ICC_COOL_CLASSES | ICC_BAR_CLASSES);  
     
    170178        { 
    171179                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     180                        new hal::EventMsg(hal::wform(L"App Data Path: %1%.") % hal::app().local_appdata)));              
     181 
     182                hal::event_log.post(shared_ptr<hal::EventDetail>( 
    172183                        new hal::EventMsg(hal::wform(L"Exe Path: %1%.") % hal::app().exe_path())));              
    173  
    174                 HAL_DEV_MSG(L"Hello"); 
    175184                 
    176185                hal::event_log.post(shared_ptr<hal::EventDetail>( 
    177186                        new hal::EventMsg(hal::wform(L"Initial Path: %1%.") % hal::app().initial_path())));              
    178  
    179                 hal::event_log.post(shared_ptr<hal::EventDetail>( 
    180                         new hal::EventMsg(L"Hi again", hal::event_logger::dev)));                
    181                  
    182                 hal::event_log.post(shared_ptr<hal::EventDetail>( 
    183                         new hal::EventMsg((hal::wform(L"Working Directory: %1%.") % hal::app().working_directory()), hal::event_logger::info)));                 
     187                 
     188                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     189                        new hal::EventMsg((hal::wform(L"Working Directory: %1%.") % hal::app().working_directory), hal::event_logger::info)));           
    184190                 
    185191                WTL::CMessageLoop theLoop; 
  • trunk/src/global/ini.cpp

    r536 r558  
    3636public: 
    3737        ini_impl(std::wstring filename) : 
    38                 main_file_(app().working_directory()/filename), 
    39                 working_file_(app().working_directory()/(filename + L".working")) 
     38                main_file_(app().get_working_directory()/filename), 
     39                working_file_(app().get_working_directory()/(filename + L".working")) 
    4040        {                
    4141                if (boost::filesystem::exists(working_file_)) 
     
    4646                        sstr << boost::posix_time::second_clock::universal_time(); 
    4747 
    48                         boost::filesystem::rename(working_file_, app().working_directory()/(filename + L"." + sstr.str()));                      
     48                        boost::filesystem::rename(working_file_, app().get_working_directory()/(filename + L"." + sstr.str()));                  
    4949                } 
    5050 
  • trunk/src/global/wtl_app.cpp

    r552 r558  
    88 
    99#include <boost/array.hpp> 
     10#include <boost/optional.hpp> 
    1011 
    1112#define WINVER 0x0500 
     
    3738 
    3839#include <boost/detail/utf8_codecvt_facet.hpp> 
     40 
     41#include <winstl/error/error_desc.hpp> 
     42#include <winstl/filesystem/current_directory.hpp> 
     43#include <winstl/shell/browse_for_folder.hpp> 
     44#include <winstl/shell/file_operations.hpp> 
     45#include <stlsoft/smartptr/scoped_handle.hpp> 
     46#include <winstl/shell/memory/functions.h> 
    3947 
    4048namespace hal 
     
    7078                }                
    7179                LocalFree(szArglist);    
     80 
    7281        } 
    7382 
     
    8392        boost::filesystem::wpath initial_path_; 
    8493        boost::filesystem::wpath working_directory_; 
     94        boost::optional<boost::filesystem::wpath> local_appdata_; 
    8595         
    8696        std::vector<std::wstring> command_args_;         
     
    106116} 
    107117 
    108 const boost::filesystem::wpath& app_module::working_directory() const  
     118const boost::filesystem::wpath& app_module::get_working_directory() const  
    109119{  
    110120        return pimpl->working_directory_;  
     121} 
     122 
     123void app_module::set_working_directory(const boost::filesystem::wpath& p)  
     124{  
     125        pimpl->working_directory_ = p;  
     126} 
     127 
     128const boost::optional<boost::filesystem::wpath>& app_module::get_local_appdata() const  
     129{  
     130        if (!pimpl->local_appdata_) 
     131        { 
     132                wchar_t displayName[_MAX_PATH + 1]; 
     133                LPITEMIDLIST iil; 
     134                HRESULT hr = ::SHGetSpecialFolderLocation(NULL, CSIDL_LOCAL_APPDATA, &iil); 
     135           
     136                if(FAILED(hr)) 
     137                { 
     138                } 
     139                else 
     140                { 
     141                        stlsoft::scoped_handle<void*> iil_(iil, winstl::SHMemFree); 
     142 
     143                        ::SHGetPathFromIDList(iil, displayName); 
     144                        pimpl->local_appdata_ = std::wstring(displayName); 
     145                } 
     146        } 
     147 
     148        return pimpl->local_appdata_;  
    111149} 
    112150         
  • trunk/src/global/wtl_app.hpp

    r348 r558  
    1919#include <boost/filesystem/operations.hpp> 
    2020 
     21#include <stlsoft/properties/method_properties.hpp> 
     22#include <stlsoft/util/operator_bool_adaptor.hpp> 
     23 
    2124namespace hal 
    2225{ 
     
    2831public:  
    2932        const std::wstring& exe_string() const; 
     33 
    3034        const boost::filesystem::wpath& exe_path() const; 
    3135        const boost::filesystem::wpath& initial_path() const; 
    32         const boost::filesystem::wpath& working_directory() const; 
     36 
     37        const boost::filesystem::wpath& get_working_directory() const; 
     38        void set_working_directory(const boost::filesystem::wpath& p); 
     39         
     40        const boost::optional<boost::filesystem::wpath>& get_local_appdata() const; 
    3341         
    3442        const std::vector<std::wstring>& command_args() const; 
     
    4048         
    4149        friend app_module& app(); 
     50 
     51        STLSOFT_METHOD_PROPERTY_GET_EXTERNAL(const boost::optional<boost::filesystem::wpath>&, app_module,  
     52                get_local_appdata, local_appdata); 
     53 
     54        STLSOFT_METHOD_PROPERTY_GETSET_EXTERNAL(const boost::filesystem::wpath&, const boost::filesystem::wpath&,  
     55                app_module, get_working_directory, set_working_directory, working_directory); 
    4256         
    4357private: 
  • trunk/src/halEvent.cpp

    r557 r558  
    55//          http://www.boost.org/LICENSE_1_0.txt) 
    66 
     7#define HAL_EVENT_IMPL_UNIT 
     8 
    79#include "stdAfx.hpp" 
    810 
    9 #define HAL_EVENT_IMPL_UNIT 
    1011 
    1112#include "halEvent.hpp" 
  • trunk/src/halTorrent.cpp

    r554 r558  
    9999        type(hal::app().res_wstr(HAL_INT_NEWT_ADD_PEERS_DHT))  
    100100{} 
    101 wpath bit_impl::workingDirectory = hal::app().working_directory(); 
     101wpath bit_impl::workingDirectory = hal::app().working_directory; 
    102102 
    103103bit::bit() : 
  • trunk/src/halTorrentInternal.hpp

    r554 r558  
    381381                { 
    382382 
    383                 wpath oldFile = app().working_directory()/L"torrents"/originalFilename; 
     383                wpath oldFile = app().get_working_directory()/L"torrents"/originalFilename; 
    384384                 
    385385                if (fs::exists(oldFile))  
    386386                        extractNames(haldecode(oldFile)); 
    387387                 
    388                 wpath oldResumeFile = app().working_directory()/L"resume"/originalFilename; 
     388                wpath oldResumeFile = app().get_working_directory()/L"resume"/originalFilename; 
    389389                 
    390390                if (filename_ != originalFilename) 
    391391                { 
    392                         fs::rename(oldFile, app().working_directory()/L"torrents"/filename_); 
     392                        fs::rename(oldFile, app().get_working_directory()/L"torrents"/filename_); 
    393393                         
    394394                        if (fs::exists(oldResumeFile)) 
    395                                 fs::rename(oldResumeFile, app().working_directory()/L"resume"/filename_); 
     395                                fs::rename(oldResumeFile, app().get_working_directory()/L"resume"/filename_); 
    396396                } 
    397397                 
Note: See TracChangeset for help on using the changeset viewer.