DataRecovery::DataRecovery(Context* context) : m_tempDir(NULL) , m_backup(NULL) , m_context(context) { // Check if there is already data to recover const base::string existent_data_path = get_config_string("DataRecovery", "Path", ""); if (!existent_data_path.empty() && base::directory_exists(existent_data_path)) { // Load the backup data. m_tempDir = new base::TempDir(); m_tempDir->attach(existent_data_path); m_backup = new Backup(existent_data_path); } else { // Create a new directory to save the backup information. m_tempDir = new base::TempDir(PACKAGE); m_backup = new Backup(m_tempDir->path()); set_config_string("DataRecovery", "Path", m_tempDir->path().c_str()); flush_config_file(); } m_context->addObserver(this); }
void ui::clipboard::set_text(const char *text) { lowlevel_set_clipboard_text(text); #ifdef WIN32 if (IsClipboardFormatAvailable(CF_UNICODETEXT)) { if (OpenClipboard(win_get_window())) { EmptyClipboard(); if (!clipboard_text.empty()) { std::wstring wstr = base::from_utf8(clipboard_text); int len = wstr.size(); HGLOBAL hglobal = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(WCHAR)*(len+1)); LPWSTR lpstr = static_cast<LPWSTR>(GlobalLock(hglobal)); std::copy(wstr.begin(), wstr.end(), lpstr); GlobalUnlock(hglobal); SetClipboardData(CF_UNICODETEXT, hglobal); } CloseClipboard(); } } #endif }
void base::trim_string(const base::string& input, base::string& output) { int i, j; for (i=0; i<(int)input.size(); ++i) if (!std::isspace(input.at(i))) break; for (j=(int)input.size()-1; j>i; --j) if (!std::isspace(input.at(j))) break; if (i < j) output = input.substr(i, j - i + 1); else output = ""; }
static base::string remove_backslash_if_needed(const base::string& filename) { if (!filename.empty() && base::is_path_separator(*(filename.end()-1))) { int len = filename.size(); #ifdef HAVE_DRIVES // if the name is C:\ or something like that, the backslash isn't // removed if (len == 3 && filename[1] == ':') return filename; #else // this is just the root '/' slash if (len == 1) return filename; #endif return base::remove_path_separator(filename); } return filename; }
void base::split_string(const base::string& string, std::vector<base::string>& parts, const base::string& separators) { size_t elements = 1 + std::count_if(string.begin(), string.end(), is_separator(&separators)); parts.reserve(elements); size_t beg = 0, end; while (true) { end = string.find_first_of(separators, beg); if (end != base::string::npos) { parts.push_back(string.substr(beg, end - beg)); beg = end+1; } else { parts.push_back(string.substr(beg)); break; } } }
const char* ui::clipboard::get_text() { #ifdef WIN32 if (IsClipboardFormatAvailable(CF_UNICODETEXT)) { if (OpenClipboard(win_get_window())) { HGLOBAL hglobal = GetClipboardData(CF_UNICODETEXT); if (hglobal != NULL) { LPWSTR lpstr = static_cast<LPWSTR>(GlobalLock(hglobal)); if (lpstr != NULL) { lowlevel_set_clipboard_text(base::to_utf8(lpstr).c_str()); GlobalUnlock(hglobal); } } CloseClipboard(); } } #endif return clipboard_text.c_str(); }