Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
magicseteditor
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
magicseteditor
Commits
296f4942
Commit
296f4942
authored
Aug 08, 2008
by
twanvl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Generated packs can now be selected for printing.
parent
fca50100
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
322 additions
and
64 deletions
+322
-64
data/en.mse-locale/locale
data/en.mse-locale/locale
+6
-0
src/gui/card_select_window.cpp
src/gui/card_select_window.cpp
+116
-1
src/gui/card_select_window.hpp
src/gui/card_select_window.hpp
+55
-0
src/gui/control/card_list.cpp
src/gui/control/card_list.cpp
+27
-16
src/gui/control/card_list.hpp
src/gui/control/card_list.hpp
+13
-4
src/gui/control/item_list.hpp
src/gui/control/item_list.hpp
+1
-0
src/gui/control/select_card_list.cpp
src/gui/control/select_card_list.cpp
+12
-0
src/gui/control/select_card_list.hpp
src/gui/control/select_card_list.hpp
+5
-0
src/gui/images_export_window.cpp
src/gui/images_export_window.cpp
+1
-3
src/gui/print_window.cpp
src/gui/print_window.cpp
+26
-20
src/gui/print_window.hpp
src/gui/print_window.hpp
+3
-2
src/gui/set/panel.hpp
src/gui/set/panel.hpp
+2
-0
src/gui/set/random_pack_panel.cpp
src/gui/set/random_pack_panel.cpp
+8
-0
src/gui/set/random_pack_panel.hpp
src/gui/set/random_pack_panel.hpp
+1
-0
src/gui/set/window.cpp
src/gui/set/window.cpp
+26
-12
src/gui/set/window.hpp
src/gui/set/window.hpp
+9
-4
src/resource/common/expected_locale_keys
src/resource/common/expected_locale_keys
+8
-2
src/util/window_id.hpp
src/util/window_id.hpp
+3
-0
No files found.
data/en.mse-locale/locale
View file @
296f4942
...
@@ -462,6 +462,8 @@ label:
...
@@ -462,6 +462,8 @@ label:
columns
:
Columns
:
columns
:
Columns
:
#
Card
select
/
images
export
#
Card
select
/
images
export
select
cards
:
Cards
to
export
selected
card
count
:
%
s
cards
will
be
exported
.
select
cards
print
:
Select
the
cards
you
want
to
print
select
cards
print
:
Select
the
cards
you
want
to
print
filename
format
:
&
Format
:
filename
format
:
&
Format
:
filename
conflicts
:
&
Handle
duplicating
filenames
:
filename
conflicts
:
&
Handle
duplicating
filenames
:
...
@@ -564,6 +566,10 @@ button:
...
@@ -564,6 +566,10 @@ button:
hide
:
&
Hide
hide
:
&
Hide
#
Card
select
#
Card
select
export
entire
set
:
Entire
set
export
generated
packs
:
Generated
packs
export
custom
cards
selection
:
Custom
selection
select
cards
:
&
Select
Cards
...
select
all
:
Select
&
All
select
all
:
Select
&
All
select
none
:
Select
&
None
select
none
:
Select
&
None
overwrite
:
Overwrite
old
files
overwrite
:
Overwrite
old
files
...
...
src/gui/card_select_window.cpp
View file @
296f4942
...
@@ -10,6 +10,113 @@
...
@@ -10,6 +10,113 @@
#include <gui/card_select_window.hpp>
#include <gui/card_select_window.hpp>
#include <gui/control/select_card_list.hpp>
#include <gui/control/select_card_list.hpp>
#include <util/window_id.hpp>
#include <util/window_id.hpp>
#include <wx/statline.h>
DECLARE_TYPEOF_COLLECTION
(
CardP
);
DECLARE_TYPEOF_COLLECTION
(
ExportCardSelectionChoiceP
);
// ----------------------------------------------------------------------------- : ExportCardSelectionChoice
ExportCardSelectionChoice
::
ExportCardSelectionChoice
()
:
label
(
_BUTTON_
(
"export custom cards selection"
))
,
type
(
EXPORT_SEL_CUSTOM
)
,
the_cards
(
&
own_cards
)
{}
ExportCardSelectionChoice
::
ExportCardSelectionChoice
(
const
Set
&
set
)
:
label
(
_BUTTON_
(
"export entire set"
))
,
type
(
EXPORT_SEL_ENTIRE_SET
)
,
the_cards
(
&
set
.
cards
)
{}
ExportCardSelectionChoice
::
ExportCardSelectionChoice
(
const
String
&
label
,
const
vector
<
CardP
>&
cards
)
:
label
(
label
)
,
type
(
EXPORT_SEL_SUBSET
)
,
own_cards
(
cards
)
,
the_cards
(
&
own_cards
)
{}
ExportCardSelectionChoice
::
ExportCardSelectionChoice
(
const
String
&
label
,
const
vector
<
CardP
>*
cards
)
:
label
(
label
)
,
type
(
EXPORT_SEL_SUBSET
)
,
the_cards
(
cards
)
{}
// ----------------------------------------------------------------------------- : ExportWindowBase
ExportWindowBase
::
ExportWindowBase
(
const
SetP
&
set
,
const
ExportCardSelectionChoices
&
cards_choices
)
:
set
(
set
),
cards_choices
(
cards_choices
)
,
active_choice
(
0
)
,
select_cards
(
nullptr
)
{}
wxSizer
*
ExportWindowBase
::
Create
()
{
// create sizer
wxSizer
*
s
=
new
wxStaticBoxSizer
(
wxVERTICAL
,
this
,
_LABEL_
(
"select cards"
));
// create choice radio buttons
int
i
=
0
;
bool
any_custom
=
false
;
FOR_EACH
(
choice
,
cards_choices
)
{
wxRadioButton
*
btn
=
new
wxRadioButton
(
this
,
ID_SELECTION_CHOICE
+
i
,
choice
->
label
);
btn
->
Enable
(
!
choice
->
the_cards
->
empty
()
||
choice
->
type
==
EXPORT_SEL_CUSTOM
);
s
->
Add
(
btn
,
0
,
wxALL
,
6
);
s
->
AddSpacer
(
-
4
);
any_custom
|=
choice
->
type
==
EXPORT_SEL_CUSTOM
;
i
++
;
}
// custom selection button
if
(
any_custom
)
{
select_cards
=
new
wxButton
(
this
,
ID_SELECT_CARDS
,
_BUTTON_
(
"select cards"
));
wxSizer
*
s2
=
new
wxBoxSizer
(
wxHORIZONTAL
);
s2
->
Add
(
select_cards
,
1
,
wxLEFT
,
20
);
s
->
AddSpacer
(
4
);
s
->
Add
(
s2
,
0
,
wxALL
&
~
wxTOP
,
6
);
}
// total count label
s
->
AddSpacer
(
4
);
s
->
Add
(
new
wxStaticLine
(
this
),
0
,
wxALL
|
wxEXPAND
,
4
);
s
->
AddSpacer
(
4
);
card_count
=
new
wxStaticText
(
this
,
wxID_ANY
,
wxEmptyString
);
s
->
Add
(
card_count
,
0
,
wxALL
&
~
wxTOP
,
6
);
s
->
AddSpacer
(
4
);
// done
update
();
return
s
;
}
void
ExportWindowBase
::
onChangeSelectionChoice
(
wxCommandEvent
&
ev
)
{
active_choice
=
ev
.
GetId
()
-
ID_SELECTION_CHOICE
;
update
();
}
void
ExportWindowBase
::
onSelectCards
(
wxCommandEvent
&
)
{
CardSelectWindow
wnd
(
this
,
set
,
_LABEL_
(
"select cards"
),
_TITLE_
(
"select cards"
));
ExportCardSelectionChoice
&
choice
=
*
cards_choices
.
at
(
active_choice
);
wnd
.
setSelection
(
choice
.
own_cards
);
if
(
wnd
.
ShowModal
()
!=
wxID_OK
)
{
return
;
// cancel
}
// store cards
choice
.
own_cards
.
clear
();
wnd
.
getSelection
(
choice
.
own_cards
);
update
();
}
void
ExportWindowBase
::
update
()
{
ExportCardSelectionChoice
&
choice
=
*
cards_choices
.
at
(
active_choice
);
cards
=
choice
.
the_cards
;
if
(
select_cards
)
{
select_cards
->
Enable
(
choice
.
type
==
EXPORT_SEL_CUSTOM
);
}
card_count
->
SetLabel
(
_LABEL_1_
(
"selected card count"
,
String
::
Format
(
_
(
"%d"
),
cards
->
size
())));
wxWindow
*
ok_btn
=
FindWindow
(
wxID_OK
);
if
(
ok_btn
)
ok_btn
->
Enable
(
!
cards
->
empty
());
}
BEGIN_EVENT_TABLE
(
ExportWindowBase
,
wxDialog
)
EVT_RADIOBUTTON
(
wxID_ANY
,
ExportWindowBase
::
onChangeSelectionChoice
)
EVT_BUTTON
(
ID_SELECT_CARDS
,
ExportWindowBase
::
onSelectCards
)
END_EVENT_TABLE
()
// ----------------------------------------------------------------------------- : CardSelectWindow
// ----------------------------------------------------------------------------- : CardSelectWindow
...
@@ -36,7 +143,7 @@ CardSelectWindow::CardSelectWindow(Window* parent, const SetP& set, const String
...
@@ -36,7 +143,7 @@ CardSelectWindow::CardSelectWindow(Window* parent, const SetP& set, const String
s
->
Add
(
s2
,
0
,
wxEXPAND
|
wxALL
&
~
wxTOP
,
8
);
s
->
Add
(
s2
,
0
,
wxEXPAND
|
wxALL
&
~
wxTOP
,
8
);
s
->
SetSizeHints
(
this
);
s
->
SetSizeHints
(
this
);
SetSizer
(
s
);
SetSizer
(
s
);
SetSize
(
5
00
,
500
);
SetSize
(
6
00
,
500
);
}
}
}
}
...
@@ -44,6 +151,14 @@ bool CardSelectWindow::isSelected(const CardP& card) const {
...
@@ -44,6 +151,14 @@ bool CardSelectWindow::isSelected(const CardP& card) const {
return
list
->
isSelected
(
card
);
return
list
->
isSelected
(
card
);
}
}
void
CardSelectWindow
::
getSelection
(
vector
<
CardP
>&
out
)
const
{
list
->
getSelection
(
out
);
}
void
CardSelectWindow
::
setSelection
(
const
vector
<
CardP
>&
cards
)
{
list
->
setSelection
(
cards
);
}
void
CardSelectWindow
::
onSelectAll
(
wxCommandEvent
&
)
{
void
CardSelectWindow
::
onSelectAll
(
wxCommandEvent
&
)
{
list
->
selectAll
();
list
->
selectAll
();
}
}
...
...
src/gui/card_select_window.hpp
View file @
296f4942
...
@@ -13,8 +13,59 @@
...
@@ -13,8 +13,59 @@
DECLARE_POINTER_TYPE
(
Set
);
DECLARE_POINTER_TYPE
(
Set
);
DECLARE_POINTER_TYPE
(
Card
);
DECLARE_POINTER_TYPE
(
Card
);
DECLARE_POINTER_TYPE
(
ExportCardSelectionChoice
);
class
SelectCardList
;
class
SelectCardList
;
// ----------------------------------------------------------------------------- : ExportWindowBase
enum
ExportCardSelectionType
{
EXPORT_SEL_ENTIRE_SET
,
EXPORT_SEL_SUBSET
,
EXPORT_SEL_CUSTOM
};
class
ExportCardSelectionChoice
:
public
IntrusivePtrBase
<
ExportCardSelectionChoice
>
{
public:
ExportCardSelectionChoice
();
ExportCardSelectionChoice
(
const
Set
&
set
);
ExportCardSelectionChoice
(
const
String
&
label
,
const
vector
<
CardP
>&
cards
);
ExportCardSelectionChoice
(
const
String
&
label
,
const
vector
<
CardP
>*
cards
);
const
String
label
;
const
ExportCardSelectionType
type
;
const
vector
<
CardP
>*
the_cards
;
///< The cards
vector
<
CardP
>
own_cards
;
///< Maybe we own the cards, in that case the_cards = &own_cards
};
typedef
vector
<
ExportCardSelectionChoiceP
>
ExportCardSelectionChoices
;
/// Base class for export windows, deals with card selection
class
ExportWindowBase
:
public
wxDialog
{
public:
ExportWindowBase
(
const
SetP
&
set
,
const
ExportCardSelectionChoices
&
cards_choices
);
/// Create the controls, return a sizer containing them
wxSizer
*
Create
();
/// Get the selected cards
const
vector
<
CardP
>&
getSelection
()
const
{
return
*
cards
;
}
protected:
DECLARE_EVENT_TABLE
();
SetP
set
;
///< Set to export
const
vector
<
CardP
>*
cards
;
///< Cards to export
private:
ExportCardSelectionChoices
cards_choices
;
///< Ways to select cards
size_t
active_choice
;
wxStaticText
*
card_count
;
wxButton
*
select_cards
;
void
onChangeSelectionChoice
(
wxCommandEvent
&
);
void
onSelectCards
(
wxCommandEvent
&
);
void
update
();
};
// ----------------------------------------------------------------------------- : CardSelectWindow
// ----------------------------------------------------------------------------- : CardSelectWindow
/// A window for selecting a subset of the cards from a set.
/// A window for selecting a subset of the cards from a set.
...
@@ -26,6 +77,10 @@ class CardSelectWindow : public wxDialog {
...
@@ -26,6 +77,10 @@ class CardSelectWindow : public wxDialog {
/// Is the given card selected?
/// Is the given card selected?
bool
isSelected
(
const
CardP
&
card
)
const
;
bool
isSelected
(
const
CardP
&
card
)
const
;
/// Get a list of all selected cards
void
getSelection
(
vector
<
CardP
>&
out
)
const
;
/// Change which cards are selected
void
setSelection
(
const
vector
<
CardP
>&
cards
);
protected:
protected:
DECLARE_EVENT_TABLE
();
DECLARE_EVENT_TABLE
();
...
...
src/gui/control/card_list.cpp
View file @
296f4942
...
@@ -36,6 +36,18 @@ DECLARE_TYPEOF_COLLECTION(CardListBase*);
...
@@ -36,6 +36,18 @@ DECLARE_TYPEOF_COLLECTION(CardListBase*);
DEFINE_EVENT_TYPE
(
EVENT_CARD_SELECT
);
DEFINE_EVENT_TYPE
(
EVENT_CARD_SELECT
);
DEFINE_EVENT_TYPE
(
EVENT_CARD_ACTIVATE
);
DEFINE_EVENT_TYPE
(
EVENT_CARD_ACTIVATE
);
CardP
CardSelectEvent
::
getCard
()
const
{
return
getTheCardList
()
->
getCard
();
}
void
CardSelectEvent
::
getSelection
(
vector
<
CardP
>&
out
)
const
{
getTheCardList
()
->
getSelection
(
out
);
}
CardListBase
*
CardSelectEvent
::
getTheCardList
()
const
{
return
static_cast
<
CardListBase
*>
(
GetEventObject
());
}
// ----------------------------------------------------------------------------- : CardListBase
// ----------------------------------------------------------------------------- : CardListBase
vector
<
CardListBase
*>
CardListBase
::
card_lists
;
vector
<
CardListBase
*>
CardListBase
::
card_lists
;
...
@@ -116,11 +128,21 @@ void CardListBase::getItems(vector<VoidP>& out) const {
...
@@ -116,11 +128,21 @@ void CardListBase::getItems(vector<VoidP>& out) const {
out
.
push_back
(
c
);
out
.
push_back
(
c
);
}
}
}
}
void
CardListBase
::
sendEvent
()
{
void
CardListBase
::
sendEvent
(
int
type
)
{
CardSelectEvent
ev
(
getCard
());
CardSelectEvent
ev
(
type
);
ev
.
SetEventObject
(
this
);
ProcessEvent
(
ev
);
ProcessEvent
(
ev
);
}
}
void
CardListBase
::
getSelection
(
vector
<
CardP
>&
out
)
const
{
long
count
=
GetItemCount
();
for
(
long
pos
=
0
;
pos
<
count
;
++
pos
)
{
if
(
const_cast
<
CardListBase
*>
(
this
)
->
IsSelected
(
pos
))
{
out
.
push_back
(
getCard
(
pos
));
}
}
}
// ----------------------------------------------------------------------------- : CardListBase : Clipboard
// ----------------------------------------------------------------------------- : CardListBase : Clipboard
bool
CardListBase
::
canCut
()
const
{
return
canDelete
();
}
bool
CardListBase
::
canCut
()
const
{
return
canDelete
();
}
...
@@ -136,12 +158,7 @@ bool CardListBase::doCopy() {
...
@@ -136,12 +158,7 @@ bool CardListBase::doCopy() {
if
(
!
canCopy
())
return
false
;
if
(
!
canCopy
())
return
false
;
// cards to copy
// cards to copy
vector
<
CardP
>
cards_to_copy
;
vector
<
CardP
>
cards_to_copy
;
long
count
=
GetItemCount
();
getSelection
(
cards_to_copy
);
for
(
long
pos
=
0
;
pos
<
count
;
++
pos
)
{
if
(
IsSelected
(
pos
))
{
cards_to_copy
.
push_back
(
getCard
(
pos
));
}
}
if
(
cards_to_copy
.
empty
())
return
false
;
if
(
cards_to_copy
.
empty
())
return
false
;
// put on clipboard
// put on clipboard
if
(
!
wxTheClipboard
->
Open
())
return
false
;
if
(
!
wxTheClipboard
->
Open
())
return
false
;
...
@@ -168,12 +185,7 @@ bool CardListBase::doPaste() {
...
@@ -168,12 +185,7 @@ bool CardListBase::doPaste() {
bool
CardListBase
::
doDelete
()
{
bool
CardListBase
::
doDelete
()
{
// cards to delete
// cards to delete
vector
<
CardP
>
cards_to_delete
;
vector
<
CardP
>
cards_to_delete
;
long
count
=
GetItemCount
();
getSelection
(
cards_to_delete
);
for
(
long
pos
=
0
;
pos
<
count
;
++
pos
)
{
if
(
IsSelected
(
pos
))
{
cards_to_delete
.
push_back
(
getCard
(
pos
));
}
}
if
(
cards_to_delete
.
empty
())
return
false
;
if
(
cards_to_delete
.
empty
())
return
false
;
// delete cards
// delete cards
set
->
actions
.
addAction
(
new
AddCardAction
(
REMOVE
,
*
set
,
cards_to_delete
));
set
->
actions
.
addAction
(
new
AddCardAction
(
REMOVE
,
*
set
,
cards_to_delete
));
...
@@ -372,8 +384,7 @@ void CardListBase::onContextMenu(wxContextMenuEvent&) {
...
@@ -372,8 +384,7 @@ void CardListBase::onContextMenu(wxContextMenuEvent&) {
void
CardListBase
::
onItemActivate
(
wxListEvent
&
ev
)
{
void
CardListBase
::
onItemActivate
(
wxListEvent
&
ev
)
{
selectItemPos
(
ev
.
GetIndex
(),
false
);
selectItemPos
(
ev
.
GetIndex
(),
false
);
CardSelectEvent
event
(
getCard
(),
EVENT_CARD_ACTIVATE
);
sendEvent
(
EVENT_CARD_ACTIVATE
);
ProcessEvent
(
event
);
}
}
// ----------------------------------------------------------------------------- : CardListBase : Event table
// ----------------------------------------------------------------------------- : CardListBase : Event table
...
...
src/gui/control/card_list.hpp
View file @
296f4942
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
DECLARE_POINTER_TYPE
(
ChoiceField
);
DECLARE_POINTER_TYPE
(
ChoiceField
);
DECLARE_POINTER_TYPE
(
Field
);
DECLARE_POINTER_TYPE
(
Field
);
class
CardListBase
;
// ----------------------------------------------------------------------------- : Events
// ----------------------------------------------------------------------------- : Events
...
@@ -36,11 +37,16 @@ DECLARE_EVENT_TYPE(EVENT_CARD_ACTIVATE, <not used>)
...
@@ -36,11 +37,16 @@ DECLARE_EVENT_TYPE(EVENT_CARD_ACTIVATE, <not used>)
/// The event of selecting a card
/// The event of selecting a card
struct
CardSelectEvent
:
public
wxCommandEvent
{
struct
CardSelectEvent
:
public
wxCommandEvent
{
inline
CardSelectEvent
(
const
CardP
&
card
,
int
type
=
EVENT_CARD_SELECT
)
inline
CardSelectEvent
(
int
type
=
EVENT_CARD_SELECT
)
:
wxCommandEvent
(
type
)
,
card
(
card
)
:
wxCommandEvent
(
type
)
{}
{}
CardP
card
;
///< The selected card
/// The selected card
CardP
getCard
()
const
;
/// All focused cards
void
getSelection
(
vector
<
CardP
>&
out
)
const
;
private:
CardListBase
*
getTheCardList
()
const
;
};
};
// ----------------------------------------------------------------------------- : CardListBase
// ----------------------------------------------------------------------------- : CardListBase
...
@@ -83,6 +89,8 @@ class CardListBase : public ItemList, public SetView {
...
@@ -83,6 +89,8 @@ class CardListBase : public ItemList, public SetView {
public:
public:
/// Return the card at the given position in the sorted card list
/// Return the card at the given position in the sorted card list
inline
CardP
getCard
(
long
pos
)
const
{
return
static_pointer_cast
<
Card
>
(
getItem
(
pos
));
}
inline
CardP
getCard
(
long
pos
)
const
{
return
static_pointer_cast
<
Card
>
(
getItem
(
pos
));
}
/// Get a list of all focused cards
void
getSelection
(
vector
<
CardP
>&
out
)
const
;
protected:
protected:
/// Get a list of all cards
/// Get a list of all cards
virtual
void
getItems
(
vector
<
VoidP
>&
out
)
const
;
virtual
void
getItems
(
vector
<
VoidP
>&
out
)
const
;
...
@@ -97,7 +105,8 @@ class CardListBase : public ItemList, public SetView {
...
@@ -97,7 +105,8 @@ class CardListBase : public ItemList, public SetView {
virtual
void
sortBy
(
long
column
,
bool
ascending
);
virtual
void
sortBy
(
long
column
,
bool
ascending
);
/// Send an 'item selected' event for the currently selected item (selected_item)
/// Send an 'item selected' event for the currently selected item (selected_item)
virtual
void
sendEvent
();
virtual
void
sendEvent
()
{
sendEvent
(
EVENT_CARD_SELECT
);
}
void
sendEvent
(
int
type
=
EVENT_CARD_SELECT
);
/// Compare cards
/// Compare cards
virtual
bool
compareItems
(
void
*
a
,
void
*
b
)
const
;
virtual
bool
compareItems
(
void
*
a
,
void
*
b
)
const
;
...
...
src/gui/control/item_list.hpp
View file @
296f4942
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
* Terminology:
* Terminology:
* selected item = a single item in the variable selected_item
* selected item = a single item in the variable selected_item
* focused items = items that are drawn as selected in the control
* focused items = items that are drawn as selected in the control
* TODO: This is reverse of normal
*/
*/
class
ItemList
:
public
wxListView
{
class
ItemList
:
public
wxListView
{
public:
public:
...
...
src/gui/control/select_card_list.cpp
View file @
296f4942
...
@@ -43,6 +43,18 @@ bool SelectCardList::isSelected(const CardP& card) const {
...
@@ -43,6 +43,18 @@ bool SelectCardList::isSelected(const CardP& card) const {
return
selected
.
find
(
card
)
!=
selected
.
end
();
return
selected
.
find
(
card
)
!=
selected
.
end
();
}
}
void
SelectCardList
::
getSelection
(
vector
<
CardP
>&
out
)
const
{
FOR_EACH_CONST
(
card
,
set
->
cards
)
{
if
(
isSelected
(
card
))
out
.
push_back
(
card
);
}
}
void
SelectCardList
::
setSelection
(
const
vector
<
CardP
>&
cards
)
{
selected
.
clear
();
copy
(
cards
.
begin
(),
cards
.
end
(),
inserter
(
selected
,
selected
.
begin
()));
}
void
SelectCardList
::
onChangeSet
()
{
void
SelectCardList
::
onChangeSet
()
{
CardListBase
::
onChangeSet
();
CardListBase
::
onChangeSet
();
// init selected list: select all
// init selected list: select all
...
...
src/gui/control/select_card_list.hpp
View file @
296f4942
...
@@ -26,6 +26,11 @@ class SelectCardList : public CardListBase {
...
@@ -26,6 +26,11 @@ class SelectCardList : public CardListBase {
void
selectNone
();
void
selectNone
();
/// Is the given card selected?
/// Is the given card selected?
bool
isSelected
(
const
CardP
&
card
)
const
;
bool
isSelected
(
const
CardP
&
card
)
const
;
/// Get a list of all selected cards
void
getSelection
(
vector
<
CardP
>&
out
)
const
;
/// Change which cards are selected
void
setSelection
(
const
vector
<
CardP
>&
cards
);
protected:
protected:
virtual
int
OnGetItemImage
(
long
pos
)
const
;
virtual
int
OnGetItemImage
(
long
pos
)
const
;
virtual
void
onChangeSet
();
virtual
void
onChangeSet
();
...
...
src/gui/images_export_window.cpp
View file @
296f4942
...
@@ -72,9 +72,7 @@ void ImagesExportWindow::onOk(wxCommandEvent&) {
...
@@ -72,9 +72,7 @@ void ImagesExportWindow::onOk(wxCommandEvent&) {
if
(
name
.
empty
())
return
;
if
(
name
.
empty
())
return
;
// Cards to export
// Cards to export
vector
<
CardP
>
cards
;
vector
<
CardP
>
cards
;
FOR_EACH
(
card
,
set
->
cards
)
{
getSelection
(
cards
);
if
(
isSelected
(
card
))
cards
.
push_back
(
card
);
}
// Export
// Export
export_images
(
set
,
cards
,
name
,
gs
.
images_export_filename
,
gs
.
images_export_conflicts
);
export_images
(
set
,
cards
,
name
,
gs
.
images_export_filename
,
gs
.
images_export_conflicts
);
// Done
// Done
...
...
src/gui/print_window.cpp
View file @
296f4942
...
@@ -248,39 +248,45 @@ void CardsPrintout::drawCard(DC& dc, const CardP& card, int card_nr) {
...
@@ -248,39 +248,45 @@ void CardsPrintout::drawCard(DC& dc, const CardP& card, int card_nr) {
// ----------------------------------------------------------------------------- : PrintWindow
// ----------------------------------------------------------------------------- : PrintWindow
void
print_preview
(
Window
*
parent
,
const
SetP
&
set
)
{
const
vector
<
CardP
>*
cards_to_print
(
Window
*
parent
,
const
SetP
&
set
,
const
ExportCardSelectionChoices
&
choices
)
{
// Let the user choose cards
// Let the user choose cards
CardSelectWindow
wnd
(
parent
,
set
,
_LABEL_
(
"select cards print"
),
_TITLE_
(
"select cards"
));
//CardSelectWindow wnd(parent, set, _LABEL_("select cards print"), _TITLE_("select cards"));
ExportWindowBase
wnd
(
set
,
choices
);
wnd
.
wxDialog
::
Create
(
parent
,
wxID_ANY
,
_TITLE_
(
"select cards"
));
wxSizer
*
s
=
new
wxBoxSizer
(
wxVERTICAL
);
wxSizer
*
s2
=
wnd
.
Create
();
s
->
Add
(
s2
,
1
,
wxEXPAND
|
wxALL
,
8
);
s
->
Add
(
wnd
.
CreateButtonSizer
(
wxOK
|
wxCANCEL
)
,
0
,
wxEXPAND
|
wxALL
,
8
);
s
->
SetSizeHints
(
&
wnd
);
wnd
.
SetSizer
(
s
);
wnd
.
SetSize
(
300
,
-
1
);
// show window
if
(
wnd
.
ShowModal
()
!=
wxID_OK
)
{
if
(
wnd
.
ShowModal
()
!=
wxID_OK
)
{
return
;
// cancel
return
nullptr
;
// cancel
}
vector
<
CardP
>
selected
;
FOR_EACH
(
c
,
set
->
cards
)
{
if
(
wnd
.
isSelected
(
c
))
selected
.
push_back
(
c
);
}
}
return
&
wnd
.
getSelection
();
}
void
print_preview
(
Window
*
parent
,
const
SetP
&
set
,
const
ExportCardSelectionChoices
&
choices
)
{
const
vector
<
CardP
>*
cards
=
cards_to_print
(
parent
,
set
,
choices
);
if
(
!
cards
)
return
;
// Show the print preview
// Show the print preview
wxPreviewFrame
*
frame
=
new
wxPreviewFrame
(
wxPreviewFrame
*
frame
=
new
wxPreviewFrame
(
new
wxPrintPreview
(
new
wxPrintPreview
(
new
CardsPrintout
(
set
,
selected
),
new
CardsPrintout
(
set
,
*
cards
),
new
CardsPrintout
(
set
,
selected
)
new
CardsPrintout
(
set
,
*
cards
)
),
parent
,
_TITLE_
(
"print preview"
));
),
parent
,
_TITLE_
(
"print preview"
));
frame
->
Initialize
();
frame
->
Initialize
();
frame
->
Maximize
(
true
);
frame
->
Maximize
(
true
);
frame
->
Show
();
frame
->
Show
();
}
}
void
print_set
(
Window
*
parent
,
const
SetP
&
set
)
{
void
print_set
(
Window
*
parent
,
const
SetP
&
set
,
const
ExportCardSelectionChoices
&
choices
)
{
// Let the user choose cards
const
vector
<
CardP
>*
cards
=
cards_to_print
(
parent
,
set
,
choices
);
CardSelectWindow
wnd
(
parent
,
set
,
_LABEL_
(
"select cards print"
),
_TITLE_
(
"select cards"
));
if
(
!
cards
)
return
;
if
(
wnd
.
ShowModal
()
!=
wxID_OK
)
{
return
;
// cancel
}
vector
<
CardP
>
selected
;
FOR_EACH
(
c
,
set
->
cards
)
{
if
(
wnd
.
isSelected
(
c
))
selected
.
push_back
(
c
);
}
// Print the cards
// Print the cards
wxPrinter
p
;
wxPrinter
p
;
CardsPrintout
pout
(
set
,
selected
);
CardsPrintout
pout
(
set
,
*
cards
);
p
.
Print
(
parent
,
&
pout
,
true
);
p
.
Print
(
parent
,
&
pout
,
true
);
}
}
src/gui/print_window.hpp
View file @
296f4942
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include <util/prec.hpp>
#include <util/prec.hpp>
#include <util/reflect.hpp>
#include <util/reflect.hpp>
#include <util/real_point.hpp>
#include <util/real_point.hpp>
#include <gui/card_select_window.hpp>
DECLARE_POINTER_TYPE
(
Set
);
DECLARE_POINTER_TYPE
(
Set
);
class
StyleSheet
;
class
StyleSheet
;
...
@@ -19,10 +20,10 @@ class StyleSheet;
...
@@ -19,10 +20,10 @@ class StyleSheet;
// ----------------------------------------------------------------------------- : Printing
// ----------------------------------------------------------------------------- : Printing
/// Show a print preview for the given set
/// Show a print preview for the given set
void
print_preview
(
Window
*
parent
,
const
SetP
&
set
);
void
print_preview
(
Window
*
parent
,
const
SetP
&
set
,
const
ExportCardSelectionChoices
&
choices
);
/// Print the given set
/// Print the given set
void
print_set
(
Window
*
parent
,
const
SetP
&
set
);
void
print_set
(
Window
*
parent
,
const
SetP
&
set
,
const
ExportCardSelectionChoices
&
choices
);
// ----------------------------------------------------------------------------- : Layout
// ----------------------------------------------------------------------------- : Layout
...
...
src/gui/set/panel.hpp
View file @
296f4942
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
#include <util/prec.hpp>
#include <util/prec.hpp>
#include <data/set.hpp>
#include <data/set.hpp>
#include <gui/card_select_window.hpp>
class
wxFindReplaceData
;
class
wxFindReplaceData
;
...
@@ -69,6 +70,7 @@ class SetWindowPanel : public wxPanel, public SetView {
...
@@ -69,6 +70,7 @@ class SetWindowPanel : public wxPanel, public SetView {
virtual
CardP
selectedCard
()
const
;
///< Return the currently selected card, or CardP()
virtual
CardP
selectedCard
()
const
;
///< Return the currently selected card, or CardP()
virtual
void
selectCard
(
const
CardP
&
card
)
{}
///< Switch the view to another card, can be null
virtual
void
selectCard
(
const
CardP
&
card
)
{}
///< Switch the view to another card, can be null
virtual
void
selectFirstCard
()
{}
///< Switch the view to the first card
virtual
void
selectFirstCard
()
{}
///< Switch the view to the first card
virtual
void
selectionChoices
(
ExportCardSelectionChoices
&
out
)
{}
///< Card subsets that can be exported from this panel
};
};
// ----------------------------------------------------------------------------- : EOF
// ----------------------------------------------------------------------------- : EOF
...
...
src/gui/set/random_pack_panel.cpp
View file @
296f4942
...
@@ -39,6 +39,8 @@ class RandomCardList : public CardListBase {
...
@@ -39,6 +39,8 @@ class RandomCardList : public CardListBase {
using
CardListBase
::
rebuild
;
using
CardListBase
::
rebuild
;
const
vector
<
CardP
>*
getCardsPtr
()
const
{
return
&
cards
;
}
protected:
protected:
virtual
void
getItems
(
vector
<
VoidP
>&
out
)
const
;
virtual
void
getItems
(
vector
<
VoidP
>&
out
)
const
;
virtual
void
onChangeSet
();
virtual
void
onChangeSet
();
...
@@ -328,6 +330,12 @@ void RandomPackPanel::selectCard(const CardP& card) {
...
@@ -328,6 +330,12 @@ void RandomPackPanel::selectCard(const CardP& card) {
preview
->
setCard
(
card
);
preview
->
setCard
(
card
);
}
}
void
RandomPackPanel
::
selectionChoices
(
ExportCardSelectionChoices
&
out
)
{
out
.
push_back
(
new_intrusive2
<
ExportCardSelectionChoice
>
(
_BUTTON_
(
"export generated packs"
),
card_list
->
getCardsPtr
()
));
}
// ----------------------------------------------------------------------------- : Clipboard
// ----------------------------------------------------------------------------- : Clipboard
...
...
src/gui/set/random_pack_panel.hpp
View file @
296f4942
...
@@ -39,6 +39,7 @@ class RandomPackPanel : public SetWindowPanel {
...
@@ -39,6 +39,7 @@ class RandomPackPanel : public SetWindowPanel {
// --------------------------------------------------- : Selection
// --------------------------------------------------- : Selection
virtual
CardP
selectedCard
()
const
;
virtual
CardP
selectedCard
()
const
;
virtual
void
selectCard
(
const
CardP
&
card
);
virtual
void
selectCard
(
const
CardP
&
card
);
virtual
void
selectionChoices
(
ExportCardSelectionChoices
&
out
);
// --------------------------------------------------- : Clipboard
// --------------------------------------------------- : Clipboard
...
...
src/gui/set/window.cpp
View file @
296f4942
...
@@ -329,16 +329,6 @@ void SetWindow::updateTitle() {
...
@@ -329,16 +329,6 @@ void SetWindow::updateTitle() {
}
}
}
}
void
SetWindow
::
onCardSelect
(
CardSelectEvent
&
ev
)
{
FOR_EACH
(
p
,
panels
)
{
p
->
selectCard
(
ev
.
card
);
}
}
void
SetWindow
::
onCardActivate
(
CardSelectEvent
&
ev
)
{
selectPanel
(
ID_WINDOW_CARDS
);
}
void
SetWindow
::
fixMinWindowSize
()
{
void
SetWindow
::
fixMinWindowSize
()
{
current_panel
->
SetMinSize
(
current_panel
->
GetSizer
()
->
GetMinSize
());
current_panel
->
SetMinSize
(
current_panel
->
GetSizer
()
->
GetMinSize
());
Layout
();
Layout
();
...
@@ -360,6 +350,26 @@ void SetWindow::onSizeChange(wxCommandEvent&) {
...
@@ -360,6 +350,26 @@ void SetWindow::onSizeChange(wxCommandEvent&) {
fixMinWindowSize
();
fixMinWindowSize
();
}
}
// ----------------------------------------------------------------------------- : Cards
void
SetWindow
::
onCardSelect
(
CardSelectEvent
&
ev
)
{
FOR_EACH
(
p
,
panels
)
{
p
->
selectCard
(
ev
.
getCard
());
}
}
void
SetWindow
::
onCardActivate
(
CardSelectEvent
&
ev
)
{
selectPanel
(
ID_WINDOW_CARDS
);
}
void
SetWindow
::
selectionChoices
(
ExportCardSelectionChoices
&
out
)
{
out
.
push_back
(
new_intrusive1
<
ExportCardSelectionChoice
>
(
*
set
));
// entire set
FOR_EACH
(
p
,
panels
)
{
p
->
selectionChoices
(
out
);
}
out
.
push_back
(
new_intrusive
<
ExportCardSelectionChoice
>
());
// custom
}
// ----------------------------------------------------------------------------- : Window events - close
// ----------------------------------------------------------------------------- : Window events - close
void
SetWindow
::
onClose
(
wxCloseEvent
&
ev
)
{
void
SetWindow
::
onClose
(
wxCloseEvent
&
ev
)
{
...
@@ -594,11 +604,15 @@ void SetWindow::onFileCheckUpdates(wxCommandEvent&) {
...
@@ -594,11 +604,15 @@ void SetWindow::onFileCheckUpdates(wxCommandEvent&) {
}
}
void
SetWindow
::
onFilePrint
(
wxCommandEvent
&
)
{
void
SetWindow
::
onFilePrint
(
wxCommandEvent
&
)
{
print_set
(
this
,
set
);
ExportCardSelectionChoices
choices
;
selectionChoices
(
choices
);
print_set
(
this
,
set
,
choices
);
}
}
void
SetWindow
::
onFilePrintPreview
(
wxCommandEvent
&
)
{
void
SetWindow
::
onFilePrintPreview
(
wxCommandEvent
&
)
{
print_preview
(
this
,
set
);
ExportCardSelectionChoices
choices
;
selectionChoices
(
choices
);
print_preview
(
this
,
set
,
choices
);
}
}
void
SetWindow
::
onFileReload
(
wxCommandEvent
&
)
{
void
SetWindow
::
onFileReload
(
wxCommandEvent
&
)
{
...
...
src/gui/set/window.hpp
View file @
296f4942
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include <util/prec.hpp>
#include <util/prec.hpp>
#include <data/set.hpp>
#include <data/set.hpp>
#include <wx/fdrepdlg.h>
#include <wx/fdrepdlg.h>
#include <gui/card_select_window.hpp>
class
IconMenu
;
class
IconMenu
;
class
SetWindowPanel
;
class
SetWindowPanel
;
...
@@ -86,16 +87,20 @@ class SetWindow : public wxFrame, public SetView {
...
@@ -86,16 +87,20 @@ class SetWindow : public wxFrame, public SetView {
virtual
void
onAction
(
const
Action
&
,
bool
undone
);
virtual
void
onAction
(
const
Action
&
,
bool
undone
);
private:
private:
/// A different card has been selected
void
onCardSelect
(
CardSelectEvent
&
);
void
onCardActivate
(
CardSelectEvent
&
);
// minSize = mainSizer->getMinWindowSize(this)
// minSize = mainSizer->getMinWindowSize(this)
// but wx made that private
// but wx made that private
void
fixMinWindowSize
();
void
fixMinWindowSize
();
/// Update the window title based on the set name
/// Update the window title based on the set name
void
updateTitle
();
void
updateTitle
();
// --------------------------------------------------- : Cards
/// A different card has been selected
void
onCardSelect
(
CardSelectEvent
&
);
void
onCardActivate
(
CardSelectEvent
&
);
/// Card subsets that can be exported
void
selectionChoices
(
ExportCardSelectionChoices
&
out
);
// --------------------------------------------------- : Window events - close
// --------------------------------------------------- : Window events - close
/// Ask the user to save the set
/// Ask the user to save the set
...
...
src/resource/common/expected_locale_keys
View file @
296f4942
#
This
file
contains
the
keys
expected
to
be
in
MSE
locales
#
This
file
contains
the
keys
expected
to
be
in
MSE
locales
#
It
was
automatically
generated
by
tools
/
locale
/
locale
.
pl
#
It
was
automatically
generated
by
tools
/
locale
/
locale
.
pl
#
Generated
on
Mon
Aug
4
03
:
28
:
32
2008
#
Generated
on
Fri
Aug
8
23
:
23
:
10
2008
action
:
action
:
add
control
point
:
0
add
control
point
:
0
...
@@ -49,6 +49,9 @@ button:
...
@@ -49,6 +49,9 @@ button:
don
't install package: 0
don
't install package: 0
edit symbol: 0
edit symbol: 0
enabled: 0
enabled: 0
export custom cards selection: 0
export entire set: 0
export generated packs: 0
fixed seed: 0
fixed seed: 0
generate pack: 0
generate pack: 0
hide: 0
hide: 0
...
@@ -75,6 +78,7 @@ button:
...
@@ -75,6 +78,7 @@ button:
remove package: 0
remove package: 0
select: optional, 0
select: optional, 0
select all: 0
select all: 0
select cards: 0
select none: 0
select none: 0
show: 0
show: 0
show editing hints: 0
show editing hints: 0
...
@@ -310,8 +314,10 @@ label:
...
@@ -310,8 +314,10 @@ label:
rules
:
0
rules
:
0
save
changes
:
1
save
changes
:
1
seed
:
0
seed
:
0
select
cards
print
:
0
select
cards
:
0
select
cards
print
:
optional
,
0
select
columns
:
0
select
columns
:
0
selected
card
count
:
1
selection
:
0
selection
:
0
selection
height
:
0
selection
height
:
0
selection
left
:
0
selection
left
:
0
...
...
src/util/window_id.hpp
View file @
296f4942
...
@@ -232,6 +232,9 @@ enum ControlID {
...
@@ -232,6 +232,9 @@ enum ControlID {
,
ID_SHOW
,
ID_SHOW
,
ID_HIDE
,
ID_HIDE
// Card select
// Card select
,
ID_SELECT_CARDS
,
ID_SELECTION_CHOICE
,
ID_SELECTION_CHOICE_MAX
=
ID_SELECTION_CHOICE
+
10
,
ID_SELECT_ALL
,
ID_SELECT_ALL
,
ID_SELECT_NONE
,
ID_SELECT_NONE
// Settings
// Settings
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment