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