1 // TortoiseSVN - a Windows shell extension for easy version control
\r
3 // Copyright (C) 2007-2008 - TortoiseSVN
\r
5 // This program is free software; you can redistribute it and/or
\r
6 // modify it under the terms of the GNU General Public License
\r
7 // as published by the Free Software Foundation; either version 2
\r
8 // of the License, or (at your option) any later version.
\r
10 // This program is distributed in the hope that it will be useful,
\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
13 // GNU General Public License for more details.
\r
15 // You should have received a copy of the GNU General Public License
\r
16 // along with this program; if not, write to the Free Software Foundation,
\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
\r
20 #include "TortoiseProc.h"
\r
21 #include "LogCacheStatisticsDlg.h"
\r
22 #include "LogCacheStatistics.h"
\r
23 #include "RepositoryInfo.h"
\r
26 // CLogCacheStatisticsDlg-Dialogfeld
\r
28 IMPLEMENT_DYNAMIC(CLogCacheStatisticsDlg, CDialog)
\r
30 CLogCacheStatisticsDlg::CLogCacheStatisticsDlg
\r
31 ( const LogCache::CLogCacheStatisticsData& data, CWnd * pParentWnd)
\r
32 : CDialog(CLogCacheStatisticsDlg::IDD, pParentWnd)
\r
34 sizeRAM = ToString (data.ramSize / 1024);
\r
35 sizeDisk = ToString (data.fileSize / 1024);
\r
37 switch (data.connectionState)
\r
39 case LogCache::CRepositoryInfo::online:
\r
40 connectionState.LoadString (IDS_CONNECTIONSTATE_ONLINE);
\r
42 case LogCache::CRepositoryInfo::tempOffline:
\r
43 connectionState.LoadString (IDS_CONNECTIONSTATE_TEMPOFFLINE);
\r
45 case LogCache::CRepositoryInfo::offline:
\r
46 connectionState.LoadString (IDS_CONNECTIONSTATE_OFFLINE);
\r
50 lastRead = DateToString (data.lastReadAccess);
\r
51 lastWrite = DateToString (data.lastWriteAccess);
\r
52 lastHeadUpdate = DateToString (data.headTimeStamp);
\r
54 authors = ToString (data.authorCount);
\r
55 paths = ToString (data.pathCount);
\r
56 pathElements = ToString (data.pathElementCount);
\r
57 skipRanges = ToString (data.skipDeltaCount);
\r
58 wordTokens = ToString (data.wordTokenCount);
\r
59 pairTokens = ToString (data.pairTokenCount);
\r
60 textSize = ToString (data.textSize);
\r
61 uncompressedSize = ToString (data.uncompressedSize);
\r
63 maxRevision = ToString (data.maxRevision);
\r
64 revisionCount = ToString (data.revisionCount);
\r
66 changesTotal = ToString (data.changesCount);
\r
67 changedRevisions = ToString (data.changesRevisionCount);
\r
68 changesMissing = ToString (data.changesMissingRevisionCount);
\r
69 mergesTotal = ToString (data.mergeInfoCount);
\r
70 mergesRevisions = ToString (data.mergeInfoRevisionCount);
\r
71 mergesMissing = ToString (data.mergeInfoMissingRevisionCount);
\r
72 userRevpropsTotal = ToString (data.userRevPropCount);
\r
73 userRevpropsRevisions = ToString (data.userRevPropRevisionCount);
\r
74 userRevpropsMissing = ToString (data.userRevPropMissingRevisionCount);
\r
77 CLogCacheStatisticsDlg::~CLogCacheStatisticsDlg()
\r
81 void CLogCacheStatisticsDlg::DoDataExchange(CDataExchange* pDX)
\r
83 CDialog::DoDataExchange(pDX);
\r
84 DDX_Text(pDX, IDC_SIZERAM, sizeRAM);
\r
85 DDX_Text(pDX, IDC_SIZEDISK, sizeDisk);
\r
86 DDX_Text(pDX, IDC_CONNECTIONSTATE, connectionState);
\r
87 DDX_Text(pDX, IDC_LASTREAD, lastRead);
\r
88 DDX_Text(pDX, IDC_LASTWRITE, lastWrite);
\r
89 DDX_Text(pDX, IDC_LASTHEADUPDATE, lastHeadUpdate);
\r
90 DDX_Text(pDX, IDC_AUTHORS, authors);
\r
91 DDX_Text(pDX, IDC_PATHELEMENTS, pathElements);
\r
92 DDX_Text(pDX, IDC_PATHS, paths);
\r
93 DDX_Text(pDX, IDC_SKIPRANGES, skipRanges);
\r
94 DDX_Text(pDX, IDC_WORDTOKENS, wordTokens);
\r
95 DDX_Text(pDX, IDC_PAIRTOKENS, pairTokens);
\r
96 DDX_Text(pDX, IDC_TEXTSIZE, textSize);
\r
97 DDX_Text(pDX, IDC_UNCOMPRESSEDSIZE, uncompressedSize);
\r
98 DDX_Text(pDX, IDC_MAXREVISION, maxRevision);
\r
99 DDX_Text(pDX, IDC_REVISIONCOUNT, revisionCount);
\r
100 DDX_Text(pDX, IDC_CHANGESTOTAL, changesTotal);
\r
101 DDX_Text(pDX, IDC_CHANGEDREVISIONS, changedRevisions);
\r
102 DDX_Text(pDX, IDC_CHANGESMISSING, changesMissing);
\r
103 DDX_Text(pDX, IDC_MERGESTOTAL, mergesTotal);
\r
104 DDX_Text(pDX, IDC_MERGESREVISIONS, mergesRevisions);
\r
105 DDX_Text(pDX, IDC_MERGESMISSING, mergesMissing);
\r
106 DDX_Text(pDX, IDC_USERREVPROPSTOTAL, userRevpropsTotal);
\r
107 DDX_Text(pDX, IDC_USERREVPROPSREVISISONS, userRevpropsRevisions);
\r
108 DDX_Text(pDX, IDC_USERREVPROPSMISSING, userRevpropsMissing);
\r
112 BEGIN_MESSAGE_MAP(CLogCacheStatisticsDlg, CDialog)
\r
115 CString CLogCacheStatisticsDlg::DateToString (__time64_t time)
\r
117 // transform to 1-second base
\r
119 __time64_t systime = time / 1000000L;
\r
120 __time64_t now = CTime::GetCurrentTime().GetTime();
\r
122 // return time when younger than 1 day
\r
123 // return date otherwise
\r
125 return (now - systime >= 0) && (now - systime < 86400)
\r
126 ? SVN::formatTime (time)
\r
127 : SVN::formatDate (time);
\r
130 CString CLogCacheStatisticsDlg::ToString (__int64 value)
\r
133 _i64tot_s (value, buffer, sizeof (buffer) / sizeof (TCHAR), 10);
\r
136 BOOL CLogCacheStatisticsDlg::OnInitDialog()
\r
138 CDialog::OnInitDialog();
\r
140 m_tooltips.Create(this);
\r
142 m_tooltips.AddTool(IDC_SIZERAM, IDS_SETTINGS_LOGCACHESTATS_RAM);
\r
143 m_tooltips.AddTool(IDC_SIZEDISK, IDS_SETTINGS_LOGCACHESTATS_DISK);
\r
144 m_tooltips.AddTool(IDC_CONNECTIONSTATE, IDS_SETTINGS_LOGCACHESTATS_CONNECTION);
\r
145 m_tooltips.AddTool(IDC_LASTREAD, IDS_SETTINGS_LOGCACHESTATS_LASTREAD);
\r
146 m_tooltips.AddTool(IDC_LASTWRITE, IDS_SETTINGS_LOGCACHESTATS_LASTWRITE);
\r
147 m_tooltips.AddTool(IDC_LASTHEADUPDATE, IDS_SETTINGS_LOGCACHESTATS_LASTHEADUPDATE);
\r
148 m_tooltips.AddTool(IDC_AUTHORS, IDS_SETTINGS_LOGCACHESTATS_AUTHORS);
\r
149 m_tooltips.AddTool(IDC_PATHELEMENTS, IDS_SETTINGS_LOGCACHESTATS_PATHELEMENTS);
\r
150 m_tooltips.AddTool(IDC_PATHS, IDS_SETTINGS_LOGCACHESTATS_PATHS);
\r
151 m_tooltips.AddTool(IDC_SKIPRANGES, IDS_SETTINGS_LOGCACHESTATS_SKIPRANGES);
\r
152 m_tooltips.AddTool(IDC_WORDTOKENS, IDS_SETTINGS_LOGCACHESTATS_WORDTOKENS);
\r
153 m_tooltips.AddTool(IDC_PAIRTOKENS, IDS_SETTINGS_LOGCACHESTATS_PAIRTOKENS);
\r
154 m_tooltips.AddTool(IDC_TEXTSIZE, IDS_SETTINGS_LOGCACHESTATS_TEXTSIZE);
\r
155 m_tooltips.AddTool(IDC_UNCOMPRESSEDSIZE, IDS_SETTINGS_LOGCACHESTATS_UNCOMPRESSEDSIZE);
\r
156 m_tooltips.AddTool(IDC_MAXREVISION, IDS_SETTINGS_LOGCACHESTATS_MAXREVISION);
\r
157 m_tooltips.AddTool(IDC_REVISIONCOUNT, IDS_SETTINGS_LOGCACHESTATS_REVISIONCOUNT);
\r
158 m_tooltips.AddTool(IDC_CHANGESTOTAL, IDS_SETTINGS_LOGCACHESTATS_CHANGESTOTAL);
\r
159 m_tooltips.AddTool(IDC_CHANGEDREVISIONS, IDS_SETTINGS_LOGCACHESTATS_CHANGEDREVISIONS);
\r
160 m_tooltips.AddTool(IDC_CHANGESMISSING, IDS_SETTINGS_LOGCACHESTATS_CHANGESMISSING);
\r
161 m_tooltips.AddTool(IDC_MERGESTOTAL, IDS_SETTINGS_LOGCACHESTATS_MERGESTOTAL);
\r
162 m_tooltips.AddTool(IDC_MERGESREVISIONS, IDS_SETTINGS_LOGCACHESTATS_MERGESREVISIONS);
\r
163 m_tooltips.AddTool(IDC_MERGESMISSING, IDS_SETTINGS_LOGCACHESTATS_MERGESMISSING);
\r
164 m_tooltips.AddTool(IDC_USERREVPROPSTOTAL, IDS_SETTINGS_LOGCACHESTATS_USERREVPROPSTOTAL);
\r
165 m_tooltips.AddTool(IDC_USERREVPROPSREVISISONS, IDS_SETTINGS_LOGCACHESTATS_USERREVPROPSREVISIONS);
\r
166 m_tooltips.AddTool(IDC_USERREVPROPSMISSING, IDS_SETTINGS_LOGCACHESTATS_USERREVPROPSMISSING);
\r
172 BOOL CLogCacheStatisticsDlg::PreTranslateMessage(MSG* pMsg)
\r
174 m_tooltips.RelayEvent(pMsg);
\r
175 return CDialog::PreTranslateMessage(pMsg);
\r