/// <summary> /// Starts retrieving documents from Google Docs. /// </summary> private void RetrieveDocuments() { // let's inform user that we are retrieving items (documents & folders) Status(StatusType.Retrieve, "Retrieving documents.."); // disable menu options for changing the Google Account, for browsing Google Docs // and for saving while items are being retrieved menuGoogleAccount.Enabled = false; menuBrowse.Enabled = false; menuSave.Enabled = false; // run the backgroundworker for retrieving items BgWorkerGetAllItems.RunWorkerAsync(); }
private void MenuPreferencesClick(object sender, EventArgs e) { // make sure we are authenticated if (!NocsService.UserIsAuthenticated()) { // user's not authenticated, let's ask for credentials to retrieve items var login = new Login(); if (login.ShowDialog() == DialogResult.OK) { RetrieveDocuments(); } return; } var nocsPreferences = new Preferences(); if (nocsPreferences.ShowDialog() == DialogResult.OK) { // let's notify listeners if (SettingsChanged != null) { SettingsChanged(); } } // if proxy is enabled after preferences were saved, and for some reason the Browsing isn't enabled and // no worker is busy, let's try to re-retrieve all items if (Settings.Default.UseProxy && !menuBrowse.Enabled && !BgWorkerStartService.IsBusy && !BgWorkerGetAllItems.IsBusy) { // make sure user was validated if (!string.IsNullOrEmpty(NocsService.Username) && !string.IsNullOrEmpty(NocsService.Password)) { // inform user that we are retrieving items (documents) Status(StatusType.Retrieve, "Retrieving the list of documents.."); // disable menu options for changing the Google Account and for browsing Google Docs while items are being retrieved menuGoogleAccount.Enabled = false; menuBrowse.Enabled = false; menuSave.Enabled = false; // reset help variable NocsService.AccountChanged = false; // run the backgroundworker for retrieving items BgWorkerGetAllItems.RunWorkerAsync(); } } }
private void BgWorkerStartService_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { Trace.WriteLine(DateTime.Now + " - Main: error while starting service: " + e.Error.Message); // there was an error during the operation -> show it to user Status(StatusType.Error, e.Error.Message); menuGoogleAccount.Enabled = true; } else { // next, retrieve items Status(StatusType.Retrieve, "Retrieving document list.."); BgWorkerGetAllItems.RunWorkerAsync(); } }
private void MenuBrowseClick(object sender, EventArgs e) { // make sure we are authenticated if (!NocsService.UserIsAuthenticated()) { // user's not authenticated, let's ask for credentials to retrieve items var login = new Login(); if (login.ShowDialog() == DialogResult.OK) { Status(StatusType.Retrieve, "Retrieving items..."); menuGoogleAccount.Enabled = false; menuBrowse.Enabled = false; menuSave.Enabled = false; BgWorkerGetAllItems.RunWorkerAsync(); } return; } var currentTab = tabs.SelectedTab as Noc; Browse nocsBrowse; // we will give the Browse-form the current selected documentId (from selected tab), // so the Browse-form can select it from its listBox on load // we'll also give Browse a reference to Synchronizer because AutoFetchAllEventFinished might fire if (currentTab != null && !currentTab.Document.IsDraft) { nocsBrowse = new Browse(ref _synchronizer, currentTab.Document.ResourceId); } else { nocsBrowse = new Browse(ref _synchronizer); } // Browse-form can tell us to add+load a document, or notify us of document renames/deletions nocsBrowse.AddDocumentToMainForm += BrowseAddDocumentToMainForm; nocsBrowse.DocumentRenamed += BrowseDocumentRenamed; nocsBrowse.DocumentDeleted += BrowseDocumentDeleted; nocsBrowse.ShowDialog(); }
private void MenuGoogleAccountClick(object sender, EventArgs e) { // let's first stop all processing _synchronizer.Stop(); _autoFetchAllEntriesTimer.Stop(); // let's then find out if any of the open tabs are unsaved foreach (Noc tab in tabs.TabPages) { if (tab.ContentHasChanged && NocsService.UserIsAuthenticated()) { // display a msg asking the user to save changes or abort var result = MessageBox.Show("Do you want to save the changes to " + tab.Text + "?", "Nocs", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { // let's stop here if we're already saving the current tab if (tab.SaveWorkerIsBusy()) { // re-enable all processing _synchronizer.Start(); _autoFetchAllEntriesTimer.Start(); return; } // if current file is not new, let's just save it if (!tab.Document.IsDraft) { Status(StatusType.Save, "Saving..."); tab.Save(); } else { // ask for a name var saveResponse = SaveDialog.SaveDialogBox("Enter a name for your file:", "Save", "Untitled"); if (!string.IsNullOrEmpty(saveResponse.DocumentName)) { Status(StatusType.Save, "Saving..."); tab.SaveAs(saveResponse); } } // re-enable all processing _synchronizer.Start(); _autoFetchAllEntriesTimer.Start(); return; } if (result == DialogResult.Cancel) { // re-enable all processing _synchronizer.Start(); _autoFetchAllEntriesTimer.Start(); return; } } } // we're past saving questions, let's show the Login dialog for changing Google account var login = new Login(); login.ShowDialog(); // let's check if user account was changed once the login window is closed if (NocsService.AccountChanged) { // inform the new user that we are retrieving items Status(StatusType.Retrieve, "Synchronizing with Google Docs..."); // disable menu options for changing google account and opening documents while items are being retrieved menuGoogleAccount.Enabled = false; menuBrowse.Enabled = false; menuSave.Enabled = false; // reset helping variable NocsService.AccountChanged = false; // let's reset titlebar, clear tabs, etc. SetMainTitle(string.Empty); tabs.TabPages.Clear(); // let's clear synchronizer queues _synchronizer.JobQueue.Clear(); _synchronizer.ErrorQueue.Clear(); // let's then create a new tab (Noc) AddNoc(); // and finally let's run the backgroundworker to retrieve new items for this account BgWorkerGetAllItems.RunWorkerAsync(false); } // either way, let's re-enable timers _synchronizer.Start(); _autoFetchAllEntriesTimer.Start(); }