Commit 996e04ec authored by twanvl's avatar twanvl

exception/error handling

parent 8909655c
...@@ -269,9 +269,9 @@ void CardListBase::rebuild() { ...@@ -269,9 +269,9 @@ void CardListBase::rebuild() {
FOR_EACH(f, new_column_fields) { FOR_EACH(f, new_column_fields) {
ColumnSettings& cs = settings.columnSettingsFor(*set->game, *f.second); ColumnSettings& cs = settings.columnSettingsFor(*set->game, *f.second);
int align; int align;
if (f.second->card_list_align == ALIGN_RIGHT) align = wxLIST_FORMAT_RIGHT; 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 if (f.second->card_list_align & ALIGN_CENTER) align = wxLIST_FORMAT_CENTRE;
else align = wxLIST_FORMAT_LEFT; else align = wxLIST_FORMAT_LEFT;
InsertColumn((long)column_fields.size(), capitalize(f.second->card_list_name), align, cs.width); InsertColumn((long)column_fields.size(), capitalize(f.second->card_list_name), align, cs.width);
column_fields.push_back(f.second); column_fields.push_back(f.second);
} }
......
...@@ -57,15 +57,19 @@ class CardThumbnailRequest : public ThumbnailRequest { ...@@ -57,15 +57,19 @@ class CardThumbnailRequest : public ThumbnailRequest {
, filename(filename) , filename(filename)
{} {}
virtual Image generate() { virtual Image generate() {
ImageCardList* parent = (ImageCardList*)owner; try {
Image image; ImageCardList* parent = (ImageCardList*)owner;
if (image.LoadFile(*parent->set->openIn(filename))) { Image image;
// two step anti aliased resampling if (image.LoadFile(*parent->set->openIn(filename))) {
image.Rescale(36, 28); // step 1: no anti aliassing // two step anti aliased resampling
Image image2(18, 14, false); // step 2: with anti aliassing image.Rescale(36, 28); // step 1: no anti aliassing
resample(image, image2); Image image2(18, 14, false); // step 2: with anti aliassing
return image2; resample(image, image2);
} else { return image2;
} else {
return Image();
}
} catch (...) {
return Image(); return Image();
} }
} }
......
...@@ -153,11 +153,13 @@ bool ThumbnailThread::done(void* owner) { ...@@ -153,11 +153,13 @@ bool ThumbnailThread::done(void* owner) {
// store image // store image
r.first->store(r.second); r.first->store(r.second);
// store in cache // store in cache
String filename = image_cache_dir() + safeFilename(r.first->cache_name) + _(".png"); if (r.second.Ok()) {
r.second.SaveFile(filename, wxBITMAP_TYPE_PNG); String filename = image_cache_dir() + safeFilename(r.first->cache_name) + _(".png");
// set modification time r.second.SaveFile(filename, wxBITMAP_TYPE_PNG);
wxFileName fn(filename); // set modification time
fn.SetTimes(0, &r.first->modified, 0); wxFileName fn(filename);
fn.SetTimes(0, &r.first->modified, 0);
}
// remove from name list // remove from name list
request_names.erase(r.first); request_names.erase(r.first);
} }
......
...@@ -142,6 +142,14 @@ void SetScriptManager::onAction(const Action& action, bool undone) { ...@@ -142,6 +142,14 @@ void SetScriptManager::onAction(const Action& action, bool undone) {
TYPE_CASE_(action, ScriptValueEvent) { TYPE_CASE_(action, ScriptValueEvent) {
return; // Don't go into an infinite loop because of our own events return; // Don't go into an infinite loop because of our own events
} }
TYPE_CASE(action, AddCardAction) {
// update the added card specificly
Context& ctx = getContext(action.card);
FOR_EACH(v, action.card->data) {
v->update(ctx);
}
// note: fallthrough
}
TYPE_CASE_(action, CardListAction) { TYPE_CASE_(action, CardListAction) {
updateAllDependend(set.game->dependent_scripts_cards); updateAllDependend(set.game->dependent_scripts_cards);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment