Skip to content

Commit 6f933f6

Browse files
committed
The "Diff" pane was redesigned to use less space for the non-diff view
1 parent 72f229c commit 6f933f6

File tree

6 files changed

+2329
-2497
lines changed

6 files changed

+2329
-2497
lines changed

Plugin/DiffSideBySidePanel.cpp

Lines changed: 32 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,17 @@ DiffSideBySidePanel::DiffSideBySidePanel(wxWindow* parent)
5353
{
5454
m_config.Load();
5555

56-
#ifdef __WXMSW__
57-
m_ribbonBar->SetArtProvider(new wxRibbonMetroArtProvider);
58-
#endif
5956
EventNotifier::Get()->Connect(
6057
wxEVT_NOTIFY_PAGE_CLOSING, wxNotifyEventHandler(DiffSideBySidePanel::OnPageClosing), NULL, this);
6158

62-
Connect(ID_COPY_LEFT_TO_RIGHT,
63-
wxEVT_COMMAND_MENU_SELECTED,
64-
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right));
65-
Connect(ID_COPY_LEFT_TO_RIGHT_AND_MOVE,
66-
wxEVT_COMMAND_MENU_SELECTED,
67-
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right));
68-
Connect(ID_COPY_RIGHT_TO_LEFT,
69-
wxEVT_COMMAND_MENU_SELECTED,
70-
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left));
71-
Connect(ID_COPY_RIGHT_TO_LEFT_AND_MOVE,
72-
wxEVT_COMMAND_MENU_SELECTED,
73-
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left));
59+
Connect(ID_COPY_LEFT_TO_RIGHT, wxEVT_COMMAND_MENU_SELECTED,
60+
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right));
61+
Connect(ID_COPY_LEFT_TO_RIGHT_AND_MOVE, wxEVT_COMMAND_MENU_SELECTED,
62+
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyLeft2Right));
63+
Connect(ID_COPY_RIGHT_TO_LEFT, wxEVT_COMMAND_MENU_SELECTED,
64+
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left));
65+
Connect(ID_COPY_RIGHT_TO_LEFT_AND_MOVE, wxEVT_COMMAND_MENU_SELECTED,
66+
wxCommandEventHandler(DiffSideBySidePanel::OnMenuCopyRight2Left));
7467
CallAfter(&DiffSideBySidePanel::DoLayout);
7568
}
7669

@@ -97,15 +90,13 @@ void DiffSideBySidePanel::Diff()
9790

9891
if(!fnLeft.Exists()) {
9992
::wxMessageBox(wxString() << _("Left Side File:\n") << fnLeft.GetFullPath() << _(" does not exist!"),
100-
"CodeLite",
101-
wxICON_ERROR | wxCENTER | wxOK);
93+
"CodeLite", wxICON_ERROR | wxCENTER | wxOK);
10294
return;
10395
}
10496

10597
if(!fnRIght.Exists()) {
10698
::wxMessageBox(wxString() << _("Right Side File:\n") << fnRIght.GetFullPath() << _(" does not exist!"),
107-
"CodeLite",
108-
wxICON_ERROR | wxCENTER | wxOK);
99+
"CodeLite", wxICON_ERROR | wxCENTER | wxOK);
109100
return;
110101
}
111102

@@ -117,9 +108,8 @@ void DiffSideBySidePanel::Diff()
117108

118109
// Prepare the diff
119110
clDTL d;
120-
d.Diff(m_filePickerLeft->GetPath(),
121-
m_filePickerRight->GetPath(),
122-
m_config.IsSingleViewMode() ? clDTL::kOnePane : clDTL::kTwoPanes);
111+
d.Diff(m_filePickerLeft->GetPath(), m_filePickerRight->GetPath(),
112+
m_config.IsSingleViewMode() ? clDTL::kOnePane : clDTL::kTwoPanes);
123113
const clDTL::LineInfoVec_t& resultLeft = d.GetResultLeft();
124114
const clDTL::LineInfoVec_t& resultRight = d.GetResultRight();
125115
m_sequences = d.GetSequences();
@@ -190,7 +180,7 @@ void DiffSideBySidePanel::Diff()
190180
m_stcRight->SetSavePoint();
191181

192182
// Select the first diff
193-
wxRibbonButtonBarEvent dummy;
183+
wxCommandEvent dummy;
194184
m_cur_sequence = -1;
195185
OnNextDiffSequence(dummy);
196186
}
@@ -342,8 +332,8 @@ void DiffSideBySidePanel::OnRightStcPainted(wxStyledTextEvent& event)
342332
}
343333
}
344334

345-
void DiffSideBySidePanel::SetFilesDetails(const DiffSideBySidePanel::FileInfo& leftFile,
346-
const DiffSideBySidePanel::FileInfo& rightFile)
335+
void DiffSideBySidePanel::SetFilesDetails(
336+
const DiffSideBySidePanel::FileInfo& leftFile, const DiffSideBySidePanel::FileInfo& rightFile)
347337
{
348338
// left file
349339
m_filePickerLeft->SetPath(leftFile.filename.GetFullPath());
@@ -359,7 +349,7 @@ void DiffSideBySidePanel::SetFilesDetails(const DiffSideBySidePanel::FileInfo& l
359349
if(rightFile.deleteOnExit) m_flags |= kDeleteRightOnExit;
360350
}
361351

362-
void DiffSideBySidePanel::OnNextDiffSequence(wxRibbonButtonBarEvent& event)
352+
void DiffSideBySidePanel::OnNextDiffSequence(wxCommandEvent& event)
363353
{
364354
m_cur_sequence++; // advance the sequence
365355
int firstLine = m_sequences.at(m_cur_sequence).first;
@@ -368,7 +358,7 @@ void DiffSideBySidePanel::OnNextDiffSequence(wxRibbonButtonBarEvent& event)
368358
DoDrawSequenceMarkers(firstLine, lastLine, m_stcRight);
369359
}
370360

371-
void DiffSideBySidePanel::OnPrevDiffSequence(wxRibbonButtonBarEvent& event)
361+
void DiffSideBySidePanel::OnPrevDiffSequence(wxCommandEvent& event)
372362
{
373363
m_cur_sequence--;
374364
int firstLine = m_sequences.at(m_cur_sequence).first;
@@ -377,14 +367,12 @@ void DiffSideBySidePanel::OnPrevDiffSequence(wxRibbonButtonBarEvent& event)
377367
DoDrawSequenceMarkers(firstLine, lastLine, m_stcRight);
378368
}
379369

380-
void DiffSideBySidePanel::OnRefreshDiff(wxRibbonButtonBarEvent& event)
370+
void DiffSideBySidePanel::OnRefreshDiff(wxCommandEvent& event)
381371
{
382372
if(m_stcLeft->IsModified() || m_stcRight->IsModified()) {
383373
wxStandardID res = ::PromptForYesNoDialogWithCheckbox(
384-
_("Refreshing the view will lose all your changes\nDo you want to continue?"),
385-
"DiffRefreshViewDlg",
386-
_("Refresh"),
387-
_("Don't refresh"));
374+
_("Refreshing the view will lose all your changes\nDo you want to continue?"), "DiffRefreshViewDlg",
375+
_("Refresh"), _("Don't refresh"));
388376
if(res != wxID_YES) {
389377
return;
390378
}
@@ -451,22 +439,22 @@ void DiffSideBySidePanel::OnCopyRightToLeftUI(wxUpdateUIEvent& event)
451439
event.Enable(!IsLeftReadOnly() && !m_config.IsSingleViewMode());
452440
}
453441

454-
void DiffSideBySidePanel::OnCopyLeftToRight(wxRibbonButtonBarEvent& event)
442+
void DiffSideBySidePanel::OnCopyLeftToRight(wxCommandEvent& event)
455443
{
456444
bool moveToNext = m_config.GetFlags() & DiffConfig::kCopyLeftToRightAndMove;
457445
DoCopyCurrentSequence(m_stcLeft, m_stcRight);
458446
if(moveToNext && CanNextDiff()) {
459-
wxRibbonButtonBarEvent dummy;
447+
wxCommandEvent dummy;
460448
OnNextDiffSequence(dummy);
461449
}
462450
}
463451

464-
void DiffSideBySidePanel::OnCopyRightToLeft(wxRibbonButtonBarEvent& event)
452+
void DiffSideBySidePanel::OnCopyRightToLeft(wxCommandEvent& event)
465453
{
466454
bool moveToNext = m_config.GetFlags() & DiffConfig::kCopyRightToLeftAndMove;
467455
DoCopyCurrentSequence(m_stcRight, m_stcLeft);
468456
if(moveToNext && CanNextDiff()) {
469-
wxRibbonButtonBarEvent dummy;
457+
wxCommandEvent dummy;
470458
OnNextDiffSequence(dummy);
471459
}
472460
}
@@ -519,11 +507,8 @@ void DiffSideBySidePanel::DoCopyCurrentSequence(wxStyledTextCtrl* from, wxStyled
519507
to->SetReadOnly(true);
520508
}
521509

522-
void DiffSideBySidePanel::DoGetPositionsToCopy(wxStyledTextCtrl* stc,
523-
int& startPos,
524-
int& endPos,
525-
int& placeHolderMarkerFirstLine,
526-
int& placeHolderMarkerLastLine)
510+
void DiffSideBySidePanel::DoGetPositionsToCopy(
511+
wxStyledTextCtrl* stc, int& startPos, int& endPos, int& placeHolderMarkerFirstLine, int& placeHolderMarkerLastLine)
527512
{
528513
startPos = wxNOT_FOUND;
529514
endPos = wxNOT_FOUND;
@@ -565,7 +550,7 @@ void DiffSideBySidePanel::DoSave(wxStyledTextCtrl* stc, const wxFileName& fn)
565550
EventNotifier::Get()->PostReloadExternallyModifiedEvent(false);
566551
}
567552

568-
void DiffSideBySidePanel::OnSaveChanges(wxRibbonButtonBarEvent& event)
553+
void DiffSideBySidePanel::OnSaveChanges(wxCommandEvent& event)
569554
{
570555
DoSave(m_stcLeft, m_filePickerLeft->GetPath());
571556
DoSave(m_stcRight, m_filePickerRight->GetPath());
@@ -589,12 +574,12 @@ bool DiffSideBySidePanel::CanPrevDiff()
589574
return !m_sequences.empty() && canPrev;
590575
}
591576

592-
void DiffSideBySidePanel::OnCopyFileFromRight(wxRibbonButtonBarEvent& event)
577+
void DiffSideBySidePanel::OnCopyFileFromRight(wxCommandEvent& event)
593578
{
594579
DoCopyFileContent(m_stcRight, m_stcLeft);
595580
}
596581

597-
void DiffSideBySidePanel::OnCopyFileLeftToRight(wxRibbonButtonBarEvent& event)
582+
void DiffSideBySidePanel::OnCopyFileLeftToRight(wxCommandEvent& event)
598583
{
599584
DoCopyFileContent(m_stcLeft, m_stcRight);
600585
}
@@ -630,7 +615,7 @@ void DiffSideBySidePanel::OnPageClosing(wxNotifyEvent& event)
630615
}
631616
}
632617

633-
void DiffSideBySidePanel::OnHorizontal(wxRibbonButtonBarEvent& event)
618+
void DiffSideBySidePanel::OnHorizontal(wxCommandEvent& event)
634619
{
635620
m_splitter->Unsplit();
636621
m_splitter->SplitHorizontally(m_splitterPageLeft, m_splitterPageRight);
@@ -640,7 +625,7 @@ void DiffSideBySidePanel::OnHorizontal(wxRibbonButtonBarEvent& event)
640625

641626
void DiffSideBySidePanel::OnHorizontalUI(wxUpdateUIEvent& event) { event.Check(m_config.IsSplitHorizontal()); }
642627

643-
void DiffSideBySidePanel::OnVertical(wxRibbonButtonBarEvent& event)
628+
void DiffSideBySidePanel::OnVertical(wxCommandEvent& event)
644629
{
645630
m_splitter->Unsplit();
646631
m_splitter->SplitVertically(m_splitterPageLeft, m_splitterPageRight);
@@ -674,37 +659,6 @@ wxString DiffSideBySidePanel::DoGetContentNoPlaceholders(wxStyledTextCtrl* stc)
674659
return newContent;
675660
}
676661

677-
void DiffSideBySidePanel::OnCopyLeftToRightMenu(wxRibbonButtonBarEvent& event)
678-
{
679-
size_t flags = m_config.GetFlags();
680-
bool copyAndMove = flags & DiffConfig::kCopyLeftToRightAndMove;
681-
682-
wxMenu menu;
683-
menu.Append(ID_COPY_LEFT_TO_RIGHT, _("Copy to the right"), wxEmptyString, wxITEM_RADIO);
684-
menu.Check(ID_COPY_LEFT_TO_RIGHT, !copyAndMove);
685-
686-
menu.Append(
687-
ID_COPY_LEFT_TO_RIGHT_AND_MOVE, _("Copy to the right and move to the next diff"), wxEmptyString, wxITEM_RADIO);
688-
menu.Check(ID_COPY_LEFT_TO_RIGHT_AND_MOVE, copyAndMove);
689-
690-
event.PopupMenu(&menu);
691-
}
692-
693-
void DiffSideBySidePanel::OnCopyRightToLeftMenu(wxRibbonButtonBarEvent& event)
694-
{
695-
size_t flags = m_config.GetFlags();
696-
bool copyAndMove = flags & DiffConfig::kCopyRightToLeftAndMove;
697-
698-
wxMenu menu;
699-
menu.Append(ID_COPY_RIGHT_TO_LEFT, _("Copy to the left"), wxEmptyString, wxITEM_RADIO);
700-
menu.Check(ID_COPY_RIGHT_TO_LEFT, !copyAndMove);
701-
702-
menu.Append(
703-
ID_COPY_RIGHT_TO_LEFT_AND_MOVE, _("Copy to the left and move to the next diff"), wxEmptyString, wxITEM_RADIO);
704-
menu.Check(ID_COPY_RIGHT_TO_LEFT_AND_MOVE, copyAndMove);
705-
event.PopupMenu(&menu);
706-
}
707-
708662
void DiffSideBySidePanel::OnMenuCopyLeft2Right(wxCommandEvent& event)
709663
{
710664
size_t flags = m_config.GetFlags();
@@ -733,7 +687,7 @@ void DiffSideBySidePanel::OnMenuCopyRight2Left(wxCommandEvent& event)
733687

734688
void DiffSideBySidePanel::OnSingleUI(wxUpdateUIEvent& event) { event.Check(m_config.IsSingleViewMode()); }
735689

736-
void DiffSideBySidePanel::OnSingleView(wxRibbonButtonBarEvent& event)
690+
void DiffSideBySidePanel::OnSingleView(wxCommandEvent& event)
737691
{
738692
m_config.SetViewMode(DiffConfig::kViewSingle);
739693
m_splitter->Unsplit();

Plugin/DiffSideBySidePanel.h

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,7 @@ class WXDLLIMPEXP_SDK DiffSideBySidePanel : public DiffSideBySidePanelBase
7575
protected:
7676
virtual void OnMouseWheel(wxMouseEvent& event);
7777
virtual void OnSingleUI(wxUpdateUIEvent& event);
78-
virtual void OnSingleView(wxRibbonButtonBarEvent& event);
79-
virtual void OnCopyLeftToRightMenu(wxRibbonButtonBarEvent& event);
80-
virtual void OnCopyRightToLeftMenu(wxRibbonButtonBarEvent& event);
78+
virtual void OnSingleView(wxCommandEvent& event);
8179
virtual void OnLeftPickerUI(wxUpdateUIEvent& event);
8280
virtual void OnRightPickerUI(wxUpdateUIEvent& event);
8381

@@ -110,23 +108,23 @@ class WXDLLIMPEXP_SDK DiffSideBySidePanel : public DiffSideBySidePanelBase
110108

111109
protected:
112110
virtual void OnRefreshDiffUI(wxUpdateUIEvent& event);
113-
virtual void OnHorizontal(wxRibbonButtonBarEvent& event);
111+
virtual void OnHorizontal(wxCommandEvent& event);
114112
virtual void OnHorizontalUI(wxUpdateUIEvent& event);
115-
virtual void OnVertical(wxRibbonButtonBarEvent& event);
113+
virtual void OnVertical(wxCommandEvent& event);
116114
virtual void OnVerticalUI(wxUpdateUIEvent& event);
117-
virtual void OnCopyFileFromRight(wxRibbonButtonBarEvent& event);
118-
virtual void OnCopyFileLeftToRight(wxRibbonButtonBarEvent& event);
119-
virtual void OnSaveChanges(wxRibbonButtonBarEvent& event);
115+
virtual void OnCopyFileFromRight(wxCommandEvent& event);
116+
virtual void OnCopyFileLeftToRight(wxCommandEvent& event);
117+
virtual void OnSaveChanges(wxCommandEvent& event);
120118
virtual void OnSaveChangesUI(wxUpdateUIEvent& event);
121-
virtual void OnCopyLeftToRight(wxRibbonButtonBarEvent& event);
122-
virtual void OnCopyRightToLeft(wxRibbonButtonBarEvent& event);
119+
virtual void OnCopyLeftToRight(wxCommandEvent& event);
120+
virtual void OnCopyRightToLeft(wxCommandEvent& event);
123121
virtual void OnCopyLeftToRightUI(wxUpdateUIEvent& event);
124122
virtual void OnCopyRightToLeftUI(wxUpdateUIEvent& event);
125123
virtual void OnNextDiffUI(wxUpdateUIEvent& event);
126124
virtual void OnPrevDiffUI(wxUpdateUIEvent& event);
127-
virtual void OnNextDiffSequence(wxRibbonButtonBarEvent& event);
128-
virtual void OnPrevDiffSequence(wxRibbonButtonBarEvent& event);
129-
virtual void OnRefreshDiff(wxRibbonButtonBarEvent& event);
125+
virtual void OnNextDiffSequence(wxCommandEvent& event);
126+
virtual void OnPrevDiffSequence(wxCommandEvent& event);
127+
virtual void OnRefreshDiff(wxCommandEvent& event);
130128
virtual void OnLeftStcPainted(wxStyledTextEvent& event);
131129
virtual void OnRightStcPainted(wxStyledTextEvent& event);
132130
void OnPageClosing(wxNotifyEvent& event);
@@ -138,10 +136,10 @@ class WXDLLIMPEXP_SDK DiffSideBySidePanel : public DiffSideBySidePanelBase
138136
void DoCopyCurrentSequence(wxStyledTextCtrl* from, wxStyledTextCtrl* to);
139137
void DoCopyFileContent(wxStyledTextCtrl* from, wxStyledTextCtrl* to);
140138
void DoGetPositionsToCopy(wxStyledTextCtrl* stc,
141-
int& startPos,
142-
int& endPos,
143-
int& placeHolderMarkerFirstLine,
144-
int& placeHolderMarkerLastLine);
139+
int& startPos,
140+
int& endPos,
141+
int& placeHolderMarkerFirstLine,
142+
int& placeHolderMarkerLastLine);
145143
void DoSave(wxStyledTextCtrl* stc, const wxFileName& fn);
146144

147145
bool CanNextDiff();

0 commit comments

Comments
 (0)