Пример #1
0
        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);
            }
        }
Пример #2
0
 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);
         }
     }
 }
Пример #3
0
 /// <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;
     }
 }
Пример #4
0
        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));
        }
Пример #5
0
 /// <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);
     }
 }
Пример #6
0
 /// <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);
     }
 }
Пример #7
0
        /// <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();
            }
        }