@@ -49,7 +49,7 @@ class CWebDiffWindow : public IWebDiffWindow
4949 m_listeners.push_back (handler);
5050 }
5151
52- void SetUserDataFolderType (UserDataFolderType userDataFolderType, bool perPane)
52+ void SetUserDataFolderType (UserdataFolderType userDataFolderType, bool perPane)
5353 {
5454 m_userDataFolderType = userDataFolderType;
5555 m_bUserDataFolderPerPane = perPane;
@@ -223,27 +223,27 @@ class CWebDiffWindow : public IWebDiffWindow
223223 return hr;
224224 }
225225
226- HRESULT SaveScreenshot (int pane, const wchar_t * filename, bool fullSize , IWebDiffCallback* callback) override
226+ HRESULT SaveFile (int pane, FormatType kind, const wchar_t * filename, IWebDiffCallback* callback) override
227227 {
228228 if (pane < 0 || pane >= m_nPanes)
229229 return false ;
230- return m_webWindow[pane].SaveScreenshot (filename, fullSize , callback);
230+ return m_webWindow[pane].SaveFile (filename, kind , callback);
231231 }
232232
233- HRESULT SaveScreenshots ( const wchar_t * filenames[], bool fullSize , IWebDiffCallback* callback)
233+ HRESULT SaveFiles (FormatType kind, const wchar_t * filenames[], IWebDiffCallback* callback)
234234 {
235235 std::vector<std::wstring> sfilenames;
236236 for (int pane = 0 ; pane < m_nPanes; ++pane)
237237 sfilenames.push_back (filenames[pane]);
238238 ComPtr<IWebDiffCallback> callback2 (callback);
239- HRESULT hr = SaveScreenshot (0 , sfilenames[0 ].c_str (), fullSize ,
240- Callback<IWebDiffCallback>([this , sfilenames, fullSize , callback2](const WebDiffCallbackResult& result) -> HRESULT
239+ HRESULT hr = SaveFile (0 , kind, sfilenames[0 ].c_str (),
240+ Callback<IWebDiffCallback>([this , kind, sfilenames , callback2](const WebDiffCallbackResult& result) -> HRESULT
241241 {
242242 HRESULT hr = result.errorCode ;
243243 if (SUCCEEDED (hr))
244244 {
245- hr = SaveScreenshot (1 , sfilenames[1 ].c_str (), fullSize ,
246- Callback<IWebDiffCallback>([this , sfilenames, fullSize , callback2](const WebDiffCallbackResult& result) -> HRESULT
245+ hr = SaveFile (1 , kind, sfilenames[1 ].c_str (),
246+ Callback<IWebDiffCallback>([this , kind, sfilenames , callback2](const WebDiffCallbackResult& result) -> HRESULT
247247 {
248248 HRESULT hr = result.errorCode ;
249249 if (m_nPanes < 3 )
@@ -254,64 +254,7 @@ class CWebDiffWindow : public IWebDiffWindow
254254 }
255255 if (SUCCEEDED (hr))
256256 {
257- hr = SaveScreenshot (2 , sfilenames[2 ].c_str (), fullSize,
258- Callback<IWebDiffCallback>([this , sfilenames, fullSize, callback2](const WebDiffCallbackResult& result) -> HRESULT
259- {
260- if (callback2)
261- callback2->Invoke (result);
262- return S_OK;
263- }).Get ());
264- }
265- if (FAILED (hr))
266- {
267- if (callback2)
268- callback2->Invoke ({ hr, nullptr });
269- }
270- return S_OK;
271- }).Get ());
272- }
273- if (FAILED (hr))
274- {
275- if (callback2)
276- callback2->Invoke ({ hr, nullptr });
277- }
278- return S_OK;
279- }).Get ());
280- return hr;
281- }
282-
283- HRESULT SaveHTML (int pane, const wchar_t * filename, IWebDiffCallback* callback) override
284- {
285- if (pane < 0 || pane >= m_nPanes)
286- return false ;
287- return m_webWindow[pane].SaveHTML (filename, callback);
288- }
289-
290- HRESULT SaveHTMLs (const wchar_t * filenames[], IWebDiffCallback* callback)
291- {
292- std::vector<std::wstring> sfilenames;
293- for (int pane = 0 ; pane < m_nPanes; ++pane)
294- sfilenames.push_back (filenames[pane]);
295- ComPtr<IWebDiffCallback> callback2 (callback);
296- HRESULT hr = SaveHTML (0 , sfilenames[0 ].c_str (),
297- Callback<IWebDiffCallback>([this , sfilenames, callback2](const WebDiffCallbackResult& result) -> HRESULT
298- {
299- HRESULT hr = result.errorCode ;
300- if (SUCCEEDED (hr))
301- {
302- hr = SaveHTML (1 , sfilenames[1 ].c_str (),
303- Callback<IWebDiffCallback>([this , sfilenames, callback2](const WebDiffCallbackResult& result) -> HRESULT
304- {
305- HRESULT hr = result.errorCode ;
306- if (m_nPanes < 3 )
307- {
308- if (callback2)
309- callback2->Invoke (result);
310- return S_OK;
311- }
312- if (SUCCEEDED (hr))
313- {
314- hr = SaveHTML (2 , sfilenames[2 ].c_str (),
257+ hr = SaveFile (2 , kind, sfilenames[2 ].c_str (),
315258 Callback<IWebDiffCallback>([this , sfilenames, callback2](const WebDiffCallbackResult& result) -> HRESULT
316259 {
317260 if (callback2)
@@ -333,67 +276,11 @@ class CWebDiffWindow : public IWebDiffWindow
333276 callback2->Invoke ({ hr, nullptr });
334277 }
335278 return S_OK;
336- }).Get ());
337- return hr;
338- }
339-
340- HRESULT SaveResourceTree (int pane, const wchar_t * dirname, IWebDiffCallback* callback) override {
341- if (pane < 0 || pane >= m_nPanes)
342- return false ;
343- return m_webWindow[pane].SaveResourceTree (dirname, callback);
344- }
345-
346- HRESULT SaveResourceTrees (const wchar_t * dirnames[], IWebDiffCallback* callback)
347- {
348- std::vector<std::wstring> sdirnames;
349- for (int pane = 0 ; pane < m_nPanes; ++pane)
350- sdirnames.push_back (dirnames[pane]);
351- ComPtr<IWebDiffCallback> callback2 (callback);
352- HRESULT hr = SaveResourceTree (0 , sdirnames[0 ].c_str (),
353- Callback<IWebDiffCallback>([this , sdirnames, callback2](const WebDiffCallbackResult& result) -> HRESULT
354- {
355- HRESULT hr = result.errorCode ;
356- if (SUCCEEDED (hr))
357- {
358- hr = SaveResourceTree (1 , sdirnames[1 ].c_str (),
359- Callback<IWebDiffCallback>([this , sdirnames, callback2](const WebDiffCallbackResult& result) -> HRESULT
360- {
361- HRESULT hr = result.errorCode ;
362- if (m_nPanes < 3 )
363- {
364- if (callback2)
365- callback2->Invoke (result);
366- return S_OK;
367- }
368- if (SUCCEEDED (hr))
369- {
370- hr = SaveResourceTree (2 , sdirnames[2 ].c_str (),
371- Callback<IWebDiffCallback>([this , sdirnames, callback2](const WebDiffCallbackResult& result) -> HRESULT
372- {
373- if (callback2)
374- callback2->Invoke (result);
375- return S_OK;
376- }).Get ());
377- }
378- if (FAILED (hr))
379- {
380- if (callback2)
381- callback2->Invoke ({ hr, nullptr });
382- }
383- return S_OK;
384- }).Get ());
385- }
386- if (FAILED (hr))
387- {
388- if (callback2)
389- callback2->Invoke ({ hr, nullptr });
390- }
391- return S_OK;
392- }).Get ());
279+ }).Get ());
393280 return hr;
394281 }
395282
396- HRESULT ClearBrowsingData (int pane, BrowsingDataKinds datakinds)
283+ HRESULT ClearBrowsingData (int pane, BrowsingDataType datakinds)
397284 {
398285 int spane = pane, epane = pane;
399286 if (pane < 0 || pane >= m_nPanes)
@@ -699,6 +586,16 @@ class CWebDiffWindow : public IWebDiffWindow
699586 return execCommand (L" redo" );
700587 }
701588
589+ bool CanUndo () override
590+ {
591+ return true ;
592+ }
593+
594+ bool CanRedo () override
595+ {
596+ return true ;
597+ }
598+
702599private:
703600
704601 std::wstring getFromClipboard () const
@@ -778,7 +675,7 @@ class CWebDiffWindow : public IWebDiffWindow
778675 {
779676 std::wstring path;
780677
781- if (m_userDataFolderType == UserDataFolderType ::APPDATA)
678+ if (m_userDataFolderType == UserdataFolderType ::APPDATA)
782679 path = wil::ExpandEnvironmentStringsW (L" %APPDATA%\\ WinMerge\\ WinWebDiff\\ " ).get ();
783680 else
784681 path = wil::GetModuleFileNameW (GetModuleHandle (nullptr )).get () + std::wstring (L" .WebView2" );
@@ -1010,7 +907,7 @@ class CWebDiffWindow : public IWebDiffWindow
1010907 bool m_fitToWindow = true ;
1011908 double m_zoom = 1.0 ;
1012909 std::wstring m_userAgent = L" " ;
1013- UserDataFolderType m_userDataFolderType = UserDataFolderType ::APPDATA;
910+ UserdataFolderType m_userDataFolderType = UserdataFolderType ::APPDATA;
1014911 bool m_bUserDataFolderPerPane = true ;
1015912 std::vector<ComPtr<IWebDiffEventHandler>> m_listeners;
1016913 int m_diffCount = 0 ;
0 commit comments