void TBackupProfile::Restore(const TStr& BackupFolderName, const ERestoringMode& RestoringMode, const bool& ReportP) const { for (int N = 0; N < LogV.Len(); N++) { // find the folder that matches the BackupFolderName if (LogV[N].GetFolderName() == BackupFolderName) { const TVec<TBackupFolderInfo> Folders = GetFolders(); for (int N = 0; N < Folders.Len(); N++) { const TStr TargetFolder = Folders[N].Folder; TStrV PartV; TDir::SplitPath(TargetFolder, PartV); const TStr LastFolderNamePart = PartV[PartV.Len() - 1]; // do we want to first remove any existing data in the target folder? if (RestoringMode == RemoveExistingFirst) TDir::DelNonEmptyDir(TargetFolder); // copy data from backup to the destination folder const TStr SourceFolder = Destination + ProfileName + "/" + BackupFolderName + "/" + LastFolderNamePart; if (ReportP) TNotify::StdNotify->OnStatusFmt("Copying folder: %s", SourceFolder.CStr()); if (TDir::Exists(SourceFolder)) TDir::CopyDir(SourceFolder, TargetFolder, RestoringMode == OverwriteIfExisting); else TNotify::StdNotify->OnStatusFmt("WARNING: Unable to create a restore of the folder %s. The folder does not exist.", SourceFolder.CStr()); } } } }
bool Folder::Delete(bool recursively)const { if (!Exists()) return false; if (recursively) { std::list<Folder> folders; GetFolders(folders); for (auto iter = folders.begin(); iter != folders.end(); iter++) { if (!(*iter).Delete(true)) { return false; } } std::list<File> files; GetFiles(files); for (auto iter = files.begin(); iter != files.end(); iter++) { if (!(*iter).Delete()) { return false; } } return Delete(false); } return RemoveDirectory(filePath_.GetFullPath().Buffer()) != 0; }
//--------------------------------------------------------------------------- void __fastcall TLocationProfilesDialog::BookmarkMove(TObject * Sender, TTreeNode * Source, TTreeNode * Dest) { TBookmarkList * BookmarkList = GetBookmarkList(Sender); TTreeView * ProfilesView = GetProfilesView(Sender); TStringList * Folders = GetFolders(Sender); assert(Source && Source->Data); TBookmark * Bookmark = (TBookmark *)Source->Data; TTreeNode * PrevFolderNode = Source->Parent; if (!Dest || !Dest->Data) { Bookmark->Node = Dest ? Dest->Text : UnicodeString(); BookmarkList->MoveTo(BookmarkList->Bookmarks[BookmarkList->Count - 1], Bookmark, false); ProfilesView->Selected->MoveTo(Dest, naAddChild); } else { TBookmark * DestBookmark = (TBookmark *)Dest->Data; Bookmark->Node = DestBookmark->Node; BookmarkList->MoveTo(DestBookmark, Bookmark, Source->AbsoluteIndex > Dest->AbsoluteIndex); if (Source->AbsoluteIndex > Dest->AbsoluteIndex) { Source->MoveTo(Dest, naInsert); } else if (Dest->getNextSibling() != NULL) { Source->MoveTo(Dest->getNextSibling(), naInsert); } else { Source->MoveTo(Dest, naAdd); } } if (PrevFolderNode && !PrevFolderNode->Count) { assert(Folders->IndexOfObject(PrevFolderNode) >= 0); Folders->Delete(Folders->IndexOfObject(PrevFolderNode)); PrevFolderNode->Delete(); } Source->MakeVisible(); UpdateControls(); }
QList<bbpim::CalendarFolder> AccountFolderManager::GetFoldersForAccount(bbpim::AccountId accountId, bool fresh) { QList<bbpim::CalendarFolder> folders = GetFolders(fresh); QList<bbpim::CalendarFolder> result; for (QList<bbpim::CalendarFolder>::const_iterator i = folders.constBegin(); i != folders.constEnd(); i++) { bbpim::CalendarFolder folder = *i; if (folder.accountId() == accountId) { result.append(folder); } } return result; }
bool NodeJSWorkspace::DoOpen(const wxFileName& filename) { NodeJSWorkspaceConfiguration conf; conf.Load(m_filename); if(!conf.IsOk()) { DoClear(); return false; } m_folders = conf.GetFolders(); GetView()->Clear(); GetView()->ShowHiddenFiles(conf.IsShowHiddenFiles()); const wxArrayString& folders = GetFolders(); for(size_t i = 0; i < folders.size(); ++i) { GetView()->AddFolder(folders.Item(i)); } // Notify codelite that NodeJS workspace is opened clGetManager()->GetWorkspaceView()->SelectPage(GetWorkspaceType()); clWorkspaceManager::Get().SetWorkspace(this); // Keep the old clang state before we disable it const TagsOptionsData& options = TagsManagerST::Get()->GetCtagsOptions(); m_clangOldFlag = (options.GetClangOptions() & CC_CLANG_ENABLED); clGetManager()->EnableClangCodeCompletion(false); // Notify that the a new workspace is loaded wxCommandEvent event(wxEVT_WORKSPACE_LOADED); event.SetString(filename.GetFullPath()); EventNotifier::Get()->AddPendingEvent(event); // and finally, request codelite to keep this workspace in the recently opened workspace list clGetManager()->AddWorkspaceToRecentlyUsedList(m_filename); // Load the workspace session (if any) CallAfter(&NodeJSWorkspace::RestoreSession); // Create new debugger for this workspace m_debugger.Reset(new NodeJSDebugger()); return true; }
//--------------------------------------------------------------------------- void __fastcall TLocationProfilesDialog::RemoveBookmark(TObject * Sender) { TBookmarkList * BookmarkList = GetBookmarkList(Sender); TTreeView * ProfilesView = GetProfilesView(Sender); TStringList * Folders = GetFolders(Sender); assert(ProfilesView->Selected); TTreeNode * Node = ProfilesView->Selected; if (Node->Data) { BookmarkList->Delete((TBookmark *)Node->Data); TTreeNode * ParentNode = Node->Parent; Node->Delete(); if (ParentNode && !ParentNode->Count) { assert(Folders->IndexOfObject(ParentNode) >= 0); Folders->Delete(Folders->IndexOfObject(ParentNode)); ParentNode->Delete(); } } else { UnicodeString Message = MainInstructions(LoadStr(DELETE_BOOKMARK_FOLDER)); if (MessageDialog(Message, qtConfirmation, qaYes | qaNo, HELP_LOCATION_PROFILE_DELETE) == qaYes) { assert(Node->Count); for (int i = 0; i < Node->Count; i++) { BookmarkList->Delete((TBookmark *)Node->Item[i]->Data); } assert(Folders->IndexOfObject(Node) >= 0); Folders->Delete(Folders->IndexOfObject(Node)); Node->Delete(); } } UpdateControls(); }
INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { static LPTREEFOLDER default_selection = NULL; static int driver_index; BOOL res; switch (Msg) { case WM_INITDIALOG: { TREEFOLDER **folders; int num_folders; int i; TVINSERTSTRUCT tvis; TVITEM tvi; BOOL first_entry = TRUE; HIMAGELIST treeview_icons = GetTreeViewIconList(); // current game passed in using DialogBoxParam() driver_index = lParam; (void)TreeView_SetImageList(GetDlgItem(hDlg,IDC_CUSTOM_TREE), treeview_icons, LVSIL_NORMAL); GetFolders(&folders,&num_folders); // should add "New..." // insert custom folders into our tree view for (i=0;i<num_folders;i++) { if (folders[i]->m_dwFlags & F_CUSTOM) { HTREEITEM hti; int jj; if (folders[i]->m_nParent == -1) { memset(&tvi, '\0', sizeof(tvi)); tvis.hParent = TVI_ROOT; tvis.hInsertAfter = TVI_SORT; tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; tvi.pszText = folders[i]->m_lptTitle; tvi.lParam = (LPARAM)folders[i]; tvi.iImage = GetTreeViewIconIndex(folders[i]->m_nIconId); tvi.iSelectedImage = 0; #if defined(__GNUC__) /* bug in commctrl.h */ tvis.item = tvi; #else tvis.DUMMYUNIONNAME.item = tvi; #endif hti = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis); /* look for children of this custom folder */ for (jj=0;jj<num_folders;jj++) { if (folders[jj]->m_nParent == i) { HTREEITEM hti_child; tvis.hParent = hti; tvis.hInsertAfter = TVI_SORT; tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; tvi.pszText = folders[jj]->m_lptTitle; tvi.lParam = (LPARAM)folders[jj]; tvi.iImage = GetTreeViewIconIndex(folders[jj]->m_nIconId); tvi.iSelectedImage = 0; #if defined(__GNUC__) /* bug in commctrl.h */ tvis.item = tvi; #else tvis.DUMMYUNIONNAME.item = tvi; #endif hti_child = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis); if (folders[jj] == default_selection) res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti_child); } } /*TreeView_Expand(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti,TVE_EXPAND);*/ if (first_entry || folders[i] == default_selection) { res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti); first_entry = FALSE; } } } } win_set_window_text_utf8(GetDlgItem(hDlg,IDC_CUSTOMFILE_GAME), ModifyThe(driver_list::driver(driver_index).description)); return TRUE; } case WM_COMMAND: switch (GET_WM_COMMAND_ID(wParam, lParam)) { case IDOK: { TVITEM tvi; tvi.hItem = TreeView_GetSelection(GetDlgItem(hDlg,IDC_CUSTOM_TREE)); tvi.mask = TVIF_PARAM; if (TreeView_GetItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvi) == TRUE) { /* should look for New... */ default_selection = (LPTREEFOLDER)tvi.lParam; /* start here next time */ AddToCustomFolder((LPTREEFOLDER)tvi.lParam,driver_index); } EndDialog(hDlg, 0); return TRUE; } case IDCANCEL: EndDialog(hDlg, 0); return TRUE; } break; } return 0; }
INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { case WM_INITDIALOG: { CenterWindow(hDlg); hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MAMEUI_ICON)); SendMessage(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)hIcon); hBrush = CreateSolidBrush(RGB(240, 240, 240)); if (IsWindowsSevenOrHigher()) SendMessage(GetDlgItem(hDlg, IDC_CUSTOM_TREE), TVM_SETEXTENDEDSTYLE, TVS_EX_DOUBLEBUFFER, TVS_EX_DOUBLEBUFFER); SetWindowTheme(GetDlgItem(hDlg, IDC_CUSTOM_TREE), L"Explorer", NULL); TREEFOLDER **folders; int num_folders = 0; TVINSERTSTRUCT tvis; TVITEM tvi; bool first_entry = true; HIMAGELIST treeview_icons = GetTreeViewIconList(); // current game passed in using DialogBoxParam() driver_index = lParam; (void)TreeView_SetImageList(GetDlgItem(hDlg, IDC_CUSTOM_TREE), treeview_icons, LVSIL_NORMAL); GetFolders(&folders, &num_folders); // insert custom folders into our tree view for (int i = 0; i < num_folders; i++) { if (folders[i]->m_dwFlags & F_CUSTOM) { HTREEITEM hti; if (folders[i]->m_nParent == -1) { memset(&tvi, 0, sizeof(TVITEM)); tvis.hParent = TVI_ROOT; tvis.hInsertAfter = TVI_SORT; tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; tvi.pszText = folders[i]->m_lptTitle; tvi.lParam = (LPARAM)folders[i]; tvi.iImage = GetTreeViewIconIndex(folders[i]->m_nIconId); tvi.iSelectedImage = 0; tvis.item = tvi; hti = TreeView_InsertItem(GetDlgItem(hDlg, IDC_CUSTOM_TREE), &tvis); /* look for children of this custom folder */ for (int jj = 0; jj < num_folders; jj++) { if (folders[jj]->m_nParent == i) { HTREEITEM hti_child; tvis.hParent = hti; tvis.hInsertAfter = TVI_SORT; tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; tvi.pszText = folders[jj]->m_lptTitle; tvi.lParam = (LPARAM)folders[jj]; tvi.iImage = GetTreeViewIconIndex(folders[jj]->m_nIconId); tvi.iSelectedImage = 0; tvis.item = tvi; hti_child = TreeView_InsertItem(GetDlgItem(hDlg, IDC_CUSTOM_TREE), &tvis); if (folders[jj] == default_selection) (void)TreeView_SelectItem(GetDlgItem(hDlg, IDC_CUSTOM_TREE), hti_child); } } /*TreeView_Expand(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti,TVE_EXPAND);*/ if (first_entry || folders[i] == default_selection) { (void)TreeView_SelectItem(GetDlgItem(hDlg, IDC_CUSTOM_TREE),hti); first_entry = false; } } } } win_set_window_text_utf8(GetDlgItem(hDlg, IDC_CUSTOMFILE_GAME), GetDriverGameTitle(driver_index)); return true; } case WM_CTLCOLORDLG: return (LRESULT) hBrush; case WM_CTLCOLORSTATIC: case WM_CTLCOLORBTN: hDC = (HDC)wParam; SetBkMode(hDC, TRANSPARENT); SetTextColor(hDC, GetSysColor(COLOR_WINDOWTEXT)); return (LRESULT) hBrush; case WM_COMMAND: switch (GET_WM_COMMAND_ID(wParam, lParam)) { case IDOK: { TVITEM tvi; tvi.hItem = TreeView_GetSelection(GetDlgItem(hDlg, IDC_CUSTOM_TREE)); tvi.mask = TVIF_PARAM; if (TreeView_GetItem(GetDlgItem(hDlg, IDC_CUSTOM_TREE),&tvi) == true) { /* should look for New... */ default_selection = (LPTREEFOLDER)tvi.lParam; /* start here next time */ AddToCustomFolder((LPTREEFOLDER)tvi.lParam, driver_index); } DestroyIcon(hIcon); DeleteObject(hBrush); EndDialog(hDlg, 0); return true; } case IDCANCEL: DestroyIcon(hIcon); DeleteObject(hBrush); EndDialog(hDlg, 0); return true; } break; } return false; }