* 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.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41181 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2011-04-04 09:39:25 +00:00
parent aedb8a1c34
commit 9705667601
4 changed files with 47 additions and 22 deletions
+22 -15
View File
@@ -136,7 +136,7 @@ IconEditorApp::MessageReceived(BMessage* message)
saver = fDocument->NativeSaver();
else
saver = fDocument->ExportSaver();
if (saver) {
if (saver != NULL) {
saver->Save(fDocument);
_PickUpActionBeforeSave();
break;
@@ -171,24 +171,26 @@ IconEditorApp::MessageReceived(BMessage* message)
}
_SyncPanels(fSavePanel, fOpenPanel);
} else {
printf("configure file panel\n");
// configure the file panel
const char* saveText = NULL;
FileSaver* saver = dynamic_cast<FileSaver*>(
fDocument->NativeSaver());
bool exportMode = message->what == MSG_EXPORT_AS
|| message->what == MSG_EXPORT;
if (exportMode) {
saver = dynamic_cast<FileSaver*>(
fDocument->ExportSaver());
}
if (saver)
if (saver != NULL)
saveText = saver->Ref()->name;
fSavePanel->SetExportMode(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;
}
fSavePanel->SetExportMode(isExportMode);
// fSavePanel->Refresh();
if (saveText)
if (saveText != NULL)
fSavePanel->SetSaveText(saveText);
fSavePanel->Show();
}
@@ -469,8 +471,7 @@ IconEditorApp::_Open(const entry_ref& ref, bool append)
// 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 @@ IconEditorApp::_CreateSaver(const entry_ref& ref, uint32 exportMode)
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;
+3 -1
View File
@@ -35,7 +35,9 @@ enum {
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,
+19 -5
View File
@@ -239,8 +239,14 @@ SavePanel::SetExportMode(int32 mode)
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);
@@ -413,9 +419,17 @@ SavePanel::_BuildMenu()
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);
+3 -1
View File
@@ -77,7 +77,9 @@ class SavePanel : public BFilePanel,
SaveItem* fRDefMI;
SaveItem* fSourceMI;
SaveItem* fSVGMI;
SaveItem* fBitmapMI;
SaveItem* fBitmap16MI;
SaveItem* fBitmap32MI;
SaveItem* fBitmap64MI;
SaveItem* fBitmapSetMI;
SaveItem* fIconAttrMI;
SaveItem* fIconMimeAttrMI;