Example #1
0
            public void StartComic(Comic comic)
            {
                var arguments = Comic.ExecutionString.CreateExecutionArguments(Profile.ExecutionArguments, comic);

                if (this.Type == Application.Viewer)
                {
                    var viewer = new Viewer.MainWindow(arguments.ToArray())
                    {
                        Top    = Support.Helper.RestrictToRange(Properties.Settings.Default.ViewerTop, 0, null),
                        Left   = Support.Helper.RestrictToRange(Properties.Settings.Default.ViewerLeft, 0, null),
                        Height = Support.Helper.RestrictToRange(Properties.Settings.Default.ViewerHeight, 200, null),
                        Width  = Support.Helper.RestrictToRange(Properties.Settings.Default.ViewerWidth, 200, null)
                    };

                    var conn = SQL.Database.DatabaseConnection.ForCurrentProfile();
                    viewer.GoToIndex(conn.GetProgress(comic));

                    var customContextMenuItems = new List <object>();
                    var loveItem = new System.Windows.Controls.MenuItem {
                        Header = "Love"
                    };
                    loveItem.Click += ((o, e) => comic.Loved = !comic.Loved);
                    var dislikeItem = new System.Windows.Controls.MenuItem()
                    {
                        Header = "Dislike"
                    };
                    dislikeItem.Click += ((o, e) => comic.Disliked = !comic.Disliked);
                    var thumbnailItem = new System.Windows.Controls.MenuItem()
                    {
                        Header = "Set Thumbnail as Current Image"
                    };
                    thumbnailItem.Click += ((o, e) => {
                        // This also needs to be more generic
                        comic.ThumbnailSource = viewer.CurrentImage;
                        comic.Save();
                        comic.GenerateThumbnail();
                        App.ComicsWindow.RefreshComics();
                    });

                    customContextMenuItems.Add(loveItem);
                    customContextMenuItems.Add(dislikeItem);
                    customContextMenuItems.Add(thumbnailItem);
                    viewer.CustomContextMenuItems = customContextMenuItems;

                    viewer.Closing += ((sender, e) => {
                        Properties.Settings.Default.ViewerTop = viewer.Top;
                        Properties.Settings.Default.ViewerLeft = viewer.Left;
                        Properties.Settings.Default.ViewerHeight = viewer.ActualHeight;
                        Properties.Settings.Default.ViewerWidth = viewer.ActualWidth;

                        conn.SetProgress(comic, viewer.CurrentImageIndex);
                    });

                    viewer.Show();
                }
                else
                {
                    if (!File.Exists(this.Path))
                    {
                        MessageBox.Show("Startup application doesn't exist!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
                        return;
                    }

                    Process.Start(this.Path, string.Join(" ", arguments.Select(p => "\"" + p + "\"")));
                }
            }