git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 23 Nov 2017 12:35:54 +0000 (12:35 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Thu, 23 Nov 2017 12:35:54 +0000 (12:35 +0000)
14 files changed:
client/AudioRecorder/AudioRecorder.csproj
client/AudioRecorder/FileNameForm.cs
client/DxPlay/InterceptKeys.cs
client/DxPlay/PlayerForm.Designer.cs
client/DxPlay/PlayerForm.cs
client/Maestro/Configuration/configuration-playout-ingest.json
client/Maestro/Configuration/configuration-sxs.json
client/Maestro/MaestroForm.Metadata.cs
client/Maestro/Sources/FileSourceItem.cs
client/MaestroShared/Metadata/MovieSegment.cs
client/MaestroShared/Metadata/Timecode.cs
client/OctopusClient/OctopusClient.csproj
client/OctopusClient/OctopusConfiguration.cs
client/OctopusClient/OctopusIDSelector.cs

index 21120b51456686971a122954d274e4b8aa4acd59..399ee87ed2095417d584b322f3819675933b2531 100644 (file)
     <Content Include="Resources\stop.png" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <ProjectReference Include="..\MaestroShared\MaestroShared.csproj">\r
+      <Project>{d4417174-f21e-4ce2-ae5c-8eb30c9a9625}</Project>\r
+      <Name>MaestroShared</Name>\r
+    </ProjectReference>\r
     <ProjectReference Include="..\OctopusClient\OctopusClient.csproj">\r
       <Project>{8cc7c930-9dbf-487b-aed5-776937a649d5}</Project>\r
       <Name>OctopusClient</Name>\r
index b9f2f6036f3f72bb20bba4c30b2d5f5c8b9cc108..7f16074c790496f9c8e23cdb021bfbd53216ae45 100644 (file)
@@ -1,6 +1,7 @@
 using System;\r
 using System.Windows.Forms;\r
 using OctopusClient;\r
+using MaestroShared.Configuration;\r
 \r
 namespace AudioRecorder {\r
     public partial class FileNameForm : Form {\r
@@ -15,11 +16,15 @@ namespace AudioRecorder {
             this.settings = settings;\r
             this.mainForm = mainForm;\r
             octopusIDSelector1.IDChangedEvent = IdChangedEvent;\r
-            octopusIDSelector1.Configuration = new OctopusConfiguration() {\r
-                Address = settings.getAddress(),\r
-                Password = settings.getPassword(),\r
-                UserName = settings.getUserName(),\r
-                Timeout = settings.getTimeout()\r
+            octopusIDSelector1.Properties = new OctopusConfiguration() {\r
+                Configuration = new OctopusMetadata() {\r
+                    Server = new Connection() {\r
+                        Address = settings.getAddress(),\r
+                        Password = settings.getPassword(),\r
+                        UserName = settings.getUserName(),\r
+                        Timeout = settings.getTimeout()\r
+                    }\r
+                }\r
             };\r
         }\r
 \r
index 2873f27b52b940d40b18d21b6cbcbe3f0448f8d8..27790aed73a93af41c9bbbfce75500a14fe52855 100644 (file)
@@ -6,6 +6,8 @@ using System.Runtime.InteropServices;
 namespace DxPlay {\r
     class InterceptKeys {\r
         private const int WH_KEYBOARD_LL = 13;\r
+        private const int WH_CALLWNDPROC = 4;\r
+\r
         private const int WM_KEYDOWN = 0x0100;\r
         private static LowLevelKeyboardProc _proc = HookCallback;\r
         private static IntPtr _hookID = IntPtr.Zero;\r
@@ -35,7 +37,6 @@ namespace DxPlay {
             if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN) {\r
                 int vkCode = Marshal.ReadInt32(lParam);\r
                 GlobalKeyEvent?.Invoke((Keys)vkCode);\r
-                //Application.DoEvents();\r
             }\r
 \r
             return CallNextHookEx(_hookID, nCode, wParam, lParam);\r
index 13915987be953583bdbf7fec679079216812d0f0..bba3516c50a43faf29f895158f97aa1d79172b84 100644 (file)
@@ -320,8 +320,8 @@ namespace DxPlay {
             this.dgSegments.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
             this.dgSegments.Size = new System.Drawing.Size(257, 521);\r
             this.dgSegments.TabIndex = 1;\r
+            this.dgSegments.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgSegments_CellMouseDoubleClick);\r
             this.dgSegments.ColumnAdded += new System.Windows.Forms.DataGridViewColumnEventHandler(this.dgSegments_ColumnAdded);\r
-            this.dgSegments.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this.dgSegments_RowsAdded);\r
             // \r
             // menuButtonSegmentActions\r
             // \r
index d90e7f91fe10b9b1f33191a36b408993ec37682f..ba0ab37d20a0dbf3c9cbb3046bedb97e2886b693 100644 (file)
@@ -12,7 +12,7 @@ namespace DxPlay {
 \r
     public partial class PlayerForm : Form {\r
 \r
-        private BindingList<MovieSegment> segments = new BindingList<MovieSegment>();\r
+        private BindingList<MovieSegment> segments;\r
         private DateTime lastClick = DateTime.Now;\r
         private string selectedFile;\r
         private volatile bool trackBarAtUser;\r
@@ -288,11 +288,11 @@ namespace DxPlay {
         }\r
 \r
         private void PlayerForm_FormClosing(object sender, FormClosingEventArgs e) {\r
-            foreach (MovieSegment segment in segments)\r
-                if (segment.TCOut == null) {\r
-                    e.Cancel = true;\r
-                    return;\r
-                }\r
+            //foreach (MovieSegment segment in segments)\r
+            //    if (segment.TCOut == null) {\r
+            //        e.Cancel = true;\r
+            //        return;\r
+            //    }\r
 \r
             if (m_play != null) {\r
                 m_play.Stop();\r
@@ -322,177 +322,114 @@ namespace DxPlay {
         }\r
 \r
         private void OnDefineOneSegmentClick(object sender, EventArgs e) {\r
-            MovieSegment segment = new MovieSegment() {\r
-                TCIn = new Timecode(),\r
-                TCOut = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration)\r
-            };\r
-            segment.TCIn.Set(m_mediaDescription.FirstFrame.Frames);\r
-            segments.Add(segment);\r
-        }\r
-\r
-        private void OnDeleteSegmentClick(object sender, EventArgs e) {\r
-            if (dgSegments.SelectedRows.Count == 0)\r
-                return;\r
-            DataGridViewRow selectedRow = dgSegments.SelectedRows[0];\r
-            for (int i = 0; i < dgSegments.Rows.Count; i++) {\r
-                DataGridViewRow actual = dgSegments.Rows[i];\r
-                if (selectedRow.Equals(actual)) {\r
-                    segments.Remove(segments[i]);\r
+            MovieSegment segment = null;\r
+            if (segments.Count == 0) {\r
+                segment = new MovieSegment() {\r
+                    TCIn = new Timecode(m_mediaDescription.FirstFrame.Frames),\r
+                    TCOut = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration)\r
+                };\r
+            } else {\r
+                MovieSegment lastSegment = segments[segments.Count - 1];\r
+                Timecode tcEnd = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration);\r
+                if (lastSegment.TCOut.Frames == tcEnd.Frames) {\r
+                    MessageBox.Show("Az utolsó szegmen az anyag végéig tart, így nem hozható létre új szegmens.");\r
                     return;\r
                 }\r
+                segment = new MovieSegment() {\r
+                    TCIn = new Timecode(lastSegment.TCOut.Frames),\r
+                    TCOut = tcEnd\r
+                };\r
             }\r
+            segments.Add(segment);\r
+        }\r
 \r
+        private void OnDeleteSegmentClick(object sender, EventArgs e) {\r
+            if (bsSegments.Current != null)\r
+                segments.Remove(bsSegments.Current as MovieSegment);\r
         }\r
 \r
-        //todo stringetket resources file-ba\r
         private void OnActualPositionToTCInToolStripMenuItem1Click(object sender, EventArgs e) {\r
-            MovieSegment currentSegment = GetCurrentSegment();\r
-            if (currentSegment != null) {\r
-\r
-                if (currentSegment.TCIn != null) {\r
-                    DialogResult dialogResult = MessageBox.Show("Biztos felül akarja írni az belépõt?", "Belépõ felülírása", MessageBoxButtons.YesNo);\r
-                    if (dialogResult == DialogResult.Yes) {\r
-                        if (IsTCInBeforeTCOut(m_play.CurrentTC, currentSegment.TCOut)) {\r
-                            Timecode actual = new Timecode();\r
-                            actual.Set(m_play.CurrentTC.Frames);\r
-                            currentSegment.TCIn = actual;\r
-                        } else {\r
-                            MessageBox.Show("A kilépõ a belépõ elõtt van!", "Hiba");\r
-                            currentSegment.TCIn = new Timecode();\r
-                        }\r
-                    }\r
-                } else {\r
-                    Timecode actual = new Timecode(m_play.CurrentTC);\r
-                    currentSegment.TCIn = actual;\r
-                }\r
-            } else {\r
-                MovieSegment segment = new MovieSegment() {\r
-                    TCIn = new Timecode(m_mediaDescription.FirstFrame),\r
-                    //ez kell-e?\r
-                    //TCOut = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration)\r
-                };\r
-                segments.Add(segment);\r
+            MovieSegment currentSegment = bsSegments.Current as MovieSegment;\r
+            if (currentSegment == null)\r
+                return;\r
+            if (currentSegment.TCOut.Frames <= m_play.CurrentTC.Frames) {\r
+                MessageBox.Show("A belépõ nem lehet a kilépõ után.");\r
+                return;\r
             }\r
-            UpdateDataChanged();\r
-        }\r
-\r
-        private void UpdateDataChanged() {\r
-            dgSegments.DataSource = null;\r
-            dgSegments.DataSource = bsSegments;\r
-        }\r
+            //if (MessageBox.Show("Biztos felül akarja írni az belépõt?", "Belépõ felülírása", MessageBoxButtons.YesNo) == DialogResult.No)\r
+            //    return;\r
+            MovieSegment collisionSegment = segments.Where(s => s.TCIn.Frames < m_play.CurrentTC.Frames && m_play.CurrentTC.Frames < s.TCOut.Frames).SingleOrDefault();\r
 \r
-        private void OnActualPositionToTCOutToolStripMenuItem1Click(object sender, EventArgs e) {\r
-            MovieSegment currentSegment = GetCurrentSegment();\r
-            if (currentSegment != null) {\r
-                if (currentSegment.TCOut != null) {\r
-                    DialogResult dialogResult = MessageBox.Show("Biztos felül akarja írni a kilépõt?", "Kilépõ felülírása", MessageBoxButtons.YesNo);\r
-                    if (dialogResult == DialogResult.Yes) {\r
-                        if (IsTCInBeforeTCOut(currentSegment.TCIn, m_play.CurrentTC)) {\r
-                            Timecode actual = new Timecode();\r
-                            actual.Set(m_play.CurrentTC.Frames);\r
-                            currentSegment.TCOut = actual;\r
-                        } else {\r
-                            MessageBox.Show("A kilépõ a belépõ elõtt van!", "Hiba");\r
-                            currentSegment.TCIn = new Timecode();\r
-                        }\r
-                    }\r
-                } else {\r
-                    Timecode actual = new Timecode(m_play.CurrentTC);\r
-                    currentSegment.TCOut = actual;\r
-                }\r
-            } else {\r
-                MovieSegment segment = new MovieSegment() {\r
-                    //ez kell-e?\r
-                    //TCIn = new Timecode(m_mediaDescription.FirstFrame),\r
-                    TCOut = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration)\r
-                };\r
-                segments.Add(segment);\r
+            if (collisionSegment != null && !currentSegment.Equals(collisionSegment)) {\r
+                MessageBox.Show("A szegmensek között nem lehet átfedés.");\r
+                return;\r
             }\r
-            UpdateDataChanged();\r
-        }\r
 \r
-        private bool IsTCInBeforeTCOut(Timecode tcIn, Timecode tcOut) {\r
-            if (tcIn == null || tcOut == null)\r
-                return true;\r
-            string tcInString = tcIn.ToString();\r
-            string tcOutString = tcOut.ToString();\r
-            string inHour = tcInString.Substring(0, 2);\r
-            string outHour = tcOutString.Substring(0, 2);\r
-            if (Int32.Parse(outHour) < Int32.Parse(inHour))\r
-                return false;\r
-            else if (Int32.Parse(outHour) > Int32.Parse(inHour))\r
-                return true;\r
-            string inMinute = tcInString.Substring(3, 2);\r
-            string outMinute = tcOutString.Substring(3, 2);\r
-            if (Int32.Parse(outMinute) < Int32.Parse(inMinute))\r
-                return false;\r
-            else if (Int32.Parse(outMinute) > Int32.Parse(inMinute))\r
-                return true;\r
-            string inSec = tcInString.Substring(6, 2);\r
-            string outSec = tcOutString.Substring(6, 2);\r
-            if (Int32.Parse(outSec) < Int32.Parse(inSec))\r
-                return false;\r
-            else if (Int32.Parse(outSec) > Int32.Parse(inSec))\r
-                return true;\r
-            string inFrame = tcInString.Substring(9, 2);\r
-            string outFrame = tcOutString.Substring(9, 2);\r
-            if (Int32.Parse(outFrame) <= Int32.Parse(inFrame))\r
-                return false;\r
-\r
-            return true;\r
+            currentSegment.TCIn = new Timecode(m_play.CurrentTC.Frames);\r
         }\r
 \r
-        private MovieSegment GetCurrentSegment() {\r
-            if (dgSegments.SelectedRows.Count > 0) {\r
-                DataGridViewRow selectedRow = dgSegments.SelectedRows[0];\r
-                for (int i = 0; i < dgSegments.Rows.Count; i++) {\r
-                    DataGridViewRow actual = dgSegments.Rows[i];\r
-                    if (selectedRow.Equals(actual)) {\r
-                        return segments[i];\r
-                    }\r
+        private void OnActualPositionToTCOutToolStripMenuItem1Click(object sender, EventArgs e) {\r
+            MovieSegment currentSegment = bsSegments.Current as MovieSegment;\r
+            if (currentSegment == null)\r
+                return;\r
+            if (currentSegment.TCIn.Frames >= m_play.CurrentTC.Frames)\r
+                MessageBox.Show("A kilépõ nem lehet a belépõ elõtt.");\r
 \r
-                }\r
+            MovieSegment collisionSegment = segments.Where(s => s.TCIn.Frames < m_play.CurrentTC.Frames && m_play.CurrentTC.Frames < s.TCOut.Frames).SingleOrDefault();\r
+\r
+            if (collisionSegment != null && !currentSegment.Equals(collisionSegment)) {\r
+                MessageBox.Show("A szegmensek között nem lehet átfedés.");\r
+                return;\r
             }\r
-            return null;\r
+\r
+            //if (MessageBox.Show("Biztos felül akarja írni az kilépõt?", "Kilépõ felülírása", MessageBoxButtons.YesNo) == DialogResult.No)\r
+            //    return;\r
+            currentSegment.TCOut = new Timecode(m_play.CurrentTC.Frames);\r
         }\r
 \r
         private void OnSplitSegmentAtCurrentPositionClick(object sender, EventArgs e) {\r
-\r
-            MovieSegment segment = segments.Where(s => m_play.CurrentTC.Frames > s.TCIn.Frames && m_play.CurrentTC.Frames < s.TCOut.Frames).FirstOrDefault();\r
-            if (segment == null)\r
+            MovieSegment currentSegment = segments.Where(s => s.TCIn.Frames < m_play.CurrentTC.Frames && s.TCOut.Frames > m_play.CurrentTC.Frames).SingleOrDefault();\r
+            if (currentSegment == null)\r
                 return;\r
-            segments.Remove(segment);\r
-            MovieSegment lSegment = new MovieSegment() {\r
-                TCIn = segment.TCIn,\r
-                TCOut = new Timecode(m_play.CurrentTC)\r
+            int position = segments.IndexOf(currentSegment);\r
+            MovieSegment newSegment = new MovieSegment() {\r
+                TCIn = new Timecode(currentSegment.TCIn.Frames),\r
+                TCOut = new Timecode(m_play.CurrentTC.Frames)\r
             };\r
-            lSegment.TCOut.Set(m_play.CurrentTC.ZeroBasedFrames);\r
-            segments.Add(lSegment);\r
-\r
-            MovieSegment hSegment = new MovieSegment() {\r
-                TCIn = new Timecode(m_play.CurrentTC),\r
-                TCOut = segment.TCOut\r
-            };\r
-            hSegment.TCIn.Set(m_play.CurrentTC.ZeroBasedFrames + 1);\r
-            segments.Add(hSegment);\r
-        }\r
-\r
-        private void dgSegments_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {\r
-            DataGridViewColumnCollection cols = dgSegments.Columns;\r
-            if (cols.Count >= 2) {\r
-                cols[0].ReadOnly = true;\r
-                cols[1].ReadOnly = true;\r
-            }\r
+            currentSegment.TCIn = new Timecode(m_play.CurrentTC.Frames);\r
+            segments.Insert(position, newSegment);\r
         }\r
 \r
         private void dgSegments_ColumnAdded(object sender, DataGridViewColumnEventArgs e) {\r
             int index = e.Column.Index;\r
             switch (index) {\r
-                case 0: e.Column.HeaderText = StringResource.BELEPO; break;\r
-                case 1: e.Column.HeaderText = StringResource.KILEPO; break;\r
+                case 0:\r
+                    e.Column.HeaderText = StringResource.BELEPO;\r
+                    e.Column.ReadOnly = true;\r
+                    break;\r
+                case 1:\r
+                    e.Column.HeaderText = StringResource.KILEPO;\r
+                    e.Column.ReadOnly = true;\r
+                    break;\r
                 case 2: e.Column.HeaderText = StringResource.ELHAGYHATO; break;\r
                 case 3: e.Column.HeaderText = StringResource.MEGJEGYZES; break;\r
             }\r
         }\r
+\r
+\r
+        private void dgSegments_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {\r
+            //MovieSegment actualSegment = bsSegments.Current as MovieSegment;\r
+            //if (actualSegment == null)\r
+            //    return;\r
+            //if (e.ColumnIndex == 0) {\r
+            //    m_play.Pause();\r
+            //    m_play.Seek(actualSegment.TCIn.ZeroBasedFrames);\r
+            //}\r
+            //if (e.ColumnIndex == 1) {\r
+            //    m_play.Pause();\r
+            //    m_play.Seek(actualSegment.TCOut.ZeroBasedFrames);\r
+            //}\r
+\r
+        }\r
     }\r
 }\r
index ddd13040318565787876b4f4db0d6b43d9a535d9..aa818ef78d9a56e12fce43f666f94ee12d06375c 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "Lebony betöltő",\r
-  "active": false,\r
+  "active": true,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
index c8fcc10ad784f0e52ff142341ac381f60f48d704..d5a2187bb507ca59e674965a188d463789db252a 100644 (file)
@@ -1,6 +1,6 @@
 {\r
   "title": "SxS",\r
-  "active": false,\r
+  "active": true,\r
   "startInTray": false,\r
   "enableCustomMetadataId": true,\r
   "player": {\r
index 0065614b0e0b17253a2fbf8688e88cec18fa8139..ec03942d22ae085f35f14816f3ddaba8fec62318 100644 (file)
@@ -80,13 +80,8 @@ namespace Maestro {
                 tabMetadata.TabPages.Remove(tpOctopus);\r
                 return;\r
             }\r
-            octopusIDSelector.Configuration = new OctopusConfiguration() {\r
-                Address = octopusConfiguration.Server.Address,\r
-                UserName = octopusConfiguration.Server.UserName,\r
-                Password = octopusConfiguration.Server.Password,\r
-                Timeout = octopusConfiguration.Server.Timeout,\r
-                DisablePlaceHolderCheck = octopusConfiguration.DisablePlaceHolderCheck,\r
-                DisableStoryCheck = octopusConfiguration.DisableStoryCheck,\r
+            octopusIDSelector.Properties = new OctopusConfiguration() {\r
+                Configuration = octopusConfiguration,\r
                 MessageBus = errorMessageBus\r
             };\r
             octopusIDSelector.IDChangedEvent += OnOctopusIDSelected;\r
index 2ade20d0cf9918fc4f2924bfad3501f109b0b5f6..faa013ccd063fb106b0b8579c0658be18b752fee 100644 (file)
@@ -16,7 +16,7 @@ namespace Maestro.Sources {
 \r
         public event PropertyChangedEventHandler PropertyChanged;\r
 \r
-        protected void NotifyPropertyChanged([CallerMemberName] String propertyName = "") {\r
+        protected void NotifyPropertyChanged([CallerMemberName] string propertyName = "") {\r
             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r
         }\r
 \r
index 92827c0d9d0cc542a5090893f8269e400fb27839..0904fcb71bfabc814751a5ab194f6463f4e24280 100644 (file)
@@ -1,8 +1,50 @@
-namespace MaestroShared.Metadata {\r
-    public class MovieSegment {\r
-        public Timecode TCIn { get; set; }\r
-        public Timecode TCOut { get; set; }\r
-        public bool Optional { get; set; }\r
-        public string Comment { get; set; }\r
+using System.ComponentModel;\r
+using System.Runtime.CompilerServices;\r
+\r
+namespace MaestroShared.Metadata {\r
+    public class MovieSegment : INotifyPropertyChanged {\r
+        public event PropertyChangedEventHandler PropertyChanged;\r
+\r
+        protected void NotifyPropertyChanged([CallerMemberName] string propertyName = "") {\r
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r
+        }\r
+        private Timecode tcIn;\r
+        private Timecode tcOut;\r
+        private bool optional;\r
+        private string comment;\r
+\r
+        public Timecode TCIn {\r
+            get => tcIn;\r
+            set {\r
+                tcIn = value;\r
+                NotifyPropertyChanged();\r
+            }\r
+        }\r
+\r
+        public Timecode TCOut {\r
+            get => tcOut;\r
+            set {\r
+                tcOut = value;\r
+                NotifyPropertyChanged();\r
+            }\r
+        }\r
+\r
+        public bool Optional {\r
+            get => optional;\r
+            set {\r
+                optional = value;\r
+                NotifyPropertyChanged();\r
+            }\r
+        }\r
+\r
+        public string Comment {\r
+            get => comment;\r
+            set {\r
+                comment = value;\r
+                NotifyPropertyChanged();\r
+            }\r
+        }\r
+\r
+\r
     }\r
 }\r
index 506ca6905cb733e532d4855ff3f60b9c938fe6a7..bf29d379d0b29422b0c243200bd95c5cf012d073 100644 (file)
@@ -11,7 +11,7 @@ namespace MaestroShared.Metadata {
             \r
         }\r
 \r
-        public Timecode(long frames) : this() {\r
+        public Timecode(int frames) : this() {\r
             Set(frames);\r
         }\r
 \r
@@ -80,7 +80,7 @@ namespace MaestroShared.Metadata {
             return changed;\r
         }\r
 \r
-        public bool Set(long mediaTime) {\r
+        public bool SetMediaTime(long mediaTime) {\r
             int frames = (int)Math.Ceiling(mediaTime * frameRate / MEDIATIME_REFERENCE);\r
             return Set(frames);\r
         }\r
index 0e3ed536551ad6fbe7bc1089d53ea4ed499fdf8e..77eb85b9aa4a87d7ed53e0c409911ba362de7ddb 100644 (file)
       <DependentUpon>OctopusLookupResultSelector.cs</DependentUpon>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\MaestroShared\MaestroShared.csproj">\r
+      <Project>{d4417174-f21e-4ce2-ae5c-8eb30c9a9625}</Project>\r
+      <Name>MaestroShared</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
 </Project>
\ No newline at end of file
index ea8a9f0bee01af5f0371103f222d736647cd9f6a..d212548ffca89d50043eb5d0b80ecef24700d510 100644 (file)
@@ -1,14 +1,9 @@
 using LinkDotNet.MessageHandling.Contracts;\r
-using System;\r
+using MaestroShared.Configuration;\r
 \r
 namespace OctopusClient {\r
     public class OctopusConfiguration {\r
-        public Uri Address { get; set; }\r
-        public string UserName { get; set; }\r
-        public string Password { get; set; }\r
-        public int Timeout;\r
-        public bool DisablePlaceHolderCheck { get; set; }\r
-        public bool DisableStoryCheck { get; set; }\r
+        public OctopusMetadata Configuration { get; set; }\r
         public IMessageBus MessageBus { get; set; }\r
     }\r
 }\r
index 77f6cafce8441f3b9923bdb71071d2480c00b860..1aad376f55bbc94873887bba7157e66449804deb 100644 (file)
@@ -18,13 +18,13 @@ namespace OctopusClient {
         private TreeNode selectedNode;\r
         private OctopusAPI client;\r
         public OnSelectedIDChanged IDChangedEvent { get; set; }\r
-        private OctopusConfiguration configuration;\r
+        private OctopusConfiguration properties;\r
         private bool refreshDisabled;\r
 \r
-        public OctopusConfiguration Configuration {\r
+        public OctopusConfiguration Properties {\r
             set {\r
-                configuration = value;\r
-                client = new OctopusAPI(value.Address.OriginalString, value.UserName, value.Password, value.Timeout, value.MessageBus);\r
+                properties = value;\r
+                client = new OctopusAPI(value.Configuration.Server.Address.OriginalString, value.Configuration.Server.UserName, value.Configuration.Server.Password, value.Configuration.Server.Timeout, value.MessageBus);\r
                 rbRundown.Checked = true;\r
                 RefreshFolders();\r
             }\r
@@ -136,7 +136,7 @@ namespace OctopusClient {
                 TreeNode storyNode = treeOctopus.Nodes.Add(ID, label);\r
                 storyNode.Tag = story;\r
 \r
-                if (configuration.DisableStoryCheck)\r
+                if (properties.Configuration.DisableStoryCheck)\r
                     HideCheckBox(treeOctopus, storyNode);\r
                 else {\r
                     if (lookupStoryId != null && lookupStoryId.Equals(story.ID))\r
@@ -149,7 +149,7 @@ namespace OctopusClient {
                 foreach (MosObject mosObject in mosObjects) {\r
                     TreeNode placeHolderNode = storyNode.Nodes.Add(mosObject.ObjID, String.Format($"{mosObject.ObjID}"));\r
                     placeHolderNode.Tag = story;\r
-                    if (configuration.DisablePlaceHolderCheck)\r
+                    if (properties.Configuration.DisablePlaceHolderCheck)\r
                         HideCheckBox(treeOctopus, placeHolderNode);\r
                     else {\r
                         if (lookupPlaceHolderId != null && lookupPlaceHolderId.Equals(mosObject.ObjID)) {\r
@@ -165,7 +165,7 @@ namespace OctopusClient {
         private void OnTreeAfterCheck(object sender, TreeViewEventArgs e) {\r
             //logger.Debug("Handling {0} {1} {2}", e.Node.Name, e.Node.Text, e.Node.Checked);\r
 \r
-            if (configuration.DisableStoryCheck && e.Node.Level == 0) {\r
+            if (properties.Configuration.DisableStoryCheck && e.Node.Level == 0) {\r
                 if (e.Node.Checked) {\r
                     e.Node.Checked = false;\r
                     HideCheckBox(treeOctopus, e.Node);\r
@@ -173,7 +173,7 @@ namespace OctopusClient {
                 return;\r
             }\r
 \r
-            if (configuration.DisablePlaceHolderCheck && e.Node.Level == 1) {\r
+            if (properties.Configuration.DisablePlaceHolderCheck && e.Node.Level == 1) {\r
                 if (e.Node.Checked) {\r
                     e.Node.Checked = false;\r
                     HideCheckBox(treeOctopus, e.Node);\r
@@ -390,8 +390,11 @@ namespace OctopusClient {
         }\r
 \r
         private void treeOctopus_MouseDown(object sender, MouseEventArgs e) {\r
-            if (e.Button == MouseButtons.Right)\r
-                treeOctopus.SelectedNode = treeOctopus.GetNodeAt(e.X, e.Y);\r
+            treeOctopus.SelectedNode = treeOctopus.GetNodeAt(e.X, e.Y);\r
+            if (e.Button != MouseButtons.Left)\r
+                return;\r
+\r
+\r
         }\r
     }\r
 \r