private void btnOk_Click(object sender, EventArgs e) { try {//dopolnitelni proverki za validacija if (!Directory.Exists(tbSourcePath.Text)) { throw new Exception("Оригиналниот директориум не постои."); } if (!Directory.Exists(tbDestPath.Text)) { throw new Exception("Дестинацискиот директориум не постои."); } if (parent.EntryExists(tbSourcePath.Text, tbDestPath.Text)) { throw new Exception("Директориумот кој сакате да го додадете е веќе синхронизиран на бараната локација."); } NewEntry = new SyncEntry(tbSourcePath.Text, tbDestPath.Text, cbCopyAll.Checked); this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Грешка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void lblStatus_Click(object sender, EventArgs e) { if (lvEntries.SelectedItems.Count > 0) { SyncEntry selectedEntry = syncEntries.ElementAt(lvEntries.SelectedIndices[0]); if (selectedEntry.HasError) { MessageBox.Show("Се појави грешка при синхронизација на една или повеќе датотеки. Ве молиме проверете ги директориумите и додадете ја врската одново.\n" + selectedEntry.ErrorMsg, "Грешка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Se povikuva koga kje se klikne na kopceto Izbrisi. Go zapira nadgleduvanjeto i go brise entry-to. /// Dopolnitelno go namaluva brojot na Entries i go ovozmozuva kopceto Dodaj dokolku e pomal od MAX_ENRIES /// </summary> private void btnIzbrisi_Click(object sender, EventArgs e) { if (lvEntries.SelectedItems.Count > 0) { int index = lvEntries.SelectedIndices[0]; SyncEntry toDelete = syncEntries.ElementAt(index); toDelete.StopWatching(); syncEntries.RemoveAt(index); lvEntries.Items.Remove(lvEntries.SelectedItems[0]); SaveEntries(); btnDodaj.Enabled = entriesNo < MAX_ENTRIES; } }
public override bool Equals(object obj) { if (obj == null) { return(false); } SyncEntry e = obj as SyncEntry; if (e == null) { return(false); } return(this.sourceDir.Equals(e.sourceDir) && this.destDir.Equals(e.sourceDir)); }
/// <summary> /// Vrsi dodavanje na nov SyncEtry i dopolnitelno ja povikuva funkcijata SaveItems za da se zacuvaat site. /// Dopolnitelno prikazuva BaloonTip za da go izvesti korisnikot ako se kopiraat podatoci. /// </summary> /// <param name="newEntry"> Noviot SyncEntry koj treba da se dodade.</param> private void AddEntry(SyncEntry newEntry) { newEntry.StartWatching(); syncEntries.Add(newEntry); SaveEntries(); lvEntries.Items.Add(newEntry.AsListViewItem()); if (newEntry.IsCopying) { trayIcon.BalloonTipIcon = ToolTipIcon.Info; trayIcon.BalloonTipTitle = "BackupSync"; trayIcon.BalloonTipText = "Податоците од последно додадениот директориум се синхронизираат."; trayIcon.ShowBalloonTip(4000); } }
/// <summary> /// se povikuva pri klik na kopceto za promena na sostojbata na sledenje na originalniot direktorium /// </summary> private void btnToggle_Click(object sender, EventArgs e) { if (lvEntries.SelectedItems.Count > 0) {//ako selektiraniot entry e nadgleduvan iskluci nadgleduvanje i obratno SyncEntry selectedEntry = syncEntries.ElementAt(lvEntries.SelectedIndices[0]); if (!selectedEntry.IsWatched) { selectedEntry.StartWatching(); } else { selectedEntry.StopWatching(); } lvEntries_SelectedIndexChanged(null, null); } }
/// <summary> /// Se povikuva koga kje se promeni selekcijata na lvEntries /// </summary> private void lvEntries_SelectedIndexChanged(object sender, EventArgs e) { if (lvEntries.SelectedItems.Count > 0) {//ako ima selektirano entry stavi go vo promenliva i namesti gi text boxovite SyncEntry selectedEntry = syncEntries.ElementAt(lvEntries.SelectedIndices[0]); tbDestFull.Text = selectedEntry.DestDirFullPath; tbOriginalFull.Text = selectedEntry.SourceDirFullPath; btnToggle.Visible = true; if (selectedEntry.HasError) {//ako ima greski prijavi btnToggle.Visible = false; lblStatus.Text = "Грешка"; lblStatus.BackColor = Color.Red; lvEntries.SelectedItems[0].BackColor = Color.Red; pbStatus.Image = null; } if (selectedEntry.IsWatched) {//ako e se vo red i direktoriumot e nadgleduvan btnToggle.Text = "Не Надгледувај"; btnToggle.Image = BackupSync.Properties.Resources.Delete_24x24; lblStatus.Text = "Се надгледува"; lblStatus.BackColor = Color.Green; if (selectedEntry.IsCopying) {//ako se kopira nesto stavi ikona za kopiranje pbStatus.Image = Properties.Resources.Refresh_48x48; ttImage.SetToolTip(pbStatus, "Директориумите се синхронизираат."); } else {//ako ne se kopira stavi ikona deka e sinhronizirano pbStatus.Image = Properties.Resources.Check_48x48; ttImage.SetToolTip(pbStatus, "Директориумите се синхронизирани."); } } else if (selectedEntry.DirsDamaged()) {//Ako direktoriumot e osteten prijavi btnToggle.Visible = false; lblStatus.Text = "Оштетен"; lblStatus.BackColor = Color.Red; lvEntries.SelectedItems[0].BackColor = Color.Red; pbStatus.Image = null; } else {//ako folderot ne se nadgleduva btnToggle.Text = "Надгледуваj"; btnToggle.Image = BackupSync.Properties.Resources.Check_24x24; lblStatus.Text = "Не се надгледува"; lblStatus.BackColor = Color.Orange; if (selectedEntry.IsCopying) {//ako se kopira prijavi, stoi samo za prvoto kopiranje koga se dodava nov SyncEntry pbStatus.Image = Properties.Resources.Refresh_48x48; ttImage.SetToolTip(pbStatus, "Директориумите се синхронизираат."); } else {//ako ne se kopira trgni ja ikonata i tooltip-ot pbStatus.Image = null; ttImage.RemoveAll(); } } //reload na listata na neodamna sinhronizirani lbRecent.Items.Clear(); lbRecent.Items.AddRange(selectedEntry.recentSync.ToArray()); } else {//inaku ne e nisto selektirano i resetiraj se tbDestFull.Text = ""; tbOriginalFull.Text = ""; btnToggle.Visible = false; lblStatus.BackColor = Color.WhiteSmoke; lbRecent.Items.Clear(); pbStatus.Image = null; ttImage.RemoveAll(); } }