Changeset 112 in tspsg-svn for trunk/docs/tspsg.tag


Ignore:
Timestamp:
Apr 28, 2010, 1:56:40 AM (15 years ago)
Author:
laleppa
Message:

Updated translations and regenerated documentation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/docs/tspsg.tag

    r100 r112  
    55    <title></title>
    66    <filename>index</filename>
     7    <docanchor file="index">m_s1</docanchor>
     8    <docanchor file="index">m_s2</docanchor>
     9    <docanchor file="index">m_s3</docanchor>
    710  </compound>
    811  <compound kind="file">
     
    8285    <member kind="define">
    8386      <type>#define</type>
     87      <name>DEF_SHOW_GRAPH</name>
     88      <anchorfile>defaults_8h.html</anchorfile>
     89      <anchor>aaa6a2cd72387081215575b4013ef8cbd</anchor>
     90      <arglist></arglist>
     91    </member>
     92    <member kind="define">
     93      <type>#define</type>
     94      <name>DEF_GRAPH_IMAGE_FORMAT</name>
     95      <anchorfile>defaults_8h.html</anchorfile>
     96      <anchor>aad71a2dd2d5413e2839be1c0cb3113c2</anchor>
     97      <arglist></arglist>
     98    </member>
     99    <member kind="define">
     100      <type>#define</type>
    84101      <name>DEF_SHOW_MATRIX</name>
    85102      <anchorfile>defaults_8h.html</anchorfile>
     
    124141    <member kind="define">
    125142      <type>#define</type>
    126       <name>DEF_FONT_COLOR</name>
    127       <anchorfile>defaults_8h.html</anchorfile>
    128       <anchor>a6bbeb8fbbb2c6ec31993ff56f6b695e3</anchor>
     143      <name>DEF_TEXT_COLOR</name>
     144      <anchorfile>defaults_8h.html</anchorfile>
     145      <anchor>a710f671e31437218c889b6b2f3c01210</anchor>
     146      <arglist></arglist>
     147    </member>
     148    <member kind="define">
     149      <type>#define</type>
     150      <name>DEF_SELECTED_COLOR</name>
     151      <anchorfile>defaults_8h.html</anchorfile>
     152      <anchor>ad17d752887636bbd53cf11d65f464b17</anchor>
     153      <arglist></arglist>
     154    </member>
     155    <member kind="define">
     156      <type>#define</type>
     157      <name>DEF_ALTERNATE_COLOR</name>
     158      <anchorfile>defaults_8h.html</anchorfile>
     159      <anchor>a442f2f1e773805a0ba8949f31fbf4ede</anchor>
    129160      <arglist></arglist>
    130161    </member>
     
    137168    <includes id="os_8h" name="os.h" local="yes" imported="no">os.h</includes>
    138169    <includes id="defaults_8h" name="defaults.h" local="yes" imported="no">defaults.h</includes>
     170    <includes id="tspsolver_8h" name="tspsolver.h" local="yes" imported="no">tspsolver.h</includes>
    139171    <includes id="qtwin_8h" name="qtwin.h" local="yes" imported="no">qtwin.h</includes>
    140172    <member kind="define">
     
    206238      <anchorfile>globals_8h.html</anchorfile>
    207239      <anchor>ab6d630d0a03e4e53fceb0567653ca629</anchor>
    208       <arglist></arglist>
    209     </member>
    210     <member kind="define">
    211       <type>#define</type>
    212       <name>INFINITY</name>
    213       <anchorfile>globals_8h.html</anchorfile>
    214       <anchor>a956e2723d559858d08644ac99146e910</anchor>
    215240      <arglist></arglist>
    216241    </member>
     
    243268    <includes id="globals_8h" name="globals.h" local="yes" imported="no">globals.h</includes>
    244269    <includes id="settingsdialog_8h" name="settingsdialog.h" local="yes" imported="no">settingsdialog.h</includes>
    245     <includes id="tspsolver_8h" name="tspsolver.h" local="yes" imported="no">tspsolver.h</includes>
    246270    <includes id="tspmodel_8h" name="tspmodel.h" local="yes" imported="no">tspmodel.h</includes>
    247271    <class kind="class">MainWindow</class>
     
    322346    <path>W:/Projects/Cpp/tspsg/tspsg/src/</path>
    323347    <filename>tspsolver_8h</filename>
    324     <includes id="globals_8h" name="globals.h" local="yes" imported="no">globals.h</includes>
    325     <includes id="tspmodel_8h" name="tspmodel.h" local="yes" imported="no">tspmodel.h</includes>
    326     <class kind="struct">SCandidate</class>
    327     <class kind="struct">SStep</class>
    328     <class kind="class">CTSPSolver</class>
     348    <class kind="struct">TSPSolver::SStep</class>
     349    <class kind="struct">TSPSolver::SStep::SCandidate</class>
     350    <class kind="class">TSPSolver::CTSPSolver</class>
     351    <namespace>TSPSolver</namespace>
     352    <member kind="define">
     353      <type>#define</type>
     354      <name>INFINITY</name>
     355      <anchorfile>tspsolver_8h.html</anchorfile>
     356      <anchor>a956e2723d559858d08644ac99146e910</anchor>
     357      <arglist></arglist>
     358    </member>
    329359    <member kind="typedef">
    330360      <type>QList&lt; QList&lt; double &gt; &gt;</type>
    331361      <name>TMatrix</name>
    332       <anchorfile>tspsolver_8h.html</anchorfile>
    333       <anchor>a3addcca59ef59d0b3892b3670f808965</anchor>
     362      <anchorfile>namespace_t_s_p_solver.html</anchorfile>
     363      <anchor>a54acd6743f0aa52d3022436d38a78f8c</anchor>
    334364      <arglist></arglist>
    335365    </member>
     
    395425      <arglist></arglist>
    396426    </member>
     427  </compound>
     428  <compound kind="page">
     429    <name>changelog</name>
     430    <title>TSPSG ChangeLog</title>
     431    <filename>changelog</filename>
     432    <docanchor file="changelog">cl_b100_i</docanchor>
     433    <docanchor file="changelog">cl_b100_w</docanchor>
     434    <docanchor file="changelog">cl_toc</docanchor>
     435    <docanchor file="changelog">cl_b42_f</docanchor>
     436    <docanchor file="changelog">cl_b100</docanchor>
     437    <docanchor file="changelog">cl_b42</docanchor>
     438    <docanchor file="changelog">cl_b100_b</docanchor>
     439    <docanchor file="changelog">cl_b100_c</docanchor>
     440  </compound>
     441  <compound kind="page">
     442    <name>install</name>
     443    <title>TSPSG Installation Guide</title>
     444    <filename>install</filename>
     445    <docanchor file="install">cr1</docanchor>
     446    <docanchor file="install">i_s61</docanchor>
     447    <docanchor file="install">cr2</docanchor>
     448    <docanchor file="install">cr3</docanchor>
     449    <docanchor file="install">r1</docanchor>
     450    <docanchor file="install">cr4</docanchor>
     451    <docanchor file="install">i_s41</docanchor>
     452    <docanchor file="install">r2</docanchor>
     453    <docanchor file="install">i_s42</docanchor>
     454    <docanchor file="install">r3</docanchor>
     455    <docanchor file="install">i_s43</docanchor>
     456    <docanchor file="install">r4</docanchor>
     457    <docanchor file="install">i_s44</docanchor>
     458    <docanchor file="install">i_s45</docanchor>
     459    <docanchor file="install">i_s46</docanchor>
     460    <docanchor file="install">i_s1</docanchor>
     461    <docanchor file="install">i_s431</docanchor>
     462    <docanchor file="install">i_s2</docanchor>
     463    <docanchor file="install">i_s432</docanchor>
     464    <docanchor file="install">i_s3</docanchor>
     465    <docanchor file="install">i_s4</docanchor>
     466    <docanchor file="install">i_toc</docanchor>
     467    <docanchor file="install">i_s5</docanchor>
     468    <docanchor file="install">i_s6</docanchor>
     469    <docanchor file="install">i_s7</docanchor>
     470    <docanchor file="install">i_s8</docanchor>
     471  </compound>
     472  <compound kind="page">
     473    <name>license</name>
     474    <title>GNU General Public License</title>
     475    <filename>license</filename>
    397476  </compound>
    398477  <compound kind="class">
     
    497576      <anchor>aff717cb92ce6426033e85716644b9cef</anchor>
    498577      <arglist>(int n)</arglist>
    499     </member>
    500   </compound>
    501   <compound kind="class">
    502     <name>CTSPSolver</name>
    503     <filename>class_c_t_s_p_solver.html</filename>
    504     <base>QObject</base>
    505     <member kind="slot">
    506       <type>void</type>
    507       <name>cancel</name>
    508       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    509       <anchor>a996ac169e8ed087170bd8610fa4aa715</anchor>
    510       <arglist>()</arglist>
    511     </member>
    512     <member kind="signal">
    513       <type>void</type>
    514       <name>routePartFound</name>
    515       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    516       <anchor>ae12895fa529a965b57204e355b9012d7</anchor>
    517       <arglist>(int n)</arglist>
    518     </member>
    519     <member kind="function">
    520       <type></type>
    521       <name>CTSPSolver</name>
    522       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    523       <anchor>a4a519caa89db1683693759a92a65319c</anchor>
    524       <arglist>(QObject *parent=NULL)</arglist>
    525     </member>
    526     <member kind="function">
    527       <type>void</type>
    528       <name>cleanup</name>
    529       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    530       <anchor>acf86422c1b8ff8e5b9bc88e09c57c48b</anchor>
    531       <arglist>(bool processEvents=false)</arglist>
    532     </member>
    533     <member kind="function">
    534       <type>QString</type>
    535       <name>getSortedPath</name>
    536       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    537       <anchor>a57556c971a25e3556c4aa3cc1fd2d3d0</anchor>
    538       <arglist>() const </arglist>
    539     </member>
    540     <member kind="function">
    541       <type>bool</type>
    542       <name>isOptimal</name>
    543       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    544       <anchor>a28d546e840cf53c639b45c0f26419f7a</anchor>
    545       <arglist>() const </arglist>
    546     </member>
    547     <member kind="function">
    548       <type>SStep *</type>
    549       <name>solve</name>
    550       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    551       <anchor>a0f0f0aa60d05c97f3b0e867a381de558</anchor>
    552       <arglist>(int numCities, const TMatrix &amp;task)</arglist>
    553     </member>
    554     <member kind="function">
    555       <type>bool</type>
    556       <name>wasCanceled</name>
    557       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    558       <anchor>a80cff5d533711ab1929de1fdf09495b7</anchor>
    559       <arglist>() const </arglist>
    560     </member>
    561     <member kind="function" static="yes">
    562       <type>static QString</type>
    563       <name>getVersionId</name>
    564       <anchorfile>class_c_t_s_p_solver.html</anchorfile>
    565       <anchor>a677a878c4c8a06316a5d8d5a4fc8ab65</anchor>
    566       <arglist>()</arglist>
    567578    </member>
    568579  </compound>
     
    611622    </member>
    612623  </compound>
    613   <compound kind="struct">
    614     <name>SCandidate</name>
    615     <filename>struct_s_candidate.html</filename>
    616     <member kind="function">
    617       <type></type>
    618       <name>SCandidate</name>
    619       <anchorfile>struct_s_candidate.html</anchorfile>
    620       <anchor>ad7ac35a48148fcc51614079714c03e6f</anchor>
    621       <arglist>()</arglist>
    622     </member>
    623     <member kind="function">
    624       <type>bool</type>
    625       <name>operator==</name>
    626       <anchorfile>struct_s_candidate.html</anchorfile>
    627       <anchor>a9e4f4f1861131ed23b5576f9cd8d4c68</anchor>
    628       <arglist>(const SCandidate &amp;cand) const </arglist>
    629     </member>
    630     <member kind="variable">
    631       <type>int</type>
    632       <name>nRow</name>
    633       <anchorfile>struct_s_candidate.html</anchorfile>
    634       <anchor>aebab56506cadaa3c7d0e57037925cea5</anchor>
    635       <arglist></arglist>
    636     </member>
    637     <member kind="variable">
    638       <type>int</type>
    639       <name>nCol</name>
    640       <anchorfile>struct_s_candidate.html</anchorfile>
    641       <anchor>a95a822e8bd7f4709ff24a7ba79f9f338</anchor>
    642       <arglist></arglist>
    643     </member>
    644   </compound>
    645624  <compound kind="class">
    646625    <name>SettingsDialog</name>
     
    676655    </member>
    677656  </compound>
     657  <compound kind="namespace">
     658    <name>TSPSolver</name>
     659    <filename>namespace_t_s_p_solver.html</filename>
     660    <class kind="struct">TSPSolver::SStep</class>
     661    <class kind="class">TSPSolver::CTSPSolver</class>
     662    <member kind="typedef">
     663      <type>QList&lt; QList&lt; double &gt; &gt;</type>
     664      <name>TMatrix</name>
     665      <anchorfile>namespace_t_s_p_solver.html</anchorfile>
     666      <anchor>a54acd6743f0aa52d3022436d38a78f8c</anchor>
     667      <arglist></arglist>
     668    </member>
     669  </compound>
    678670  <compound kind="struct">
    679     <name>SStep</name>
    680     <filename>struct_s_step.html</filename>
     671    <name>TSPSolver::SStep</name>
     672    <filename>struct_t_s_p_solver_1_1_s_step.html</filename>
     673    <class kind="struct">TSPSolver::SStep::SCandidate</class>
     674    <member kind="enumeration">
     675      <name>NextStep</name>
     676      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     677      <anchor>af1a915528229317a309dfba9991fcd86</anchor>
     678      <arglist></arglist>
     679    </member>
     680    <member kind="enumvalue">
     681      <name>NoNextStep</name>
     682      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     683      <anchor>af1a915528229317a309dfba9991fcd86a3b8ba538613f8e35ff43828c6522c354</anchor>
     684      <arglist></arglist>
     685    </member>
     686    <member kind="enumvalue">
     687      <name>LeftBranch</name>
     688      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     689      <anchor>af1a915528229317a309dfba9991fcd86a077009b17a9710f3cf1a72803aa05243</anchor>
     690      <arglist></arglist>
     691    </member>
     692    <member kind="enumvalue">
     693      <name>RightBranch</name>
     694      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     695      <anchor>af1a915528229317a309dfba9991fcd86aa09cf2c0a12d3097b67884e9c45e1818</anchor>
     696      <arglist></arglist>
     697    </member>
    681698    <member kind="function">
    682699      <type></type>
    683700      <name>SStep</name>
    684       <anchorfile>struct_s_step.html</anchorfile>
    685       <anchor>a450adac026150c0a49967a20ce46e51e</anchor>
     701      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     702      <anchor>ae1d7209d6effb9fcfa28aafeac360c31</anchor>
    686703      <arglist>()</arglist>
    687704    </member>
     
    689706      <type>TMatrix</type>
    690707      <name>matrix</name>
    691       <anchorfile>struct_s_step.html</anchorfile>
    692       <anchor>a0353eb66f83d46f88fb47cc2d1a923dd</anchor>
     708      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     709      <anchor>ae2ae1106147f4cd4a1e7a15c2bdf9cdc</anchor>
    693710      <arglist></arglist>
    694711    </member>
     
    696713      <type>double</type>
    697714      <name>price</name>
    698       <anchorfile>struct_s_step.html</anchorfile>
    699       <anchor>a0355ec75846222996de07108a7c2e9c8</anchor>
     715      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     716      <anchor>a881c1503127ad2426194700491ea4026</anchor>
    700717      <arglist></arglist>
    701718    </member>
     
    703720      <type>SCandidate</type>
    704721      <name>candidate</name>
    705       <anchorfile>struct_s_step.html</anchorfile>
    706       <anchor>aeb798262cbff5ddd819a7056f8d21f21</anchor>
     722      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     723      <anchor>af569aef4d00d3e33f39d8f251138860e</anchor>
    707724      <arglist></arglist>
    708725    </member>
     
    710727      <type>QList&lt; SCandidate &gt;</type>
    711728      <name>alts</name>
    712       <anchorfile>struct_s_step.html</anchorfile>
    713       <anchor>a02196d3433e2deed89ab540b875cd527</anchor>
     729      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     730      <anchor>af95b7f421e7373e32548c64c358438d7</anchor>
    714731      <arglist></arglist>
    715732    </member>
     
    717734      <type>SStep *</type>
    718735      <name>pNode</name>
    719       <anchorfile>struct_s_step.html</anchorfile>
    720       <anchor>a0fcce90c9c1c60f00b5a703b117b5e85</anchor>
     736      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     737      <anchor>a4689e211e6a03f4b255243fde93ac54e</anchor>
    721738      <arglist></arglist>
    722739    </member>
     
    724741      <type>SStep *</type>
    725742      <name>plNode</name>
    726       <anchorfile>struct_s_step.html</anchorfile>
    727       <anchor>a8776e917cd02f86a57e103c025f5530c</anchor>
     743      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     744      <anchor>a3d4642f69b5eb7531697112341d31fd9</anchor>
    728745      <arglist></arglist>
    729746    </member>
     
    731748      <type>SStep *</type>
    732749      <name>prNode</name>
    733       <anchorfile>struct_s_step.html</anchorfile>
    734       <anchor>a51b304fcfc71508203d2becefcae5d31</anchor>
    735       <arglist></arglist>
     750      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     751      <anchor>a44db7deaa9dbb69eafdf5fc7efd2296b</anchor>
     752      <arglist></arglist>
     753    </member>
     754    <member kind="variable">
     755      <type>NextStep</type>
     756      <name>next</name>
     757      <anchorfile>struct_t_s_p_solver_1_1_s_step.html</anchorfile>
     758      <anchor>a8db8f6149eb89754aeefd35348292375</anchor>
     759      <arglist></arglist>
     760    </member>
     761  </compound>
     762  <compound kind="struct">
     763    <name>TSPSolver::SStep::SCandidate</name>
     764    <filename>struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html</filename>
     765    <member kind="function">
     766      <type></type>
     767      <name>SCandidate</name>
     768      <anchorfile>struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html</anchorfile>
     769      <anchor>ad1f84242c537c8c824c5383cec63c233</anchor>
     770      <arglist>()</arglist>
     771    </member>
     772    <member kind="function">
     773      <type>bool</type>
     774      <name>operator==</name>
     775      <anchorfile>struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html</anchorfile>
     776      <anchor>a4ada1cd8006cf3b50d4a8e912965f0bc</anchor>
     777      <arglist>(const SCandidate &amp;cand) const </arglist>
     778    </member>
     779    <member kind="variable">
     780      <type>int</type>
     781      <name>nRow</name>
     782      <anchorfile>struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html</anchorfile>
     783      <anchor>ae8336e07f26a5b51439c6c7ac3c15800</anchor>
     784      <arglist></arglist>
     785    </member>
     786    <member kind="variable">
     787      <type>int</type>
     788      <name>nCol</name>
     789      <anchorfile>struct_t_s_p_solver_1_1_s_step_1_1_s_candidate.html</anchorfile>
     790      <anchor>af6a9d9a2df92c1a56a7156ef7b9f6a27</anchor>
     791      <arglist></arglist>
     792    </member>
     793  </compound>
     794  <compound kind="class">
     795    <name>TSPSolver::CTSPSolver</name>
     796    <filename>class_t_s_p_solver_1_1_c_t_s_p_solver.html</filename>
     797    <base>QObject</base>
     798    <member kind="slot">
     799      <type>void</type>
     800      <name>cancel</name>
     801      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     802      <anchor>a46a3da58d4bb9431bea2c915ceaf1eea</anchor>
     803      <arglist>()</arglist>
     804    </member>
     805    <member kind="signal">
     806      <type>void</type>
     807      <name>routePartFound</name>
     808      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     809      <anchor>a5e02867f053089a3e096f6baa70499a2</anchor>
     810      <arglist>(int n)</arglist>
     811    </member>
     812    <member kind="function">
     813      <type></type>
     814      <name>CTSPSolver</name>
     815      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     816      <anchor>a71bebe073ed5149a4558a779410a2e6b</anchor>
     817      <arglist>(QObject *parent=NULL)</arglist>
     818    </member>
     819    <member kind="function">
     820      <type>void</type>
     821      <name>cleanup</name>
     822      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     823      <anchor>a3ef198959f1b4c32b84fbd5222f8b796</anchor>
     824      <arglist>(bool processEvents=false)</arglist>
     825    </member>
     826    <member kind="function">
     827      <type>QString</type>
     828      <name>getSortedPath</name>
     829      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     830      <anchor>a8897c0737ef2451ae606c38113477521</anchor>
     831      <arglist>(const QString &amp;city, const QString &amp;separator=&quot; -&gt; &quot;) const </arglist>
     832    </member>
     833    <member kind="function">
     834      <type>int</type>
     835      <name>getTotalSteps</name>
     836      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     837      <anchor>a721973cc992b62750aae6fd3ab65773d</anchor>
     838      <arglist>() const </arglist>
     839    </member>
     840    <member kind="function">
     841      <type>bool</type>
     842      <name>isOptimal</name>
     843      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     844      <anchor>a2b82ac68b981c47a3261f4e4e9ecd2bd</anchor>
     845      <arglist>() const </arglist>
     846    </member>
     847    <member kind="function">
     848      <type>SStep *</type>
     849      <name>solve</name>
     850      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     851      <anchor>ab8a5a387deebffd898577dba31a95099</anchor>
     852      <arglist>(int numCities, const TMatrix &amp;task)</arglist>
     853    </member>
     854    <member kind="function">
     855      <type>bool</type>
     856      <name>wasCanceled</name>
     857      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     858      <anchor>a6cce9079d60735f92037c98d6d361a82</anchor>
     859      <arglist>() const </arglist>
     860    </member>
     861    <member kind="function" static="yes">
     862      <type>static QString</type>
     863      <name>getVersionId</name>
     864      <anchorfile>class_t_s_p_solver_1_1_c_t_s_p_solver.html</anchorfile>
     865      <anchor>a71d04cbead3508cdff606a5ccc79e59e</anchor>
     866      <arglist>()</arglist>
    736867    </member>
    737868  </compound>
Note: See TracChangeset for help on using the changeset viewer.