Add Select All functionality, closes #19

This commit is contained in:
Twan van Laarhoven
2020-05-08 01:54:51 +02:00
parent 8b25815f72
commit 2d171732a0
21 changed files with 291 additions and 209 deletions
+10
View File
@@ -399,6 +399,16 @@ void CardsPanel::doPaste() {
}
}
// ----------------------------------------------------------------------------- : Text selection
bool CardsPanel::canSelectAll() const {
CUT_COPY_PASTE(canSelectAll, return)
}
void CardsPanel::doSelectAll() {
CUT_COPY_PASTE(doSelectAll, return (void))
}
// ----------------------------------------------------------------------------- : Searching
class CardsPanel::SearchFindInfo : public FindInfo {
+5
View File
@@ -49,6 +49,11 @@ class CardsPanel : public SetWindowPanel {
virtual void doCopy();
virtual void doPaste();
// --------------------------------------------------- : Text selection
bool canSelectAll() const override;
void doSelectAll() override;
// --------------------------------------------------- : Searching (find/replace)
virtual bool canFind() const { return true; }
+10
View File
@@ -273,6 +273,16 @@ void KeywordsPanel::doCopy() { CUT_COPY_PASTE(doCopy, return (void), f
void KeywordsPanel::doCut() { CUT_COPY_PASTE(doCut, return (void), !list->getKeyword() || list->getKeyword()->fixed) }
void KeywordsPanel::doPaste() { CUT_COPY_PASTE(doPaste, return (void), !list->getKeyword() || list->getKeyword()->fixed) }
// ----------------------------------------------------------------------------- : Text selection
bool KeywordsPanel::canSelectAll() const {
CUT_COPY_PASTE(canSelectAll, return, false)
}
void KeywordsPanel::doSelectAll() {
CUT_COPY_PASTE(doSelectAll, return (void), false)
}
// ----------------------------------------------------------------------------- : Events
void KeywordsPanel::onChangeSet() {
+4 -1
View File
@@ -43,7 +43,10 @@ class KeywordsPanel : public SetWindowPanel {
virtual void doCut();
virtual void doCopy();
virtual void doPaste();
virtual bool canSelectAll() const;
virtual void doSelectAll();
private:
DECLARE_EVENT_TABLE();
+5 -1
View File
@@ -60,7 +60,11 @@ class SetWindowPanel : public wxPanel, public SetView {
virtual void doPaste() {} ///< Paste the contents of the clipboard
virtual void doCopy() {} ///< Copy the selection to the clipboard
virtual void doCut() {} ///< Cut the selection to the clipboard
// --------------------------------------------------- : Selecting
virtual bool canSelectAll() const { return false; }
virtual void doSelectAll() {}
// --------------------------------------------------- : Searching (find/replace)
virtual bool canFind() const { return false; } ///< Is finding possible?
virtual bool canReplace() const { return false; } ///< Is replacing possible?
+2
View File
@@ -87,3 +87,5 @@ bool SetInfoPanel::canPaste() const { return editor->canPaste(); }
void SetInfoPanel::doCut() { editor->doCut(); }
void SetInfoPanel::doCopy() { editor->doCopy(); }
void SetInfoPanel::doPaste() { editor->doPaste(); }
bool SetInfoPanel::canSelectAll() const { return editor->canSelectAll(); }
void SetInfoPanel::doSelectAll() { editor->doSelectAll(); }
+4 -2
View File
@@ -28,12 +28,14 @@ class SetInfoPanel : public SetWindowPanel {
// --------------------------------------------------- : Clipboard
virtual bool canCut() const;
virtual bool canCopy() const;
virtual bool canCut() const;
virtual bool canCopy() const;
virtual bool canPaste() const;
virtual bool canSelectAll() const;
virtual void doCut();
virtual void doCopy();
virtual void doPaste();
virtual void doSelectAll();
protected:
virtual void onChangeSet();
+2
View File
@@ -156,6 +156,8 @@ bool StylePanel::canPaste() const { CUT_COPY_PASTE(canPaste, return) }
void StylePanel::doCopy() { CUT_COPY_PASTE(doCopy, return (void)) }
void StylePanel::doCut() { CUT_COPY_PASTE(doCut, return (void)) }
void StylePanel::doPaste() { CUT_COPY_PASTE(doPaste, return (void)) }
bool StylePanel::canSelectAll() const { CUT_COPY_PASTE(canSelectAll, return) }
void StylePanel::doSelectAll() { CUT_COPY_PASTE(doSelectAll, return (void)) }
// ----------------------------------------------------------------------------- : Events
+2
View File
@@ -33,9 +33,11 @@ class StylePanel : public SetWindowPanel {
virtual bool canCut() const;
virtual bool canCopy() const;
virtual bool canPaste() const;
virtual bool canSelectAll() const;
virtual void doCut();
virtual void doCopy();
virtual void doPaste();
virtual void doSelectAll();
// --------------------------------------------------- : Selection
virtual void selectCard(const CardP& card);
+8
View File
@@ -82,6 +82,8 @@ SetWindow::SetWindow(Window* parent, const SetP& set)
add_menu_item_tr(menuEdit, ID_EDIT_COPY, "copy", "copy");
add_menu_item_tr(menuEdit, ID_EDIT_PASTE, "paste", "paste");
menuEdit->AppendSeparator();
add_menu_item_tr(menuEdit, ID_EDIT_SELECT_ALL, nullptr, "select_all");
menuEdit->AppendSeparator();
add_menu_item_tr(menuEdit, ID_EDIT_FIND, "find", "find");
add_menu_item_tr(menuEdit, ID_EDIT_FIND_NEXT, nullptr, "find_next");
add_menu_item_tr(menuEdit, ID_EDIT_REPLACE, nullptr, "replace");
@@ -510,6 +512,7 @@ void SetWindow::onUpdateUI(wxUpdateUIEvent& ev) {
case ID_EDIT_CUT : ev.Enable(current_panel->canCut()); break;
case ID_EDIT_COPY : ev.Enable(current_panel->canCopy()); break;
case ID_EDIT_PASTE : ev.Enable(current_panel->canPaste()); break;
case ID_EDIT_SELECT_ALL: ev.Enable(current_panel->canSelectAll()); break;
case ID_EDIT_FIND : ev.Enable(current_panel->canFind()); break;
case ID_EDIT_FIND_NEXT : ev.Enable(current_panel->canFind()); break;
case ID_EDIT_REPLACE : ev.Enable(current_panel->canReplace());break;
@@ -736,6 +739,10 @@ void SetWindow::onEditPaste(wxCommandEvent&) {
current_panel->doPaste();
}
void SetWindow::onEditSelectAll(wxCommandEvent&) {
current_panel->doSelectAll();
}
void SetWindow::onEditFind(wxCommandEvent&) {
find_dialog = make_unique<wxFindReplaceDialog>(this, &find_data, _("Find"));
find_dialog->Show();
@@ -849,6 +856,7 @@ BEGIN_EVENT_TABLE(SetWindow, wxFrame)
EVT_MENU (ID_EDIT_CUT, SetWindow::onEditCut)
EVT_MENU (ID_EDIT_COPY, SetWindow::onEditCopy)
EVT_MENU (ID_EDIT_PASTE, SetWindow::onEditPaste)
EVT_MENU (ID_EDIT_SELECT_ALL, SetWindow::onEditSelectAll)
EVT_MENU (ID_EDIT_FIND, SetWindow::onEditFind)
EVT_MENU (ID_EDIT_FIND_NEXT, SetWindow::onEditFindNext)
EVT_MENU (ID_EDIT_REPLACE, SetWindow::onEditReplace)
+1
View File
@@ -141,6 +141,7 @@ private:
void onEditCut (wxCommandEvent&);
void onEditCopy (wxCommandEvent&);
void onEditPaste (wxCommandEvent&);
void onEditSelectAll (wxCommandEvent&);
void onEditFind (wxCommandEvent&);
void onEditFindNext (wxCommandEvent&);
void onEditReplace (wxCommandEvent&);