Пример #1
0
        ToolStripMenuItem InitializeWatcherMenu(TogglWatcher watcher)
        {
            var menu = new ToolStripMenuItem(watcher.Name);

            menu.DropDownItems.AddRange(new ToolStripMenuItem[] {
                new ToolStripMenuItem("View", null, async(object sender, EventArgs e) => {
                    new DayEntriesForm(await watcher.GetTodayEntries()).Show();
                }),
                new ToolStripMenuItem("Refresh", null, (object sender, EventArgs e) => watcher.Refresh()),
                new ToolStripMenuItem("Edit", null, (object sender, EventArgs e) => {
                    WatcherForm.GetWatcher(watcher);

                    SaveWatchers();
                }),
                new ToolStripMenuItem("Remove", null, (object sender, EventArgs e) => {
                    var result = MessageBox.Show($"Remove watcher '{watcher.Name}'?", "Remove watcher", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        _watchers.Remove(watcher);

                        SaveWatchers();
                    }
                })
            });

            return(menu);
        }
Пример #2
0
        public static TogglWatcher GetWatcher(TogglWatcher watcher = null)
        {
            var form = new WatcherForm(watcher);

            form.ShowDialog();

            return(form._watcher);
        }
Пример #3
0
        void ShowNotification(TogglWatcher watcher, TogglTimeEntry entry)
        {
            if (entry == null)
            {
                _icon.ShowBalloonTip(2000, watcher.Name, "Timer stopped", ToolTipIcon.Info);
            }

            else
            {
                var text = $"Timer started: {Helpers.TruncateString(entry.Description, 30)} ({Helpers.StringifySecondsDuration(entry.Duration)})";

                _icon.ShowBalloonTip(2000, watcher.Name, text, ToolTipIcon.Info);
            }
        }
Пример #4
0
        private void CreateWatcher(object sender, EventArgs e)
        {
            if (!ValidateFields())
            {
                return;
            }

            var apiToken             = textBox_apiToken.Text;
            var name                 = textBox_name.Text;
            var checkIntervalSeconds = (int)numericUpDown_seconds.Value;
            var notificationEnabled  = checkBox_notification.Checked;

            _watcher = new TogglWatcher(apiToken, name, checkIntervalSeconds, notificationEnabled);

            Close();
        }
Пример #5
0
        private WatcherForm(TogglWatcher watcher = null)
        {
            InitializeComponent();
            Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location);

            if (watcher != null)
            {
                _watcher = watcher;
                textBox_apiToken.Text         = new string('*', 32);
                textBox_name.Text             = watcher.Name;
                numericUpDown_seconds.Value   = watcher.CheckIntervalSeconds;
                checkBox_notification.Checked = watcher.NotificationEnabled;
                button_submit.Text            = "Update";

                textBox_apiToken.Enabled = false;

                button_submit.Click += UpdateWatcher;
            }
            else
            {
                button_submit.Text   = "Create";
                button_submit.Click += CreateWatcher;
            }
        }