00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <gtk/gtk.h>
00036 #include <strings.h>
00037
00038 #include "FileManager.h"
00039 #include "ScribbleLog.h"
00040 #include "ScribbleUtils.h"
00041
00042 #include "ink_rw.h"
00043
00044
00045
00046 int fc_get_ink_dirname(char *sInkDir, int iSize,const char* sDataDir)
00047 {
00048 SB_FMPRINTF("__start__\n");
00049 memset(sInkDir,0,iSize);
00050 snprintf (sInkDir,iSize-1, "%sink",sDataDir);
00051 SB_FMPRINTF("__end__\ninkdir=%s\n", sInkDir);
00052 return 0;
00053 }
00054
00055
00056 int fc_get_ink_filename (char *inkFileName, int iSize,
00057 const PFileManager pFM,const PScribPage pScribPage)
00058 {
00059
00060 if( NULL==pScribPage) return -1;
00061
00062 memset(inkFileName,0,iSize);
00063 snprintf( inkFileName,iSize-1,
00064 "%sink/%s.ink",
00065 pFM->sDataDir,
00066 pScribPage->sPageName);
00067
00068 return 0;
00069 }
00070
00071 int fc_convertold2irx(PFileManager pFM)
00072 {
00073
00074 if( 0!=strcasecmp(pFM->manifest.sInkType,"notes") )
00075 {
00076 SB_ERRORPRINTF("error:unknow ink type!\n");
00077 return -1;
00078 }
00079
00080 PScribPage pCurrPage=pFM->manifest.pFirstScribPage;
00081 char sInkFileName[MAX_FILENAME];
00082
00083 while(pCurrPage)
00084 {
00085 fc_get_ink_filename(sInkFileName,MAX_FILENAME,pFM,pCurrPage);
00086 pCurrPage->pink=file_read_ink(sInkFileName);
00087 if( pCurrPage->pink== NULL)
00088 {
00089 SB_FMPRINTF("-- null in page \n%s\n",pCurrPage->sPageName);
00090 }else
00091 {
00092 SB_FMPRINTF("--load strokes=%d\nin [%s]",pCurrPage->pink->nStrokes,pCurrPage->sPageName);
00093 }
00094 pCurrPage=pCurrPage->pNextPage;
00095 }
00096 SB_FMPRINTF("-- saving the old ink folder");
00097
00098 int iRet=fm_saveAllPages(pFM);
00099 if( 0!= iRet)
00100 {
00101 SB_FMPRINTF("-- save pages error\n");
00102 return -1;
00103 }
00104
00105
00106 char sInkDir[MAX_PATHNAME];
00107 fc_get_ink_dirname(sInkDir,sizeof(sInkDir),pFM->sDataDir);
00108 SB_FMPRINTF("-- deleting folder [%s]", sInkDir);
00109 char* cmd = g_strdup_printf("rm -rf \"%s\"", sInkDir);
00110 system(cmd);
00111 g_free(cmd);
00112 return 0;
00113
00114 }
00115
00116
00117