Clone
ixen <ixen@copyhandler.com>
committed
on 25 Aug 10
Got rid of warnings on level 4 (win32 and x64), turned on option to treat warnings as errors.
LoggerImprovements + 5 more
src/ch/ClipboardMonitor.cpp (+9 -7)
137 137                                 else if (dwData & DROPEFFECT_MOVE)
138 138                                         pTask->SetStatus(ST_MOVE, ST_OPERATION_MASK);   // move
139 139
140 140                                 GlobalUnlock(handle);
141 141                         }
142 142                         else
143 143                                 pTask->SetStatus(ST_COPY, ST_OPERATION_MASK);   // default - copy
144 144
145 145                         EmptyClipboard();
146 146                         CloseClipboard();
147 147
148 148                         BUFFERSIZES bs;
149 149                         bs.m_bOnlyDefault=rConfig.get_bool(PP_BFUSEONLYDEFAULT);
150 150                         bs.m_uiDefaultSize=(UINT)rConfig.get_signed_num(PP_BFDEFAULT);
151 151                         bs.m_uiOneDiskSize=(UINT)rConfig.get_signed_num(PP_BFONEDISK);
152 152                         bs.m_uiTwoDisksSize=(UINT)rConfig.get_signed_num(PP_BFTWODISKS);
153 153                         bs.m_uiCDSize=(UINT)rConfig.get_signed_num(PP_BFCD);
154 154                         bs.m_uiLANSize=(UINT)rConfig.get_signed_num(PP_BFLAN);
155 155
156 156                         pTask->SetBufferSizes(&bs);
157                           pTask->SetPriority((int)rConfig.get_signed_num(PP_CMDEFAULTPRIORITY));
  157                         pTask->SetPriority(boost::numeric_cast<int>(rConfig.get_signed_num(PP_CMDEFAULTPRIORITY)));
158 158
159 159                         // get dest folder
160 160                         CFolderDialog dlg;
161 161
162 162                         const tchar_t* pszPath = NULL;
163 163                         dlg.m_bdData.cvShortcuts.clear(true);
164 164                         size_t stCount = rConfig.get_value_count(PP_SHORTCUTS);
165 165                         for(size_t stIndex = 0; stIndex < stCount; stIndex++)
166 166                         {
167 167                                 pszPath = rConfig.get_string(PP_SHORTCUTS, stIndex);
168 168                                 dlg.m_bdData.cvShortcuts.push_back(pszPath);
169 169                         }
170 170
171 171                         dlg.m_bdData.cvRecent.clear(true);
172 172                         stCount = rConfig.get_value_count(PP_RECENTPATHS);
173 173                         for(size_t stIndex = 0; stIndex < stCount; stIndex++)
174 174                         {
175 175                                 pszPath = rConfig.get_string(PP_RECENTPATHS, stIndex);
176 176                                 dlg.m_bdData.cvRecent.push_back(pszPath);
177 177                         }
178 178
179 179                         dlg.m_bdData.bExtended=rConfig.get_bool(PP_FDEXTENDEDVIEW);
180                           dlg.m_bdData.cx=(int)rConfig.get_signed_num(PP_FDWIDTH);
181                           dlg.m_bdData.cy=(int)rConfig.get_signed_num(PP_FDHEIGHT);
182                           dlg.m_bdData.iView=(int)rConfig.get_signed_num(PP_FDSHORTCUTLISTSTYLE);
  180                         dlg.m_bdData.cx=boost::numeric_cast<int>(rConfig.get_signed_num(PP_FDWIDTH));
  181                         dlg.m_bdData.cy=boost::numeric_cast<int>(rConfig.get_signed_num(PP_FDHEIGHT));
  182                         dlg.m_bdData.iView=boost::numeric_cast<int>(rConfig.get_signed_num(PP_FDSHORTCUTLISTSTYLE));
183 183                         dlg.m_bdData.bIgnoreDialogs=rConfig.get_bool(PP_FDIGNORESHELLDIALOGS);
184 184
185 185                         dlg.m_bdData.strInitialDir=(dlg.m_bdData.cvRecent.size() > 0) ? dlg.m_bdData.cvRecent.at(0) : _T("");
186 186
187 187                         int iStatus=pTask->GetStatus(ST_OPERATION_MASK);
188 188                         if (iStatus == ST_COPY)
189 189                                 dlg.m_bdData.strCaption=GetResManager().LoadString(IDS_TITLECOPY_STRING);
190 190                         else if (iStatus == ST_MOVE)
191 191                                 dlg.m_bdData.strCaption=GetResManager().LoadString(IDS_TITLEMOVE_STRING);
192 192                         else
193 193                                 dlg.m_bdData.strCaption=GetResManager().LoadString(IDS_TITLEUNKNOWNOPERATION_STRING);
194 194                         dlg.m_bdData.strText=GetResManager().LoadString(IDS_MAINBROWSETEXT_STRING);
195 195
196 196                         // set count of data to display
197 197                         size_t stClipboardSize = pTask->GetClipboardDataSize();
198 198                         size_t stEntries = (stClipboardSize > 3) ? 2 : stClipboardSize;
199 199                         for(size_t i = 0; i < stEntries; i++)
200 200                         {
201 201                                 dlg.m_bdData.strText += pTask->GetClipboardData(i)->GetPath() + _T("\n");
202 202                         }
 
221 221                                 rConfig.set_string(PP_RECENTPATHS, (*it), icpf::property::action_add);
222 222                         }
223 223
224 224                         rConfig.set_bool(PP_FDEXTENDEDVIEW, dlg.m_bdData.bExtended);
225 225                         rConfig.set_signed_num(PP_FDWIDTH, dlg.m_bdData.cx);
226 226                         rConfig.set_signed_num(PP_FDHEIGHT, dlg.m_bdData.cy);
227 227                         rConfig.set_signed_num(PP_FDSHORTCUTLISTSTYLE, dlg.m_bdData.iView);
228 228                         rConfig.set_bool(PP_FDIGNORESHELLDIALOGS, dlg.m_bdData.bIgnoreDialogs);
229 229                         rConfig.write(NULL);
230 230
231 231                         if ( iResult != IDOK )
232 232                                 delete pTask;
233 233                         else
234 234                         {
235 235                                 // get dest path
236 236                                 CString strData;
237 237                                 dlg.GetPath(strData);
238 238                                 pTask->SetDestPath(strData);
239 239
240 240                                 // get the relationship between src and dst paths
241                                   for (int i=0;i<pTask->GetClipboard()->GetSize();i++)
242                                           pTask->GetClipboard()->GetAt(i)->CalcBufferIndex(pTask->GetDestPath());
  241                                 for (size_t stIndex = 0; stIndex < pTask->GetClipboard()->GetSize(); ++stIndex)
  242             {
  243                pTask->GetClipboard()->GetAt(stIndex)->CalcBufferIndex(pTask->GetDestPath());
  244             }
243 245
244 246                                 // add task to a list of tasks and start
245 247                                 pData->m_pTasks->Add(pTask);
246 248
247 249                                 // write pTask to a file
248 250                                 pTask->Store(true);
249 251                                 pTask->Store(false);
250 252
251 253                                 // start processing
252 254                                 pTask->BeginProcessing();
253 255                         }
254 256                 }
255 257
256 258                 // do we need to check for turning computer off
257 259                 if (GetConfig().get_bool(PP_PSHUTDOWNAFTREFINISHED))
258 260                 {
259 261                         if (uiShutCounter == 0)
260 262                         {
261 263                                 if (lFinished != pData->m_pTasks->m_lFinished)
262 264                                 {
263 265                                         bEnd=true;
264 266                                         lFinished=pData->m_pTasks->m_lFinished;
265 267                                 }
266 268
267 269                                 if (bEnd && pData->m_pTasks->IsFinished())
268 270                                 {
269 271                                         TRACE("Shut down windows\n");
270 272                                         bool bShutdown=true;
271 273                                         if (GetConfig().get_signed_num(PP_PTIMEBEFORESHUTDOWN) != 0)
272 274                                         {
273 275                                                 CShutdownDlg dlg;
274                                                   dlg.m_iOverallTime=(int)GetConfig().get_signed_num(PP_PTIMEBEFORESHUTDOWN);
  276                                                 dlg.m_iOverallTime = boost::numeric_cast<int>(GetConfig().get_signed_num(PP_PTIMEBEFORESHUTDOWN));
275 277                                                 if (dlg.m_iOverallTime < 0)
276 278                                                         dlg.m_iOverallTime=-dlg.m_iOverallTime;
277 279                                                 bShutdown=(dlg.DoModal() != IDCANCEL);
278 280                                         }
279 281
280 282                                         GetConfig().set_bool(PP_PSHUTDOWNAFTREFINISHED, false);
281 283                                         GetConfig().write(NULL);
282 284                                         if (bShutdown)
283 285                                         {
284 286                                                 // adjust token privileges for NT
285 287                                                 HANDLE hToken=NULL;
286 288                                                 TOKEN_PRIVILEGES tp;
287 289                                                 if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)
288 290                                                         && LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tp.Privileges[0].Luid))
289 291                                                 {
290 292                                                         tp.PrivilegeCount=1;
291 293                                                         tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
292 294
293 295                                                         AdjustTokenPrivileges(hToken, FALSE, &tp, NULL, NULL, NULL);
294 296                                                 }