private void _miRestore_Click(object sender, RoutedEventArgs e) { BackupView view = _listView.SelectedItem as BackupView; if (view != null) { ProgressDialog dialog = new ProgressDialog("Restoring databases...", "Restoring..."); dialog.Loaded += delegate { IsEnabled = false; GrfThread.Start(delegate { try { BackupEngine.Instance.Restore(view.BackupDate); dialog.Dispatch(p => p.Terminate()); this.Dispatch(p => p.IsEnabled = true); ErrorHandler.HandleException("Successfully restored to " + view.Date + ". Reload your database for the changes to take effect.", ErrorLevel.NotSpecified); } catch (Exception err) { dialog.Dispatch(p => p.Terminate()); this.Dispatch(p => p.IsEnabled = true); ErrorHandler.HandleException(err); } }); }; dialog.ShowDialog(); } }
public void Show() { var backupWindow = new BackupView(); backupWindow.StartPosition = FormStartPosition.CenterScreen; backupWindow.Show(); }
private void _miExport_Click(object sender, RoutedEventArgs e) { BackupView view = _listView.SelectedItem as BackupView; if (view != null) { string folder = PathRequest.FolderEditor(); if (folder != null) { BackupEngine.Instance.Export(folder, view.BackupDate); } } }
private void _miSelect_Click(object sender, RoutedEventArgs e) { BackupView view = _listView.SelectedItem as BackupView; if (view != null) { if (Directory.Exists(view.DbPath)) { OpeningService.FilesOrFolders(view.DbPath); } else { ErrorHandler.HandleException("Directory not found " + view.DbPath + "."); } } }
private void OnGUI() { if (m_backupViewState == null) { m_backupViewState = new TreeViewState(); } if (m_backupView == null) { m_backupView = new BackupView(m_backupViewState, m_asset); } var lineHeight = EditorGUIUtility.singleLineHeight; var lineSpacing = EditorGUIUtility.standardVerticalSpacing; var viewport = GUILayoutUtility .GetRect( 0, 0, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); const float margin = 4; viewport.yMin += margin; var topRowRect = viewport; topRowRect.xMin += margin; topRowRect.xMax -= margin; topRowRect.height = lineHeight; var bottomRowRect = topRowRect; bottomRowRect.y = viewport.yMax - lineHeight - margin; var oldAsset = m_asset; var newAsset = EditorGUI.ObjectField( topRowRect, GUIContent.none, oldAsset, typeof(Object), allowSceneObjects: false); if (newAsset != oldAsset) { m_backupView.asset = m_asset = newAsset; } var backupViewRect = viewport; backupViewRect.xMin -= 1; backupViewRect.xMax += 1; backupViewRect.yMin = topRowRect.yMax + margin; backupViewRect.yMax = bottomRowRect.yMin - margin; m_backupView.OnGUI(backupViewRect); var buttonStyle = EditorStyles.miniButton; var content = new GUIContent("Restore"); var restoreSize = buttonStyle.CalcSize(content); var restoreRect = bottomRowRect; EditorGUI.BeginDisabledGroup(!m_backupView.HasSelection()); var restore = GUI.Button(restoreRect, content, buttonStyle); if (restore) { var selectedItem = m_backupView.selectedItem; var selectedFile = selectedItem.file; var backupPath = selectedFile.path; AssetBackup.RestoreFromBackup(m_asset, backupPath); } EditorGUI.EndDisabledGroup(); }