Author: stippi Date: 2011-04-04 11:39:25 +0200 (Mon, 04 Apr 2011) New Revision: 41181 Changeset: https://dev.haiku-os.org/changeset/41181 Modified: haiku/trunk/src/apps/icon-o-matic/IconEditorApp.cpp haiku/trunk/src/apps/icon-o-matic/IconEditorApp.h haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.cpp haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.h Log: * Created separate PNG exporters for 16x16, 32x32 and 64x64 sizes. * When exporting for the first time, use the native saver's file name to initialize the file panel save text. * Don't shadow exportMode variable. * Small cleanups. Modified: haiku/trunk/src/apps/icon-o-matic/IconEditorApp.cpp =================================================================== --- haiku/trunk/src/apps/icon-o-matic/IconEditorApp.cpp 2011-04-04 09:37:33 UTC (rev 41180) +++ haiku/trunk/src/apps/icon-o-matic/IconEditorApp.cpp 2011-04-04 09:39:25 UTC (rev 41181) @@ -136,7 +136,7 @@ saver = fDocument->NativeSaver(); else saver = fDocument->ExportSaver(); - if (saver) { + if (saver != NULL) { saver->Save(fDocument); _PickUpActionBeforeSave(); break; @@ -171,24 +171,26 @@ } _SyncPanels(fSavePanel, fOpenPanel); } else { + printf("configure file panel\n"); // configure the file panel const char* saveText = NULL; FileSaver* saver = dynamic_cast<FileSaver*>( fDocument->NativeSaver()); + if (saver != NULL) + saveText = saver->Ref()->name; - bool exportMode = message->what == MSG_EXPORT_AS - || message->what == MSG_EXPORT; - if (exportMode) { + bool isExportMode = message->what == MSG_EXPORT_AS + || message->what == MSG_EXPORT; + if (isExportMode) { saver = dynamic_cast<FileSaver*>( fDocument->ExportSaver()); + if (saver != NULL && saver->Ref()->name != NULL) + saveText = saver->Ref()->name; } - if (saver) - saveText = saver->Ref()->name; - - fSavePanel->SetExportMode(exportMode); + fSavePanel->SetExportMode(isExportMode); // fSavePanel->Refresh(); - if (saveText) + if (saveText != NULL) fSavePanel->SetSaveText(saveText); fSavePanel->Show(); } @@ -469,8 +471,7 @@ // least one ref already switch (refMode) { case REF_MESSAGE: - fDocument->SetNativeSaver( - new NativeSaver(ref)); + fDocument->SetNativeSaver(new NativeSaver(ref)); break; case REF_FLAT: fDocument->SetExportSaver( @@ -592,7 +593,13 @@ saver = new SimpleFileSaver(new SourceExporter(), ref); break; - case EXPORT_MODE_BITMAP: + case EXPORT_MODE_BITMAP_16: + saver = new SimpleFileSaver(new BitmapExporter(16), ref); + break; + case EXPORT_MODE_BITMAP_32: + saver = new SimpleFileSaver(new BitmapExporter(32), ref); + break; + case EXPORT_MODE_BITMAP_64: saver = new SimpleFileSaver(new BitmapExporter(64), ref); break; Modified: haiku/trunk/src/apps/icon-o-matic/IconEditorApp.h =================================================================== --- haiku/trunk/src/apps/icon-o-matic/IconEditorApp.h 2011-04-04 09:37:33 UTC (rev 41180) +++ haiku/trunk/src/apps/icon-o-matic/IconEditorApp.h 2011-04-04 09:39:25 UTC (rev 41181) @@ -35,7 +35,9 @@ EXPORT_MODE_MESSAGE = 0, EXPORT_MODE_FLAT_ICON, EXPORT_MODE_SVG, - EXPORT_MODE_BITMAP, + EXPORT_MODE_BITMAP_16, + EXPORT_MODE_BITMAP_32, + EXPORT_MODE_BITMAP_64, EXPORT_MODE_BITMAP_SET, EXPORT_MODE_ICON_ATTR, EXPORT_MODE_ICON_MIME_ATTR, Modified: haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.cpp =================================================================== --- haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.cpp 2011-04-04 09:37:33 UTC (rev 41180) +++ haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.cpp 2011-04-04 09:39:25 UTC (rev 41181) @@ -239,9 +239,15 @@ case EXPORT_MODE_SVG: fSVGMI->SetMarked(true); break; - case EXPORT_MODE_BITMAP: - fBitmapMI->SetMarked(true); + case EXPORT_MODE_BITMAP_16: + fBitmap16MI->SetMarked(true); break; + case EXPORT_MODE_BITMAP_32: + fBitmap32MI->SetMarked(true); + break; + case EXPORT_MODE_BITMAP_64: + fBitmap64MI->SetMarked(true); + break; case EXPORT_MODE_BITMAP_SET: fBitmapSetMI->SetMarked(true); break; @@ -413,10 +419,18 @@ fFormatM->AddSeparatorItem(); - fBitmapMI = new SaveItem("PNG", - new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP); - fFormatM->AddItem(fBitmapMI); + fBitmap16MI = new SaveItem("PNG 16x16", + new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_16); + fFormatM->AddItem(fBitmap16MI); + fBitmap32MI = new SaveItem("PNG 32x32", + new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_32); + fFormatM->AddItem(fBitmap32MI); + + fBitmap64MI = new SaveItem("PNG 64x64", + new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_64); + fFormatM->AddItem(fBitmap64MI); + fBitmapSetMI = new SaveItem(B_TRANSLATE("PNG Set"), new BMessage(MSG_FORMAT), EXPORT_MODE_BITMAP_SET); fFormatM->AddItem(fBitmapSetMI); Modified: haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.h =================================================================== --- haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.h 2011-04-04 09:37:33 UTC (rev 41180) +++ haiku/trunk/src/apps/icon-o-matic/gui/SavePanel.h 2011-04-04 09:39:25 UTC (rev 41181) @@ -77,7 +77,9 @@ SaveItem* fRDefMI; SaveItem* fSourceMI; SaveItem* fSVGMI; - SaveItem* fBitmapMI; + SaveItem* fBitmap16MI; + SaveItem* fBitmap32MI; + SaveItem* fBitmap64MI; SaveItem* fBitmapSetMI; SaveItem* fIconAttrMI; SaveItem* fIconMimeAttrMI;