mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
rebase (#1)
* Include unordered_map (fixes #104) * Make templates localizable (Closes #100) * Check/uncheck all selected cards in export window (Closes #93) Co-authored-by: Twan van Laarhoven <twanvl@gmail.com>
This commit is contained in:
@@ -355,7 +355,7 @@ void DataEditor::onMotion(wxMouseEvent& ev) {
|
||||
// set status text
|
||||
wxFrame* frame = dynamic_cast<wxFrame*>( wxGetTopLevelParent(this) );
|
||||
if (frame) {
|
||||
frame->SetStatusText(hovered_viewer ? hovered_viewer->getField()->description : String());
|
||||
frame->SetStatusText(hovered_viewer ? hovered_viewer->getField()->description.get() : String());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,9 +225,7 @@ void CardListBase::rebuild() {
|
||||
if (f.second->card_list_align & ALIGN_RIGHT) align = wxLIST_FORMAT_RIGHT;
|
||||
else if (f.second->card_list_align & ALIGN_CENTER) align = wxLIST_FORMAT_CENTRE;
|
||||
else align = wxLIST_FORMAT_LEFT;
|
||||
InsertColumn((long)column_fields.size(),
|
||||
tr(*set->game, f.second->card_list_name, identity),
|
||||
align, cs.width);
|
||||
InsertColumn((long)column_fields.size(), f.second->card_list_name.get(), align, cs.width);
|
||||
column_fields.push_back(f.second);
|
||||
}
|
||||
// determine sort settings
|
||||
|
||||
@@ -67,7 +67,7 @@ void CardListColumnSelectDialog::initList() {
|
||||
// Init items
|
||||
Color window_color = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
|
||||
FOR_EACH(c, columns) {
|
||||
list->Append(tr(*game, c.field->card_list_name, identity));
|
||||
list->Append(c.field->card_list_name.get());
|
||||
// check
|
||||
int i = list->GetCount() - 1;
|
||||
list->Check(i, c.settings.visible);
|
||||
@@ -80,7 +80,7 @@ void CardListColumnSelectDialog::initList() {
|
||||
|
||||
void CardListColumnSelectDialog::refreshItem(int i) {
|
||||
list->Check (i, columns[i].settings.visible);
|
||||
list->SetString(i, tr(*game, columns[i].field->card_list_name, identity) );
|
||||
list->SetString(i, columns[i].field->card_list_name.get());
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------- : Events
|
||||
|
||||
@@ -39,9 +39,7 @@ void NativeLookEditor::drawViewer(RotatedDC& dc, ValueViewer& v) {
|
||||
// draw label
|
||||
dc.SetFont(*wxNORMAL_FONT);
|
||||
dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNTEXT));
|
||||
// TODO : tr using stylesheet or using game?
|
||||
dc.DrawText(tr(getStylePackage(), v.getField()->caption, identity),
|
||||
RealPoint(margin_left - v.bounding_box.x, 1));
|
||||
dc.DrawText(v.getField()->caption.get(), RealPoint(margin_left - v.bounding_box.x, 1));
|
||||
}
|
||||
// draw viewer
|
||||
v.draw(dc);
|
||||
@@ -64,8 +62,7 @@ void NativeLookEditor::resizeViewers() {
|
||||
// width of the label string
|
||||
int w;
|
||||
Style& s = *v->getStyle();
|
||||
String text = tr(getStylePackage(), s.fieldP->caption, identity);
|
||||
dc.GetTextExtent(text,&w,nullptr);
|
||||
dc.GetTextExtent(s.fieldP->caption.get(), &w, nullptr);
|
||||
label_width = max(label_width, w + label_margin);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,6 +74,17 @@ void SelectCardList::toggle(const CardP& card) {
|
||||
}
|
||||
}
|
||||
|
||||
void SelectCardList::toggleSelected(bool select) {
|
||||
for (long i = GetFirstSelected(); i != -1; i = GetNextSelected(i)) {
|
||||
if (select) {
|
||||
selected.insert(getCard(i));
|
||||
} else {
|
||||
selected.erase(getCard(i));
|
||||
}
|
||||
RefreshItem(i);
|
||||
}
|
||||
}
|
||||
|
||||
void SelectCardList::onKeyDown(wxKeyEvent& ev) {
|
||||
if (selected_item_pos == -1 || !selected_item) {
|
||||
// no selection
|
||||
@@ -82,18 +93,15 @@ void SelectCardList::onKeyDown(wxKeyEvent& ev) {
|
||||
}
|
||||
switch (ev.GetKeyCode()) {
|
||||
case WXK_SPACE: {
|
||||
toggle(getCard());
|
||||
RefreshItem(selected_item_pos);
|
||||
toggleSelected(!isSelected(getCard()));
|
||||
break;
|
||||
}
|
||||
case WXK_NUMPAD_ADD: case '+': {
|
||||
selected.insert(getCard());
|
||||
RefreshItem(selected_item_pos);
|
||||
toggleSelected(true);
|
||||
break;
|
||||
}
|
||||
case WXK_NUMPAD_SUBTRACT: case '-': {
|
||||
selected.erase(getCard());
|
||||
RefreshItem(selected_item_pos);
|
||||
toggleSelected(false);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -106,8 +114,14 @@ void SelectCardList::onLeftDown(wxMouseEvent& ev) {
|
||||
long item = HitTest(wxPoint(ev.GetX(), ev.GetY()), flags);
|
||||
if (flags == wxLIST_HITTEST_ONITEMICON) {
|
||||
// only clicking the icon toggles
|
||||
toggle(getCard(item));
|
||||
RefreshItem(item);
|
||||
if (IsSelected(item)) {
|
||||
// if multiple items are selected in the view (regardless of checkbox status), check/uncheck them all
|
||||
toggleSelected(!isSelected(getCard(item)));
|
||||
return; // don't change selection
|
||||
} else {
|
||||
toggle(getCard(item));
|
||||
RefreshItem(item);
|
||||
}
|
||||
}
|
||||
ev.Skip();
|
||||
}
|
||||
|
||||
@@ -37,8 +37,9 @@ private:
|
||||
DECLARE_EVENT_TABLE();
|
||||
|
||||
std::set<CardP> selected; ///< which cards are selected?
|
||||
|
||||
|
||||
void toggle(const CardP& card);
|
||||
void toggleSelected(bool select);
|
||||
|
||||
void onKeyDown(wxKeyEvent&);
|
||||
void onLeftDown(wxMouseEvent&);
|
||||
|
||||
Reference in New Issue
Block a user