00001
00002
00003
00004
00005
00006 #include <akntitle.h>
00007 #include <eikmenub.h>
00008 #include <aknnotewrappers.h>
00009 #include <txtrich.h>
00010 #include <f32file.h>
00011
00012
00013 #include <eikrted.h>
00014
00015
00016 #include "txtviewer.hrh"
00017 #include "txtviewerappview.h"
00018 #include "txtviewerappui.h"
00019 #include "txtviewerdoc.h"
00020 #include "../../UI/inc/txtu.h"
00021 #include <msvids.h>
00022
00023
00024
00025 #include <CentralRepository.h>
00026
00027 #include <txtviewer.rsg>
00028
00029 const TUid KUidTxtViever ={0xA00058BC};
00030 _LIT(KTextMTMMsgPath, "C:\\data\\TextMTMService\\");
00031
00032
00033 const TUid KUidTxtMtm = {0x10FFFFFF};
00034
00035
00036
00037
00038
00039
00040
00041 CTxtViewerAppUi::CTxtViewerAppUi()
00042 {
00043 }
00044
00045
00046 void CTxtViewerAppUi::ConstructL()
00047 {
00048 BaseConstructL(EAknEnableSkin);
00049 iAppView = CTxtViewerAppView::NewL( ClientRect() );
00050 AddToStackL( iAppView );
00051 Document()->SetView(iAppView);
00052 }
00053
00054
00055
00056 CTxtViewerAppUi::~CTxtViewerAppUi()
00057 {
00058
00059 if (iAppView)
00060 {
00061 RemoveFromStack(iAppView);
00062 delete iAppView;
00063
00064 }
00065 }
00066
00067
00068
00069
00070
00071 CTxtViewerDocument* CTxtViewerAppUi::Document() const
00072 {
00073 return static_cast<CTxtViewerDocument*>(CEikAppUi::Document());
00074 }
00075
00076
00077
00078
00079
00080
00081
00082 void CTxtViewerAppUi::DynInitMenuPaneL(
00083 TInt aMenuId,
00084 CEikMenuPane* aMenuPane )
00085 {
00086 switch ( aMenuId )
00087 {
00088 case R_TEXTMTMVIEW_MENU:
00089 {
00090 if ( !iAppView->OpenedForEditing() )
00091 {
00092 aMenuPane->SetItemDimmed( ETxtViewerSend, ETrue );
00093 aMenuPane->SetItemDimmed( ETxtViewerSaveToDrafts, ETrue );
00094
00095 }
00096 }
00097 }
00098 }
00099
00100
00101
00102
00103
00104 void CTxtViewerAppUi::HandleCommandL(TInt aCommand )
00105 {
00106
00107
00108 switch( aCommand )
00109 {
00110 case EEikCmdExit:
00111 case EAknSoftkeyExit:
00112 case EAknSoftkeyBack:
00113 Exit();
00114
00115 case ETxtViewerSend:
00116
00117 iAppView->SaveBodyL();
00118 SendL();
00119 Exit();
00120 break;
00121
00122 case ETxtViewerSaveToDrafts:
00123
00124 iAppView->SaveBodyL();
00125 SaveToDraftsL();
00126 Exit();
00127 break;
00128
00129
00130 default:
00131
00132 break;
00133 }
00134 }
00135
00136
00137
00138
00139
00140 TKeyResponse CTxtViewerAppUi::HandleKeyEventL(
00141 const TKeyEvent& ,
00142 TEventCode )
00143 {
00144 return EKeyWasConsumed;
00145 }
00146
00147 void CTxtViewerAppUi::SaveToDraftsL()
00148 {
00149 CTextMtmUi* iMtmUi = iAppView->UiMtm();
00150
00151 iMtmUi->BaseMtm().SwitchCurrentEntryL(Document()->Id());
00152
00153 TMsvEntry entry = iMtmUi->BaseMtm().Entry().Entry();
00154
00155
00156 entry.SetInPreparation(EFalse);
00157
00158 entry.SetVisible(ETrue);
00159
00160 entry.iServiceId = KMsvLocalServiceIndexEntryId;
00161
00162 CMsvEntry& msventry = iMtmUi->BaseMtm().Entry();
00163
00164 msventry.ChangeL(entry);
00165
00166
00167 }
00168
00169 void CTxtViewerAppUi::SendL()
00170 {
00171 CTextMtmUi* iMtmUi = iAppView->UiMtm();
00172
00173
00174
00175 CMsvEntrySelection* selection = new (ELeave) CMsvEntrySelection();
00176
00177 CleanupStack::PushL(selection);
00178
00179 TMsvEntry entry = iMtmUi->BaseMtm().Entry().Entry();
00180
00181
00182
00183 entry.SetInPreparation(EFalse);
00184
00185 entry.SetVisible(ETrue);
00186
00187 entry.iServiceId = KMsvLocalServiceIndexEntryId;
00188
00189 CMsvEntry& msventry = iMtmUi->BaseMtm().Entry();
00190
00191 msventry.SetEntryL(Document()->Id());
00192
00193 msventry.ChangeL(entry);
00194
00195 selection->AppendL(Document()->Id());
00196
00197 iMtmUi->BaseMtm().SwitchCurrentEntryL(KMsvSentEntryId);
00198
00199 CMsvOperationActiveSchedulerWait* wait=CMsvOperationActiveSchedulerWait::NewLC();
00200
00201 CMsvOperation* op = NULL;
00202
00203 op = iMtmUi->MoveToL(*selection, wait->iStatus);
00204
00205 CleanupStack::PushL(op);
00206
00207 wait->Start();
00208
00209 RFile file;
00210 RFs fs;
00211 fs.Connect();
00212 TBuf<256> filename;
00213 filename.Append(KTextMTMMsgPath);
00214 filename.Append(_L("message"));
00215 _LIT(KTimeFormat,"%H%T");
00216 TBuf <10> timeBuf;
00217 TTime myTime;
00218 myTime.HomeTime();
00219 myTime.FormatL(timeBuf, KTimeFormat);
00220 filename.Append(timeBuf);
00221 filename.Append(_L(".txt"));
00222
00223 if (file.Open(fs, filename,EFileWrite) == KErrNotFound)
00224 {
00225 file.Create(fs, filename,EFileWrite);
00226 }
00227 TInt pos;
00228 file.Seek(ESeekEnd, pos);
00229
00230 file.Close();
00231 fs.Close();
00232
00233 iAppView->ExportToFileL( filename );
00234
00235 CleanupStack::PopAndDestroy(3);
00236 }
00237
00238
00239
00240
00241
00242
00243
00244 void CTxtViewerAppUi::HandleStatusPaneSizeChange()
00245 {
00246 CAknAppUi::HandleStatusPaneSizeChange();
00247 iAppView->SetRect( ClientRect() );
00248 }