|
1 | 1 | using System; |
| 2 | +using System.IO; |
2 | 3 | using System.Threading; |
| 4 | + |
3 | 5 | using Avalonia; |
4 | 6 | using Avalonia.Controls; |
5 | 7 | using Avalonia.Controls.Primitives; |
@@ -148,72 +150,6 @@ private void OnTreeNodeContextRequested(object sender, ContextRequestedEventArgs |
148 | 150 | { |
149 | 151 | var menu = new ContextMenu(); |
150 | 152 |
|
151 | | - if (!node.IsRepository && node.SubNodes.Count > 0) |
152 | | - { |
153 | | - var openAll = new MenuItem(); |
154 | | - openAll.Header = App.Text("Welcome.OpenAllInNode"); |
155 | | - openAll.Icon = this.CreateMenuIcon("Icons.Folder.Open"); |
156 | | - openAll.Click += (_, e) => |
157 | | - { |
158 | | - node.Open(); |
159 | | - e.Handled = true; |
160 | | - }; |
161 | | - |
162 | | - menu.Items.Add(openAll); |
163 | | - menu.Items.Add(new MenuItem() { Header = "-" }); |
164 | | - } |
165 | | - |
166 | | - if (node.IsRepository) |
167 | | - { |
168 | | - var open = new MenuItem(); |
169 | | - open.Header = App.Text("Welcome.OpenOrInit"); |
170 | | - open.Icon = this.CreateMenuIcon("Icons.Folder.Open"); |
171 | | - open.Click += (_, e) => |
172 | | - { |
173 | | - node.Open(); |
174 | | - e.Handled = true; |
175 | | - }; |
176 | | - |
177 | | - menu.Items.Add(open); |
178 | | - menu.Items.Add(new MenuItem() { Header = "-" }); |
179 | | - |
180 | | - if (!node.IsInvalid) |
181 | | - { |
182 | | - var explore = new MenuItem(); |
183 | | - explore.Header = App.Text("Repository.Explore"); |
184 | | - explore.Icon = this.CreateMenuIcon("Icons.Explore"); |
185 | | - explore.Click += (_, e) => |
186 | | - { |
187 | | - node.OpenInFileManager(); |
188 | | - e.Handled = true; |
189 | | - }; |
190 | | - |
191 | | - var terminal = new MenuItem(); |
192 | | - terminal.Header = App.Text("Repository.Terminal"); |
193 | | - terminal.Icon = this.CreateMenuIcon("Icons.Terminal"); |
194 | | - terminal.Click += (_, e) => |
195 | | - { |
196 | | - node.OpenTerminal(); |
197 | | - e.Handled = true; |
198 | | - }; |
199 | | - menu.Items.Add(explore); |
200 | | - menu.Items.Add(terminal); |
201 | | - menu.Items.Add(new MenuItem() { Header = "-" }); |
202 | | - } |
203 | | - } |
204 | | - else |
205 | | - { |
206 | | - var addSubFolder = new MenuItem(); |
207 | | - addSubFolder.Header = App.Text("Welcome.AddSubFolder"); |
208 | | - addSubFolder.Icon = this.CreateMenuIcon("Icons.Folder.Add"); |
209 | | - addSubFolder.Click += (_, e) => |
210 | | - { |
211 | | - node.AddSubFolder(); |
212 | | - e.Handled = true; |
213 | | - }; |
214 | | - menu.Items.Add(addSubFolder); |
215 | | - } |
216 | | - |
217 | 153 | var edit = new MenuItem(); |
218 | 154 | edit.Header = App.Text("Welcome.Edit"); |
219 | 155 | edit.Icon = this.CreateMenuIcon("Icons.Edit"); |
@@ -241,10 +177,82 @@ private void OnTreeNodeContextRequested(object sender, ContextRequestedEventArgs |
241 | 177 | e.Handled = true; |
242 | 178 | }; |
243 | 179 |
|
244 | | - menu.Items.Add(edit); |
245 | | - menu.Items.Add(move); |
246 | | - menu.Items.Add(new MenuItem() { Header = "-" }); |
247 | | - menu.Items.Add(delete); |
| 180 | + if (!node.IsRepository) |
| 181 | + { |
| 182 | + if (node.SubNodes.Count > 0) |
| 183 | + { |
| 184 | + var openAll = new MenuItem(); |
| 185 | + openAll.Header = App.Text("Welcome.OpenAllInNode"); |
| 186 | + openAll.Icon = this.CreateMenuIcon("Icons.Folder.Open"); |
| 187 | + openAll.Click += (_, e) => |
| 188 | + { |
| 189 | + node.Open(); |
| 190 | + e.Handled = true; |
| 191 | + }; |
| 192 | + |
| 193 | + menu.Items.Add(openAll); |
| 194 | + menu.Items.Add(new MenuItem() { Header = "-" }); |
| 195 | + } |
| 196 | + |
| 197 | + var addSubFolder = new MenuItem(); |
| 198 | + addSubFolder.Header = App.Text("Welcome.AddSubFolder"); |
| 199 | + addSubFolder.Icon = this.CreateMenuIcon("Icons.Folder.Add"); |
| 200 | + addSubFolder.Click += (_, e) => |
| 201 | + { |
| 202 | + node.AddSubFolder(); |
| 203 | + e.Handled = true; |
| 204 | + }; |
| 205 | + |
| 206 | + menu.Items.Add(addSubFolder); |
| 207 | + menu.Items.Add(edit); |
| 208 | + menu.Items.Add(move); |
| 209 | + menu.Items.Add(new MenuItem() { Header = "-" }); |
| 210 | + menu.Items.Add(delete); |
| 211 | + } |
| 212 | + else if (Directory.Exists(node.Id)) |
| 213 | + { |
| 214 | + var open = new MenuItem(); |
| 215 | + open.Header = App.Text("Welcome.OpenOrInit"); |
| 216 | + open.Icon = this.CreateMenuIcon("Icons.Folder.Open"); |
| 217 | + open.Click += (_, e) => |
| 218 | + { |
| 219 | + node.Open(); |
| 220 | + e.Handled = true; |
| 221 | + }; |
| 222 | + |
| 223 | + var explore = new MenuItem(); |
| 224 | + explore.Header = App.Text("Repository.Explore"); |
| 225 | + explore.Icon = this.CreateMenuIcon("Icons.Explore"); |
| 226 | + explore.Click += (_, e) => |
| 227 | + { |
| 228 | + node.OpenInFileManager(); |
| 229 | + e.Handled = true; |
| 230 | + }; |
| 231 | + |
| 232 | + var terminal = new MenuItem(); |
| 233 | + terminal.Header = App.Text("Repository.Terminal"); |
| 234 | + terminal.Icon = this.CreateMenuIcon("Icons.Terminal"); |
| 235 | + terminal.Click += (_, e) => |
| 236 | + { |
| 237 | + node.OpenTerminal(); |
| 238 | + e.Handled = true; |
| 239 | + }; |
| 240 | + |
| 241 | + menu.Items.Add(open); |
| 242 | + menu.Items.Add(new MenuItem() { Header = "-" }); |
| 243 | + menu.Items.Add(explore); |
| 244 | + menu.Items.Add(terminal); |
| 245 | + menu.Items.Add(new MenuItem() { Header = "-" }); |
| 246 | + menu.Items.Add(edit); |
| 247 | + menu.Items.Add(move); |
| 248 | + menu.Items.Add(new MenuItem() { Header = "-" }); |
| 249 | + menu.Items.Add(delete); |
| 250 | + } |
| 251 | + else |
| 252 | + { |
| 253 | + menu.Items.Add(delete); |
| 254 | + } |
| 255 | + |
248 | 256 | menu.Open(grid); |
249 | 257 | } |
250 | 258 |
|
|
0 commit comments