Example #1
0
        /// <summary>
        ///     Handles the add track clicked event.
        /// </summary>
        private void HandleAddTrackClickedEvent()
        {
            //check preconditions
            if (Core.Model.Instance.Compilation == null) //no compilation
            {
                //nothing to add
                MessageBox.Show("There is no compilation to add tracks to. Create or load a compilation first.");
                return;
            }

            Track        newTrack     = new Track();
            DisplayTrack displayTrack = new DisplayTrack(newTrack);

            PropertyDialog propDialog = new PropertyDialog(displayTrack, "Enter track details");

            if (propDialog.ShowDialog() == DialogResult.OK)
            {
                //create initial cue
                newTrack.Cues.Add(
                    new Cue {
                    Description = "Intro (autogenerated)",
                    Shortcut    = "1",
                    Time        = 0
                });
                Core.Model.Instance.Compilation.Tracks.Add(newTrack);
                Core.Model.Instance.Compilation.IsDirty = true;
            }
            return;
        }
Example #2
0
        /// <summary>
        ///     Handles an event from the event broker
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EventBroker_EventOccured(object sender, EventArgs <string> e)
        {
            switch (e.Data)
            {
            case "Menu:OpenCompilationClicked": {
                HandleOpenCompilationClickedEvent();
                break;
            }

            case "Menu:EditCompilationClicked": {
                HandleEditCompilationClickedEvent();
                break;
            }

            case "Menu:AboutClicked": {
                HandleAboutClickedEvent();
                break;
            }

            case "Menu:OnlineHelpClicked": {
                HandleOnlineHelpClickedEvent();
                break;
            }

            case "Menu:ExitClicked": {
                HandleExitClickedEvent();
                break;
            }

            case "Menu:SettingsClicked": {
                HandleSettingsClickedEvent();
                break;
            }

            case "Menu:UiSettingsClicked": {
                HandleUiSettingsClickedEvent();
                break;
            }

            case "Menu:CreateNewCompilationClicked": {
                HandleCreateNewCompilationClickedEvent();
                break;
            }

            case "Menu:AddCueClicked": {
                HandleAddCueClickedEvent();
                break;
            }

            case "Menu:CreateCueHereClicked": {
                Core.Model.Instance.CreateCueHere();
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:DeleteSelectedCue": {
                Core.Model.Instance.RemoveSelectedCue();
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:MoveUpSelectedCue": {
                Core.Model.Instance.MoveSelectedCue(-1);
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:MoveDownSelectedCue": {
                Core.Model.Instance.MoveSelectedCue(+1);
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:MoveUpSelectedTrack": {
                Core.Model.Instance.MoveSelectedTrack(-1);
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:MoveDownSelectedTrack": {
                Core.Model.Instance.MoveSelectedTrack(+1);
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:DeleteSelectedTrack": {
                Core.Model.Instance.RemoveSelectedTrack();
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:CloneSelectedTrack": {
                Core.Model.Instance.CloneSelectedTrack();
                Core.Model.Instance.Compilation.IsDirty = true;
                break;
            }

            case "Menu:EditSelectedCue": {
                if (Core.Model.Instance.SelectedCue != null)                //there is any selected?
                {
                    Cue cloneCue = Core.Model.Instance.SelectedCue.Clone(); //clone for private manipulation
                    using (PropertyDialog propertyDialog = new PropertyDialog(cloneCue, "Edit cue")) {
                        propertyDialog.Height = 353;
                        if (propertyDialog.ShowDialog() == DialogResult.OK)
                        {
                            Core.Model.Instance.SelectedTrack.Cues.Replace(Core.Model.Instance.SelectedCue, cloneCue);
                            //assign back, causing an update of the model
                            Core.Model.Instance.SelectedCue         = cloneCue; //use the new as selected
                            Core.Model.Instance.Compilation.IsDirty = true;
                        }
                    }
                }
                break;
            }

            case "Menu:AddTrackClicked": {
                HandleAddTrackClickedEvent();
                break;
            }

            case "Menu:EditSelectedTrack": {
                if (Core.Model.Instance.SelectedTrack != null)         //there is any selected?
                {
                    DisplayTrack displayTrack = new DisplayTrack(Core.Model.Instance.SelectedTrack.Clone());
                    //clone for private manipulation
                    using (PropertyDialog propertyDialog = new PropertyDialog(displayTrack, "Edit track")) {
                        propertyDialog.Height = 393;
                        propertyDialog.Width  = 800;        //to have more room for the file name.
                        if (propertyDialog.ShowDialog() == DialogResult.OK)
                        {
                            Core.Model.Instance.Compilation.Tracks.Replace(Core.Model.Instance.SelectedTrack,
                                                                           displayTrack.Model);
                            //assign back, causing an update of the model
                            Core.Model.Instance.SelectedTrack       = displayTrack.Model;   //use the new as selected
                            Core.Model.Instance.Compilation.IsDirty = true;
                        }
                    }
                }
                break;
            }

            case "Menu:SaveFile": {
                HandleSaveFileEvent();
                break;
            }

            case "Menu:SaveFileAs": {
                HandleSaveFileAsEvent();
                break;
            }

            case "Menu:ExportFile": {
                HandleExportFileEvent();
                break;
            }

            default:
                break;
            }
        }