forked from huggle/huggle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainInterface.vb
627 lines (517 loc) · 28.3 KB
/
MainInterface.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
Partial Class Main
Public Sub Configure()
'This gets called when the application loads and when the user configuration is changed
SetShortcutDisplayText()
SetTooltipText()
SetMenuText()
SetQueueSelectors()
CurrentTab.ShowNewEdits = Config.ShowNewEdits
TrayIcon.Visible = Config.TrayIcon
QueueContainer.Width = Config.QueueWidth + QueueScroll2.Width
RevisionSight.Visible = Config.Sight AndAlso Config.Rights.Contains("review")
SightAndNext.Visible = Config.Sight AndAlso Config.Rights.Contains("review")
PageDelete.Visible = (Config.UseAdminFunctions AndAlso Config.Rights.Contains("delete") AndAlso Config.Delete)
PageDeleteB.Visible = (Config.UseAdminFunctions AndAlso Config.Rights.Contains("delete") AndAlso Config.Delete)
PageMove.Visible = (Config.Rights.Contains("move"))
PagePatrol.Visible = Config.Patrol AndAlso Config.Rights.Contains("patrol")
PageProtect.Visible = (Config.UseAdminFunctions AndAlso Config.Rights.Contains("protect") AndAlso Config.Protect)
PageReqProtection.Visible = Config.ProtectionRequests
PageReqDeletion.Visible = (Config.Speedy OrElse Config.Prod OrElse Config.Xfd)
PageTagDeleteB.Visible = (Config.Speedy OrElse Config.Prod OrElse Config.Xfd)
PageTagProd.Visible = Config.Prod
PageTagSpeedy.Visible = Config.Speedy
PageXfd.Visible = Config.Xfd
UserBlock.Visible = (Config.UseAdminFunctions AndAlso Config.Rights.Contains("block") AndAlso Config.Block)
UserBlockB.Visible = (Config.UseAdminFunctions AndAlso Config.Rights.Contains("block") AndAlso Config.Block)
UserEmail.Visible = Config.Email
UserMessageWelcome.Visible = (Config.Welcome IsNot Nothing)
UserReport.Visible = Config.AIV OrElse Config.UAA OrElse Config.TRR OrElse Config.SockReports
UserReportB.Visible = Config.AIV OrElse Config.UAA OrElse Config.TRR OrElse Config.SockReports
UserReportVandalism.Visible = Config.AIV
UserReportUsername.Visible = Config.UAA
UserReport3rr.Visible = Config.TRR
UserReportSock.Visible = Config.SockReports
UserWarn.Visible = Config.WarningTypes.Count > 0
'Add warning types to warn menu and revert-and-warn menu
For Each WarningType As KeyValuePair(Of String, String) In Config.WarningTypes
Dim NewMenuItem As New ToolStripMenuItem
NewMenuItem.Name = "warn-" & WarningType.Key
NewMenuItem.Tag = WarningType.Key
NewMenuItem.Text = WarningType.Value
AddHandler NewMenuItem.Click, AddressOf WarnItem_Click
WarnMenu.Items.Insert(WarnMenu.Items.Count - 2, NewMenuItem)
Dim NewMenuItem2 As New ToolStripMenuItem
NewMenuItem2.Name = "revert-warn-" & WarningType.Key
NewMenuItem2.Tag = WarningType.Key
NewMenuItem2.Text = WarningType.Value
AddHandler NewMenuItem2.Click, AddressOf RevertWarnItem_Click
RevertWarnMenu.Items.Insert(RevertWarnMenu.Items.Count - 2, NewMenuItem2)
Next WarningType
For Each Item As ToolStrip In New ToolStrip() {MainStrip, HistoryStrip, NavigationStrip, ActionsStrip}
Item.ShowItemToolTips = Config.ShowToolTips
Next Item
'Clear custom revert summaries menu
Dim j As Integer = 0
While j < RevertMenu.Items.Count
If Not (TypeOf RevertMenu.Items(j) Is ToolStripSeparator) AndAlso _
RevertMenu.Items(j) IsNot RevertAdvanced AndAlso RevertMenu.Items(j) IsNot RevertCurrentOnly _
Then RevertMenu.Items.RemoveAt(j) Else j += 1
End While
'Add custom revert summaries to menu
For Each Item As String In Config.CustomRevertSummaries
Dim NewItem As New ToolStripMenuItem
NewItem.Text = TrimSummary(Item)
NewItem.Tag = CObj(Item)
AddHandler NewItem.Click, AddressOf RevertItem_Click
RevertMenu.Items.Insert(2, NewItem)
Next Item
For i As Integer = 2 To TemplateMenu.Items.Count - 5
If TemplateMenu.Items.Count > i Then TemplateMenu.Items.RemoveAt(i)
Next i
'Add template messages to menu
For Each Item As String In Config.TemplateMessages
Dim NewItem As New ToolStripMenuItem
Item = Item.Replace("\;", Convert.ToChar(1))
If Item.Contains(";") Then
NewItem.Text = Item.Substring(0, Item.IndexOf(";")).Replace(Convert.ToChar(1), ";")
NewItem.Tag = CObj(Item.Substring(Item.IndexOf(";") + 1).Replace(Convert.ToChar(1), ";"))
AddHandler NewItem.Click, AddressOf TemplateItem_Click
TemplateMenu.Items.Insert(2, NewItem)
End If
Next Item
If Config.WelcomeUse = True Then
For Each x As KeyValuePair(Of String, String) In Config.WelcomesList
Dim NewX As New ToolStripMenuItem
NewX.Text = x.Key
NewX.Tag = x.Key
AddHandler NewX.Click, AddressOf WelcomeItem_Click
TemplateMenu.Items.Insert(2, NewX)
Next
End If
'Add pages to 'go to' menu
GoSeparator.Visible = (Config.GoToPages.Count > 0)
For Each Item As String In Config.GoToPages
Dim NewItem As New ToolStripMenuItem
Item = Item.Replace("\;", Convert.ToChar(1))
If Item.Contains(";") Then
NewItem.Text = Item.Substring(Item.IndexOf(";") + 1).Replace(Convert.ToChar(1), ";")
NewItem.Tag = CObj(Item.Substring(0, Item.IndexOf(";")).Replace(Convert.ToChar(1), ";"))
AddHandler NewItem.Click, AddressOf GoToItem_Click
MenuGoto.DropDownItems.Add(NewItem)
End If
Next Item
'Add speedy deletion criteria to menu
For Each Item As SpeedyCriterion In Config.SpeedyCriteria.Values
Dim NewItem As New ToolStripMenuItem
NewItem.Name = "Speedy" & Item.Code
NewItem.Text = Item.DisplayCode & " - " & Item.Description
AddHandler NewItem.Click, AddressOf Speedy_Click
TagDeleteMenu.Items.Add(NewItem)
Next Item
SystemShowTwoQueues.Checked = Config.ShowTwoQueues
QueueContainer.Panel2Collapsed = (Not Config.ShowTwoQueues)
RefreshInterface()
End Sub
Public Sub RefreshInterface()
If Me Is Nothing OrElse Not Visible Then Exit Sub
MenuRevision.Enabled = (CurrentEdit IsNot Nothing)
MenuPage.Enabled = (CurrentPage IsNot Nothing)
MenuUser.Enabled = (CurrentUser IsNot Nothing)
'Set queue alignment
If Config.ShowQueue Then
Tabs.Width = Tabs.Parent.Width - QueueContainer.Width
QueueContainer.Visible = True
If Config.RightAlignQueue Then
Tabs.Left = 0
QueueContainer.Left = Tabs.Width
Else
Tabs.Left = QueueContainer.Width
QueueContainer.Left = 0
End If
Else
Tabs.Left = 0
Tabs.Width = Tabs.Parent.Width
QueueContainer.Visible = False
End If
If Config.ShowLog Then LayoutPanel.RowStyles(2).Height = 88 Else LayoutPanel.RowStyles(2).Height = 0
NextDiffB.Enabled = (CurrentQueue.Edits.Count > 0)
QueueClear.Enabled = (CurrentQueue.Edits.Count > 0)
QueueNext.Enabled = (CurrentQueue.Edits.Count > 0)
QueueTrim.Enabled = (CurrentQueue.Edits.Count > 0)
If CurrentEdit IsNot Nothing AndAlso CurrentPage IsNot Nothing AndAlso CurrentUser IsNot Nothing _
AndAlso CurrentQueue IsNot Nothing Then
If CurrentPage.IsArticleTalkPage Then
PageSwitchTalk.Text = Msg("main-page-switchtoarticle")
ElseIf CurrentPage.IsTalkPage Then
PageSwitchTalk.Text = Msg("main-page-switchtosubject")
Else
PageSwitchTalk.Text = Msg("main-page-switchtotalk")
End If
Select Case CurrentPage.Space.Name
Case "" : PageXfd.Enabled = (Config.AfdLocation IsNot Nothing)
Case "Category" : PageXfd.Enabled = (Config.CfdLocation IsNot Nothing)
Case "Image" : PageXfd.Enabled = (Config.IfdLocation IsNot Nothing)
Case "Template" : PageXfd.Enabled = (Config.TfdLocation IsNot Nothing)
Case Else : PageXfd.Enabled = (Config.MfdLocation IsNot Nothing)
End Select
If CurrentQueue IsNot Nothing Then
If CurrentQueue.Type = QueueType.FixedList _
Then QueueClear.Text = Msg("main-queue-reset") Else QueueClear.Text = Msg("main-queue-clear")
End If
'For some reason in MediaWiki 'change protection level' and 'edit protected pages' are the same thing
Dim Editable As Boolean = False
If CurrentPage IsNot Nothing Then
Editable = (CurrentPage.EditLevel <> "sysop" OrElse Config.Rights.Contains("protect"))
End If
BrowserBack.Enabled = (CurrentTab.HistoryIndex < CurrentTab.History.Count - 1)
BrowserBackB.Enabled = (CurrentTab.HistoryIndex < CurrentTab.History.Count - 1)
BrowserForward.Enabled = (CurrentTab.HistoryIndex > 0)
BrowserForwardB.Enabled = (CurrentTab.HistoryIndex > 0)
BrowserNewContribs.Checked = CurrentTab.ShowNewContribs
BrowserNewEdits.Checked = CurrentTab.ShowNewEdits
BrowserNewTabB.Enabled = True
BrowserOpenB.Enabled = (CurrentTab.CurrentUrl IsNot Nothing)
ContribsB.Enabled = (CurrentEdit.User.FirstEdit Is Nothing)
ContribsPrevB.Enabled = (CurrentEdit.PrevByUser IsNot Nothing)
ContribsNextB.Enabled = (CurrentEdit.NextByUser IsNot Nothing)
ContribsLastB.Enabled = (CurrentEdit.User.LastEdit IsNot Nothing _
AndAlso CurrentEdit.User.LastEdit IsNot CurrentEdit)
RevertB.Enabled = (CurrentEdit IsNot CurrentPage.FirstEdit AndAlso Not RevertTimer.Enabled _
AndAlso Editable)
HistoryB.Enabled = (CurrentEdit.Page.FirstEdit Is Nothing)
HistoryDiffToCurB.Enabled = (Not CurrentEdit Is CurrentPage.LastEdit) AndAlso (Not CurrentEdit.Multiple)
HistoryPrevB.Enabled = CurrentEdit.Prev IsNot NullEdit _
AndAlso Not (CurrentEdit.Prev IsNot Nothing AndAlso CurrentEdit.Prev.Prev Is NullEdit) _
AndAlso CurrentEdit.Prev IsNot CurrentPage.FirstEdit
HistoryNextB.Enabled = (Not CurrentEdit Is CurrentPage.LastEdit)
HistoryLastB.Enabled = (Not CurrentEdit Is CurrentPage.LastEdit)
PageDelete.Enabled = True
PageDeleteB.Enabled = True
PageEdit.Enabled = Editable
PageEditB.Enabled = Editable
PageHistory.Enabled = HistoryB.Enabled
PageMove.Enabled = CurrentPage.IsMovable
PagePatrol.Enabled = (Not CurrentPage.Patrolled)
PageProtect.Enabled = True
PageReqProtection.Enabled = True
PageTag.Enabled = Editable
PageTagB.Enabled = Editable
PageReqDeletion.Enabled = Editable
PageTagDeleteB.Enabled = Editable
PageTagProd.Enabled = (Editable AndAlso CurrentPage.Space Is Space.Article)
PageTagSpeedy.Enabled = Editable
PageViewB.Enabled = True
PageViewLatest.Enabled = True
PageWatch.Enabled = True
PageWatchB.Enabled = True
PageXfd.Enabled = Editable
RevisionRevert.Enabled = RevertB.Enabled
RevisionPrevious.Enabled = HistoryPrevB.Enabled
RevisionNext.Enabled = HistoryNextB.Enabled
RevisionLatest.Enabled = HistoryLastB.Enabled
RevisionSight.Enabled = (Not CurrentEdit.Sighted)
RevertWarnB.Enabled = (RevertB.Enabled AndAlso Not CurrentUser.Ignored AndAlso Editable _
AndAlso Config.WarningTypes.Count > 0)
SightAndNext.Enabled = (Not CurrentEdit.Sighted)
SystemReconnectIRC.Enabled = (Config.UseIrc = True)
SystemShowQueue.Checked = Config.ShowQueue
SystemShowLog.Checked = Config.ShowLog
UndoB.Enabled = (Undo.Count > 0)
'UserBlock.Enabled = (Not CurrentUser.Ignored)
'UserBlockB.Enabled = (Not CurrentUser.Ignored)
UserContribs.Enabled = ContribsB.Enabled
UserEmail.Enabled = (Not CurrentUser.Anonymous)
UserIgnore.Enabled = True
UserIgnoreB.Enabled = True
UserInfo.Enabled = True
UserInfoB.Enabled = True
UserMessage.Enabled = True
UserMessageB.Enabled = True
UserReport.Enabled = (Not CurrentUser.Ignored AndAlso CurrentUser.Level < UserLevel.Blocked)
UserReportB.Enabled = (Not CurrentUser.Ignored AndAlso CurrentUser.Level < UserLevel.Blocked)
UserTalk.Enabled = True
UserTalkB.Enabled = True
TemplateB.Enabled = (Not CurrentUser.Ignored)
UserWarn.Enabled = (Not CurrentUser.Ignored AndAlso Config.WarningTypes.Count > 0)
WarnB.Enabled = (Not CurrentUser.Ignored AndAlso Config.WarningTypes.Count > 0)
For Each Item As ToolStripItem In WarnMenu.Items
Item.Enabled = WarnB.Enabled
Next Item
For Each Item As ToolStripItem In RevertMenu.Items
Item.Enabled = RevertB.Enabled
Next Item
For Each Item As ToolStripItem In TemplateMenu.Items
Item.Enabled = TemplateB.Enabled
Next Item
For Each Item As ToolStripItem In TagDeleteMenu.Items
If Item.Name.StartsWith("Speedy") Then
Dim Code As String = Item.Name.ToUpper.Substring(6)
If Code = "G8" Then : Item.Visible = CurrentPage.IsTalkPage
ElseIf Code.StartsWith("A") Then : Item.Visible = (CurrentPage.IsArticle)
ElseIf Code.StartsWith("C") Then : Item.Visible = (CurrentPage.Space Is Space.Category)
ElseIf Code.StartsWith("I") Then : Item.Visible = (CurrentPage.Space Is Space.Image)
ElseIf Code.StartsWith("P") Then : Item.Visible = (CurrentPage.Space.Name = "Portal")
ElseIf Code.StartsWith("T") Then : Item.Visible = (CurrentPage.Space Is Space.Template)
ElseIf Code.StartsWith("U") Then : Item.Visible = (CurrentPage.Space Is Space.User _
OrElse CurrentPage.Space Is Space.UserTalk)
Else
Item.Visible = True
End If
End If
Next Item
DrawQueues()
DrawHistory()
DrawContribs()
UpdateWatchButton()
UpdateIgnoreButton()
End If
End Sub
Sub UpdateWatchButton()
If Watchlist.Contains(CurrentEdit.Page.SubjectPage) AndAlso PageWatch.Text = "Watch" Then
PageWatchB.Image = My.Resources.page_unwatch
PageWatch.Text = Msg("main-page-unwatch")
ElseIf PageWatch.Text = "Unwatch" AndAlso Not Watchlist.Contains(CurrentEdit.Page.SubjectPage) Then
PageWatchB.Image = My.Resources.page_watch
PageWatch.Text = Msg("main-page-watch")
End If
End Sub
Sub UpdateIgnoreButton()
If CurrentUser.Ignored AndAlso UserIgnore.Text = Msg("main-user-ignore") Then
UserIgnoreB.Image = My.Resources.user_unwhitelist
UserIgnore.Text = Msg("main-user-unignore")
ElseIf Not CurrentUser.Ignored AndAlso UserIgnore.Text = Msg("main-user-unignore") Then
UserIgnoreB.Image = My.Resources.user_whitelist
UserIgnore.Text = Msg("main-user-ignore")
End If
End Sub
Public Sub Main_KeyDown(ByVal s As Object, ByVal e As KeyEventArgs) Handles Me.KeyDown
Try
If UserB.Focused OrElse PageB.Focused OrElse e.Modifiers = Keys.Alt OrElse KeyDelayTimer.Enabled Then Exit Sub
KeyDelayTimer.Start()
KeyDelayTimer.Enabled = True
Dim Shortcut As New Shortcut(e.KeyCode, e.Control, e.Alt, e.Shift)
Select Case Shortcut
Case Is = ShortcutKeys("Cancel")
If CancelB.Enabled Then CancelB_Click()
Case Is = ShortcutKeys("Help")
HelpDocs_Click()
Case Is = ShortcutKeys("User information")
UserInfo_Click()
Case Is = ShortcutKeys("Clear queue")
If QueueClear.Enabled Then QueueClear_Click()
Case Is = ShortcutKeys("Show next diff")
If NextDiffB.Enabled Then DiffNextB_Click()
Case Is = ShortcutKeys("View user talk page")
If UserTalkB.Enabled Then UserTalk_Click()
Case Is = ShortcutKeys("Report user")
If UserReportB.Enabled AndAlso UserReportB.Visible Then UserReportVandalism_Click()
Case Is = ShortcutKeys("Block user")
If UserBlockB.Enabled AndAlso UserBlockB.Visible Then UserBlock_Click()
Case Is = ShortcutKeys("Latest contribution")
If ContribsLastB.Enabled Then ContribsLast_Click()
Case Is = ShortcutKeys("Current revision")
If HistoryLastB.Enabled Then HistoryLast_Click()
Case Is = ShortcutKeys("Delete page")
If PageDeleteB.Enabled AndAlso PageDeleteB.Visible Then PageDelete_Click()
Case Is = ShortcutKeys("Diff to current revision")
If HistoryDiffToCurB.Enabled Then HistoryDiffToCur_Click()
Case Is = ShortcutKeys("Edit page")
If PageEditB.Enabled Then EditPage_Click()
Case Is = ShortcutKeys("Tag page")
If PageTagB.Enabled Then TagPage_Click()
Case Is = ShortcutKeys("Retrieve recent page history")
If HistoryB.Enabled Then ViewHistory_Click()
Case Is = ShortcutKeys("Retrieve full page history")
If CurrentPage IsNot Nothing Then
Dim NewRequest As New HistoryRequest
NewRequest.Page = CurrentPage
NewRequest.BlockSize = Config.FullHistoryBlockSize
NewRequest.Full = True
NewRequest.Start()
End If
Case Is = ShortcutKeys("Ignore user")
If UserIgnoreB.Enabled AndAlso CurrentEdit IsNot Nothing AndAlso CurrentEdit.User IsNot Nothing _
AndAlso Not CurrentEdit.User.Ignored Then UserIgnore_Click()
Case Is = ShortcutKeys("Unignore user")
If UserIgnoreB.Enabled AndAlso CurrentEdit IsNot Nothing AndAlso CurrentEdit.User IsNot Nothing _
AndAlso Not CurrentEdit.User.Ignored Then UserIgnore_Click()
Case Is = ShortcutKeys("Toggle 'show new edits'")
ShowNewEdits_Click()
Case Is = ShortcutKeys("Watch page")
If PageWatchB.Enabled Then WatchPage_Click()
Case Is = ShortcutKeys("Show new messages")
If SystemMessages.Enabled Then SystemShowNewMessages_Click()
Case Is = ShortcutKeys("Message user")
If UserMessageB.Enabled Then UserMessage_Click()
Case Is = ShortcutKeys("Open page in external browser")
If MainForm.BrowserOpen.Enabled = True Then BrowserOpen_Click()
Case Is = ShortcutKeys("Mark page as patrolled")
If PagePatrol.Enabled AndAlso Config.Patrol Then PageMarkPatrolled_Click()
Case Is = ShortcutKeys("Proposed deletion")
If PageTagProd.Enabled AndAlso Config.Prod Then PageTagProd_Click()
Case Is = ShortcutKeys("Revert and warn")
If RevertWarnB.Enabled Then RevertWarnB_ButtonClick()
Case Is = ShortcutKeys("Revert")
If RevertB.Enabled Then Revert_Click()
Case Is = ShortcutKeys("Nominate for deletion")
If PageXfd.Enabled Then PageNominate_Click()
Case Is = ShortcutKeys("Request deletion")
If PageTagDeleteB.Enabled Then PageTagDeleteB.ShowDropDown()
Case Is = ShortcutKeys("Post template message")
If TemplateB.Enabled Then TemplateB.ShowDropDown()
Case Is = ShortcutKeys("Retrieve user contributions")
If ContribsB.Enabled Then UserContribs_Click()
Case Is = ShortcutKeys("View current revision")
If PageViewLatest.Enabled Then PageViewLatest_Click()
Case Is = ShortcutKeys("View this revision")
If PageViewB.Enabled Then PageView_Click()
Case Is = ShortcutKeys("Warn")
If WarnB.Enabled Then Warn_Click()
Case Is = ShortcutKeys("Next contribution")
If ContribsNextB.Enabled Then ContribsNext_Click()
Case Is = ShortcutKeys("Next revision")
If HistoryNextB.Enabled Then HistoryNext_Click()
Case Is = ShortcutKeys("Revert with custom summary")
If RevertB.Enabled Then DiffRevertSummary_Click()
Case Is = ShortcutKeys("Previous contribution")
If ContribsPrevB.Enabled Then ContribsPrev_Click()
Case Is = ShortcutKeys("Previous revision")
If HistoryPrevB.Enabled Then HistoryPrev_Click()
Case Is = ShortcutKeys("Browse back")
If BrowserBackB.Enabled Then GoBack_Click()
Case Is = ShortcutKeys("Browse forward")
If BrowserForwardB.Enabled Then GoForward_Click()
Case Is = ShortcutKeys("New tab")
NewTab_Click()
Case Is = ShortcutKeys("Close tab")
If Tabs.TabPages.Count > 1 Then CloseTab_Click()
Case Is = ShortcutKeys("Next tab")
Tabs.SelectedIndex = (Tabs.SelectedIndex + 1) Mod Tabs.TabCount
Case Is = ShortcutKeys("Previous tab")
Tabs.SelectedIndex = (Tabs.SelectedIndex - 1) Mod Tabs.TabCount
Case Is = ShortcutKeys("Request protection")
If PageReqProtection.Enabled Then PageRequestProtection_Click()
End Select
e.Handled = True
e.SuppressKeyPress = True
Catch ex As Exception
End Try
End Sub
Private Sub SetShortcutDisplayText()
SetSDItem(BrowserBack, "Browse back")
SetSDItem(BrowserForward, "Browse forward")
SetSDItem(BrowserCloseTab, "Close tab")
SetSDItem(BrowserCloseOthers, "Close other tabs")
SetSDItem(BrowserNewTab, "New tab")
SetSDItem(BrowserOpen, "Open page in external browser")
SetSDItem(HelpAbout, "About")
SetSDItem(HelpDocumentation, "Help")
SetSDItem(PageDelete, "Delete page")
SetSDItem(PageEdit, "Edit page")
SetSDItem(PageHistory, "Retrieve page history")
SetSDItem(PagePatrol, "Mark page as patrolled")
SetSDItem(PageMove, "Move page")
SetSDItem(PageXfd, "Nominate for deletion")
SetSDItem(PageTagProd, "Proposed deletion")
SetSDItem(PageProtect, "Protect page")
SetSDItem(PageReqProtection, "Request protection")
SetSDItem(PageTag, "Tag page")
SetSDItem(PageViewLatest, "View current revision")
SetSDItem(PageWatch, "Watch page")
SetSDItem(QueueClear, "Clear queue")
SetSDItem(QueueNext, "Show next diff")
SetSDItem(RevisionView, "View this revision")
SetSDItem(SystemMessages, "Show new messages")
SetSDItem(UserBlock, "Block user")
SetSDItem(UserContribs, "Retrieve user contributions")
SetSDItem(UserIgnore, "Ignore user")
SetSDItem(UserInfo, "User information")
SetSDItem(UserMessage, "Message user")
SetSDItem(UserReport, "Report user")
SetSDItem(UserTalk, "View user talk page")
End Sub
Private Sub SetTooltipText()
SetTTItem(BrowserBackB, "Browse back")
SetTTItem(BrowserCloseTabB, "Close tab")
SetTTItem(BrowserForwardB, "Browse forward")
SetTTItem(BrowserNewTabB, "New tab")
SetTTItem(BrowserOpenB, "Open page in external browser")
SetTTItem(CancelB, "Cancel")
SetTTItem(ContribsB, "Retrieve user contributions")
SetTTItem(ContribsLastB, "Latest contribution")
SetTTItem(ContribsNextB, "Next contribution")
SetTTItem(ContribsPrevB, "Previous contribution")
SetTTItem(NextDiffB, "Show next diff")
SetTTItem(RevertB, "Revert")
SetTTItem(RevertWarnB, "Revert and warn")
SetTTItem(HistoryB, "Retrieve page history")
SetTTItem(HistoryDiffToCurB, "Diff to current revision")
SetTTItem(HistoryLastB, "Current revision")
SetTTItem(HistoryNextB, "Next revision")
SetTTItem(HistoryPrevB, "Previous revision")
SetTTItem(PageEditB, "Edit page")
SetTTItem(PageDeleteB, "Delete page")
SetTTItem(PageTagB, "Tag page")
SetTTItem(PageTagDeleteB, "Request deletion")
SetTTItem(PageViewB, "View this revision")
SetTTItem(PageWatchB, "Watch page")
SetTTItem(UserIgnoreB, "Ignore user")
SetTTItem(UserInfoB, "User information")
SetTTItem(UserMessageB, "Message user")
SetTTItem(UserReportB, "Report user")
SetTTItem(UserTalkB, "View user talk page")
SetTTItem(UserBlockB, "Block user")
SetTTItem(TemplateB, "Post template message")
SetTTItem(WarnB, "Warn")
End Sub
Private Sub SetSDItem(ByVal MenuItem As ToolStripMenuItem, ByVal Key As String)
If ShortcutKeys.ContainsKey(Key) Then
If ShortcutKeys(Key).Key = Keys.None Then MenuItem.ShortcutKeyDisplayString = "" _
Else MenuItem.ShortcutKeyDisplayString = ShortcutKeys(Key).ToString
End If
End Sub
Private Sub SetTTItem(ByVal Item As ToolStripItem, ByVal Key As String)
Dim Name As String = Item.Name
If Name.EndsWith("B") Then Name = Name.Substring(0, Name.Length - 1)
Item.ToolTipText = Msg("main-tip-" & Name)
If ShortcutKeys.ContainsKey(Key) AndAlso ShortcutKeys(Key).Key <> Keys.None _
Then Item.ToolTipText &= " [" & ShortcutKeys(Key).ToString & "]"
End Sub
Public Sub SetQueueSelectors()
QueueSelector.Items.Clear()
QueueSelector2.Items.Clear()
For Each Item As String In QueueNames(Config.Project)
QueueSelector.Items.Add(Item)
QueueSelector2.Items.Add(Item)
Next Item
QueueSelector.Items.Add(Msg("main-addqueue"))
QueueSelector2.Items.Add(Msg("main-addqueue"))
If CurrentQueue IsNot Nothing Then QueueSelector.SelectedItem = CurrentQueue.Name _
Else QueueSelector.SelectedIndex = 0
If SecondQueue IsNot Nothing Then QueueSelector2.SelectedItem = SecondQueue.Name _
Else QueueSelector2.SelectedIndex = 0
End Sub
Private Sub KeyDelayTimer_Tick() Handles KeyDelayTimer.Tick
KeyDelayTimer.Stop()
End Sub
Private Sub SetMenuText()
For Each Menu As ToolStripMenuItem In TopMenu.Items
For Each MenuItem As ToolStripItem In Menu.DropDownItems
If Not TypeOf MenuItem Is ToolStripSeparator _
AndAlso MenuItem.Name.Length > (Menu.Name.Length - 4) _
Then MenuItem.Text = Msg("main-" & Menu.Name.Replace("Menu", "") & "-" & _
MenuItem.Name.Substring(Menu.Name.Replace("Menu", "").Length))
Next MenuItem
If Menu.Name.Length >= 5 Then Menu.Text = Msg("main-" & Menu.Name.Substring(4))
Next Menu
Contribs.Text = Msg("main-contribs")
History.Text = Msg("main-history")
PageLabel.Text = Msg("main-page")
UserLabel.Text = Msg("main-user")
UserMessageOther.Text = Msg("main-usermessageother")
RevertAdvanced.Text = Msg("main-advanced")
RevertWarnAdvanced.Text = Msg("main-advanced")
WarnAdvanced.Text = Msg("main-advanced")
RevertCurrentOnly.Text = Msg("revert-currentonly")
End Sub
End Class