From nscott@aconex.com Tue Oct 2 05:24:02 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 02 Oct 2007 05:24:09 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l92CNv8c031736 for ; Tue, 2 Oct 2007 05:24:02 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id AFE0E92C276 for ; Tue, 2 Oct 2007 22:23:57 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Tue, 2 Oct 2007 22:24:18 +1000 (EST) Message-ID: <51533.192.168.3.1.1191327858.squirrel@mail.aconex.com> Date: Tue, 2 Oct 2007 22:24:18 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1370 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 26 - dev/null |binary images/help-contents.png |binary images/help-contents.svg | 603 +++++++++++++++++++++++++++++++++++++++++++ images/tooliconview.svg | 419 ----------------------------- images/toollistview.svg | 412 ----------------------------- images/zoom-in.png |binary images/zoom-in.svg | 340 ++++++++++++++++++++++++ images/zoom-out.png |binary images/zoom-out.svg | 342 ++++++++++++++++++++++++ qa/settings-testcases | 23 + src/chart/GNUmakefile | 23 - src/chart/chart.cpp | 4 src/chart/kmchart.cpp | 143 +++++++++- src/chart/kmchart.h | 30 +- src/chart/kmchart.qrc | 5 src/chart/kmchart.ui | 213 ++++++++------- src/chart/main.cpp | 44 ++- src/chart/main.h | 12 src/chart/settingsdialog.cpp | 73 ++++- src/chart/settingsdialog.h | 25 + src/chart/settingsdialog.ui | 170 +++++++++++- src/chart/tab.cpp | 1 src/chart/tab.h | 4 src/chart/tabdialog.cpp | 12 25 files changed, 1907 insertions(+), 1017 deletions(-) commit 461db19a0fa6d3352bef7ba9c198fda1b492937a Author: Nathan Scott Date: Tue Oct 2 22:17:37 2007 +1000 Implement zooming in/out of the current Tab, by altering the visible points (which is already separated out from total sample history). Also, needed to (and did, yay!) find a way to revert the revert which made chart/logging intervals into integers instead of doubles as they really should be. Verified this works on MacOSX as well, which was where the original problem was (basically, using static functions has resolved this, instead of using static constants - still doen't make sense that g++ on Mac got confused by this). commit 9232ef2dbbf9ce4180b40648476779376100c0d1 Author: Nathan Scott Date: Tue Oct 2 20:54:11 2007 +1000 Move two features back from wishlist to the kmchart 1.0 list. These are the toolbox setting dialog (it was a slow AFL grand final...), and the ability to zoom in/out. Turns out neither is overly difficult. The ability to customize the toolbar is fairly handy (e.g. I like the toolbar on the right a fair bit, as it gives more vertical space - its not everyones cup of tea though), and zooming looks like it'll be easy since we have a visible/total samples split already. This change updates the README to reflect the above, and also implements Toolbar settings (both code and interactive QA). commit f7eb2885f41494f019b56a9391621d8d7535522e Author: Nathan Scott Date: Sat Sep 29 11:27:38 2007 +1000 User interface file updates for main kmchart window - rename Settings to Preferences for consistency across platforms, remove some unused icons, add a few new ones. From nscott@aconex.com Tue Oct 2 18:08:46 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 02 Oct 2007 18:08:52 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9318iFK012232 for ; Tue, 2 Oct 2007 18:08:45 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 31CCB92CC04 for ; Wed, 3 Oct 2007 11:05:15 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Wed, 03 Oct 2007 11:07:45 +1000 Message-Id: <1191373665.15908.228.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1371 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git qa/create-edit-chart-testcases | 1 src/chart/GNUmakefile | 2 src/chart/colorbutton.cpp | 46 ++++++++ src/chart/colorbutton.h | 43 +++++++ src/chart/kmchart.pro | 8 - src/chart/qcolorpicker.cpp | 8 - src/chart/settingsdialog.cpp | 224 ++++++----------------------------------- src/chart/settingsdialog.h | 82 +++++++++------ src/chart/settingsdialog.ui | 171 +++++++++++++++---------------- 9 files changed, 271 insertions(+), 314 deletions(-) commit 8b10d26f42e552132a86cd3d19747a17cc27f124 Author: Nathan Scott Date: Wed Oct 3 10:48:12 2007 +1000 Rework the color selection mechanism in the Settings dialog to use a model that will work on MacOSX as well, and which is similar to the qcolorpicker.h mechanism used during metric selection. commit 9b42221b8e673ae6e8f08722727e5bb09e12fad3 Author: Nathan Scott Date: Wed Oct 3 08:23:57 2007 +1000 drawFrame is documented as removed in QT4, so switch to more recent API. From markgw@sgi.com Wed Oct 3 21:13:30 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 03 Oct 2007 21:13:35 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l944DRpN008552 for ; Wed, 3 Oct 2007 21:13:29 -0700 Received: from [134.14.55.10] (dhcp10.melbourne.sgi.com [134.14.55.10]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA22063; Thu, 4 Oct 2007 14:13:22 +1000 Message-ID: <4704685C.8040209@sgi.com> Date: Thu, 04 Oct 2007 14:13:16 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 1.5.0.13 (Windows/20070809) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: kmchart updates References: <45762.192.168.3.1.1190887138.squirrel@mail.aconex.com> <46FB8BB3.9040408@sgi.com> <1190935880.15908.155.camel@edge.yarra.acx> In-Reply-To: <1190935880.15908.155.camel@edge.yarra.acx> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 1372 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: markgw@sgi.com Precedence: bulk X-list: pcp I upgraded my FC7 to qt4-4.3.1-3 and kmchart builds fine now, thanks -- Mark Nathan Scott wrote: > On Thu, 2007-09-27 at 20:53 +1000, Mark Goodwin wrote: >> Hi Nathan, >> > > Hey Mark, > >> I've seen a lots of git commits for kmchart lately, so I thought I'd give >> it a try. > > Yeah, I've got a shopping list of known issues that I'm working through > (see README) to get to a kmchart 1.0 release, where I'll make packages > available (rpms and MacOSX packages planned). > >> First, cloned from your kmchart git tree and tried to build kmchart but >> failed. Seems I need to set QMAKE in my env to /usr/lib/qt-3.3/bin/qmake >> and add /usr/lib/qt-3.3/bin to my PATH. Then, following the instructions >> in Docs/INSTALL: > > No, I switched from QT3 recently, QT4 is required (they are completely > different beasts, with little in the way of compatibility between the > two APIs). > >> ./Makepkgs verbose >> ... >> I haven't spent much time on this, perhaps obviously :) I'm running FC7 >> in a VM on >> my laptop, with qt and qt-dev installed. Do I need a newer version of QT? > > Yep. Go for QT4.2 at least - I believe (from Kens laptop) that Fedora > is up to QT4.3 now (they will have both QT4 and QT3 packages, since the > two are so different). I switched to QT4 relatively recently, in order > to get the Intel Mac support, better looking widgets on Linux (plus a > host of other little benefits, like clear code from QtDesigner). > > I also ended up creating a local QWT library and QMC library (based on > PMC) due to the plethora of build issues I had on my Mac (MacOSX has > this unusual "Framework" concept, which is "more than a shared lib", > and since Qt knows how to build these things, I took the local-copy > route. This has the advantage now that the only build and runtime > dependency is QT4 (and PCP, of course). > > cheers. > From nscott@aconex.com Wed Oct 3 22:02:02 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 03 Oct 2007 22:02:08 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9451xTD014255 for ; Wed, 3 Oct 2007 22:02:02 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 968C492D029 for ; Thu, 4 Oct 2007 15:01:57 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 4 Oct 2007 15:02:18 +1000 (EST) Message-ID: <40213.192.168.3.1.1191474138.squirrel@mail.aconex.com> Date: Thu, 4 Oct 2007 15:02:18 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1373 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/chart.cpp | 44 ++++++++++++++++++++++++++++++-------------- src/chart/chart.h | 3 +++ src/chart/kmchart.cpp | 16 ++++++++++++++++ src/chart/kmchart.h | 4 ++++ src/chart/main.cpp | 7 +------ src/chart/tab.cpp | 14 +++++++++----- 6 files changed, 63 insertions(+), 25 deletions(-) commit 4f812f6acc74491dc2b7845612f481719a974e48 Author: Nathan Scott Date: Thu Oct 4 14:57:39 2007 +1000 Bunch of work on correctly resizing the main window, resolving that really annoying problem where charts would overlap when initially created. We also shrink on delete now. Also moved the QWT setRawData call which updates the chart display into an overloaded replot routine, which helps with making changes to visible points take effect immediately. From nscott@aconex.com Thu Oct 4 01:10:15 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 04 Oct 2007 01:10:23 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l948ADW0012106 for ; Thu, 4 Oct 2007 01:10:15 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 3BF8792C48D for ; Thu, 4 Oct 2007 18:10:14 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 4 Oct 2007 18:10:35 +1000 (EST) Message-ID: <57787.192.168.3.1.1191485435.squirrel@mail.aconex.com> Date: Thu, 4 Oct 2007 18:10:35 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1374 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 1 qa/create-edit-chart-testcases | 3 - src/chart/chart.cpp | 97 +++++++++++++++++++---------------------- src/chart/chart.h | 8 +-- src/chart/chartdialog.cpp | 19 ++++---- src/chart/chartdialog.h | 1 src/chart/kmchart.cpp | 3 - src/chart/view.cpp | 2 8 files changed, 62 insertions(+), 72 deletions(-) commit b4b4370267f220808bde74f1a2205a348d44f298 Author: Nathan Scott Date: Thu Oct 4 18:08:21 2007 +1000 Fix the problem where new charts were always created as Area Plots. In the process resolve the issue where QPen was set independenly to QBrush for individual plots, which meant they could not be properly setup to seaparate colours. We now set black outlines on some plot styles (QPen width might be worth experimenting with further). From nscott@aconex.com Thu Oct 4 13:22:23 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 04 Oct 2007 13:22:29 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l94KMLRF001628 for ; Thu, 4 Oct 2007 13:22:23 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 7BAD592C39D for ; Fri, 5 Oct 2007 06:22:22 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Fri, 5 Oct 2007 06:22:43 +1000 (EST) Message-ID: <60666.192.168.3.1.1191529363.squirrel@mail.aconex.com> Date: Fri, 5 Oct 2007 06:22:43 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1375 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git qa/create-save-view-testcases | 2 -- src/chart/kmchart.cpp | 12 ++++++------ src/chart/openviewdialog.cpp | 2 +- src/chart/openviewdialog.ui | 8 ++++---- src/chart/saveviewdialog.cpp | 4 ++-- src/chart/source.cpp | 22 +++++++++++++++++++--- 6 files changed, 32 insertions(+), 18 deletions(-) commit 9bf32ae5518863935b1eec8816312e7d06b4bf74 Author: Nathan Scott Date: Fri Oct 5 06:20:27 2007 +1000 Fix a problem with zooming taking vsible points beyond sample history size. commit 43099ea68ca167421baf167cd6dd64c943fbc072 Author: Nathan Scott Date: Fri Oct 5 05:33:01 2007 +1000 Update QA test to note fixed case. commit 40785bd03c9c6ccd6ee2b5f9f427fcc7bc4ea805 Author: Nathan Scott Date: Fri Oct 5 05:18:59 2007 +1000 Fix user view toolbutton missing directory code (need full path mkdir). commit 07f145a7489be1192e4005a5b61ce8fa1fbee03b Author: Nathan Scott Date: Fri Oct 5 04:59:04 2007 +1000 Make host icon on openview dialogs pushbutton appropriately size for MacOSX. commit c3048db68ed828d261e126db1a9511fd2e8bfd05 Author: Nathan Scott Date: Fri Oct 5 04:54:33 2007 +1000 Ensure newly requested context is always setup as the current context. From nscott@aconex.com Thu Oct 4 22:46:15 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 04 Oct 2007 22:46:21 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l955kDxC024327 for ; Thu, 4 Oct 2007 22:46:15 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 2B2DA92C2B9 for ; Fri, 5 Oct 2007 15:46:13 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Fri, 05 Oct 2007 15:48:48 +1000 Message-Id: <1191563328.15908.263.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1376 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git qa/create-save-view-testcases | 4 src/chart/chart.cpp | 3 src/chart/chartdialog.cpp | 24 ++-- src/chart/main.cpp | 6 - src/chart/namespace.cpp | 11 + src/chart/openviewdialog.cpp | 38 +++--- src/chart/source.cpp | 246 +++++++++++++++++++++--------------------- src/chart/source.h | 46 ++----- src/chart/tab.cpp | 2 src/chart/view.cpp | 2 src/libqmc/qmc_source.cpp | 3 src/libqmc/qmc_source.h | 3 12 files changed, 198 insertions(+), 190 deletions(-) commit 9813d41bf1ba2e3e01768a3fc9962e761c696473 Author: Nathan Scott Date: Fri Oct 5 15:36:04 2007 +1000 Rework many details of the kmchart Source class, fixing code TODOs and also the remaining open-view-QA issue with source combo boxes. At some point this class should be merged with QmcSource/Group, I think, there seems to be some duplication of effort there and its obfuscating the code alot (e.g. Source keeps its own list of QmcContexts, and QMC has lists of contexts in QmcGroup, and back pointers in QmcSource). From nscott@aconex.com Sun Oct 7 15:44:23 2007 Received: with ECARTIS (v1.0.0; list pcp); Sun, 07 Oct 2007 15:44:29 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l97MiLXP029730 for ; Sun, 7 Oct 2007 15:44:22 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 647E492C36F for ; Mon, 8 Oct 2007 08:44:18 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 8 Oct 2007 08:44:40 +1000 (EST) Message-ID: <39567.192.168.3.1.1191797080.squirrel@mail.aconex.com> Date: Mon, 8 Oct 2007 08:44:40 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1377 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/source.cpp | 477 ------------------------------------------- src/chart/source.h | 101 --------- src/chart/GNUmakefile | 2 src/chart/chart.cpp | 16 - src/chart/chartdialog.cpp | 41 ++- src/chart/chartdialog.h | 7 src/chart/kmchart.cpp | 2 src/chart/kmchart.pro | 4 src/chart/main.cpp | 31 -- src/chart/main.h | 5 src/chart/namespace.cpp | 5 src/chart/openviewdialog.cpp | 118 +++++++++- src/chart/openviewdialog.h | 9 src/chart/openviewdialog.ui | 4 src/chart/source.cpp | 1 src/chart/source.h | 1 src/chart/tab.cpp | 6 src/chart/timecontrol.cpp | 6 src/chart/timecontrol.h | 2 src/chart/view.cpp | 16 - src/dumptext/kmdumptext.cpp | 19 - src/libqmc/qmc_group.cpp | 30 +- src/libqmc/qmc_group.h | 14 - src/libqmc/qmc_metric.cpp | 44 +-- src/libqmc/qmc_metric.h | 19 - 25 files changed, 252 insertions(+), 728 deletions(-) commit aa53ec27dc8295e8b9606e76fc5cec1d87a2fd9b Author: Nathan Scott Date: Mon Oct 8 08:40:32 2007 +1000 Change QMC to pass out the context from a group/metric as a real pointer rather than a c++ reference, as this is what we really need in kmchart. Rename which*() to context*() in the Group class, as it makes the code more readable and consistent. Fixes SIGBUS after New/Edit Chart dialogs have populated their tree views, as we were mismanaging our group/metric state via references rather than direct pointers (in particular group->context() was passing back a copy of the QmcContext rather than a pointer to it). commit b9c17e49a1f27b18013977a7d04ab71063c36387 Merge: 274ba58... 59dfaac... Author: Nathan Scott Date: Sun Oct 7 14:47:44 2007 +1000 Merge leaf:/source/git/kmchart commit 59dfaac271d67acc2ca353dd6fc29d4a00ec34b9 Author: Nathan Scott Date: Sun Oct 7 14:44:22 2007 +1000 This is a fairly major rework of the way we manage contexts in kmchart. It completely removes the need for source.{h,cpp} as we are now relying on all QmcContext data structure management being done within the metrics class. Turns out the global list of contexts, and current context pointers, that we maintained in the Source class in kmchart were duplicating pointers and lists that the metrics class was already maintaining. Output from diffstat on this change says it all: 18 files changed, 170 insertions(+), 345 deletions(-) So, this removes a bunch of code in kmchart, removes unneeded data structure indirection, and fixes a context management bug in the code that deals with selecting the new current context (the bug was evident when multiple hosts were added into the sourceComboBox, and then a chart was created with the second or third, or fourth - it would still use the initial host as the source of metrics). There was some code in source.cpp dealing with user interface updates (combo boxes, metric trees) - this has been moved to the source files dealing with all other aspects of those parts of the interface (where they really belonged anyway). There is one remaining issue with the new/edit chart dialog I still need to resolve due to this change, but lots is done and I need to do an initial checkpoint commit now so I can context switch temporarily. commit 65013865720e0814ca68093dbcdcefaa6475e9cc Author: Nathan Scott Date: Sun Oct 7 12:56:27 2007 +1000 Put kmchart config file in the default Qt location on all platforms, else (on Unix variants) they interfere with the User Views list as we get kmchart/Qt configs mixed up with kmchart Views in ~/.pcp/kmchart then. Also turn any additional arguments seen into whatever form of source (archive/host) has been requested so far on the command line (defaults to hosts). commit b7c4d19c29c8be4d8c37eaae648035513a972424 Author: Nathan Scott Date: Sun Oct 7 12:52:34 2007 +1000 Remove unused fetchGroup field from Source struct. commit da7b44400988dfcad8cd74f25b95fffef123e683 Author: Nathan Scott Date: Sun Oct 7 12:52:10 2007 +1000 Fix a typo in a debug statement. From nscott@aconex.com Sun Oct 7 19:17:25 2007 Received: with ECARTIS (v1.0.0; list pcp); Sun, 07 Oct 2007 19:17:31 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l982HNr1009371 for ; Sun, 7 Oct 2007 19:17:25 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 35AA392C4B2 for ; Mon, 8 Oct 2007 12:17:24 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 8 Oct 2007 12:17:45 +1000 (EST) Message-ID: <59668.192.168.3.1.1191809865.squirrel@mail.aconex.com> Date: Mon, 8 Oct 2007 12:17:45 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1378 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git qa/create-edit-chart-testcases | 15 ++++------ src/chart/chart.cpp | 13 +++++++-- src/chart/chart.h | 1 src/chart/chartdialog.cpp | 16 +++++++---- src/chart/namespace.cpp | 58 +++++++++++++++++++++++++++++++---------- src/chart/namespace.h | 4 ++ src/libqmc/qmc_source.cpp | 32 ++++++++++++++++++---- src/libqmc/qmc_source.h | 5 +++ 8 files changed, 107 insertions(+), 37 deletions(-) commit 0f86c19edfec69b5b5ea97b1e92cbe1fe8f199e2 Author: Nathan Scott Date: Mon Oct 8 12:15:01 2007 +1000 Resolve UI state issue in auto-scaling widgets enabled/disabled state. commit 29002c87365c952eea48df6f60b58ca5f1f29f5d Author: Nathan Scott Date: Mon Oct 8 11:48:34 2007 +1000 Fix a bug where metric tree names could be corrupted (some parts duplicated incorrectly, such that extra levels added to the tree). commit 5ad55c06acf8036a625ba9410d606094d2f638f1 Author: Nathan Scott Date: Mon Oct 8 11:28:00 2007 +1000 Fix bug in adding multiple instances to a chart, weren't comparing inst ID. commit 0796c07247fd32fec373273f57a5025842e50b55 Author: Nathan Scott Date: Mon Oct 8 10:22:38 2007 +1000 Resolve how to display archive hostname and host proxy name in the New/Edit Chart dialog trees - using tooltips, lots of room too, so we also provide archive start and end time, and timezone string. Update source class to provide archive start/end strings for this. From nscott@aconex.com Mon Oct 8 16:05:18 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 08 Oct 2007 16:05:23 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l98N5Fmb017350 for ; Mon, 8 Oct 2007 16:05:18 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 1012C92CE3D for ; Tue, 9 Oct 2007 09:05:15 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Tue, 09 Oct 2007 09:07:59 +1000 Message-Id: <1191884879.15908.277.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1379 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 113 +++++++++++++++++++++++++++-------- images/back_on.png |binary images/back_on.svg | 97 ++++++++---------------------- qa/create-edit-chart-testcases | 6 - src/chart/aboutdialog.cpp | 5 + src/chart/aboutdialog.ui | 10 +-- src/chart/chart.cpp | 15 ++-- src/chart/chart.h | 2 src/chart/chartdialog.cpp | 17 ++++- src/chart/namespace.h | 1 src/chart/tab.cpp | 129 +++++++++++++++++++++-------------------- src/chart/tab.h | 2 src/libqmc/qmc_metric.h | 6 + src/time/aboutdialog.cpp | 5 + src/time/aboutdialog.ui | 15 ++-- 15 files changed, 232 insertions(+), 191 deletions(-) commit 170f387241ed223915995fbeb4ee714fe30229a5 Author: Nathan Scott Date: Tue Oct 9 08:56:23 2007 +1000 Auto-update the version string in the About dialogs. commit daa4c68d292bbd4cc949c764874f89c87cfa8040 Author: Nathan Scott Date: Tue Oct 9 07:55:07 2007 +1000 Fix too-dark shading of play-backward icon in kmtime. commit d0a91b0f5510be16922951a9236c93b6a6504d0a Author: Nathan Scott Date: Tue Oct 9 07:43:57 2007 +1000 Add a flag to Chart::update() to tell whether we have data or not (due to live mode VCR stop/start). Drop dead code from adjustLiveWorldView and add some diagnostics. Add code to detect unexpectedly large steps and adjustLiveWorldView in this case as well (extends the fuzzy time position match logic a bit, and also makes that code more generous in its definition of fuzziness). commit d28117ebd9d1c117be5108f2eb637eee97a17e14 Author: Nathan Scott Date: Mon Oct 8 15:22:25 2007 +1000 Fix a code TODO note - setCurrent(chart) needs no return value. commit b8cba004ffb812d64dcdfc2f8019d73b0309e40a Author: Nathan Scott Date: Mon Oct 8 13:52:05 2007 +1000 Check that a metric is of a (numeric) type that can be plotted before adding it the list of metrics that will be added to a chart. Tighten the real() check in the metrics class to also discount other unwanted types (other than just string) - like nosupport, aggregate, aggregate static, and unknown. From nscott@aconex.com Mon Oct 8 21:23:50 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 08 Oct 2007 21:23:56 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l994NjTY011935 for ; Mon, 8 Oct 2007 21:23:49 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 61FF892C300; Tue, 9 Oct 2007 14:23:46 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Cc: Ken McDonell Content-Type: text/plain Organization: Aconex Date: Tue, 09 Oct 2007 14:26:31 +1000 Message-Id: <1191903991.15908.280.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1380 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/chart.cpp | 15 ++++++++++----- src/chart/namespace.cpp | 15 +++++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) commit 9c1491a75ed2185d78c274cc7aee74f955f41e18 Author: Nathan Scott Date: Tue Oct 9 14:24:43 2007 +1000 Fix two regressions Ken found - firstly, the metric type validity check added yesterday was operating on uninitialised memory when dealing with instances - fix by inheriting not just the context pointer, but also the pmDesc of the parent (and memset it to zero for non-root names). Secondly, tree loop controls were incorrect again for instances, and would attempt to create internal tree nodes at times that they shouldn't have. From kimbrr@sgi.com Mon Oct 8 22:19:51 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 08 Oct 2007 22:19:55 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l995Jk2N019725 for ; Mon, 8 Oct 2007 22:19:49 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA12371; Tue, 9 Oct 2007 15:19:46 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l995JjdD56663303; Tue, 9 Oct 2007 15:19:46 +1000 (AEST) Received: from localhost (kimbrr@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) with ESMTP id l995JhKX56624046; Tue, 9 Oct 2007 15:19:44 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: kimbrr owned process doing -bs Date: Tue, 9 Oct 2007 15:19:43 +1000 From: Michael Newton X-X-Sender: kimbrr@snort.melbourne.sgi.com To: pcp@oss.sgi.com cc: nscott@aconex.com Subject: [patch] waitpid on dying agents at reconfig (qa/296) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 1381 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: kimbrr@sgi.com Precedence: bulk X-list: pcp Nathan, can you review please? qa/296 fails with daemon PMDAs hanging round after a reconfigure (ie kill -HUP to pmcd). It appears that they need to be wait()ed upon. Prior to the addition of the condition || ap->ipcType == AGENT_DSO to HarvestAgents in agent.c this condition was masked by other cleanup. Previously, CleanupAgent did not waitpid() for AT_CONFIG. In addition, there is no reason to sleep every time round the waitpid() loop, and in many cases even once may be unnecessary =========================================================================== mgmt/pcp/src/pmcd/src/agent.c =========================================================================== --- a/mgmt/pcp/src/pmcd/src/agent.c 2007-10-09 15:17:17.000000000 +1000 +++ b/mgmt/pcp/src/pmcd/src/agent.c 2007-10-09 15:15:35.620705921 +1000 @@ -33,7 +33,7 @@ CleanupAgent(AgentInfo* aPtr, int why, int status) { extern int AgentDied; - int exit_status; + int exit_status = status; int reason = 0; if (aPtr->ipcType == AGENT_DSO) { @@ -68,50 +68,55 @@ __pmNotifyErr(LOG_INFO, "CleanupAgent ...\n"); fprintf(stderr, "Cleanup \"%s\" agent (dom %d):", aPtr->pmDomainLabel, aPtr->pmDomainId); - if (why == AT_CONFIG) { - fprintf(stderr, " unconfigured"); + if (why == AT_EXIT) { + /* waitpid has already been done */ + fprintf(stderr, " terminated"); + reason = (status << 8) | REASON_EXIT; } else { - if (why == AT_EXIT) { - fprintf(stderr, " terminated"); - exit_status = status; - reason = (status << 8) | REASON_EXIT; - } - else { + if (why == AT_CONFIG) { + fprintf(stderr, " unconfigured"); + } else { reason = REASON_PROTOCOL; fprintf(stderr, " protocol failure for fd=%d", status); exit_status = -1; - if (aPtr->status.isChild == 1) { - pid_t pid = -1; - pid_t done; - int wait_status; - if (aPtr->ipcType == AGENT_PIPE) - pid = aPtr->ipc.pipe.agentPid; - else if (aPtr->ipcType == AGENT_SOCKET) - pid = aPtr->ipc.socket.agentPid; - /* - * give PMDA a chance to notice the close() and exit - * before we try to wait() - */ - sleep(1); - for ( ; ; ) { + } + if (aPtr->status.isChild == 1) { + pid_t pid = -1; + pid_t done; + int wait_status; + int slept = 0; + + if (aPtr->ipcType == AGENT_PIPE) + pid = aPtr->ipc.pipe.agentPid; + else if (aPtr->ipcType == AGENT_SOCKET) + pid = aPtr->ipc.socket.agentPid; + for ( ; ; ) { #if defined(HAVE_WAIT3) - done = wait3(&wait_status, WNOHANG, NULL); + done = wait3(&wait_status, WNOHANG, NULL); #elif defined(HAVE_WAITPID) - done = waitpid((pid_t)-1, &wait_status, WNOHANG); + done = waitpid((pid_t)-1, &wait_status, WNOHANG); #else - break; + done = 0; #endif - if (done <= 0) - break; - else if (done == pid) - exit_status = wait_status; + if (done == pid) { + exit_status = wait_status; + break; + } + if (done > 0) { + continue; } + if (slept) { + break; + } + /* give PMDA a chance to notice the close() and exit */ + sleep(1); + slept = 1; } } - - if (exit_status != -1) { + } + if (exit_status != -1) { if (WIFEXITED(exit_status)) { fprintf(stderr, ", exit(%d)", WEXITSTATUS(exit_status)); reason = (WEXITSTATUS(exit_status) << 8) | reason; @@ -124,7 +129,6 @@ #endif reason = (WTERMSIG(exit_status) << 16) | reason; } - } } fputc('\n', stderr); aPtr->reason = reason; =========================================================================== mgmt/pcp/src/pmcd/src/config.c =========================================================================== --- a/mgmt/pcp/src/pmcd/src/config.c 2007-10-09 15:17:17.000000000 +1000 +++ b/mgmt/pcp/src/pmcd/src/config.c 2007-10-09 14:58:29.077617397 +1000 @@ -2382,11 +2382,6 @@ free(oldAgent); __pmAccFreeSavedHosts(); - /* Allow some time for the old agents to close down. This allows sockets - * to be closed at the agent end, etc. - */ - sleep(1); - /* Start the new agents */ ContactAgents(); for (i = 0; i < MAXDOMID + 2; i++) Dr.Michael("Kimba")Newton kimbrr@sgi.com From kimbrr@sgi.com Mon Oct 8 22:48:58 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 08 Oct 2007 22:49:03 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l995mtQm023613 for ; Mon, 8 Oct 2007 22:48:57 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA13303; Tue, 9 Oct 2007 15:48:55 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l995msdD56764077; Tue, 9 Oct 2007 15:48:55 +1000 (AEST) Received: from localhost (kimbrr@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) with ESMTP id l995mqdD56915666; Tue, 9 Oct 2007 15:48:53 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: kimbrr owned process doing -bs Date: Tue, 9 Oct 2007 15:48:52 +1000 From: Michael Newton X-X-Sender: kimbrr@snort.melbourne.sgi.com To: pcp@oss.sgi.com cc: nscott@aconex.com Subject: [patch] reinstate longer delay before resorting to KILLing pmcd Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 1382 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: kimbrr@sgi.com Precedence: bulk X-list: pcp Nathan Scott (nscott@aconex.com) reports a problem with a slightly modified version of 2.7.4-1, and speculates the same problem could possibly hit users running a large number of PMDAs on a loaded system. His problem is fixed by reinstating the longer (20s) delay in the init.d script. I don't have any issue with queuing this change, but I don't see getting it out in a release as a priority in the absence of evidence that it has occurred in the release as distributed. The symptom is that you see "forcing pmcd to terminate" on every /etc/init.d/pcp (re)start. Note that the restart does proceed unproblematically: the only issue is these scary-looking warnings. This is mostly a problem if you are running QA --- a/mgmt/pcp/src/pmcd/rc_pcp 2007-10-09 15:35:59.000000000 +1000 +++ b/mgmt/pcp/src/pmcd/rc_pcp 2007-10-09 15:34:08.816409829 +1000 @@ -461,7 +461,7 @@ # On failure, resort to SIGKILL. # $ECHO $PCP_ECHO_N "Waiting for PMCD to terminate ...""$PCP_ECHO_C" - delay=80 # tenths of a second + delay=200 # tenths of a second for SIG in TERM KILL do if [ "x$TOKILL" == "x" ] Dr.Michael("Kimba")Newton kimbrr@sgi.com From nscott@aconex.com Tue Oct 9 01:19:13 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 09 Oct 2007 01:19:19 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l998JAxb021412 for ; Tue, 9 Oct 2007 01:19:13 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 45D8892C7D1 for ; Tue, 9 Oct 2007 18:19:11 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Tue, 09 Oct 2007 18:21:56 +1000 Message-Id: <1191918116.15908.296.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1383 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/chart.cpp | 6 +++--- src/chart/chart.h | 2 +- src/chart/chartdialog.cpp | 6 +++--- src/chart/kmchart.h | 2 +- src/chart/namespace.cpp | 11 +---------- src/chart/namespace.h | 4 +--- 6 files changed, 10 insertions(+), 21 deletions(-) commit 4b417026005b59a3d5711181daface3358e636d5 Author: Nathan Scott Date: Tue Oct 9 18:19:46 2007 +1000 Fix a problem Ken discovered when changing attributes of a chart containing metrics with instances. Tree name matching was using instance ID, yet this was not always initialised. We now compare instance name instead of ID, as this is readily accessible in all cases. Remove the now unused instID from the NameSpace class. commit 12d4cf20a4fd17f86321e233c0e0dfc700d8a18f Author: Nathan Scott Date: Tue Oct 9 18:15:37 2007 +1000 Make default chart size slightly larger. From nscott@aconex.com Tue Oct 9 16:46:39 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 09 Oct 2007 16:46:46 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l99Nkb4F032732 for ; Tue, 9 Oct 2007 16:46:39 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id AD01A92C3B4 for ; Wed, 10 Oct 2007 09:46:37 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Wed, 10 Oct 2007 09:49:24 +1000 Message-Id: <1191973764.15908.298.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1384 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 3 +++ src/chart/chartdialog.cpp | 26 +++++++++++++++++++++++--- src/chart/chartdialog.h | 1 + src/chart/chartdialog.ui | 7 ++++++- src/chart/kmchart.cpp | 4 +++- src/chart/qcolorpicker.cpp | 28 ++++++++++++++++++++++++++++ src/chart/qcolorpicker.h | 19 +++++++++++++++++++ src/chart/settingsdialog.cpp | 1 + 8 files changed, 84 insertions(+), 5 deletions(-) commit bf4c685caab83b76bab620df83a8abdb8f3f320f Author: Nathan Scott Date: Wed Oct 10 09:39:50 2007 +1000 Plumb in the color value lineEdit on the New/Edit Chart dialog. commit c9b5b3918cb5a5f1315710af603ee248fef8c575 Author: Nathan Scott Date: Wed Oct 10 09:36:03 2007 +1000 Fix couple of issues related to restoring modified Toolbar settings. From nscott@aconex.com Wed Oct 10 20:00:08 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 10 Oct 2007 20:00:15 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9B307dD012198 for ; Wed, 10 Oct 2007 20:00:08 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 796D592C310 for ; Thu, 11 Oct 2007 13:00:07 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 11 Oct 2007 13:00:29 +1000 (EST) Message-ID: <59373.192.168.3.1.1192071629.squirrel@mail.aconex.com> Date: Thu, 11 Oct 2007 13:00:29 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1385 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git qa/create-edit-chart-testcases | 187 ----------------------------- qa/create-save-view-testcases | 124 ------------------- README | 34 ++--- aclocal.m4 | 6 build/mac/GNUmakefile | 33 ++--- build/mac/build-installer | 8 - build/mac/installer-description | 2 build/mac/installer-resources/License.html | 8 - build/mac/installer-resources/ReadMe.html | 4 build/mac/installer-resources/Welcome.txt | 2 build/mac/installer-resources/postinstall | 5 build/mac/installer-resources/postupgrade | 2 build/rpm/kmchart.spec.in | 2 debian/control | 4 m4/package_globals.m4 | 6 qa/archives/chartqa1.0 |binary qa/archives/chartqa1.index |binary qa/archives/chartqa1.meta |binary qa/chart-control-testcases | 119 ++++++++++++++++++ qa/chart-create-edit-testcases | 187 +++++++++++++++++++++++++++++ qa/help-system-testcases | 19 ++ qa/tab-create-edit-testcases | 93 ++++++++++++++ qa/view-create-save-testcases | 124 +++++++++++++++++++ qa/views/ScaleManual | 8 + src/include/builddefs.in | 3 25 files changed, 616 insertions(+), 364 deletions(-) commit 10b7951eb2c9e512e1dd823d5fe00cbd97e9da38 Author: Nathan Scott Date: Thu Oct 11 12:37:49 2007 +1000 Interactive QA for edit/create Tab, and notes on checking the help system. commit 58701f8dbd784f71250b393588d24e64ec6a5dd1 Author: Nathan Scott Date: Thu Oct 11 11:22:23 2007 +1000 Improve the names of some of the QA tests. commit 01dbd48d93c8864cff40a7930d01810d95dfa95e Author: Nathan Scott Date: Thu Oct 11 11:17:42 2007 +1000 Update chart-control-testcases as done in README. commit e8c4026a4ff375d3aa841e4ddc5d7235fc8abad7 Author: Nathan Scott Date: Thu Oct 11 11:16:13 2007 +1000 Interactive QA for chart display functionality and time control. commit bb7aa897ccc7203a852be1994f6d1236f657bee9 Author: Nathan Scott Date: Thu Oct 11 11:10:07 2007 +1000 Update README with additional thoughts on various issues/features. commit a5ce7b4089c48a387620d996b399484455853b0c Author: Nathan Scott Date: Wed Oct 10 21:42:33 2007 +1000 More packaging tweaks, cleanup wording for installs, fix postinstall script. commit 8fdce997c74d4b5c83686338554ae25cfcedb6f3 Author: Nathan Scott Date: Wed Oct 10 21:14:26 2007 +1000 Packaging fixes for MacOSX, slight differences between pcp and kmchart builds. From nscott@aconex.com Thu Oct 11 02:15:54 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 11 Oct 2007 02:16:02 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9B9Fpjm017617 for ; Thu, 11 Oct 2007 02:15:54 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 6048A92C480 for ; Thu, 11 Oct 2007 19:15:53 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 11 Oct 2007 19:16:15 +1000 (EST) Message-ID: <40233.192.168.3.1.1192094175.squirrel@mail.aconex.com> Date: Thu, 11 Oct 2007 19:16:15 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1386 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 2 -- qa/chart-control-testcases | 1 - src/chart/GNUmakefile | 2 +- src/chart/chart.cpp | 26 ++++++++++++++++++++------ src/chart/chart.h | 4 +++- src/chart/chartdialog.cpp | 1 + src/chart/curve.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ src/chart/curve.h | 33 +++++++++++++++++++++++++++++++++ src/chart/kmchart.pro | 8 ++++---- 9 files changed, 103 insertions(+), 15 deletions(-) commit 6e372a031637b5bb9d480c76ac21383028c9290e Author: Nathan Scott Date: Thu Oct 11 15:42:04 2007 +1000 Correctly remove (and later possibly reinstate) plots from a chart. commit 79991ff3ba0d08a818d7392e7a3c665f3db8990f Author: Nathan Scott Date: Thu Oct 11 15:08:19 2007 +1000 Fix a long-standing problem where metrics with unavailable values were treated as having the value zero, which was completely wrong of course and resulted in very confusing graphs at times. Hooray! From nscott@aconex.com Thu Oct 11 12:41:17 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 11 Oct 2007 12:41:24 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9BJfDBg021996 for ; Thu, 11 Oct 2007 12:41:16 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id D5EC492C67E for ; Fri, 12 Oct 2007 05:41:14 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Fri, 12 Oct 2007 05:41:36 +1000 (EST) Message-ID: <55278.192.168.3.1.1192131696.squirrel@mail.aconex.com> Date: Fri, 12 Oct 2007 05:41:36 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1387 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/chart.cpp | 2 +- src/chart/chartdialog.cpp | 11 ----------- src/chart/chartdialog.h | 1 - 3 files changed, 1 insertion(+), 13 deletions(-) commit c7073ed7cd810c46def31161099c2808a74d7452 Author: Nathan Scott Date: Fri Oct 12 05:35:23 2007 +1000 Fix the Available Metrics list annoying collapse-but-no-expand problem, which left large parts of the New/Edit Chart dialog effectively unusable when top level names were collapsed down. Not 100% clear as to why this fixes it, but calling expand() via the itemActivated signal is a QT3 hangover - removing it has resolved the problem, even though the item flags indicate no difference between the busted Available Metrics List and the working Chart Metrics List (which wasn't using this signal). commit f10302c899c39d25f7f937a2bfab01d7dec4640e Author: Nathan Scott Date: Fri Oct 12 05:30:10 2007 +1000 Fix incorrect calculation in legend label size when inserting ... suffix. From nscott@aconex.com Thu Oct 11 20:47:25 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 11 Oct 2007 20:47:33 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9C3lLYw004473 for ; Thu, 11 Oct 2007 20:47:25 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id C04E592C2A0; Fri, 12 Oct 2007 13:47:21 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Cc: Ken McDonell Content-Type: text/plain Organization: Aconex Date: Fri, 12 Oct 2007 13:50:13 +1000 Message-Id: <1192161014.15908.331.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1388 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 27 +-- qa/search-testcases | 80 ++++++++++ src/chart/GNUmakefile | 6 src/chart/chart.cpp | 4 src/chart/chartdialog.cpp | 20 +- src/chart/chartdialog.h | 5 src/chart/chartdialog.ui | 30 +++ src/chart/kmchart.cpp | 8 + src/chart/kmchart.h | 5 src/chart/kmchart.pro | 12 - src/chart/namespace.cpp | 31 ++-- src/chart/namespace.h | 10 - src/chart/recorddialog.cpp | 2 src/chart/saveviewdialog.cpp | 7 src/chart/saveviewdialog.h | 4 src/chart/saveviewdialog.ui | 226 +++++++++++++++++++----------- src/chart/searchdialog.cpp | 191 +++++++++++++++++++++++++ src/chart/searchdialog.h | 53 +++++++ src/chart/searchdialog.ui | 323 +++++++++++++++++++++++++++++++++++++++++++ src/chart/tab.cpp | 2 src/chart/view.cpp | 11 - 21 files changed, 908 insertions(+), 149 deletions(-) commit 3f9d7c4e1f65a32413c0981a88782779f0b193ca Author: Nathan Scott Date: Fri Oct 12 13:48:13 2007 +1000 User interface components of the "global" keyword (optional in saveview). commit a319af84b5e9538ecc262ffdcfb43691c7f7062f Author: Nathan Scott Date: Fri Oct 12 13:39:28 2007 +1000 Fix compiler warnings - unused variables from an earlier tmp workaround. commit a4b7f58deb45fef0370cd903a17d1d34b065110d Author: Ken McDonell Date: Fri Oct 12 13:37:19 2007 +1000 Add a metric namespace super-searching capability; allowing regex pattern matching on metric &| instance names, and propogation of search results back into the New/Edit Chart dialogs metric list. From nscott@aconex.com Sun Oct 14 18:51:47 2007 Received: with ECARTIS (v1.0.0; list pcp); Sun, 14 Oct 2007 18:51:57 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9F1pf0Q005844 for ; Sun, 14 Oct 2007 18:51:46 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 8575B92D27D for ; Mon, 15 Oct 2007 11:51:42 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 15 Oct 2007 11:52:04 +1000 (EST) Message-ID: <58154.192.168.3.1.1192413124.squirrel@mail.aconex.com> Date: Mon, 15 Oct 2007 11:52:04 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1389 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 11 +- qa/003 | 2 qa/003.out | 3 src/chart/chart.cpp | 36 ++++++--- src/chart/chart.h | 8 +- src/chart/chartdialog.cpp | 23 ++++- src/chart/chartdialog.h | 2 src/chart/chartdialog.ui | 5 + src/chart/kmchart.cpp | 5 - src/chart/kmchart.h | 1 src/chart/main.cpp | 96 ++++++++++++++++++++++--- src/chart/main.h | 17 +++- src/chart/namespace.cpp | 12 +-- src/chart/namespace.h | 7 + src/chart/openviewdialog.h | 1 src/chart/saveviewdialog.cpp | 19 +++- src/chart/saveviewdialog.h | 1 src/chart/saveviewdialog.ui | 5 - src/chart/searchdialog.cpp | 2 src/chart/settingsdialog.cpp | 28 +++++-- src/chart/settingsdialog.h | 8 +- src/chart/view.cpp | 165 +++++++++++++++++++++++++++++++++---------- 22 files changed, 344 insertions(+), 113 deletions(-) commit 19ff28df31d88b632e3087ba8b415c0cdcaae295 Author: Nathan Scott Date: Mon Oct 15 11:49:49 2007 +1000 Implement the global keyword from the pmchart config language. Update README and QA appropriately. Also fixed some full vs. absolute path issues with the View Save dialog. commit d76592e5f820461f5fe0c3f3b75b37387ee3d064 Author: Nathan Scott Date: Mon Oct 15 10:28:24 2007 +1000 Ensure globalSettings not marked as modified during startup, otherwise we will unintentionally force these to be written out later even if thats not needed (might result in creation of the .config file too, unnecessarily). commit c012f7bd540f23b99a3b73220f879789dd424ce1 Author: Nathan Scott Date: Mon Oct 15 09:53:59 2007 +1000 Add an init-to-zero to resolve a gcc4 compiler warning on MacOSX. commit 7eb04cf39ea54accfe86eb754889cba419e7b51f Author: Nathan Scott Date: Mon Oct 15 09:53:19 2007 +1000 Code refactoring to support different view-specific color schemes (to support pmchart "scheme" keyword). Also some more work on UI elements to be able to create/modify/delete schemes on-the-fly. commit 9efeeb28c726cba029f0396a9626495be7a3cbb2 Author: Nathan Scott Date: Mon Oct 15 09:36:02 2007 +1000 If absolute view path given, do not search for it on view PATH if not found. From nscott@aconex.com Mon Oct 15 02:29:21 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 15 Oct 2007 02:29:32 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9F9THTK006113 for ; Mon, 15 Oct 2007 02:29:21 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 11DDA92C38E for ; Mon, 15 Oct 2007 19:29:19 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 15 Oct 2007 19:29:41 +1000 (EST) Message-ID: <46460.192.168.3.1.1192440581.squirrel@mail.aconex.com> Date: Mon, 15 Oct 2007 19:29:41 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1390 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git build/GNUmakefile | 2 build/mac/installer-resources/background.jpg |binary build/mac/installer-resources/postinstall | 2 src/chart/settingsdialog.ui | 10 +- src/chart/view.cpp | 121 ++++++++++++++++++--------- 5 files changed, 94 insertions(+), 41 deletions(-) commit 6d63a36fc7c88694e10d78788b82e1751abcfa18 Author: Nathan Scott Date: Mon Oct 15 19:27:53 2007 +1000 Implement config language support for the "scheme" keyword, which allows individual charts/views to have alternate color rotation schemes (other than the default one). commit 45bda8ee7e0d1bd6f9b6a93843620f0a825cf065 Author: Nathan Scott Date: Mon Oct 15 17:23:16 2007 +1000 MacOSX installer updates and fixes. commit 01b43d3a41feb2683af8c7e0179638d6a812c9b8 Author: Nathan Scott Date: Mon Oct 15 12:51:13 2007 +1000 No reason the y-axis scaling should be limited to range of an integer. commit 754f7c86fd6dfd33954c574e5a07f08988929e84 Author: Nathan Scott Date: Mon Oct 15 12:50:39 2007 +1000 Update settings dialog to use push- instead of tool-buttons in 2 spots. From nscott@aconex.com Mon Oct 15 18:37:27 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 15 Oct 2007 18:37:33 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9G1bP5v012760 for ; Mon, 15 Oct 2007 18:37:27 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 910C592C701 for ; Tue, 16 Oct 2007 11:37:27 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Tue, 16 Oct 2007 11:36:48 +1000 Message-Id: <1192498608.5414.7.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1391 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 4 images/document-close.png |binary images/document-close.svg | 377 +++++++++++++++++++++++++++++++++++++++++++ images/tab-close.png |binary images/tab-close.svg | 281 ++++++++++++++++++++++++++++++++ images/tab-edit.png |binary images/tab-edit.svg | 154 +++++++++++++++-- images/tab-new.png |binary images/tab-new.svg | 56 ++++-- src/chart/GNUmakefile | 7 src/chart/chartdialog.cpp | 23 ++ src/chart/chartdialog.h | 4 src/chart/chartdialog.ui | 36 ++-- src/chart/kmchart.cpp | 4 src/chart/kmchart.qrc | 6 src/chart/kmchart.ui | 6 src/chart/settingsdialog.cpp | 106 ++++++++++-- src/chart/settingsdialog.h | 8 src/chart/settingsdialog.ui | 122 +++++-------- src/chart/tab.cpp | 2 20 files changed, 1046 insertions(+), 150 deletions(-) commit f303c9da3a8b62f81ffca92b82f4c5e28f83e98c Author: Nathan Scott Date: Tue Oct 16 11:22:43 2007 +1000 Comment out new-tab-on-record-stop code for now, its unstable atm. commit 95d2efa4ed6e9fa4b74ef6bf66544edda6a03566 Author: Nathan Scott Date: Tue Oct 16 11:11:54 2007 +1000 Point commit of scheme UI interaction work, so I can do a merge. commit f3b5e221283c0e4049aefbb2099d84180bf435c8 Author: Nathan Scott Date: Tue Oct 16 10:39:22 2007 +1000 Usability tweak from the first Mac user (hehe) - make double click on the Available Metrics List equivalent to selecting a metric and pressing the Add Metric button (to add it into the chart). commit 578fa6a5287dfde78c59e9a0d9a722a2ce4b98f0 Author: Nathan Scott Date: Tue Oct 16 10:28:45 2007 +1000 Fix color scheme rotation when adding items one-by-one to a new chart. commit 24d92a285a60119d2ef8378928d23382daae0d02 Author: Nathan Scott Date: Tue Oct 16 09:37:29 2007 +1000 Add icons for close tab/chart actions (fixes toolbar layouts with these actions enabled in the toolbar). Also tweak the existing icons for edit/new tabs slightly. From nscott@aconex.com Tue Oct 16 00:35:08 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 00:35:14 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9G7Z5Qa008083 for ; Tue, 16 Oct 2007 00:35:07 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id C3BE692C43C for ; Tue, 16 Oct 2007 17:35:06 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Tue, 16 Oct 2007 17:34:28 +1000 Message-Id: <1192520068.5414.38.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1392 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 3 - qa/search-testcases | 19 +++++--- src/chart/chart.cpp | 5 ++ src/chart/chartdialog.cpp | 19 +++++++- src/chart/exportdialog.ui | 3 + src/chart/hostdialog.ui | 3 + src/chart/kmchart.cpp | 83 +++++++++++++++++++++++++++++++------- src/chart/namespace.cpp | 25 ++++------- src/chart/openviewdialog.ui | 3 + src/chart/recorddialog.ui | 3 + src/chart/saveviewdialog.ui | 3 + src/chart/searchdialog.ui | 95 +++++++++++++++++++++++++++++++++----------- src/chart/tab.cpp | 18 ++++++-- src/chart/tabdialog.ui | 3 + src/chart/view.cpp | 1 src/chart/views/Overview | 2 16 files changed, 219 insertions(+), 69 deletions(-) commit 0e40ae88e6fe03043cdc5286832be9784ef4cf94 Author: Nathan Scott Date: Tue Oct 16 17:11:14 2007 +1000 Fix parsing for schemes, extra eol check in there gave syntax errors on Linux. commit e8b5bd618a7476ef7f0767035aba5f7992d67cfc Merge: 4be4b37... b98664d... Author: Ken McDonell Date: Tue Oct 16 14:22:08 2007 +1000 Merge in goodies from Ken's tree. commit b98664d86f5a8fd28ed9cf34ccb300b683505f61 Merge: dec61ad... f303c9d... Author: Ken McDonell Date: Tue Oct 16 12:36:17 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit 4be4b37b10687e52f99dc4d74c70c8d11b97feef Merge: 40bdf5a... f303c9d... Author: Nathan Scott Date: Tue Oct 16 11:37:33 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit f303c9da3a8b62f81ffca92b82f4c5e28f83e98c Author: Nathan Scott Date: Tue Oct 16 11:22:43 2007 +1000 Comment out new-tab-on-record-stop code for now, its unstable atm. commit dec61ade1036850f86ff071d3ba730d967e6f5d2 Author: Ken McDonell Date: Tue Oct 16 08:07:49 2007 +1000 Add print support for time button, time axis and datestamp commit cdeb03ba92ddc88439960a3c4dadd5f41539d5ce Author: Ken McDonell Date: Tue Oct 16 05:13:13 2007 +1000 Initial support for File->Print and multiple charts commit 6eccd12a5a1c49ba17ece31d35fd8ca0de5f988f Author: Ken McDonell Date: Tue Oct 16 05:10:07 2007 +1000 Check for addPlot() failure, raise popup and avoid segv ... seen when using pmproxy and default is inaccessible, would also arise if pmcd not running locally commit 549e906e22ce47d50d3603aed513d9793babf6e8 Merge: 095bb06... 19ff28d... Author: Ken McDonell Date: Mon Oct 15 12:46:35 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit 095bb0602903522c0e53efa5b4b0d6ed8aa06034 Author: Ken McDonell Date: Mon Oct 15 12:46:08 2007 +1000 Make idle CPU time the same color as for the CPU view commit 40bdf5a32093e6baa1e0c12bd979a0943a9e1228 Author: Ken McDonell Date: Fri Oct 12 16:42:40 2007 +1000 Add a reminder note about occassionally leaking kmtime processes. commit 0a24d5deeb33accb301e06db02aa00b18b224d65 Author: Ken McDonell Date: Fri Oct 12 16:40:51 2007 +1000 Make several dialogs modal to ensure no odd interaction with parent occurs. commit c2d5a292298afe3dcfcc4b859acd0c412c8c16df Merge: 055bc04... e4d3320... Author: Ken McDonell Date: Fri Oct 12 16:32:07 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit 1c85c6365395ac9a4f672868fa2da02822c50d62 Author: Ken McDonell Date: Fri Oct 12 16:31:03 2007 +1000 Fix a memory leak on early-exit paths when setting up namespace lists. commit 055bc049e0686eda2dcff1611ee7e7741ce020af Author: Ken McDonell Date: Fri Oct 12 16:13:31 2007 +1000 make searchdialog modal, cleanup seteExpanded() use and small mem leak plug From o.tarnus@free.fr Tue Oct 16 13:55:42 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 13:55:50 -0700 (PDT) Received: from mailrelay005.isp.belgacom.be (mailrelay005.isp.belgacom.be [195.238.6.171]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9GKtdKU023026 for ; Tue, 16 Oct 2007 13:55:41 -0700 X-Belgacom-Dynamic: yes Received: from 244.215-243-81.adsl-dyn.isp.belgacom.be (HELO [192.168.230.20]) ([81.243.215.244]) by relay.skynet.be with ESMTP; 16 Oct 2007 22:44:49 +0200 Message-ID: <471522C1.9040009@free.fr> Date: Tue, 16 Oct 2007 22:44:49 +0200 From: Olivier Tarnus User-Agent: Thunderbird 2.0.0.6 (X11/20070806) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: kmchart updates References: <1192520068.5414.38.camel@edge.yarra.acx> In-Reply-To: <1192520068.5414.38.camel@edge.yarra.acx> X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-archive-position: 1393 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: o.tarnus@free.fr Precedence: bulk X-list: pcp Hi Nathan, Seeing all the activity on kmchart in the recent times, I decided to try it. It built perfectly on gentoo linux x86_64 with qt-4.3.1, but i get errors at runtime and it seems that widget actions are not caught, see: -- snip -- tom@darkstar ~/dev/kmchart/src $ kmchart Object::connect: No such signal QAction::activated() Object::connect: (sender name: 'fileNewChartAction') Object::connect: (receiver name: 'KmChart') Object::connect: No such signal QAction::activated() Object::connect: (sender name: 'fileOpenViewAction') Object::connect: (receiver name: 'KmChart') Object::connect: No such signal QAction::activated() Object::connect: (sender name: 'fileSaveViewAction') Object::connect: (receiver name: 'KmChart') Object::connect: No such signal QAction::activated() Object::connect: (sender name: 'fileExportAction') Object::connect: (receiver name: 'KmChart') Object::connect: No such signal QAction::activated() Object::connect: (sender name: 'filePrintAction') Object::connect: (receiver name: 'KmChart') Object::connect: No such signal QAction::activated() Object::connect: (sender name: 'fileQuitAction') Object::connect: (receiver name: 'KmChart') Object::connect: No such signal QAction::activated() Object::connect: (sender name: 'helpTutorialAction') Object::connect: (receiver name: 'KmChart') ... and so on... --snap-- After that nothing works, ie: no action on the gui will produce any effect, even the quit menu item. Perhaps not the best place to talk about that, but i've not been able to find any website or list dedicated to kmchart. Thanks Olivier From nscott@aconex.com Tue Oct 16 16:25:41 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 16:25:46 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9GNPcTZ010188 for ; Tue, 16 Oct 2007 16:25:41 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id B010D92C2F5; Wed, 17 Oct 2007 09:25:40 +1000 (EST) Subject: Re: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: Olivier Tarnus Cc: pcp@oss.sgi.com In-Reply-To: <471522C1.9040009@free.fr> References: <1192520068.5414.38.camel@edge.yarra.acx> <471522C1.9040009@free.fr> Content-Type: text/plain Organization: Aconex Date: Wed, 17 Oct 2007 09:25:04 +1000 Message-Id: <1192577104.5414.45.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1394 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp On Tue, 2007-10-16 at 22:44 +0200, Olivier Tarnus wrote: > > Hi Nathan, > Hi there Olivier, > Seeing all the activity on kmchart in the recent times, I decided to > try it. > > It built perfectly on gentoo linux x86_64 with qt-4.3.1, but i get > errors at runtime and it seems that widget actions are not caught, > see: > -- snip -- > tom@darkstar ~/dev/kmchart/src $ kmchart > Object::connect: No such signal QAction::activated() > Object::connect: (sender name: 'fileNewChartAction') > Object::connect: (receiver name: 'KmChart') Ah, I see the problem - we're using the activated() signal, which is only supported in QT4 if QT3_SUPPORT is defined in the headers; from qaction.h... Q_SIGNALS: void changed(); void triggered(bool checked = false); void hovered(); void toggled(bool); #ifdef QT3_SUPPORT QT_MOC_COMPAT void activated(int = 0); #endif Looks like "triggered() is the prefered way to do this on QT4, I'll switch over to that. > After that nothing works, ie: no action on the gui will produce any > effect, even the quit menu item. Yeah, thats kinda what I'd expect if that signal wasn't hooked up. > Perhaps not the best place to talk about that, but i've not been able > to > find any website or list dedicated to kmchart. This is the right place. I'll commit that fix later this morning, and CC you when it goes in - thanks for reporting the problem. cheers. -- Nathan From o.tarnus@free.fr Tue Oct 16 16:45:01 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 16:45:10 -0700 (PDT) Received: from mailrelay002.isp.belgacom.be (mailrelay002.isp.belgacom.be [195.238.6.175]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9GNix1l012150 for ; Tue, 16 Oct 2007 16:45:01 -0700 X-Belgacom-Dynamic: yes Received: from 244.215-243-81.adsl-dyn.isp.belgacom.be (HELO [192.168.230.20]) ([81.243.215.244]) by relay.skynet.be with ESMTP; 17 Oct 2007 01:45:00 +0200 Message-ID: <47154CFB.2010809@free.fr> Date: Wed, 17 Oct 2007 01:44:59 +0200 From: Olivier Tarnus User-Agent: Thunderbird 2.0.0.6 (X11/20070806) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: kmchart updates References: <1192520068.5414.38.camel@edge.yarra.acx> <471522C1.9040009@free.fr> <1192577104.5414.45.camel@edge.yarra.acx> In-Reply-To: <1192577104.5414.45.camel@edge.yarra.acx> X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-archive-position: 1395 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: o.tarnus@free.fr Precedence: bulk X-list: pcp Hey... Had some time to spend tonight :-) So i fixed calls to use triggered(), and also made some fix for InfoDialog::infoTabCurrentChanged(QWidget*) and KmChart::activeTabChanged(QWidget*) as they had also some problems because of the change of QTabWidget::currentChanged to int. Everything now runs fine... Happy to have fixed it myself ;-) Olivier Nathan Scott wrote: > On Tue, 2007-10-16 at 22:44 +0200, Olivier Tarnus wrote: > >> Hi Nathan, >> >> > > Hi there Olivier, > > >> Seeing all the activity on kmchart in the recent times, I decided to >> try it. >> >> It built perfectly on gentoo linux x86_64 with qt-4.3.1, but i get >> errors at runtime and it seems that widget actions are not caught, >> see: >> > > >> -- snip -- >> tom@darkstar ~/dev/kmchart/src $ kmchart >> Object::connect: No such signal QAction::activated() >> Object::connect: (sender name: 'fileNewChartAction') >> Object::connect: (receiver name: 'KmChart') >> > > Ah, I see the problem - we're using the activated() signal, which is > only supported in QT4 if QT3_SUPPORT is defined in the headers; from > qaction.h... > > Q_SIGNALS: > void changed(); > void triggered(bool checked = false); > void hovered(); > void toggled(bool); > #ifdef QT3_SUPPORT > QT_MOC_COMPAT void activated(int = 0); > #endif > > Looks like "triggered() is the prefered way to do this on QT4, I'll > switch over to that. > > >> After that nothing works, ie: no action on the gui will produce any >> effect, even the quit menu item. >> > > Yeah, thats kinda what I'd expect if that signal wasn't hooked up. > > >> Perhaps not the best place to talk about that, but i've not been able >> to >> find any website or list dedicated to kmchart. >> > > This is the right place. I'll commit that fix later this morning, and > CC you when it goes in - thanks for reporting the problem. > > cheers. > > -- > Nathan > > > From nscott@aconex.com Tue Oct 16 16:51:04 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 16:51:12 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9GNp3ob012491 for ; Tue, 16 Oct 2007 16:51:04 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 68ACA92C47D; Wed, 17 Oct 2007 09:51:05 +1000 (EST) Subject: Re: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: Olivier Tarnus Cc: pcp@oss.sgi.com In-Reply-To: <47154CFB.2010809@free.fr> References: <1192520068.5414.38.camel@edge.yarra.acx> <471522C1.9040009@free.fr> <1192577104.5414.45.camel@edge.yarra.acx> <47154CFB.2010809@free.fr> Content-Type: text/plain Organization: Aconex Date: Wed, 17 Oct 2007 09:50:28 +1000 Message-Id: <1192578628.5414.48.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1396 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp On Wed, 2007-10-17 at 01:44 +0200, Olivier Tarnus wrote: > > > > > Hey... > > Had some time to spend tonight :-) > > So i fixed calls to use triggered(), and also made some fix for > InfoDialog::infoTabCurrentChanged(QWidget*) and > KmChart::activeTabChanged(QWidget*) as they had also some problems > because of the change of QTabWidget::currentChanged to int. > > Everything now runs fine... Happy to have fixed it myself ;-) > Great! I've just merged the triggered() fix, could you send me a patch for everything else you needed to change? Thanks. cheers. -- Nathan From o.tarnus@free.fr Tue Oct 16 16:55:49 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 16:55:54 -0700 (PDT) Received: from mailrelay003.isp.belgacom.be (mailrelay003.isp.belgacom.be [195.238.6.53]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9GNtkEd012740 for ; Tue, 16 Oct 2007 16:55:48 -0700 X-Belgacom-Dynamic: yes Received: from 244.215-243-81.adsl-dyn.isp.belgacom.be (HELO [192.168.230.20]) ([81.243.215.244]) by relay.skynet.be with ESMTP; 17 Oct 2007 01:55:47 +0200 Message-ID: <47154F82.8000709@free.fr> Date: Wed, 17 Oct 2007 01:55:46 +0200 From: Olivier Tarnus User-Agent: Thunderbird 2.0.0.6 (X11/20070806) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: kmchart updates References: <1192520068.5414.38.camel@edge.yarra.acx> <471522C1.9040009@free.fr> <1192577104.5414.45.camel@edge.yarra.acx> <47154CFB.2010809@free.fr> <1192578628.5414.48.camel@edge.yarra.acx> In-Reply-To: <1192578628.5414.48.camel@edge.yarra.acx> X-Enigmail-Version: 0.95.3 Content-Type: multipart/mixed; boundary="------------090503040303050502050103" X-archive-position: 1397 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: o.tarnus@free.fr Precedence: bulk X-list: pcp This is a multi-part message in MIME format. --------------090503040303050502050103 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Nathan Scott wrote: > On Wed, 2007-10-17 at 01:44 +0200, Olivier Tarnus wrote: > >> >> >> Hey... >> >> Had some time to spend tonight :-) >> >> So i fixed calls to use triggered(), and also made some fix for >> InfoDialog::infoTabCurrentChanged(QWidget*) and >> KmChart::activeTabChanged(QWidget*) as they had also some problems >> because of the change of QTabWidget::currentChanged to int. >> >> Everything now runs fine... Happy to have fixed it myself ;-) >> >> > > Great! I've just merged the triggered() fix, could you send > me a patch for everything else you needed to change? Thanks. > > cheers. > > -- > Nathan > > Sorry, forgot to attach the patch... here it is.. Olivier --------------090503040303050502050103 Content-Type: text/plain; name="kmchart-qt4-currentchanged.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="kmchart-qt4-currentchanged.diff" diff --git a/src/chart/infodialog.cpp b/src/chart/infodialog.cpp index bab455c..af01dd4 100644 --- a/src/chart/infodialog.cpp +++ b/src/chart/infodialog.cpp @@ -40,7 +40,7 @@ void InfoDialog::reset(QString source, QString metric, QString instance, my.instance = instance; infoTab->setCurrentWidget(pminfoTab); - infoTabCurrentChanged(pminfoTab); + infoTabCurrentChanged(0); } void InfoDialog::pminfo(void) @@ -130,15 +130,15 @@ void InfoDialog::pmvalStderr() pmvalTextEdit->append(s); } -void InfoDialog::infoTabCurrentChanged(QWidget *current) +void InfoDialog::infoTabCurrentChanged(int) { - if (current == pminfoTab) { + if (infoTab->currentWidget() == pminfoTab) { if (!my.pminfoStarted) { pminfo(); my.pminfoStarted = true; } } - else if (current == pmvalTab) { + else if (infoTab->currentWidget() == pmvalTab) { if (!my.pmvalStarted) { pmval(); my.pmvalStarted = true; diff --git a/src/chart/infodialog.h b/src/chart/infodialog.h index cc2d5c6..ab8a714 100644 --- a/src/chart/infodialog.h +++ b/src/chart/infodialog.h @@ -32,7 +32,7 @@ public slots: virtual void pminfoStderr(); virtual void pmvalStdout(); virtual void pmvalStderr(); - virtual void infoTabCurrentChanged(QWidget *); + virtual void infoTabCurrentChanged(int); virtual void quit(); protected slots: diff --git a/src/chart/infodialog.ui b/src/chart/infodialog.ui index 3552b0e..ce5ec77 100644 --- a/src/chart/infodialog.ui +++ b/src/chart/infodialog.ui @@ -174,9 +174,9 @@ infoTab - currentChanged(QWidget*) + currentChanged(int) InfoDialog - infoTabCurrentChanged(QWidget*) + infoTabCurrentChanged(int) diff --git a/src/chart/kmchart.cpp b/src/chart/kmchart.cpp index 337107e..4e2e50e 100644 --- a/src/chart/kmchart.cpp +++ b/src/chart/kmchart.cpp @@ -649,9 +649,8 @@ void KmChart::setActiveTab(int index, bool redisplay) chartTab->setCurrentIndex(index); } -void KmChart::activeTabChanged(QWidget *) +void KmChart::activeTabChanged(int index) { - int index = chartTab->currentIndex(); if (index < tabs.size()) setActiveTab(index, false); diff --git a/src/chart/kmchart.h b/src/chart/kmchart.h index 5f57ace..14daef0 100644 --- a/src/chart/kmchart.h +++ b/src/chart/kmchart.h @@ -112,7 +112,7 @@ public slots: virtual void acceptExport(); virtual void addTab(); virtual void closeTab(); - virtual void activeTabChanged(QWidget *); + virtual void activeTabChanged(int); virtual void editSettings(); virtual void acceptSettings(); virtual void recordStart(); diff --git a/src/chart/kmchart.ui b/src/chart/kmchart.ui index f3e2850..0c4ad45 100644 --- a/src/chart/kmchart.ui +++ b/src/chart/kmchart.ui @@ -638,7 +638,7 @@ fileNewChartAction - activated() + triggered() KmChart fileNewChart() @@ -654,7 +654,7 @@ fileOpenViewAction - activated() + triggered() KmChart fileOpenView() @@ -670,7 +670,7 @@ fileSaveViewAction - activated() + triggered() KmChart fileSaveView() @@ -686,7 +686,7 @@ fileExportAction - activated() + triggered() KmChart fileExport() @@ -702,7 +702,7 @@ filePrintAction - activated() + triggered() KmChart filePrint() @@ -718,7 +718,7 @@ fileQuitAction - activated() + triggered() KmChart fileQuit() @@ -734,7 +734,7 @@ helpTutorialAction - activated() + triggered() KmChart helpTutorial() @@ -750,7 +750,7 @@ helpAboutAction - activated() + triggered() KmChart helpAbout() @@ -766,7 +766,7 @@ helpSeeAlsoAction - activated() + triggered() KmChart helpSeeAlso() @@ -782,7 +782,7 @@ helpWhatsThisAction - activated() + triggered() KmChart whatsThis() @@ -798,7 +798,7 @@ timeControlAction - activated() + triggered() KmChart optionsTimeControl() @@ -814,7 +814,7 @@ toolbarAction - activated() + triggered() KmChart optionsToolbar() @@ -830,7 +830,7 @@ consoleAction - activated() + triggered() KmChart optionsConsole() @@ -846,7 +846,7 @@ newKmchartAction - activated() + triggered() KmChart optionsNewKmchart() @@ -862,7 +862,7 @@ closeTabAction - activated() + triggered() KmChart closeTab() @@ -878,7 +878,7 @@ editSettingsAction - activated() + triggered() KmChart editSettings() @@ -894,9 +894,9 @@ chartTab - currentChanged(QWidget*) + currentChanged(int) KmChart - activeTabChanged(QWidget*) + activeTabChanged(int) 20 @@ -926,7 +926,7 @@ editChartAction - activated() + triggered() KmChart editChart() @@ -942,7 +942,7 @@ closeChartAction - activated() + triggered() KmChart closeChart() @@ -958,7 +958,7 @@ editTabAction - activated() + triggered() KmChart editTab() @@ -974,7 +974,7 @@ closeTabAction - activated() + triggered() KmChart closeTab() @@ -990,7 +990,7 @@ addTabAction - activated() + triggered() KmChart addTab() @@ -1006,7 +1006,7 @@ helpManualAction - activated() + triggered() KmChart helpManual() @@ -1022,7 +1022,7 @@ recordStartAction - activated() + triggered() KmChart recordStart() @@ -1038,7 +1038,7 @@ recordQueryAction - activated() + triggered() KmChart recordQuery() @@ -1054,7 +1054,7 @@ recordStopAction - activated() + triggered() KmChart recordStop() @@ -1070,7 +1070,7 @@ recordDetachAction - activated() + triggered() KmChart recordDetach() @@ -1086,7 +1086,7 @@ zoomInAction - activated() + triggered() KmChart zoomIn() @@ -1102,7 +1102,7 @@ zoomOutAction - activated() + triggered() KmChart zoomOut() --------------090503040303050502050103-- From nscott@aconex.com Tue Oct 16 17:10:04 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 17:10:09 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9H0A27C013394 for ; Tue, 16 Oct 2007 17:10:03 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 9AF0792C306; Wed, 17 Oct 2007 10:10:04 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Cc: Olivier Tarnus Content-Type: text/plain Organization: Aconex Date: Wed, 17 Oct 2007 10:09:28 +1000 Message-Id: <1192579768.5414.51.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1398 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/chart.cpp | 12 ++++- src/chart/chart.h | 1 src/chart/chartdialog.cpp | 29 ++++++++++-- src/chart/chartdialog.h | 1 src/chart/colorbutton.h | 2 src/chart/infodialog.cpp | 8 +-- src/chart/infodialog.h | 2 src/chart/infodialog.ui | 4 - src/chart/kmchart.cpp | 16 ++++++ src/chart/kmchart.h | 8 ++- src/chart/kmchart.ui | 56 ++++++++++++------------ src/chart/main.cpp | 12 +++++ src/chart/main.h | 1 src/chart/openviewdialog.cpp | 2 src/chart/settingsdialog.cpp | 99 ++++++++++++++++++++++++++----------------- src/chart/settingsdialog.h | 18 ++++--- src/chart/settingsdialog.ui | 10 ---- src/chart/view.cpp | 22 +++++++++ src/chart/views/GNUmakefile | 2 src/chart/views/Schemes | 6 ++ 20 files changed, 206 insertions(+), 105 deletions(-) commit 3afd0b8b08809adfa56e59aea7b3cc4263c3b75e Author: Olivier Tarnus Date: Wed Oct 17 10:05:08 2007 +1000 More fixes related to building kmchart in QT4-only mode, as on Gentoo Linux, without the QT3-support code. commit c9863be23ad39fab6f3fad08456b28f797f3c396 Author: Nathan Scott Date: Wed Oct 17 09:55:42 2007 +1000 Fix compiler error on some gcc versions, due to early error case jump. commit d49140b9b7ba6de2dde9198a2cb5589ff90834db Author: Nathan Scott Date: Wed Oct 17 09:52:03 2007 +1000 QwtPlot has the ability to draw different style lines on the same chart. We now use this feature to draw instantaneous and discrete metrics as stepped lines (and leave counters as-is) for the Line Style of plot. commit 67b2aeb4b90770fc871352869c510cc35c991e79 Author: Nathan Scott Date: Wed Oct 17 09:48:46 2007 +1000 Switch to using triggered() signal for QActions, as the activated() signal is marked qt3-compat-only and some distributors of QT4 (e.g. Gentoo Linux) have switched this off. Thanks to Olivier Tarnus for reporting the problem. commit 4f3f9d15503e642e936424ead6c65e43d628273f Author: Nathan Scott Date: Wed Oct 17 09:38:32 2007 +1000 Setup the scheme combo box correctly on the settings dialog, and save the color schemes into views when they're used in a chart. commit e894e2e8e4cdcff039d63d6abcfe8dd8c8951885 Author: Nathan Scott Date: Wed Oct 17 09:35:31 2007 +1000 Update() color buttons after changing color, problem exposed by schemes code. commit d43d68957aea833b349b231b8e0245053354ae36 Author: Nathan Scott Date: Wed Oct 17 06:47:02 2007 +1000 Next round of color scheme related changes, interaction between settings/new/edit chart dialogs wrt schemes and populating the combo boxes with schemes. Also look for a default set of scheme specifications in a "Schemes" kmchart config on startup. From nscott@aconex.com Tue Oct 16 17:47:58 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 16 Oct 2007 17:48:06 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9H0luem016038 for ; Tue, 16 Oct 2007 17:47:58 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id C263092C4D5; Wed, 17 Oct 2007 10:47:58 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Cc: Olivier Tarnus Content-Type: text/plain Organization: Aconex Date: Wed, 17 Oct 2007 10:47:21 +1000 Message-Id: <1192582041.5414.78.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1399 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/kmchart.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 922e20dd8f3a1d225ca8937b45301ddc0d976939 Author: Olivier Tarnus Date: Wed Oct 17 10:38:13 2007 +1000 Missed a piece of Oliviers patch due to a merge overlap, this adds it back. From nscott@aconex.com Wed Oct 17 00:34:24 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 17 Oct 2007 00:34:31 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9H7YLhr003343 for ; Wed, 17 Oct 2007 00:34:24 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 4E65592C2A0 for ; Wed, 17 Oct 2007 17:01:40 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Wed, 17 Oct 2007 17:01:04 +1000 Message-Id: <1192604464.5414.86.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1400 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 7 --- src/chart/GNUmakefile | 2 src/chart/chartdialog.cpp | 2 src/chart/colorscheme.cpp | 95 ++++++++++++++++++++++++++++++++++++++++++ src/chart/colorscheme.h | 57 +++++++++++++++++++++++++ src/chart/kmchart.cpp | 7 ++- src/chart/kmchart.pro | 12 ++--- src/chart/main.cpp | 31 +++++-------- src/chart/main.h | 8 --- src/chart/settingsdialog.cpp | 97 +++++++++++++++++++++++++++---------------- src/chart/settingsdialog.h | 5 +- src/chart/view.cpp | 77 +++++++++------------------------- src/chart/views/Schemes | 8 +-- 13 files changed, 272 insertions(+), 136 deletions(-) commit 9729afc44444c455afb2c73132899545436d1ab8 Author: Ken McDonell Date: Wed Oct 17 16:56:19 2007 +1000 Final set of changes for implementing full color Scheme support in the user interface and the configuration language. kmchart is now supporting the full set of functionality from pmchart's language. From nscott@aconex.com Thu Oct 18 01:00:36 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 18 Oct 2007 01:00:44 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9I80XP6013753 for ; Thu, 18 Oct 2007 01:00:36 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id D7EA592D1C0 for ; Thu, 18 Oct 2007 18:00:35 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 18 Oct 2007 18:00:58 +1000 (EST) Message-ID: <51069.192.168.3.1.1192694458.squirrel@mail.aconex.com> Date: Thu, 18 Oct 2007 18:00:58 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1401 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 27 build/mac/installer-info | 2 images/camera-video-close.png |binary images/camera-video-close.svg | 1208 ++++++++++++++++++++++++++++++++++++++++++ qa/tab-create-edit-testcases | 23 src/chart/GNUmakefile | 11 src/chart/chartdialog.cpp | 6 src/chart/exportdialog.cpp | 15 src/chart/kmchart.cpp | 181 +++--- src/chart/kmchart.h | 10 src/chart/kmchart.pro | 5 src/chart/kmchart.qrc | 1 src/chart/kmchart.ui | 32 - src/chart/main.cpp | 34 - src/chart/main.h | 3 src/chart/openviewdialog.cpp | 6 src/chart/recorddialog.cpp | 18 src/chart/saveviewdialog.cpp | 2 src/chart/tab.cpp | 28 src/chart/tab.h | 7 src/chart/tabdialog.cpp | 68 +- src/chart/tabdialog.h | 12 src/chart/tabdialog.ui | 559 ++++++++++--------- src/chart/tabwidget.cpp | 40 + src/chart/tabwidget.h | 46 + src/chart/timeaxis.cpp | 2 src/chart/view.cpp | 12 src/include/buildmacros | 2 28 files changed, 1829 insertions(+), 531 deletions(-) commit 82b0766da6441457a5fc77d50199ef3c8fd0f3ea Author: Nathan Scott Date: Thu Oct 18 17:57:48 2007 +1000 Resolve the issue where zooming in/out a bit mucked up the Edit Tab dialogs view of Visible vs Total samples. Also tuned the algorithm used to calculate number of points to zoom so that it zooms by less as you get closer to the minimum value. commit 0efd076060f922ba34017d02f4ed02f400afe349 Author: Nathan Scott Date: Thu Oct 18 17:29:40 2007 +1000 Fix spinbox/slider maximum range truncation issue. commit 1d5304f2f7b97835dec73c81ddbbd31205413ba9 Author: Nathan Scott Date: Thu Oct 18 15:40:01 2007 +1000 Add an icon for the stop recording action, mainly for the toolbars use. commit 8e5a05834c80b5fe2bc7284cc3f7b4bb480b71d3 Author: Nathan Scott Date: Thu Oct 18 15:22:41 2007 +1000 Fix several problems with Tabs - firstly, we only want the Tab labels showing across the top if there is more than one Tab active. In order to do this, we need access to the protected tabBar() routine, hence we need to subclass QTabWidget - see tabwidget.h. Move the global list of tabs here for consistency. Also fixes a problem to do with deleting tabs, which at the moment is tripping an assert due to a double-callback on closeTab(). Finally, rearrange some of the File Menu items to be more consistent with modern apps that use tabs (like most web browsers). commit 7320e13648532d85a8b0dcc74dbed0641a16eb23 Author: Nathan Scott Date: Thu Oct 18 14:30:34 2007 +1000 Add some missing build DIRT for Mac builds. commit 34cbe7ce7535aae70c7c6623bc75884de4d83aba Author: Nathan Scott Date: Thu Oct 18 14:25:41 2007 +1000 Resize a Mac installer string to <16bytes as docs suggest. commit 8428b2fb76e932286a363eea567b973cb7d33041 Author: Nathan Scott Date: Thu Oct 18 09:59:17 2007 +1000 Move known Tab issues into the main list, else they get forgotton. commit b95553bcfffd79a8ad1076dae9f9fb6233827d11 Author: Nathan Scott Date: Thu Oct 18 09:58:47 2007 +1000 Fix up layout oddities on the Tab dialog. From nscott@aconex.com Thu Oct 18 19:03:14 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 18 Oct 2007 19:03:22 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9J23AAQ009678 for ; Thu, 18 Oct 2007 19:03:14 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 9FFA892C3A0 for ; Fri, 19 Oct 2007 12:03:11 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Fri, 19 Oct 2007 12:02:39 +1000 Message-Id: <1192759359.24082.0.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1402 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git GNUmakefile | 5 README | 1 aclocal.m4 | 15 configure.in | 7 m4/GNUmakefile | 1 m4/package_paths.m4 | 14 man/html/GNUmakefile | 10 man/html/index.html | 35 + man/html/kmchart.adp | 25 - man/html/kmchart.adp.in | 25 + man/html/kmtime.adp | 25 - man/html/kmtime.adp.in | 25 + qa/001.out | 2 qa/002.out | 10 qa/003.out | 1 qa/004.out | 6 qa/006 | 64 ++ qa/006.out | 271 +++++++++++ qa/common.filter | 16 qa/common.test | 1 qa/group | 1 qa/qa-view-01 | 5 qa/qa-view-02 | 5 qa/qa-view-03 | 5 qa/qa-view-04 | 16 qa/qa-view-05 | 6 src/chart/GNUmakefile | 1 src/chart/chart.cpp | 154 +++--- src/chart/chart.h | 2 src/chart/chartdialog.cpp | 13 src/chart/chartdialog.ui | 1106 +++++++++++++++++++++++----------------------- src/chart/kmchart.cpp | 67 +- src/chart/kmchart.h | 1 src/chart/kmchart.pro | 2 src/chart/kmchart.qrc | 1 src/chart/kmchart.ui | 3 src/chart/main.cpp | 3 src/chart/tab.cpp | 2 src/chart/view.cpp | 19 src/include/builddefs.in | 2 src/include/version.h.in | 1 41 files changed, 1231 insertions(+), 743 deletions(-) commit b6ec3e7aba1c227fd509c5e9675dcefac0382f93 Author: Nathan Scott Date: Fri Oct 19 11:55:50 2007 +1000 Numerous changes to hook up the QT online help libs to kmchart. Also fixed the issue where you can have open dialogs, quit the main kmchart window, and still keep kmchart running with those top level dialogs. commit 1728d5650e1c5d8ee2821abf055bd9d0a8e82a57 Author: Nathan Scott Date: Fri Oct 19 11:29:07 2007 +1000 Final icon setup for the toolbar - add in an icon for SaveView action. commit 6cc4250c1f7c11fcd742c19352d7cadc49e392c8 Author: Nathan Scott Date: Fri Oct 19 11:03:01 2007 +1000 Set y-axis scale maxima to largest possible value. commit a9a8888406d0beec0794fb490c4b40291587e3ad Author: Nathan Scott Date: Fri Oct 19 10:53:21 2007 +1000 Revert "increase maximum and minimum range to go up to 1e+8 not 99.99" This reverts commit a1b1a55f018c932154141a52fe0dc2ba25b7eb41, which is incompatible with QT4.2. Will fix without all the other QT4.3 changes in following commit. commit 01e1b9436bcd5b9e864039501a8f1ef6799341b0 Author: Ken McDonell Date: Fri Oct 19 07:52:58 2007 +1000 Force Y axis re-labelling whenever the style is set or changes, and simplify the labelling of the Y axis in the utilization plot case commit b05b4385d0d94ab7ebc4d22c8f6b6a31343a903a Author: Ken McDonell Date: Thu Oct 18 20:54:26 2007 +1000 Fix typos in console post messages commit aac4435cec7be5952d3ed03de005565a5cf171fd Author: Ken McDonell Date: Thu Oct 18 20:53:33 2007 +1000 Update QA results for added diag Load View: /var/lib/pcp/config/kmchart/Schemes Extend 006 to check more units incompatibility cases. commit 88969579b655ddcdb18daf3661bd60ef357497d6 Merge: 97c4eb7... 82b0766... Author: Ken McDonell Date: Thu Oct 18 20:32:04 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit 97c4eb782b9197ecaefe8240e7761f781922642d Merge: 6c22b41... 1d5304f... Author: Ken McDonell Date: Thu Oct 18 17:55:08 2007 +1000 resolve conflicts from Nathan commit 6c22b416651c64cf4cd21971069a4d80936d18bb Author: Ken McDonell Date: Thu Oct 18 17:51:24 2007 +1000 Initial pmUnits compatibility checking for New Chart and loading views, also -CC support for QA testing of this stuff to extend view checking to include access to pmcd, calling addPlot() and checking semantics, without displaying anything commit 6c960d2252b023596b1d958259177e0ddbed7be1 Author: Ken McDonell Date: Thu Oct 18 17:48:50 2007 +1000 Some more QA infrastructure and view semantics checks commit a7234d5a42617edf018cc07395ae2b659d5615a4 Merge: a1b1a55... b5db77e... Author: Ken McDonell Date: Wed Oct 17 20:08:58 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit a1b1a55f018c932154141a52fe0dc2ba25b7eb41 Author: Ken McDonell Date: Wed Oct 17 20:08:32 2007 +1000 increase maximum and minimum range to go up to 1e+8 not 99.99 From nscott@aconex.com Thu Oct 18 23:40:54 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 18 Oct 2007 23:41:00 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9J6erpY006034 for ; Thu, 18 Oct 2007 23:40:54 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 91C8692CAD1 for ; Fri, 19 Oct 2007 16:40:55 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Fri, 19 Oct 2007 16:40:24 +1000 Message-Id: <1192776024.24082.4.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1403 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 1 src/chart/kmchart.cpp | 9 ++---- src/chart/tab.cpp | 8 ++--- src/time/kmtime.pro | 2 - src/time/kmtimearch.cpp | 68 ++++++++++++++++++++--------------------------- src/time/kmtimearch.h | 9 +++--- src/time/kmtimearch.ui | 30 -------------------- src/time/kmtimelive.cpp | 69 ++++++++++++++++++++++-------------------------- src/time/kmtimelive.h | 9 +++--- src/time/kmtimelive.ui | 30 -------------------- src/time/timelord.cpp | 9 ++++++ src/time/timelord.h | 5 ++- 12 files changed, 94 insertions(+), 155 deletions(-) commit 22924eb8a3c6e320b0886b2bf3553ea25d4a35bb Author: Nathan Scott Date: Fri Oct 19 16:39:27 2007 +1000 Update TODO list in README, crossing off more fixed stuff. commit 612d06499be0d7824131518a6cfb213d8bd5af7b Author: Nathan Scott Date: Fri Oct 19 16:37:09 2007 +1000 Fix handling of timezone updates from kmtime. commit 84a9134101fe9ef25dcdd52ab8658e7ce65e8117 Author: Nathan Scott Date: Fri Oct 19 16:36:32 2007 +1000 Rework the close handling in kmtime to ensure Help app stopped correctly. commit 0a8938d815dfad73f30ec420aec76791818246fa Author: Nathan Scott Date: Fri Oct 19 15:09:06 2007 +1000 Dont call info dialog quit routine twice - reject() does this for us. commit 89f86ef2b2574d5d6f034fafb53df25265f74d5b Author: Nathan Scott Date: Fri Oct 19 15:07:26 2007 +1000 Hook up kmtime into online help system as well. From nscott@aconex.com Fri Oct 19 00:18:21 2007 Received: with ECARTIS (v1.0.0; list pcp); Fri, 19 Oct 2007 00:18:28 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9J7IIZc013166 for ; Fri, 19 Oct 2007 00:18:21 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 2F19792C67B for ; Fri, 19 Oct 2007 17:18:21 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Fri, 19 Oct 2007 17:17:50 +1000 Message-Id: <1192778270.24082.6.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1404 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 1 - src/time/timelord.cpp | 7 +++++++ src/time/timelord.h | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) commit af8c3f609442b93f2337fd451233daa897bb6451 Author: Nathan Scott Date: Fri Oct 19 17:17:03 2007 +1000 Resolve long-standing issue with occassionally-leaked kmtime processes. From o.tarnus@free.fr Sat Oct 20 16:04:09 2007 Received: with ECARTIS (v1.0.0; list pcp); Sat, 20 Oct 2007 16:04:15 -0700 (PDT) Received: from mailrelay009.isp.belgacom.be (mailrelay009.isp.belgacom.be [195.238.6.176]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9KN45hO012661 for ; Sat, 20 Oct 2007 16:04:07 -0700 X-Belgacom-Dynamic: yes Received: from 12.161-136-217.adsl-dyn.isp.belgacom.be (HELO [192.168.230.20]) ([217.136.161.12]) by relay.skynet.be with ESMTP; 21 Oct 2007 01:04:06 +0200 Message-ID: <471A8965.9020405@free.fr> Date: Sun, 21 Oct 2007 01:04:05 +0200 From: Olivier Tarnus User-Agent: Thunderbird 2.0.0.6 (X11/20070806) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: kmchart updates References: <1192778270.24082.6.camel@edge.yarra.acx> In-Reply-To: <1192778270.24082.6.camel@edge.yarra.acx> X-Enigmail-Version: 0.95.3 Content-Type: multipart/mixed; boundary="------------070000070100020507000001" X-archive-position: 1405 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: o.tarnus@free.fr Precedence: bulk X-list: pcp This is a multi-part message in MIME format. --------------070000070100020507000001 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Nathan, Here is a little patch that add an anti aliasing option per graph. The option is also saved in the view. See attached patch and saved view... I'm actually working on the layout of tabs, first by adding a column option that would let the user split the tab also vertically. Bye Olivier Nathan Scott wrote: > Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git > > README | 1 - > src/time/timelord.cpp | 7 +++++++ > src/time/timelord.h | 4 +++- > 3 files changed, 10 insertions(+), 2 deletions(-) > > commit af8c3f609442b93f2337fd451233daa897bb6451 > Author: Nathan Scott > Date: Fri Oct 19 17:17:03 2007 +1000 > > Resolve long-standing issue with occassionally-leaked kmtime > processes. > > > > > --------------070000070100020507000001 Content-Type: text/plain; name="kmchart_antialiasing_option.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="kmchart_antialiasing_option.patch" diff --git a/src/chart/chart.cpp b/src/chart/chart.cpp index 1da39f5..5fc4178 100644 --- a/src/chart/chart.cpp +++ b/src/chart/chart.cpp @@ -45,6 +45,7 @@ Chart::Chart(Tab *chartTab, QWidget *parent) : QwtPlot(parent) canvas()->setPaintAttribute(QwtPlotCanvas::PaintPacked, true); enableAxis(xBottom, false); setLegendVisible(true); + legend()->contentsWidget()->setFont(globalFont); connect(this, SIGNAL(legendChecked(QwtPlotItem *, bool)), SLOT(showCurve(QwtPlotItem *, bool))); @@ -595,6 +596,12 @@ void Chart::setStroke(Plot *plot, Style style, QColor color) console->post("Chart::setStroke [style %d->%d]", my.style, style); plot->color = color; + if (my.antiAliasing) { + plot->curve->setRenderHint(QwtPlotItem::RenderAntialiased, true); + } + else { + plot->curve->setRenderHint(QwtPlotItem::RenderAntialiased, false); + } switch (style) { case BarStyle: @@ -656,7 +663,6 @@ void Chart::setStroke(Plot *plot, Style style, QColor color) plot->curve->setBrush(QBrush(Qt::NoBrush)); plot->curve->setStyle(isStepped(plot) ? QwtPlotCurve::Steps : QwtPlotCurve::Lines); - plot->curve->setRenderHint(QwtPlotItem::RenderAntialiased); if (my.style != LineStyle) { // Need to undo any munging of plotData[] @@ -843,6 +849,21 @@ void Chart::setLegendVisible(bool on) } } + +bool Chart::useAntiAliasing() +{ + // Legend is on or off for all plots, only need to test the first plot + return my.antiAliasing; +} + +void Chart::setAntiAliasing(bool on) +{ + console->post("Chart::setAntiAliasingOn(%d) antiAliasing()=%p", on, useAntiAliasing()); + my.antiAliasing=on; +} + + + QString Chart::name(int m) { return my.plots[m]->name; diff --git a/src/chart/chart.h b/src/chart/chart.h index dd619d9..7757fbf 100644 --- a/src/chart/chart.h +++ b/src/chart/chart.h @@ -75,6 +75,8 @@ public: void setYAxisTitle(char *); bool legendVisible(); void setLegendVisible(bool); + bool useAntiAliasing(); + void setAntiAliasing(bool); void update(bool, bool, bool); @@ -134,6 +136,7 @@ private: QString scheme; int sequence; bool autoScale; + bool antiAliasing; double yMin; double yMax; QwtPlotPicker *picker; diff --git a/src/chart/chartdialog.cpp b/src/chart/chartdialog.cpp index 46e6e9f..ac9fa88 100644 --- a/src/chart/chartdialog.cpp +++ b/src/chart/chartdialog.cpp @@ -98,6 +98,8 @@ void ChartDialog::reset(Chart *chart, int style, QString scheme) setupSchemeComboBox(); legendOn->setChecked(true); legendOff->setChecked(false); + antiAliasingOn->setChecked(true); + antiAliasingOff->setChecked(false); setupAvailableMetricsTree(my.archiveSource); my.yMin = yAxisMinimum->value(); my.yMax = yAxisMaximum->value(); @@ -378,6 +380,25 @@ void ChartDialog::legendOffClicked() legendOff->setChecked(true); } +bool ChartDialog::antiAliasing(void) +{ + return antiAliasingOn->isChecked(); +} + +void ChartDialog::antiAliasingOnClicked() +{ + antiAliasingOn->setChecked(true); + antiAliasingOff->setChecked(false); +} + +void ChartDialog::antiAliasingOffClicked() +{ + antiAliasingOn->setChecked(false); + antiAliasingOff->setChecked(true); +} + + + void ChartDialog::scheme(QString *scheme, int *sequence) { *scheme = my.scheme; @@ -390,6 +411,7 @@ void ChartDialog::setScheme(QString scheme, int sequence) my.sequence = sequence; } + void ChartDialog::scale(bool *autoScale, double *yMin, double *yMax) { *autoScale = autoScaleOn->isChecked(); diff --git a/src/chart/chartdialog.h b/src/chart/chartdialog.h index f05114a..97018cd 100644 --- a/src/chart/chartdialog.h +++ b/src/chart/chartdialog.h @@ -29,6 +29,7 @@ public: virtual Chart *chart(void); virtual QString title(void); virtual bool legend(void); + virtual bool antiAliasing(void); virtual void scale(bool *, double *, double *); virtual void setScale(bool, double, double); virtual void scheme(QString *, int *); @@ -63,6 +64,8 @@ public slots: virtual void sourceButtonClicked(); virtual void legendOnClicked(); virtual void legendOffClicked(); + virtual void antiAliasingOnClicked(); + virtual void antiAliasingOffClicked(); virtual void autoScaleOnClicked(); virtual void autoScaleOffClicked(); virtual void yAxisMinimumValueChanged(double); diff --git a/src/chart/chartdialog.ui b/src/chart/chartdialog.ui index 464ae1b..a540634 100644 --- a/src/chart/chartdialog.ui +++ b/src/chart/chartdialog.ui @@ -238,6 +238,130 @@ + + + + Antialiasing: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 6 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 21 + 20 + + + + + + + + + 0 + 0 + + + + On + + + true + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 16 + 20 + + + + + + + + + 0 + 0 + + + + Off + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + diff --git a/src/chart/kmchart.cpp b/src/chart/kmchart.cpp index fee9efc..6b3b5b1 100644 --- a/src/chart/kmchart.cpp +++ b/src/chart/kmchart.cpp @@ -461,6 +461,7 @@ void KmChart::acceptNewChart() if (newTitle.isEmpty() == false) cp->changeTitle(newTitle, true); cp->setLegendVisible(my.newchart->legend()); + cp->setAntiAliasing(my.newchart->antiAliasing()); if (my.newchart->setupChartPlotsShortcut(cp) == false) my.newchart->setupChartPlots(cp); my.newchart->scale(&yAutoScale, &yMin, &yMax); @@ -492,6 +493,8 @@ void KmChart::editChart() my.editchart->titleLineEdit->setText(cp->title()); my.editchart->legendOn->setChecked(cp->legendVisible()); my.editchart->legendOff->setChecked(!cp->legendVisible()); + my.editchart->antiAliasingOn->setChecked(cp->useAntiAliasing()); + my.editchart->antiAliasingOff->setChecked(!cp->useAntiAliasing()); cp->scale(&yAutoScale, &yMin, &yMax); my.editchart->setScale(yAutoScale, yMin, yMax); my.editchart->setScheme(cp->scheme(), cp->sequence()); @@ -510,6 +513,7 @@ void KmChart::acceptEditChart() if (editTitle.isEmpty() == false && editTitle != cp->title()) cp->changeTitle(editTitle, true); cp->setLegendVisible(my.editchart->legend()); + cp->setAntiAliasing(my.editchart->antiAliasing()); my.editchart->scale(&yAutoScale, &yMin, &yMax); cp->setScale(yAutoScale, yMin, yMax); my.editchart->setupChartPlots(cp); diff --git a/src/chart/view.cpp b/src/chart/view.cpp index f6189c8..f9b2ec3 100644 --- a/src/chart/view.cpp +++ b/src/chart/view.cpp @@ -423,6 +423,7 @@ new_chart: double ymin = 0; double ymax = 0; int legend = 1; + int antialias = 0; if ((w = getwd(f)) == NULL || w[0] == '\n') { xpect("title\" or \"style", w); @@ -519,6 +520,22 @@ new_chart: if ((w = getwd(f)) == NULL || w[0] == '\n') goto done_chart; } + if (strcasecmp(w, "antialiasing") == 0) { + // optional antialiasing on|off + if ((w = getwd(f)) == NULL || w[0] == '\n') { + antialias = 1; + } + if (strcasecmp(w, "on") == 0) + antialias = 1; + else if (strcasecmp(w, "off") == 0) + antialias = 0; + else { + xpect("on\" or \"off", w); + goto abort_chart; + } + if ((w = getwd(f)) == NULL || w[0] == '\n') + goto done_chart; + } done_chart: if (pmDebug & DBG_TRACE_APPL2) { fprintf(stderr, "openView: new chart: style=%s", @@ -531,6 +548,8 @@ done_chart: fprintf(stderr, " ymin=%.1f ymax=%.1f", ymin, ymax); if (legend) fprintf(stderr, " legend=yes"); + if (antialias) + fprintf(stderr, " antialias=yes"); fputc('\n', stderr); } if (Cflag == 0 || Cflag == 2) { @@ -541,6 +560,8 @@ done_chart: cp->changeTitle(title, mode == M_KMCHART); if (legend == 0) cp->setLegendVisible(false); + if (antialias == 1) + cp->setAntiAliasing(true); } state = S_CHART; if (title != NULL) free(title); @@ -1133,6 +1154,9 @@ bool SaveViewDialog::saveView(QString file, bool hostDynamic, bool sizeDynamic) break; } fprintf(f, " style %s", p); + if (cp->useAntiAliasing()) { + fprintf(f, " antialiasing on"); + } if (cp->style() != Chart::UtilisationStyle) { cp->scale(&autoscale, &ymin, &ymax); if (!autoscale) Warning: 11 paths touched but unmodified. Consider running git-status. diff --git a/src/chart/chart.cpp b/src/chart/chart.cpp index 1da39f5..63b3b18 100644 --- a/src/chart/chart.cpp +++ b/src/chart/chart.cpp @@ -595,6 +595,12 @@ void Chart::setStroke(Plot *plot, Style style, QColor color) console->post("Chart::setStroke [style %d->%d]", my.style, style); plot->color = color; + if (my.antiAliasing) { + plot->curve->setRenderHint(QwtPlotItem::RenderAntialiased, true); + } + else { + plot->curve->setRenderHint(QwtPlotItem::RenderAntialiased, false); + } switch (style) { case BarStyle: @@ -656,7 +662,6 @@ void Chart::setStroke(Plot *plot, Style style, QColor color) plot->curve->setBrush(QBrush(Qt::NoBrush)); plot->curve->setStyle(isStepped(plot) ? QwtPlotCurve::Steps : QwtPlotCurve::Lines); - plot->curve->setRenderHint(QwtPlotItem::RenderAntialiased); if (my.style != LineStyle) { // Need to undo any munging of plotData[] @@ -843,6 +848,21 @@ void Chart::setLegendVisible(bool on) } } + +bool Chart::useAntiAliasing() +{ + // Legend is on or off for all plots, only need to test the first plot + return my.antiAliasing; +} + +void Chart::setAntiAliasing(bool on) +{ + console->post("Chart::setAntiAliasingOn(%d) antiAliasing()=%p", on, useAntiAliasing()); + my.antiAliasing=on; +} + + + QString Chart::name(int m) { return my.plots[m]->name; diff --git a/src/chart/chart.h b/src/chart/chart.h index dd619d9..7757fbf 100644 --- a/src/chart/chart.h +++ b/src/chart/chart.h @@ -75,6 +75,8 @@ public: void setYAxisTitle(char *); bool legendVisible(); void setLegendVisible(bool); + bool useAntiAliasing(); + void setAntiAliasing(bool); void update(bool, bool, bool); @@ -134,6 +136,7 @@ private: QString scheme; int sequence; bool autoScale; + bool antiAliasing; double yMin; double yMax; QwtPlotPicker *picker; diff --git a/src/chart/chartdialog.cpp b/src/chart/chartdialog.cpp index 46e6e9f..ac9fa88 100644 --- a/src/chart/chartdialog.cpp +++ b/src/chart/chartdialog.cpp @@ -98,6 +98,8 @@ void ChartDialog::reset(Chart *chart, int style, QString scheme) setupSchemeComboBox(); legendOn->setChecked(true); legendOff->setChecked(false); + antiAliasingOn->setChecked(true); + antiAliasingOff->setChecked(false); setupAvailableMetricsTree(my.archiveSource); my.yMin = yAxisMinimum->value(); my.yMax = yAxisMaximum->value(); @@ -378,6 +380,25 @@ void ChartDialog::legendOffClicked() legendOff->setChecked(true); } +bool ChartDialog::antiAliasing(void) +{ + return antiAliasingOn->isChecked(); +} + +void ChartDialog::antiAliasingOnClicked() +{ + antiAliasingOn->setChecked(true); + antiAliasingOff->setChecked(false); +} + +void ChartDialog::antiAliasingOffClicked() +{ + antiAliasingOn->setChecked(false); + antiAliasingOff->setChecked(true); +} + + + void ChartDialog::scheme(QString *scheme, int *sequence) { *scheme = my.scheme; @@ -390,6 +411,7 @@ void ChartDialog::setScheme(QString scheme, int sequence) my.sequence = sequence; } + void ChartDialog::scale(bool *autoScale, double *yMin, double *yMax) { *autoScale = autoScaleOn->isChecked(); diff --git a/src/chart/chartdialog.h b/src/chart/chartdialog.h index f05114a..97018cd 100644 --- a/src/chart/chartdialog.h +++ b/src/chart/chartdialog.h @@ -29,6 +29,7 @@ public: virtual Chart *chart(void); virtual QString title(void); virtual bool legend(void); + virtual bool antiAliasing(void); virtual void scale(bool *, double *, double *); virtual void setScale(bool, double, double); virtual void scheme(QString *, int *); @@ -63,6 +64,8 @@ public slots: virtual void sourceButtonClicked(); virtual void legendOnClicked(); virtual void legendOffClicked(); + virtual void antiAliasingOnClicked(); + virtual void antiAliasingOffClicked(); virtual void autoScaleOnClicked(); virtual void autoScaleOffClicked(); virtual void yAxisMinimumValueChanged(double); diff --git a/src/chart/chartdialog.ui b/src/chart/chartdialog.ui index 464ae1b..a540634 100644 --- a/src/chart/chartdialog.ui +++ b/src/chart/chartdialog.ui @@ -238,6 +238,130 @@ + + + + Antialiasing: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 6 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 21 + 20 + + + + + + + + + 0 + 0 + + + + On + + + true + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 16 + 20 + + + + + + + + + 0 + 0 + + + + Off + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + diff --git a/src/chart/kmchart.cpp b/src/chart/kmchart.cpp index fee9efc..6b3b5b1 100644 --- a/src/chart/kmchart.cpp +++ b/src/chart/kmchart.cpp @@ -461,6 +461,7 @@ void KmChart::acceptNewChart() if (newTitle.isEmpty() == false) cp->changeTitle(newTitle, true); cp->setLegendVisible(my.newchart->legend()); + cp->setAntiAliasing(my.newchart->antiAliasing()); if (my.newchart->setupChartPlotsShortcut(cp) == false) my.newchart->setupChartPlots(cp); my.newchart->scale(&yAutoScale, &yMin, &yMax); @@ -492,6 +493,8 @@ void KmChart::editChart() my.editchart->titleLineEdit->setText(cp->title()); my.editchart->legendOn->setChecked(cp->legendVisible()); my.editchart->legendOff->setChecked(!cp->legendVisible()); + my.editchart->antiAliasingOn->setChecked(cp->useAntiAliasing()); + my.editchart->antiAliasingOff->setChecked(!cp->useAntiAliasing()); cp->scale(&yAutoScale, &yMin, &yMax); my.editchart->setScale(yAutoScale, yMin, yMax); my.editchart->setScheme(cp->scheme(), cp->sequence()); @@ -510,6 +513,7 @@ void KmChart::acceptEditChart() if (editTitle.isEmpty() == false && editTitle != cp->title()) cp->changeTitle(editTitle, true); cp->setLegendVisible(my.editchart->legend()); + cp->setAntiAliasing(my.editchart->antiAliasing()); my.editchart->scale(&yAutoScale, &yMin, &yMax); cp->setScale(yAutoScale, yMin, yMax); my.editchart->setupChartPlots(cp); diff --git a/src/chart/view.cpp b/src/chart/view.cpp index f6189c8..f9b2ec3 100644 --- a/src/chart/view.cpp +++ b/src/chart/view.cpp @@ -423,6 +423,7 @@ new_chart: double ymin = 0; double ymax = 0; int legend = 1; + int antialias = 0; if ((w = getwd(f)) == NULL || w[0] == '\n') { xpect("title\" or \"style", w); @@ -519,6 +520,22 @@ new_chart: if ((w = getwd(f)) == NULL || w[0] == '\n') goto done_chart; } + if (strcasecmp(w, "antialiasing") == 0) { + // optional antialiasing on|off + if ((w = getwd(f)) == NULL || w[0] == '\n') { + antialias = 1; + } + if (strcasecmp(w, "on") == 0) + antialias = 1; + else if (strcasecmp(w, "off") == 0) + antialias = 0; + else { + xpect("on\" or \"off", w); + goto abort_chart; + } + if ((w = getwd(f)) == NULL || w[0] == '\n') + goto done_chart; + } done_chart: if (pmDebug & DBG_TRACE_APPL2) { fprintf(stderr, "openView: new chart: style=%s", @@ -531,6 +548,8 @@ done_chart: fprintf(stderr, " ymin=%.1f ymax=%.1f", ymin, ymax); if (legend) fprintf(stderr, " legend=yes"); + if (antialias) + fprintf(stderr, " antialias=yes"); fputc('\n', stderr); } if (Cflag == 0 || Cflag == 2) { @@ -541,6 +560,8 @@ done_chart: cp->changeTitle(title, mode == M_KMCHART); if (legend == 0) cp->setLegendVisible(false); + if (antialias == 1) + cp->setAntiAliasing(true); } state = S_CHART; if (title != NULL) free(title); @@ -1133,6 +1154,9 @@ bool SaveViewDialog::saveView(QString file, bool hostDynamic, bool sizeDynamic) break; } fprintf(f, " style %s", p); + if (cp->useAntiAliasing()) { + fprintf(f, " antialiasing on"); + } if (cp->style() != Chart::UtilisationStyle) { cp->scale(&autoscale, &ymin, &ymax); if (!autoscale) Warning: 11 paths touched but unmodified. Consider running git-status. --------------070000070100020507000001 Content-Type: text/plain; name="antialiasing_test" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="antialiasing_test" #kmchart version 1 chart title "CPU Utilization [%h]" style utilization plot legend "User" color #2d2de2 metric kernel.all.cpu.user plot legend "Sys" color #e71717 metric kernel.all.cpu.sys plot legend "Nice" color #c2f3c2 metric kernel.all.cpu.nice plot legend "Intr" color #cdcd00 metric kernel.all.cpu.intr plot legend "Wait" color #00cdcd metric kernel.all.cpu.wait.total plot legend "Idle" color #16d816 metric kernel.all.cpu.idle chart title "Average Load [%h]" style plot antialiasing on plot legend "1 min" color #ffff00 metric kernel.all.load instance "1 minute" plot legend "# cpus" color #0000ff metric hinv.ncpu chart title "IOPS over all Disks [%h]" style area plot legend "Reads" color #ffff00 metric disk.all.read plot legend "Writes" color #ee82ee metric disk.all.write chart title "Network Interface Bytes [%h]" style stacking plot legend "in eth0" color #ffff00 metric network.interface.in.bytes instance "eth0" plot legend "in sit0" color #0000ff metric network.interface.in.bytes instance "sit0" plot legend "in eth2" color #ff0000 metric network.interface.in.bytes instance "eth2" plot legend "out eth0" color #008000 metric network.interface.out.bytes instance "eth0" plot legend "out sit0" color #ee82ee metric network.interface.out.bytes instance "sit0" plot legend "out eth2" color #ffff00 metric network.interface.out.bytes instance "eth2" chart title "Real Memory Usage [%h]" style stacking antialiasing on plot color #000096 metric mem.util.shared plot color #9cffab metric mem.util.cached plot color #fe68ad metric mem.util.bufmem plot color #ffae2c metric mem.util.other plot color #00ff00 metric mem.util.free chart title "cpu" style area antialiasing on plot color #ffff00 metric kernel.all.cpu.idle plot color #0000ff metric kernel.all.cpu.intr plot color #ff0000 metric kernel.all.cpu.nice plot color #008000 metric kernel.all.cpu.sys plot color #ee82ee metric kernel.all.cpu.user plot color #ffff00 metric kernel.all.cpu.wait.total --------------070000070100020507000001-- From nscott@aconex.com Sun Oct 21 16:32:16 2007 Received: with ECARTIS (v1.0.0; list pcp); Sun, 21 Oct 2007 16:32:21 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9LNWFN3011205 for ; Sun, 21 Oct 2007 16:32:16 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 6D2A592C6E8; Mon, 22 Oct 2007 09:32:17 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 22 Oct 2007 09:32:40 +1000 (EST) Message-ID: <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> In-Reply-To: <471A8965.9020405@free.fr> References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> Date: Mon, 22 Oct 2007 09:32:40 +1000 (EST) Subject: Anti-aliased and horizontal charts (was Re: kmchart updates) From: nscott@aconex.com To: "Olivier Tarnus" Cc: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1406 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Hi Olivier, (renamed subject line to match discussion thread a bit) > Hi Nathan, > > Here is a little patch that add an anti aliasing option per graph. The > option is also saved in the view. > > See attached patch and saved view... Great - thanks; looks good after an initial glance - will review properly and merge later today. > I'm actually working on the layout of tabs, first by adding a column > option that would let the user split the tab also vertically. Ah, interesting, I know one or two other people who have wanted that also. Its a bit of a challenge in figuring out how to do the unified time axis (and time control button) - some challenging screen layout issues there. If those items became child widgets of the tab, it might actually simplify some of the existing code and would make your changes easier to implement I think. Also, take a look at the Qwt SVN tree - there is an (experimental) example in there of how to implement a grid with aligned chart axes, which might be useful to you. We still need to do proper alignment of the charts vertically - iow, the minimum, maximum, and each tick value on the X-Axis should be aligned for each chart that is stacked vertically (this is currently a bug in kmchart, & its on my TODO list to fix before the 1.0 release). How are you planning on implementing your horizonal charts option? Would there be a horizontal QSplitter, with the existing vertical QSplitter's as children? And had you planned on doing one time axis for each column? Sounds an interesting feature anyway, I'm keen to see how it works out! cheers. -- Nathan From nscott@aconex.com Sun Oct 21 21:18:43 2007 Received: with ECARTIS (v1.0.0; list pcp); Sun, 21 Oct 2007 21:18:53 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9M4Ifqx010541 for ; Sun, 21 Oct 2007 21:18:43 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id DE5FA92C098; Mon, 22 Oct 2007 14:18:44 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 22 Oct 2007 14:19:08 +1000 (EST) Message-ID: <60564.192.168.3.1.1193026748.squirrel@mail.aconex.com> In-Reply-To: <471A8965.9020405@free.fr> References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> Date: Mon, 22 Oct 2007 14:19:08 +1000 (EST) Subject: Anti-aliasing on/off (was Re: kmchart updates) From: nscott@aconex.com To: "Olivier Tarnus" Cc: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1407 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Hi Olivier, > Here is a little patch that add an anti aliasing option per graph. The > option is also saved in the view. > > See attached patch and saved view... I found a couple of minor issues in the patch, but fixed 'em up and merged it. Could you double-check it all for me please? The issues were mainly to do with the view open/save code: - initial parsing code which detects the "antialiasing" keyword, then reads the next word, mishandles the error case of neither on/off ("w" varaiable could be NULL after that, and we don't jump out to "abort_chart" we continue on and dereference "w" - which would sigsegv) - it seems we default to anti-aliased mode enabled (which is consistent with current behaviour, so thats good), but in the view save code we only save the antialiasing keyword if its enabled. which would effectively mean it cant be used from a saved view config (since only default behaviour was saved) - your test view only tested the "on" behaviour unfortunately, so missed this. The .ui file changes needed a bit of tweaking too to work with QT4.2 - but no big deal, and nothing you can do about that - thats my problem for using an older Qt version. One other note about the test view config - its better where possible to make use of metrics from the sample PMDA, rather than kernel metrics. This allows me to test it on my Mac as well as on my Linux machines easily - many of the kernel metrics are different between MacOSX and Linux, whereas the sample PMDA was specifically designed for testing stuff, and is always the same across different platforms. I've reworked your test view config to use sample metrics and to test both the explicit on and off cases (the implicit on case is tested in lots of other places, of course). To get the sample PMDA running, do: # cd /var/lib/pcp/pmdas/sample # ./Install < /dev/null Anyway, its merged in - please check it and lemme know if anything is amiss, thanks! cheers. -- Nathan From nscott@aconex.com Sun Oct 21 21:20:11 2007 Received: with ECARTIS (v1.0.0; list pcp); Sun, 21 Oct 2007 21:20:18 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9M4K9AL010741 for ; Sun, 21 Oct 2007 21:20:11 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id B749992C098; Mon, 22 Oct 2007 14:20:12 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 22 Oct 2007 14:20:35 +1000 (EST) Message-ID: <60626.192.168.3.1.1193026835.squirrel@mail.aconex.com> Date: Mon, 22 Oct 2007 14:20:35 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com Cc: o.tarnus@free.fr User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1408 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git VERSION | 6 doc/CHANGES | 3 man/html/GNUmakefile | 20 -- man/html/images/GNUmakefile | 15 ++ man/html/images/aconex.png |binary man/html/images/bg01.png |binary man/html/images/bg02.png |binary man/html/images/bg03.png |binary man/html/images/bg04.png |binary man/html/images/bg05.png |binary man/html/images/bg06.png |binary man/html/images/bg07.png |binary man/html/images/bg08.png |binary man/html/index.html | 211 ++++++++++++++++++++++-------- man/html/manual.html | 65 --------- man/html/tutorial.html | 303 ++++++++++++++++++++++++++++++++++---------- qa/views/AntiAliasing | 23 +++ src/chart/chart.cpp | 21 ++- src/chart/chart.h | 4 src/chart/chartdialog.cpp | 33 ++++ src/chart/chartdialog.h | 5 src/chart/chartdialog.ui | 100 ++++++++++++++ src/chart/kmchart.cpp | 16 ++ src/chart/timecontrol.cpp | 2 src/chart/view.cpp | 24 +++ 25 files changed, 640 insertions(+), 211 deletions(-) commit e243b718ba5f4a25a7243820994473c03bc61c08 Author: Nathan Scott Date: Mon Oct 22 14:14:06 2007 +1000 Update version to reflect this as the initial 1.0.0 beta (Beta1) version. commit 290a079647211fd8c3782b04e465ece3b032092c Author: Olivier Tarnus Date: Mon Oct 22 14:09:17 2007 +1000 Implement a per-chart anti-aliasing on/off configuration option. commit 7c97ad0ab7678893e19acc1cdb93a49b1efaa73b Merge: e9567dc... b9081fb... Author: Nathan Scott Date: Mon Oct 22 12:34:14 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit e9567dc74db1675a4d107f63be9c1588710ef580 Author: Nathan Scott Date: Mon Oct 22 12:33:51 2007 +1000 Started on some online help content, lots to be done there still. commit b9081fb316564aaa4acbf626c70eb44a3f85bf01 Author: Nathan Scott Date: Fri Oct 19 22:49:34 2007 +1000 Ensure scheme is propogated in and out of new/edit chart dialog properly. commit 05b735834164265675a58946e3246c05dab06a23 Author: Nathan Scott Date: Fri Oct 19 21:54:59 2007 +1000 We need to disconnect the finished() signal, else spurious kmtime warnings sent. From o.tarnus@free.fr Mon Oct 22 02:36:31 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 22 Oct 2007 02:36:39 -0700 (PDT) Received: from mail.modernp.com (mail.modernp.com [194.154.219.75]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9M9aSFK002680 for ; Mon, 22 Oct 2007 02:36:30 -0700 Received: from localhost (unknown [127.0.0.1]) by mail.modernp.com (Postfix) with ESMTP id 0943A5D97B; Mon, 22 Oct 2007 09:11:29 +0000 (UTC) Received: from mail.modernp.com ([127.0.0.1]) by localhost (mailguard1.local.modernprocessing.lu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KlBRNnGOwi85; Mon, 22 Oct 2007 11:11:28 +0200 (CEST) Received: from roussa1.modernp.com (roussa1.local.modernprocessing.lu [172.17.8.32]) by mail.modernp.com (Postfix) with ESMTP id 0E3DE5D8D3; Mon, 22 Oct 2007 11:11:28 +0200 (CEST) Received: from [10.250.15.52] (unknown [10.250.15.52]) by roussa1.modernp.com (Postfix) with ESMTP id 8F73CCFF0D; Mon, 22 Oct 2007 11:11:28 +0200 (CEST) Message-ID: <471C673B.5090908@free.fr> Date: Mon, 22 Oct 2007 11:02:51 +0200 From: Olivier Tarnus User-Agent: Thunderbird 2.0.0.6 (X11/20070728) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: Anti-aliased and horizontal charts (was Re: kmchart updates) References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> In-Reply-To: <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> Content-Type: multipart/alternative; boundary="------------050108090906080004090004" X-archive-position: 1409 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: o.tarnus@free.fr Precedence: bulk X-list: pcp This is a multi-part message in MIME format. --------------050108090906080004090004 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Hi Nathan, Discovered yesterday that there is bug related to saving the anti aliasing option in the file, as it should be saved before the legend option or resulting file will not load. It would be great if the file loader was not so strict about the order of options, I'll try to fix that. Regarding the horizontal splitting, you're close to it ;-) I've a working prototype that load a row option for each chart and load it to a corresponding horizontal QSplitter that is child of the vertical splitter. This let user split each row by an arbitrary number. Chart addition/deletion is now working great. The row is actually a number, but I'll try to make it text to simplify usage and loading of multiple views. I've not worked on the time axis for the moment. I was thinking about adding a grid to the graph, because adding new timelines would take much space and becomes tricky if each row can have an arbitrary number of charts. I'll try to add a grid to each graph in a row with multiple elements, and link that grid with the timeline. Bye Olivier nscott@aconex.com wrote: > Hi Olivier, > > (renamed subject line to match discussion thread a bit) > > >> Hi Nathan, >> >> Here is a little patch that add an anti aliasing option per graph. The >> option is also saved in the view. >> >> See attached patch and saved view... >> > > Great - thanks; looks good after an initial glance - will review properly > and merge > later today. > > >> I'm actually working on the layout of tabs, first by adding a column >> option that would let the user split the tab also vertically. >> > > Ah, interesting, I know one or two other people who have wanted that also. > Its a > bit of a challenge in figuring out how to do the unified time axis (and > time control > button) - some challenging screen layout issues there. If those items > became child > widgets of the tab, it might actually simplify some of the existing code > and would > make your changes easier to implement I think. > > Also, take a look at the Qwt SVN tree - there is an (experimental) example > in there > of how to implement a grid with aligned chart axes, which might be useful > to you. > We still need to do proper alignment of the charts vertically - iow, the > minimum, > maximum, and each tick value on the X-Axis should be aligned for each > chart that > is stacked vertically (this is currently a bug in kmchart, & its on my > TODO list to fix > before the 1.0 release). > > How are you planning on implementing your horizonal charts option? Would > there > be a horizontal QSplitter, with the existing vertical QSplitter's as > children? And had > you planned on doing one time axis for each column? Sounds an interesting > feature > anyway, I'm keen to see how it works out! > > cheers. > > -- > Nathan > > > -- Olivier Tarnus IT/EDP Assistant Manager Modern Processing SA Parc d'Activités - CAP 2 38 rue Pafebruch L-8308 Capellen Telephone: + 352 27 754 404 Telefax: +352 27 754 500 GSM: +352 691 754 404 --------------050108090906080004090004 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Nathan,

Discovered yesterday that there is bug related to saving the anti aliasing option in the file, as it should be saved before the legend option or resulting file will not load. It would be great if the file loader was not so strict about the order of options, I'll try to fix that.

Regarding the horizontal splitting, you're close to it ;-) I've a working prototype that load a row option for each chart and load it to a corresponding  horizontal QSplitter that is child of the vertical splitter. This let user split each row by an arbitrary number. Chart addition/deletion is now working great. The row is actually a number, but I'll try to make it text to simplify usage and loading of multiple views.

I've not worked on the time axis for the moment. I was thinking about adding a grid to the graph, because adding new timelines would take much space and becomes tricky if each row can have an arbitrary number of charts. I'll try to add a grid to each graph in a row with multiple elements, and link that grid with the timeline.

Bye

Olivier


nscott@aconex.com wrote:
Hi Olivier,

(renamed subject line to match discussion thread a bit)

  
Hi Nathan,

Here is a little patch that add an anti aliasing option per graph. The
option is also saved in the view.

See attached patch and saved view...
    

Great - thanks; looks good after an initial glance - will review properly
and merge
later today.

  
I'm actually working on the layout of tabs, first by adding a column
option that would let the user split the tab also vertically.
    

Ah, interesting, I know one or two other people who have wanted that also.
 Its a
bit of a challenge in figuring out how to do the unified time axis (and
time control
button) - some challenging screen layout issues there.  If those items
became child
widgets of the tab, it might actually simplify some of the existing code
and would
make your changes easier to implement I think.

Also, take a look at the Qwt SVN tree - there is an (experimental) example
in there
of how to implement a grid with aligned chart axes, which might be useful
to you.
We still need to do proper alignment of the charts vertically - iow, the
minimum,
maximum, and each tick value on the X-Axis should be aligned for each
chart that
is stacked vertically (this is currently a bug in kmchart, & its on my
TODO list to fix
before the 1.0 release).

How are you planning on implementing your horizonal charts option?  Would
there
be a horizontal QSplitter, with the existing vertical QSplitter's as
children?  And had
you planned on doing one time axis for each column?  Sounds an interesting
feature
anyway, I'm keen to see how it works out!

cheers.

--
Nathan


  


--
Olivier Tarnus
IT/EDP Assistant Manager

Modern Processing SA
Parc d’Activités - CAP 2
38 rue Pafebruch
L-8308 Capellen

Telephone: + 352 27 754 404
Telefax: +352 27 754 500
GSM: +352 691 754 404
--------------050108090906080004090004-- From nscott@aconex.com Mon Oct 22 04:17:23 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 22 Oct 2007 04:17:30 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9MBHLqw017774 for ; Mon, 22 Oct 2007 04:17:23 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id BD19492CCBC; Mon, 22 Oct 2007 21:17:24 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 22 Oct 2007 21:17:48 +1000 (EST) Message-ID: <45878.192.168.3.1.1193051868.squirrel@mail.aconex.com> Date: Mon, 22 Oct 2007 21:17:48 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com Cc: o.tarnus@free.fr User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1410 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git dev/null |binary man/html/index.html | 179 +++++++++------------------------ man/html/tutorial.html | 252 +++++++++++++++-------------------------------- src/chart/chart.cpp | 63 +++++++++++ src/chart/chart.h | 1 src/chart/chartdialog.ui | 61 +++++++++-- 6 files changed, 250 insertions(+), 306 deletions(-) commit 4c304880f4133d0aee857b5cfd307d3852da4c72 Author: Nathan Scott Date: Mon Oct 22 21:10:42 2007 +1000 Make the radio buttons on the chart dialog no longer auto-exclusive as several unrelated ones now share the same parent. This was part of Oliviers patch (done differently, via a new parent) I previously overlooked when converting new-to-old (4.3-4.2) .ui format. commit e8e6a0563e8eaa5ede13c12910d57e78fd7fb215 Author: Ken McDonell Date: Mon Oct 22 20:48:22 2007 +1000 First attempt at re-scaling the y-axis to choose a new scale to reduce the size of the maximum value plotted. commit 893fd67d6d1c7ba74f2cfcf31b2d7e33b47887b9 Author: Nathan Scott Date: Mon Oct 22 20:18:22 2007 +1000 Add in some missing antiAliasing signal connections. commit 92637b844a4806dbde9c57f6ec1b655e844d9370 Author: Nathan Scott Date: Mon Oct 22 19:51:38 2007 +1000 Ugh! In order to have online help docs that are both real HTML and QtAssistant-style html, we need to use the lowest common denominator and remove the cuter things just recently added. From nscott@aconex.com Mon Oct 22 04:34:31 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 22 Oct 2007 04:34:37 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9MBYSMG024309 for ; Mon, 22 Oct 2007 04:34:31 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 3756192C401; Mon, 22 Oct 2007 21:34:31 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Mon, 22 Oct 2007 21:34:54 +1000 (EST) Message-ID: <47315.192.168.3.1.1193052894.squirrel@mail.aconex.com> In-Reply-To: <471C673B.5090908@free.fr> References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> <471C673B.5090908@free.fr> Date: Mon, 22 Oct 2007 21:34:54 +1000 (EST) Subject: Re: Anti-aliased and horizontal charts (was Re: kmchart updates) From: nscott@aconex.com To: "Olivier Tarnus" Cc: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1411 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Hi Olivier, > Discovered yesterday that there is bug related to saving the anti > aliasing option in the file, as it should be saved before the legend > option or resulting file will not load. I believe everything is working correctly in my git tree as of a few moments ago (including view save/load) - let me know if you see anything that is still not functioning correctly. > Regarding the horizontal splitting, you're close to it ;-) I've a > working prototype that load a row option for each chart and load it to a > corresponding horizontal QSplitter that is child of the vertical > splitter. This let user split each row by an arbitrary number. Chart > addition/deletion is now working great. The row is actually a number, > but I'll try to make it text to simplify usage and loading of multiple > views. > > I've not worked on the time axis for the moment. Hmm. It does seem to me that vertical-inside-of-horizontal is a better way to go than horizontal-inside-of-vertical ... but it will be good to have a look at your prototype and try it out, as its much easier to get a feel for these sort of things when you can interact with the thing. > I was thinking about > adding a grid to the graph, because adding new timelines would take much > space Not sure I follow that ... I'd imagined multiple time x-axes along the base of the display, in the same location as the current single time axis - so, no additional vertical space would be used. > and becomes tricky if each row can have an arbitrary number of charts. > I'll try to add a grid to each graph in a row with multiple > elements, and link that grid with the timeline. Guess I'll need to see it to fully understand how this would work - let me know when you've got something (even experimental) to show. thanks! -- Nathan From nscott@aconex.com Mon Oct 22 20:03:29 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 22 Oct 2007 20:03:34 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9N33NoL025463 for ; Mon, 22 Oct 2007 20:03:28 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id ECF7E92CA25 for ; Tue, 23 Oct 2007 13:03:25 +1000 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Tue, 23 Oct 2007 13:03:04 +1000 Message-Id: <1193108584.24082.9.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1412 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git man/html/images/GNUmakefile | 14 +- man/html/images/mac-tutorial1.png |binary man/html/images/mac-tutorial10.png |binary man/html/images/mac-tutorial11.png |binary man/html/images/mac-tutorial2.png |binary man/html/images/mac-tutorial3.png |binary man/html/images/mac-tutorial4.png |binary man/html/images/mac-tutorial5.png |binary man/html/images/mac-tutorial6.png |binary man/html/images/mac-tutorial7.png |binary man/html/images/mac-tutorial8.png |binary man/html/images/mac-tutorial9.png |binary man/html/images/x11-tutorial1.png |binary man/html/images/x11-tutorial10.png |binary man/html/images/x11-tutorial11.png |binary man/html/images/x11-tutorial2.png |binary man/html/images/x11-tutorial3.png |binary man/html/images/x11-tutorial4.png |binary man/html/images/x11-tutorial5.png |binary man/html/images/x11-tutorial6.png |binary man/html/images/x11-tutorial7.png |binary man/html/images/x11-tutorial8.png |binary man/html/images/x11-tutorial9.png |binary man/html/tutorial.html | 66 +++++-------- src/chart/chart.cpp | 177 +++++++++++++++++++++++++++++-------- src/chart/kmchart.cpp | 2 src/chart/tab.cpp | 5 - src/chart/view.cpp | 22 +++- src/include/buildrules | 11 ++ src/libqmc/qmc_group.cpp | 2 src/time/kmtimearch.cpp | 2 src/time/kmtimelive.cpp | 2 32 files changed, 206 insertions(+), 97 deletions(-) commit 6fe5f348be169a6c772498bc75468d03028071a2 Author: Nathan Scott Date: Tue Oct 23 12:59:48 2007 +1000 Fix host-explicit views in archive mode; we were using hostname as source in some places where archive name was required, and we were not mapping hostnames to archive names correctly. commit 167178b2f145214ee342ce2441bf1e1168fbd76c Author: Nathan Scott Date: Tue Oct 23 12:15:45 2007 +1000 Fix up compiler warning from unused vars. commit c7b7ef42ce348d890bc1815217bed1480aa22f5c Author: Ken McDonell Date: Tue Oct 23 12:13:40 2007 +1000 Rework y-axis units rescaling commit 512dde52f9f695e79d47494ac955fa090ff4f8d8 Author: Ken McDonell Date: Tue Oct 23 12:07:31 2007 +1000 move #if to hide tab update after record stop - wip commit 33c15939bf91498d9cde091633bda9a8772be168 Author: Nathan Scott Date: Tue Oct 23 11:53:56 2007 +1000 Update the tutorial, adding in many of the images it references. commit f796080f246e07d662abdbc745df9ce2bc393605 Author: Nathan Scott Date: Tue Oct 23 06:06:49 2007 +1000 Fix references to non-existant html doc in the manual. commit 7d089d311e0ecc699207a75ab6259d633ed00ef1 Author: Nathan Scott Date: Tue Oct 23 05:23:24 2007 +1000 Fix up default make file target in doc images directory. From nscott@aconex.com Mon Oct 22 22:03:16 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 22 Oct 2007 22:03:21 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9N53EML012129 for ; Mon, 22 Oct 2007 22:03:15 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id E29C892C9CA; Tue, 23 Oct 2007 15:03:17 +1000 (EST) Subject: Re: [patch] waitpid on dying agents at reconfig (qa/296) (fwd) From: Nathan Scott Reply-To: nscott@aconex.com To: Michael Newton Cc: pcp@oss.sgi.com In-Reply-To: References: Content-Type: text/plain Organization: Aconex Date: Tue, 23 Oct 2007 15:02:56 +1000 Message-Id: <1193115776.24082.22.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1413 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp On Mon, 2007-10-22 at 12:58 +1000, Michael Newton wrote: > here it is again ( thanks - not sure how I managed to miss this one - apologies! ) > ---------- Forwarded message ---------- > Date: Tue, 9 Oct 2007 15:19:43 +1000 > From: Michael Newton > To: pcp@oss.sgi.com > Cc: nscott@aconex.com > Subject: [patch] waitpid on dying agents at reconfig (qa/296) > > Nathan, can you review please? > > qa/296 fails with daemon PMDAs hanging round after a reconfigure (ie > kill -HUP to pmcd). It appears that they need to be wait()ed upon. > Prior to the addition of the condition || ap->ipcType == AGENT_DSO > to HarvestAgents in agent.c this condition was masked by other cleanup. > Previously, CleanupAgent did not waitpid() for AT_CONFIG. In addition, > there is no reason to sleep every time round the waitpid() loop, and in > many cases even once may be unnecessary Looks mostly OK, except I don't follow the first part of the last sentence - why is it not necessary to wait4/waitpid until we're sure the child has exited? It would seem that signal state changes in the agent could cause the parent to prematurely exit CleanupAgent, here... > + for ( ; ; ) { > > #if defined(HAVE_WAIT3) > - done = wait3(&wait_status, WNOHANG, NULL); > + done = wait3(&wait_status, WNOHANG, NULL); > #elif defined(HAVE_WAITPID) > - done = waitpid((pid_t)-1, &wait_status, WNOHANG); > + done = waitpid((pid_t)-1, &wait_status, WNOHANG); > #else > - break; > + done = 0; > #endif > - if (done <= 0) > - break; > - else if (done == pid) > - exit_status = wait_status; > + if (done == pid) { > + exit_status = wait_status; > + break; > + } > + if (done > 0) { > + continue; > } > + if (slept) { > + break; > + } > + /* give PMDA a chance to notice the close() and exit */ > + sleep(1); > + slept = 1; > } WAIT(2) says: waitpid(): on success, returns the process ID of the child whose state has changed; on error, -1 is returned; if WNOHANG was specified and no child(ren) specified by pid has yet changed state, then 0 is returned. We specify WNOHANG, so it'd seem we could get through to the "if (slept) break;" logic, which would potentially break out of the loop too early, wouldn't it? If my logic isn't flawed, looks like it can be resolved by removing the slept variable and associated logic? cheers. -- Nathan From kimbrr@sgi.com Mon Oct 22 23:13:00 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 22 Oct 2007 23:13:05 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9N6CuZ5022143 for ; Mon, 22 Oct 2007 23:12:59 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA08815; Tue, 23 Oct 2007 16:12:55 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l9N6CsdD77376709; Tue, 23 Oct 2007 16:12:55 +1000 (AEST) Received: from localhost (kimbrr@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) with ESMTP id l9N6Cqdn76841444; Tue, 23 Oct 2007 16:12:54 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: kimbrr owned process doing -bs Date: Tue, 23 Oct 2007 16:12:52 +1000 From: Michael Newton X-X-Sender: kimbrr@snort.melbourne.sgi.com To: Nathan Scott cc: pcp@oss.sgi.com Subject: Re: [patch] waitpid on dying agents at reconfig (qa/296) (fwd) In-Reply-To: <1193115776.24082.22.camel@edge.yarra.acx> Message-ID: References: <1193115776.24082.22.camel@edge.yarra.acx> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 1414 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: kimbrr@sgi.com Precedence: bulk X-list: pcp On Tue, 23 Oct 2007, Nathan Scott wrote: > On Mon, 2007-10-22 at 12:58 +1000, Michael Newton wrote: > > qa/296 fails with daemon PMDAs hanging round after a reconfigure (ie > > kill -HUP to pmcd). It appears that they need to be wait()ed upon. > > Prior to the addition of the condition || ap->ipcType == AGENT_DSO > > to HarvestAgents in agent.c this condition was masked by other cleanup. > > Previously, CleanupAgent did not waitpid() for AT_CONFIG. In addition, > > there is no reason to sleep every time round the waitpid() loop, and in > > many cases even once may be unnecessary > > Looks mostly OK, except I don't follow the first part of the last > sentence - why is it not necessary to wait4/waitpid until we're sure > the child has exited? It would seem that signal state changes in the > agent could cause the parent to prematurely exit CleanupAgent, here... > > > + for ( ; ; ) { > > > > #if defined(HAVE_WAIT3) > > - done = wait3(&wait_status, WNOHANG, NULL); > > + done = wait3(&wait_status, WNOHANG, NULL); > > #elif defined(HAVE_WAITPID) > > - done = waitpid((pid_t)-1, &wait_status, WNOHANG); > > + done = waitpid((pid_t)-1, &wait_status, WNOHANG); > > #else > > - break; > > + done = 0; > > #endif > > - if (done <= 0) > > - break; > > - else if (done == pid) > > - exit_status = wait_status; > > + if (done == pid) { > > + exit_status = wait_status; > > + break; > > + } > > + if (done > 0) { > > + continue; > > } > > + if (slept) { > > + break; > > + } > > + /* give PMDA a chance to notice the close() and exit */ > > + sleep(1); > > + slept = 1; > > } > > WAIT(2) says: > waitpid(): on success, returns the process ID of the child whose state > has changed; on error, -1 is returned; if WNOHANG was specified and no > child(ren) specified by pid has yet changed state, then 0 is returned. > > We specify WNOHANG, so it'd seem we could get through to the "if (slept) > break;" logic, which would potentially break out of the loop too early, > wouldn't it? > > If my logic isn't flawed, looks like it can be resolved by removing the > slept variable and associated logic? you are right that the code does not keep waiting until it sees an exit for the child its looking for at that time.. and it never has. We may pick up exits for other children.. and since we may have actually closed multiple connections before coming in here, those children may get looked for in a later pass thru this code, when we've already seen their exit in this one... so we better not wait indefinitely. Basically we keep calling waitpid until it errors, but if you call it immediately the client may not have had a chance to exit yet, so some kind of sleep is required... now i dont think its necessary to keep sleeping for a whole second after every waitpid... if youve slept for a second, that oughta be enough, i think.. but maybe it would be better to nanosleep each time, only just for a couple ticks? one could i suppose instead go close, wait, close, wait etc.. but how long a sleep do we need for each one? perhaps the better alternative is to have code that waits on an array of pids.. i could perhaps raise a PV in that direction..its just that the code here is a twisty maze of tunnels, all alike, with the potential for an unintended indirect recursion if one is not careful, and i have other priorities, so i prefer for now to just code conservatively, and only fix what im reasonably sure is broke. If you do go thru without getting notified of a given child, the result is one zombie.. and this only happens in the restart (SIGHUP) case, which isnt even accessible from /etc/init.d/pcp Dr.Michael("Kimba")Newton kimbrr@sgi.com From nscott@aconex.com Mon Oct 22 23:42:36 2007 Received: with ECARTIS (v1.0.0; list pcp); Mon, 22 Oct 2007 23:42:42 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9N6gYPc024803 for ; Mon, 22 Oct 2007 23:42:36 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 44CDE92CDC9; Tue, 23 Oct 2007 16:42:37 +1000 (EST) Subject: Re: [patch] waitpid on dying agents at reconfig (qa/296) (fwd) From: Nathan Scott Reply-To: nscott@aconex.com To: Michael Newton Cc: pcp@oss.sgi.com In-Reply-To: References: <1193115776.24082.22.camel@edge.yarra.acx> Content-Type: text/plain Organization: Aconex Date: Tue, 23 Oct 2007 16:42:13 +1000 Message-Id: <1193121733.24082.34.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1415 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp On Tue, 2007-10-23 at 16:12 +1000, Michael Newton wrote: > ... > you are right that the code does not keep waiting until it sees an exit > for the child its looking for at that time.. and it never has. We may pick Ah, right - I missed that behaviour in the old code. > up exits for other children.. and since we may have actually closed > multiple connections before coming in here, those children may get looked > for in a later pass thru this code, when we've already seen their exit in > this one... so we better not wait indefinitely. Basically we keep calling Yep. > waitpid until it errors, but if you call it immediately the client may not > have had a chance to exit yet, so some kind of sleep is required... now i > dont think its necessary to keep sleeping for a whole second after every > waitpid... if youve slept for a second, that oughta be enough, i think.. Yep, sounds reasonable. > but maybe it would be better to nanosleep each time, only just for a > couple ticks? Wouldn't worry about it - I think the bigger (scaling) win is to not do that initial 1 second wait every time through. > one could i suppose instead go close, wait, close, wait etc.. but how long > a sleep do we need for each one? perhaps the better alternative is to have > code that waits on an array of pids.. i could perhaps raise a PV in that > direction..its just that the code here is a twisty maze of tunnels, all > alike, with the potential for an unintended indirect recursion if one is > not careful, and i have other priorities, so i prefer for now to just > code conservatively, and only fix what im reasonably sure is broke. If you Agreed. Patch looks good to me - seems to have resolved 296 for me, too, from a quick QA check locally. cheers. -- Nathan From nscott@aconex.com Tue Oct 23 00:24:34 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 00:24:43 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9N7OVII002723 for ; Tue, 23 Oct 2007 00:24:33 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id B9A2F92CDE9 for ; Tue, 23 Oct 2007 17:24:34 +1000 (EST) Subject: pcp updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Tue, 23 Oct 2007 17:24:11 +1000 Message-Id: <1193124251.24082.36.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1416 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/pcp.git CHANGELOG | 28 GNUmakefile | 8 LSM | 48 README | 2 VERSION.pcp | 2 build/mac/GNUmakefile | 8 build/mac/build-installer | 62 - build/mac/installer-resources/ReadMe.html | 2 build/rpm/GNUmakefile | 1 build/rpm/pcp.spec.in | 7 configure | 111 +- configure.in | 68 - man/man1/GNUmakefile | 3 man/man1/pmdahotproc.1 | 330 ++++++ man/man1/pmdamailq.1 | 16 man/man1/pmie_check.1 | 94 + man/man1/pmlogger_daily.1 | 17 man/man1/pmlogsummary.1 | 5 man/man1/pmsleep.1 | 62 + man/man1/pmtop.1 | 158 +++ man/man3/pmopenlog.3 | 4 pcp.lsm.in | 48 src/GNUmakefile | 10 src/cpan/Changes | 5 src/cpan/GNUmakefile | 36 src/cpan/MANIFEST | 14 src/cpan/Makefile.PL | 10 src/cpan/PMDA.pm | 166 +++ src/cpan/PMDA.xs | 472 ++++++++ src/cpan/TODO | 112 ++ src/cpan/cvalue.c | 169 +++ src/cpan/dbprobe.pl | 82 + src/cpan/pmdadbping.pl | 118 ++ src/cpan/pmdanews.pl | 152 ++ src/cpan/pmdasimple.pl | 191 +++ src/cpan/test.pl | 100 + src/cpan/typemap | 27 src/include/builddefs.in | 1 src/include/impl.h | 1 src/include/platform_defs.h.in | 8 src/libkmtime/GNUmakefile | 35 src/libkmtime/src/GNUmakefile | 58 + src/libkmtime/src/client.c | 209 +++ src/libkmtime/src/kmtime.h | 75 + src/libpcp/src/units.c | 7 src/libpcp/src/util.c | 118 +- src/libpcp_pmc/GNUmakefile | 2 src/libpcp_pmc/examples/GNUmakefile | 2 src/libpcp_pmc/examples/fixed.c++ | 4 src/libpcp_pmc/examples/hotproc.c++ | 4 src/libpcp_pmc/pcp/GNUmakefile | 21 src/libpcp_pmc/pcp/pmc/Bool.h | 31 src/libpcp_pmc/pcp/pmc/Context.h | 178 +++ src/libpcp_pmc/pcp/pmc/Desc.h | 94 + src/libpcp_pmc/pcp/pmc/GNUmakefile | 44 src/libpcp_pmc/pcp/pmc/Group.h | 181 +++ src/libpcp_pmc/pcp/pmc/Hash.h | 125 ++ src/libpcp_pmc/pcp/pmc/Indom.h | 170 +++ src/libpcp_pmc/pcp/pmc/List.h | 331 ++++++ src/libpcp_pmc/pcp/pmc/Metric.h | 278 +++++ src/libpcp_pmc/pcp/pmc/PMC.h | 50 src/libpcp_pmc/pcp/pmc/Source.h | 140 ++ src/libpcp_pmc/pcp/pmc/String.h | 139 ++ src/libpcp_pmc/pcp/pmc/Vector.h | 203 +++ src/libpcp_pmc/src/Bool.h | 31 src/libpcp_pmc/src/Context.c++ | 4 src/libpcp_pmc/src/Context.h | 178 --- src/libpcp_pmc/src/Desc.c++ | 2 src/libpcp_pmc/src/Desc.h | 94 - src/libpcp_pmc/src/GNUmakefile | 9 src/libpcp_pmc/src/Group.c++ | 12 src/libpcp_pmc/src/Group.h | 181 --- src/libpcp_pmc/src/Hash.h | 125 -- src/libpcp_pmc/src/Indom.c++ | 4 src/libpcp_pmc/src/Indom.h | 170 --- src/libpcp_pmc/src/List.h | 331 ------ src/libpcp_pmc/src/Metric.c++ | 4 src/libpcp_pmc/src/Metric.h | 278 ----- src/libpcp_pmc/src/PMC.h | 50 src/libpcp_pmc/src/Source.c++ | 2 src/libpcp_pmc/src/Source.h | 140 -- src/libpcp_pmc/src/String.c++ | 4 src/libpcp_pmc/src/String.h | 139 -- src/libpcp_pmc/src/Vector.h | 203 --- src/libpcp_pmda/src/callback.c | 18 src/libpcp_trace/src/trace.c | 8 src/pcp/pcp.sh | 6 src/pcp/pmlogger.config | 1 src/pmcd/rc_pcp | 150 ++ src/pmcd/src/agent.c | 76 - src/pmcd/src/config.c | 5 src/pmcd/src/pmcd.c | 33 src/pmdas/GNUmakefile | 2 src/pmdas/darwin/kernel.c | 10 src/pmdas/darwin/network.c | 1 src/pmdas/darwin/pmda.c | 30 src/pmdas/hotproc/GNUmakefile | 172 +++ src/pmdas/hotproc/Install | 167 +++ src/pmdas/hotproc/Makefile | 55 + src/pmdas/hotproc/Makefile.install | 15 src/pmdas/hotproc/README | 141 ++ src/pmdas/hotproc/Remove | 43 src/pmdas/hotproc/fixpmns.awk | 35 src/pmdas/hotproc/general.conf | 28 src/pmdas/hotproc/general.pmie | 30 src/pmdas/hotproc/help.fmt | 36 src/pmdas/hotproc/help.hotproc | 141 ++ src/pmdas/hotproc/pmns.hotproc | 34 src/pmdas/hotproc/root | 10 src/pmdas/hotproc/sample.conf | 15 src/pmdas/hotproc/src/GNUmakefile | 39 src/pmdas/hotproc/src/Makefile | 112 ++ src/pmdas/hotproc/src/config.c | 589 +++++++++++ src/pmdas/hotproc/src/config.h | 84 + src/pmdas/hotproc/src/ctltab.c | 71 + src/pmdas/hotproc/src/error.c | 45 src/pmdas/hotproc/src/gram.y | 168 +++ src/pmdas/hotproc/src/gram_node.c | 209 +++ src/pmdas/hotproc/src/gram_node.h | 72 + src/pmdas/hotproc/src/hotproc.c | 1575 ++++++++++++++++++++++++++++++ src/pmdas/hotproc/src/hotproc.h | 55 + src/pmdas/hotproc/src/lex.l | 129 ++ src/pmdas/hotproc/src/pcpu.c | 111 ++ src/pmdas/hotproc/src/pcpu.h | 34 src/pmdas/hotproc/src/pglobal.c | 107 ++ src/pmdas/hotproc/src/pglobal.h | 44 src/pmdas/hotproc/src/ppred_values.c | 174 +++ src/pmdas/hotproc/src/ppred_values.h | 42 src/pmdas/linux/help | 53 - src/pmdas/linux/infiniband.c | 214 +++- src/pmdas/linux/infiniband.h | 31 src/pmdas/linux/pmda.c | 199 ++- src/pmdas/linux/proc_meminfo.c | 3 src/pmdas/linux/proc_meminfo.h | 3 src/pmdas/linux/proc_net_dev.c | 2 src/pmdas/linux/proc_net_snmp.c | 16 src/pmdas/linux/proc_net_snmp.h | 14 src/pmdas/linux/proc_partitions.c | 2 src/pmdas/linux/proc_vmstat.c | 57 - src/pmdas/linux/proc_vmstat.h | 58 - src/pmdas/linux/root_linux | 71 - src/pmdas/mailq/Install | 6 src/pmdas/mailq/mailq.c | 105 +- src/pmdas/pmcd/help | 5 src/pmdas/pmcd/src/objstyle | 5 src/pmdas/pmcd/src/pmcd.c | 19 src/pmdas/sample/help | 4 src/pmdas/sample/pmns | 4 src/pmdas/sample/src/sample.c | 95 - src/pmdas/sendmail/sendmail.c | 4 src/pmdas/windows/GNUmakefile | 4 src/pmdas/windows/data.c | 71 + src/pmdas/windows/init.c | 26 src/pmdas/windows/pmda.c | 54 - src/pmdas/windows/pmns.disk | 2 src/pmdas/windows/pmns.network | 13 src/pmdas/windows/pmns.sqlserver | 2 src/pmdas/windows/shim.c | 7 src/pmdas/windows/shim_pcp.h | 1 src/pmdas/windows/show-all-ctrs.c | 7 src/pmdumptext/GNUmakefile | 2 src/pmdumptext/pmdumptext.c++ | 6 src/pmie/GNUmakefile | 3 src/pmie/pmie_check.sh | 182 ++- src/pmie/pmie_daily.sh | 477 +++++++++ src/pmie/src/GNUmakefile | 4 src/pmie/src/act.sk | 34 src/pmie/src/aggregate.sk | 16 src/pmie/src/andor.c | 448 ++++++++ src/pmie/src/andor.h | 37 src/pmie/src/binary.sk | 6 src/pmie/src/dstruct.c | 47 src/pmie/src/eval.c | 3 src/pmie/src/fun.h | 9 src/pmie/src/lexicon.c | 17 src/pmie/src/merge.sk | 2 src/pmie/src/meta | 17 src/pmie/src/misc.sk | 2 src/pmie/src/pmie.c | 68 - src/pmie/src/syslog.c | 2 src/pmie/src/unary.sk | 2 src/pmlogctl/pmlogger_check.sh | 39 src/pmlogctl/pmlogger_daily.sh | 6 src/pmlogextract/logio.c | 2 src/pmlogreduce/logio.c | 2 src/pmlogreduce/pmlogreduce.c | 3 src/pmlogreduce/rewrite.c | 5 src/pmlogsummary/GNUmakefile | 4 src/pmlogsummary/pmlogcheck.c | 14 src/pmlogsummary/pmlogsummary.c | 39 src/pmnscomp/pmnscomp.c | 5 src/pmsleep/GNUmakefile | 42 src/pmsleep/pmsleep.c | 52 src/pmtop/GNUmakefile | 37 src/pmtop/Makefile | 26 src/pmtop/pmtop.c | 1109 +++++++++++++++++++++ src/pmval/GNUmakefile | 5 src/pmval/pmval.c | 548 +++++++--- 198 files changed, 13651 insertions(+), 2968 deletions(-) commit c2651858ca58870a5378244e8edb9bb321a4e853 Author: Nathan Scott Date: Tue Oct 23 17:13:54 2007 +1000 Revert "Revert the pmcd code part of the startup script speedups, as its causing qa 296 to fail" This reverts commit b3cb7333b224153a58443cfe5e5fd4b1b0bd2d50. Michael has now resolved this issue, and QA 296 is passing regularly. commit 9ea38a3513fcb09efac46180af99502eb49de1ed Author: Michael Newton Date: Tue Oct 23 17:06:07 2007 +1000 waitpid on dying agents at reconfig (qa/296) qa/296 fails with daemon PMDAs hanging round after a reconfigure (ie kill -HUP to pmcd). It appears that they need to be wait()ed upon. Prior to the addition of the condition || ap->ipcType == AGENT_DSO to HarvestAgents in agent.c this condition was masked by other cleanup. Previously, CleanupAgent did not waitpid() for AT_CONFIG. In addition, there is no reason to sleep every time round the waitpid() loop, and in many cases even once may be unnecessary commit 69af53b7d08d524e319216dfc174c22d9adf880f Author: Nathan Scott Date: Thu Sep 20 16:46:02 2007 +1000 Changes committed to git://oss.sgi.com:8090/nathans/pcp.git src/pmkstat/src/pmkstat.c | 3 --- src/pmlogsummary/pmlogsummary.c | 27 ++++++++++++++------------- src/pmstat/pmstat.c | 5 ----- 3 files changed, 14 insertions(+), 21 deletions(-) commit 22882947142bbcfce8a9f161531462d7123f9f25 Author: Nathan Scott Date: Tue Sep 18 17:57:21 2007 +1000 Make pmstat and pmkstat behave like others wrt timezone (default to local). commit 86edb65b550cb40518a1166f592c508249e91d9b Author: Nathan Scott Date: Tue Sep 18 17:54:26 2007 +1000 Fixes to new pmlogsummary sum mode. commit 97de07ae06c1639a613b429cb14956ab95093b27 Author: Nathan Scott Date: Thu Sep 20 16:40:04 2007 +1000 Revert reduction in wait time for pmcd to shutdown (from 8 back to 20 secs). commit 00fc94564aa58a95ac340c3c05a44deef33d6a05 Merge: 2288294... eb43c55... Author: Nathan Scott Date: Wed Sep 19 09:49:11 2007 +1000 Merge leaf:/source/git/pcp into nathans commit eb43c55c0dff67eff0b08c52b944f169c988efa8 Merge: 16d90bd... 3d9e7df... Author: Nathan Scott Date: Wed Sep 19 08:33:47 2007 +1000 Merge in SGI 2.7.4-1 PCP source from git master branch. commit 3d9e7dfc999f9e6e3dcfd71d493b073960777ed9 Author: Nathan Scott Date: Tue Sep 18 18:21:26 2007 +1000 Merge in SGI 2.7.4-1 PCP source. From nscott@aconex.com Tue Oct 23 01:10:58 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 01:11:07 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9N8AsOp008258 for ; Tue, 23 Oct 2007 01:10:57 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id B4EB292C34E for ; Tue, 23 Oct 2007 18:10:57 +1000 (EST) Subject: pcpqa updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Tue, 23 Oct 2007 18:10:33 +1000 Message-Id: <1193127033.24082.38.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1417 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/pcpqa.git 003 | 4 +++- 023 | 2 +- 041.out | 2 +- 051 | 1 + 243.out.1 | 1 + 243.out.2 | 1 + 244.out.1 | 1 + 244.out.2 | 1 + 254.out | 1 + 282.out.3 | 4 ++-- 389 | 9 ++++++++- 462.out | 2 +- 501 | 2 +- 558.out.linux | 2 +- 564.out | 4 ++-- README | 4 ++-- src-oss/trace_dev.h | 19 ++++++++++++++++++- 17 files changed, 46 insertions(+), 14 deletions(-) commit 3e4af2fe570c5acf4d688995cd76863d3766f7a6 Author: Nathan Scott Date: Tue Oct 23 18:09:06 2007 +1000 Merge in changes from SGI PCPQA 1.5 release. commit ed02dd76455d9a34aa5d1ddf14cfb58f87f9c8bd Author: Nathan Scott Date: Tue Oct 23 17:01:10 2007 +1000 Fix filter in test 003 for deprecated Linux swap.in and swap.out metrics. From o.tarnus@free.fr Tue Oct 23 17:37:14 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 17:37:20 -0700 (PDT) Received: from mailrelay006.isp.belgacom.be (mailrelay006.isp.belgacom.be [195.238.6.172]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9O0bB9t002853 for ; Tue, 23 Oct 2007 17:37:14 -0700 X-Belgacom-Dynamic: yes Received: from 250.230-200-80.adsl-dyn.isp.belgacom.be (HELO [192.168.230.20]) ([80.200.230.250]) by relay.skynet.be with ESMTP; 24 Oct 2007 02:37:13 +0200 Message-ID: <471E93B4.3000907@free.fr> Date: Wed, 24 Oct 2007 02:37:08 +0200 From: Olivier Tarnus User-Agent: Thunderbird 2.0.0.6 (X11/20070806) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: Anti-aliased and horizontal charts (was Re: kmchart updates) References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> <471C673B.5090908@free.fr> <47315.192.168.3.1.1193052894.squirrel@mail.aconex.com> In-Reply-To: <47315.192.168.3.1.1193052894.squirrel@mail.aconex.com> X-Enigmail-Version: 0.95.3 Content-Type: multipart/mixed; boundary="------------060202020405050707090905" X-archive-position: 1418 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: o.tarnus@free.fr Precedence: bulk X-list: pcp This is a multi-part message in MIME format. --------------060202020405050707090905 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Nathan, nscott@aconex.com wrote: >> Regarding the horizontal splitting, you're close to it ;-) I've a >> working prototype that load a row option for each chart and load it to a >> corresponding horizontal QSplitter that is child of the vertical >> splitter. This let user split each row by an arbitrary number. Chart >> addition/deletion is now working great. The row is actually a number, >> but I'll try to make it text to simplify usage and loading of multiple >> views. >> >> I've not worked on the time axis for the moment. >> > > Hmm. It does seem to me that vertical-inside-of-horizontal is a better way > to go than horizontal-inside-of-vertical ... but it will be good to have a > look > at your prototype and try it out, as its much easier to get a feel for > these sort > of things when you can interact with the thing. > Well actually the design is an array of horizontal qsplitters inside a vertical qsplitter. This enable to split rows differently, but becomes more tricky regarding the timeline... If we have 4 rows with different number of graphs, should I add 4 rows of timelines at the bottom? This seems not practical. I will try with grids... Attached, a patch that add a label containing value and time at the pointer when a graph is clicked. The label is below the timeline. Bye Olivier --------------060202020405050707090905 Content-Type: text/plain; name="kmchart_value_label.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="kmchart_value_label.patch" diff --git a/src/chart/chart.cpp b/src/chart/chart.cpp index c5f8b08..d8394cc 100644 --- a/src/chart/chart.cpp +++ b/src/chart/chart.cpp @@ -948,14 +948,20 @@ void Chart::setYAxisTitle(char *p) void Chart::selected(const QwtDoublePoint &p) { console->post("Chart::selected chart=%p x=%f y=%f", - this, (float)p.x(), (float)p.y()); + this, p.x(), p.y()); my.tab->setCurrent(this); + QString string; + string.sprintf("Value: %.2f %s at %s", (float)p.y(), pmUnitsStr(&my.units), timeHiResString(p.x())); + kmchart->chartValueLabel->setText(string); } void Chart::moved(const QwtDoublePoint &p) { - console->post("Chart::moved chart=%p x=%f y=%f", - this, (float)p.x(), (float)p.y()); + console->post("Chart::moved chart=%p x=%f y=%f ", + this, p.x(), p.y() ); + QString string; + string.sprintf("Value: %.2f %s at %s", (float)p.y(), pmUnitsStr(&my.units), timeHiResString(p.x())); + kmchart->chartValueLabel->setText(string); } bool Chart::legendVisible() diff --git a/src/chart/kmchart.cpp b/src/chart/kmchart.cpp index f4902d8..8b5895a 100644 --- a/src/chart/kmchart.cpp +++ b/src/chart/kmchart.cpp @@ -71,6 +71,7 @@ KmChart::KmChart() : QMainWindow(NULL) setIconSize(QSize(22, 22)); dateLabel->setFont(globalFont); + chartValueLabel->setFont(globalFont); } void KmChart::languageChange() diff --git a/src/chart/kmchart.ui b/src/chart/kmchart.ui index 47e80a5..e72abb1 100644 --- a/src/chart/kmchart.ui +++ b/src/chart/kmchart.ui @@ -168,6 +168,37 @@ + + + 0 + + + + + + 0 + 0 + + + + + + + + + + + Qt::Horizontal + + + + 20 + 20 + + + + + @@ -197,6 +228,8 @@ + + diff --git a/src/chart/main.cpp b/src/chart/main.cpp index 8fa39e0..7d80009 100644 --- a/src/chart/main.cpp +++ b/src/chart/main.cpp @@ -104,6 +104,21 @@ char *timeString(double seconds) return s; } +// return a string containing hour and milliseconds +char *timeHiResString(double time) +{ + static char s[16]; + char m[8]; + time_t secs = (time_t)time; + struct tm *t; + + sprintf(m, "%.3f", time - floor(time)); + t = localtime(&secs); + sprintf(s, "%02d:%02d:%02d.%s", t->tm_hour, t->tm_min, t->tm_sec, m+2); + s[strlen(s)-1] = '\0'; + return s; +} + double KmTime::secondsToUnits(double value, KmTime::DeltaUnits units) { switch (units) { diff --git a/src/chart/main.h b/src/chart/main.h index 0d2df57..dc75b2f 100644 --- a/src/chart/main.h +++ b/src/chart/main.h @@ -82,7 +82,7 @@ extern double tosec(struct timeval); extern double torange(struct timeval, int); extern void fromsec(double, struct timeval *); extern char *timeString(double); - +extern char *timeHiResString(double); extern void nomem(void); #endif // MAIN_H --------------060202020405050707090905-- From markgw@sgi.com Tue Oct 23 18:19:16 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 18:19:24 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9O1JA6Y014340 for ; Tue, 23 Oct 2007 18:19:13 -0700 Received: from [134.14.55.10] (dhcp10.melbourne.sgi.com [134.14.55.10]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA08569; Wed, 24 Oct 2007 11:19:06 +1000 Message-ID: <471E9D69.8030509@sgi.com> Date: Wed, 24 Oct 2007 11:18:33 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 1.5.0.13 (Windows/20070809) MIME-Version: 1.0 To: nscott@aconex.com CC: pcp@oss.sgi.com Subject: Re: pcp updates References: <1193124251.24082.36.camel@edge.yarra.acx> In-Reply-To: <1193124251.24082.36.camel@edge.yarra.acx> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 1419 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: markgw@sgi.com Precedence: bulk X-list: pcp Hi Nathan, poking around in the CHANGELOG, most recent changes are: pcp-2.7.4 (7 Sep 2007) - MaxOSX and Debian/Ubuntu build/package fixes - Add sqlserver active_transactions metrics to the Windows PMDA. - Fix a pmie_check typo causing mis-identification of pmie processes. - Allow pmie and/or operators to function with some data missing. - Resolve path naming issues with more recent versions of autoconf. - pmlogsummary report sum option - pmval kmtime support - Additional Linux SNMP metrics - Fix Linux vmstat nr_slab metrics - Make pcp status command report build version - Windows split_io metrics - Fix pmdapmcd empty pmie instance - pmdamailq filename regex - Windows TCP metrics - pmie log file rotation - Changed the default compression program to be bzip2(1) How much of your git commit (below) is not documented in the CHANGELOG, e.g. what are the libpcp changes (and libpcp_pmc?). Michael, what's the plan for reconciling this into the master internal dev tree? A fair bit of review work will be needed, followed by another round of qa and push to oss. Thanks Nathan Scott wrote: > Changes committed to git://oss.sgi.com:8090/nathans/pcp.git > > CHANGELOG | 28 > GNUmakefile | 8 > LSM | 48 > README | 2 > VERSION.pcp | 2 > build/mac/GNUmakefile | 8 > build/mac/build-installer | 62 - > build/mac/installer-resources/ReadMe.html | 2 > build/rpm/GNUmakefile | 1 > build/rpm/pcp.spec.in | 7 > configure | 111 +- > configure.in | 68 - > man/man1/GNUmakefile | 3 > man/man1/pmdahotproc.1 | 330 ++++++ > man/man1/pmdamailq.1 | 16 > man/man1/pmie_check.1 | 94 + > man/man1/pmlogger_daily.1 | 17 > man/man1/pmlogsummary.1 | 5 > man/man1/pmsleep.1 | 62 + > man/man1/pmtop.1 | 158 +++ > man/man3/pmopenlog.3 | 4 > pcp.lsm.in | 48 > src/GNUmakefile | 10 > src/cpan/Changes | 5 > src/cpan/GNUmakefile | 36 > src/cpan/MANIFEST | 14 > src/cpan/Makefile.PL | 10 > src/cpan/PMDA.pm | 166 +++ > src/cpan/PMDA.xs | 472 ++++++++ > src/cpan/TODO | 112 ++ > src/cpan/cvalue.c | 169 +++ > src/cpan/dbprobe.pl | 82 + > src/cpan/pmdadbping.pl | 118 ++ > src/cpan/pmdanews.pl | 152 ++ > src/cpan/pmdasimple.pl | 191 +++ > src/cpan/test.pl | 100 + > src/cpan/typemap | 27 > src/include/builddefs.in | 1 > src/include/impl.h | 1 > src/include/platform_defs.h.in | 8 > src/libkmtime/GNUmakefile | 35 > src/libkmtime/src/GNUmakefile | 58 + > src/libkmtime/src/client.c | 209 +++ > src/libkmtime/src/kmtime.h | 75 + > src/libpcp/src/units.c | 7 > src/libpcp/src/util.c | 118 +- > src/libpcp_pmc/GNUmakefile | 2 > src/libpcp_pmc/examples/GNUmakefile | 2 > src/libpcp_pmc/examples/fixed.c++ | 4 > src/libpcp_pmc/examples/hotproc.c++ | 4 > src/libpcp_pmc/pcp/GNUmakefile | 21 > src/libpcp_pmc/pcp/pmc/Bool.h | 31 > src/libpcp_pmc/pcp/pmc/Context.h | 178 +++ > src/libpcp_pmc/pcp/pmc/Desc.h | 94 + > src/libpcp_pmc/pcp/pmc/GNUmakefile | 44 > src/libpcp_pmc/pcp/pmc/Group.h | 181 +++ > src/libpcp_pmc/pcp/pmc/Hash.h | 125 ++ > src/libpcp_pmc/pcp/pmc/Indom.h | 170 +++ > src/libpcp_pmc/pcp/pmc/List.h | 331 ++++++ > src/libpcp_pmc/pcp/pmc/Metric.h | 278 +++++ > src/libpcp_pmc/pcp/pmc/PMC.h | 50 > src/libpcp_pmc/pcp/pmc/Source.h | 140 ++ > src/libpcp_pmc/pcp/pmc/String.h | 139 ++ > src/libpcp_pmc/pcp/pmc/Vector.h | 203 +++ > src/libpcp_pmc/src/Bool.h | 31 > src/libpcp_pmc/src/Context.c++ | 4 > src/libpcp_pmc/src/Context.h | 178 --- > src/libpcp_pmc/src/Desc.c++ | 2 > src/libpcp_pmc/src/Desc.h | 94 - > src/libpcp_pmc/src/GNUmakefile | 9 > src/libpcp_pmc/src/Group.c++ | 12 > src/libpcp_pmc/src/Group.h | 181 --- > src/libpcp_pmc/src/Hash.h | 125 -- > src/libpcp_pmc/src/Indom.c++ | 4 > src/libpcp_pmc/src/Indom.h | 170 --- > src/libpcp_pmc/src/List.h | 331 ------ > src/libpcp_pmc/src/Metric.c++ | 4 > src/libpcp_pmc/src/Metric.h | 278 ----- > src/libpcp_pmc/src/PMC.h | 50 > src/libpcp_pmc/src/Source.c++ | 2 > src/libpcp_pmc/src/Source.h | 140 -- > src/libpcp_pmc/src/String.c++ | 4 > src/libpcp_pmc/src/String.h | 139 -- > src/libpcp_pmc/src/Vector.h | 203 --- > src/libpcp_pmda/src/callback.c | 18 > src/libpcp_trace/src/trace.c | 8 > src/pcp/pcp.sh | 6 > src/pcp/pmlogger.config | 1 > src/pmcd/rc_pcp | 150 ++ > src/pmcd/src/agent.c | 76 - > src/pmcd/src/config.c | 5 > src/pmcd/src/pmcd.c | 33 > src/pmdas/GNUmakefile | 2 > src/pmdas/darwin/kernel.c | 10 > src/pmdas/darwin/network.c | 1 > src/pmdas/darwin/pmda.c | 30 > src/pmdas/hotproc/GNUmakefile | 172 +++ > src/pmdas/hotproc/Install | 167 +++ > src/pmdas/hotproc/Makefile | 55 + > src/pmdas/hotproc/Makefile.install | 15 > src/pmdas/hotproc/README | 141 ++ > src/pmdas/hotproc/Remove | 43 > src/pmdas/hotproc/fixpmns.awk | 35 > src/pmdas/hotproc/general.conf | 28 > src/pmdas/hotproc/general.pmie | 30 > src/pmdas/hotproc/help.fmt | 36 > src/pmdas/hotproc/help.hotproc | 141 ++ > src/pmdas/hotproc/pmns.hotproc | 34 > src/pmdas/hotproc/root | 10 > src/pmdas/hotproc/sample.conf | 15 > src/pmdas/hotproc/src/GNUmakefile | 39 > src/pmdas/hotproc/src/Makefile | 112 ++ > src/pmdas/hotproc/src/config.c | 589 +++++++++++ > src/pmdas/hotproc/src/config.h | 84 + > src/pmdas/hotproc/src/ctltab.c | 71 + > src/pmdas/hotproc/src/error.c | 45 > src/pmdas/hotproc/src/gram.y | 168 +++ > src/pmdas/hotproc/src/gram_node.c | 209 +++ > src/pmdas/hotproc/src/gram_node.h | 72 + > src/pmdas/hotproc/src/hotproc.c | 1575 > ++++++++++++++++++++++++++++++ > src/pmdas/hotproc/src/hotproc.h | 55 + > src/pmdas/hotproc/src/lex.l | 129 ++ > src/pmdas/hotproc/src/pcpu.c | 111 ++ > src/pmdas/hotproc/src/pcpu.h | 34 > src/pmdas/hotproc/src/pglobal.c | 107 ++ > src/pmdas/hotproc/src/pglobal.h | 44 > src/pmdas/hotproc/src/ppred_values.c | 174 +++ > src/pmdas/hotproc/src/ppred_values.h | 42 > src/pmdas/linux/help | 53 - > src/pmdas/linux/infiniband.c | 214 +++- > src/pmdas/linux/infiniband.h | 31 > src/pmdas/linux/pmda.c | 199 ++- > src/pmdas/linux/proc_meminfo.c | 3 > src/pmdas/linux/proc_meminfo.h | 3 > src/pmdas/linux/proc_net_dev.c | 2 > src/pmdas/linux/proc_net_snmp.c | 16 > src/pmdas/linux/proc_net_snmp.h | 14 > src/pmdas/linux/proc_partitions.c | 2 > src/pmdas/linux/proc_vmstat.c | 57 - > src/pmdas/linux/proc_vmstat.h | 58 - > src/pmdas/linux/root_linux | 71 - > src/pmdas/mailq/Install | 6 > src/pmdas/mailq/mailq.c | 105 +- > src/pmdas/pmcd/help | 5 > src/pmdas/pmcd/src/objstyle | 5 > src/pmdas/pmcd/src/pmcd.c | 19 > src/pmdas/sample/help | 4 > src/pmdas/sample/pmns | 4 > src/pmdas/sample/src/sample.c | 95 - > src/pmdas/sendmail/sendmail.c | 4 > src/pmdas/windows/GNUmakefile | 4 > src/pmdas/windows/data.c | 71 + > src/pmdas/windows/init.c | 26 > src/pmdas/windows/pmda.c | 54 - > src/pmdas/windows/pmns.disk | 2 > src/pmdas/windows/pmns.network | 13 > src/pmdas/windows/pmns.sqlserver | 2 > src/pmdas/windows/shim.c | 7 > src/pmdas/windows/shim_pcp.h | 1 > src/pmdas/windows/show-all-ctrs.c | 7 > src/pmdumptext/GNUmakefile | 2 > src/pmdumptext/pmdumptext.c++ | 6 > src/pmie/GNUmakefile | 3 > src/pmie/pmie_check.sh | 182 ++- > src/pmie/pmie_daily.sh | 477 +++++++++ > src/pmie/src/GNUmakefile | 4 > src/pmie/src/act.sk | 34 > src/pmie/src/aggregate.sk | 16 > src/pmie/src/andor.c | 448 ++++++++ > src/pmie/src/andor.h | 37 > src/pmie/src/binary.sk | 6 > src/pmie/src/dstruct.c | 47 > src/pmie/src/eval.c | 3 > src/pmie/src/fun.h | 9 > src/pmie/src/lexicon.c | 17 > src/pmie/src/merge.sk | 2 > src/pmie/src/meta | 17 > src/pmie/src/misc.sk | 2 > src/pmie/src/pmie.c | 68 - > src/pmie/src/syslog.c | 2 > src/pmie/src/unary.sk | 2 > src/pmlogctl/pmlogger_check.sh | 39 > src/pmlogctl/pmlogger_daily.sh | 6 > src/pmlogextract/logio.c | 2 > src/pmlogreduce/logio.c | 2 > src/pmlogreduce/pmlogreduce.c | 3 > src/pmlogreduce/rewrite.c | 5 > src/pmlogsummary/GNUmakefile | 4 > src/pmlogsummary/pmlogcheck.c | 14 > src/pmlogsummary/pmlogsummary.c | 39 > src/pmnscomp/pmnscomp.c | 5 > src/pmsleep/GNUmakefile | 42 > src/pmsleep/pmsleep.c | 52 > src/pmtop/GNUmakefile | 37 > src/pmtop/Makefile | 26 > src/pmtop/pmtop.c | 1109 +++++++++++++++++++++ > src/pmval/GNUmakefile | 5 > src/pmval/pmval.c | 548 +++++++--- > 198 files changed, 13651 insertions(+), 2968 deletions(-) > > commit c2651858ca58870a5378244e8edb9bb321a4e853 > Author: Nathan Scott > Date: Tue Oct 23 17:13:54 2007 +1000 > > Revert "Revert the pmcd code part of the startup script speedups, as > its causing qa 296 to fail" > > This reverts commit b3cb7333b224153a58443cfe5e5fd4b1b0bd2d50. > > Michael has now resolved this issue, and QA 296 is passing > regularly. > > commit 9ea38a3513fcb09efac46180af99502eb49de1ed > Author: Michael Newton > Date: Tue Oct 23 17:06:07 2007 +1000 > > waitpid on dying agents at reconfig (qa/296) > > qa/296 fails with daemon PMDAs hanging round after a reconfigure (ie > kill -HUP to pmcd). It appears that they need to be wait()ed upon. > Prior to the addition of the condition || ap->ipcType == AGENT_DSO > to HarvestAgents in agent.c this condition was masked by other > cleanup. > Previously, CleanupAgent did not waitpid() for AT_CONFIG. In > addition, > there is no reason to sleep every time round the waitpid() loop, and > in > many cases even once may be unnecessary > > commit 69af53b7d08d524e319216dfc174c22d9adf880f > Author: Nathan Scott > Date: Thu Sep 20 16:46:02 2007 +1000 > > Changes committed to git://oss.sgi.com:8090/nathans/pcp.git > > src/pmkstat/src/pmkstat.c | 3 --- > src/pmlogsummary/pmlogsummary.c | 27 ++++++++++++++------------- > src/pmstat/pmstat.c | 5 ----- > 3 files changed, 14 insertions(+), 21 deletions(-) > > commit 22882947142bbcfce8a9f161531462d7123f9f25 > Author: Nathan Scott > Date: Tue Sep 18 17:57:21 2007 +1000 > > Make pmstat and pmkstat behave like others wrt timezone (default > to local). > > commit 86edb65b550cb40518a1166f592c508249e91d9b > Author: Nathan Scott > Date: Tue Sep 18 17:54:26 2007 +1000 > > Fixes to new pmlogsummary sum mode. > > commit 97de07ae06c1639a613b429cb14956ab95093b27 > Author: Nathan Scott > Date: Thu Sep 20 16:40:04 2007 +1000 > > Revert reduction in wait time for pmcd to shutdown (from 8 back to > 20 secs). > > commit 00fc94564aa58a95ac340c3c05a44deef33d6a05 > Merge: 2288294... eb43c55... > Author: Nathan Scott > Date: Wed Sep 19 09:49:11 2007 +1000 > > Merge leaf:/source/git/pcp into nathans > > commit eb43c55c0dff67eff0b08c52b944f169c988efa8 > Merge: 16d90bd... 3d9e7df... > Author: Nathan Scott > Date: Wed Sep 19 08:33:47 2007 +1000 > > Merge in SGI 2.7.4-1 PCP source from git master branch. > > commit 3d9e7dfc999f9e6e3dcfd71d493b073960777ed9 > Author: Nathan Scott > Date: Tue Sep 18 18:21:26 2007 +1000 > > Merge in SGI 2.7.4-1 PCP source. > > > > -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From kimbrr@sgi.com Tue Oct 23 18:31:24 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 18:31:31 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9O1VKJS016304 for ; Tue, 23 Oct 2007 18:31:22 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA08946; Wed, 24 Oct 2007 11:31:16 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l9O1VFdD78684305; Wed, 24 Oct 2007 11:31:16 +1000 (AEST) Received: from localhost (kimbrr@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) with ESMTP id l9O1VETY78639693; Wed, 24 Oct 2007 11:31:14 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: kimbrr owned process doing -bs Date: Wed, 24 Oct 2007 11:31:14 +1000 From: Michael Newton X-X-Sender: kimbrr@snort.melbourne.sgi.com To: Mark Goodwin cc: nscott@aconex.com, pcp@oss.sgi.com Subject: Re: pcp updates In-Reply-To: <471E9D69.8030509@sgi.com> Message-ID: References: <1193124251.24082.36.camel@edge.yarra.acx> <471E9D69.8030509@sgi.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-archive-position: 1420 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: kimbrr@sgi.com Precedence: bulk X-list: pcp Mark, don't panic. The bulk of these changes are nathan merging 2.7.4-1 into his git tree. The changelog stuff you quote is from 2.7.4-1. Dr.Michael("Kimba")Newton kimbrr@sgi.com From markgw@sgi.com Tue Oct 23 18:39:30 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 18:39:35 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9O1dQjD017025 for ; Tue, 23 Oct 2007 18:39:29 -0700 Received: from [134.14.55.10] (dhcp10.melbourne.sgi.com [134.14.55.10]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA09120; Wed, 24 Oct 2007 11:39:18 +1000 Message-ID: <471EA226.2060905@sgi.com> Date: Wed, 24 Oct 2007 11:38:46 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 1.5.0.13 (Windows/20070809) MIME-Version: 1.0 To: Michael Newton CC: nscott@aconex.com, pcp@oss.sgi.com Subject: Re: pcp updates References: <1193124251.24082.36.camel@edge.yarra.acx> <471E9D69.8030509@sgi.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 1421 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: markgw@sgi.com Precedence: bulk X-list: pcp Michael Newton wrote: > Mark, don't panic. The bulk of these changes are nathan merging 2.7.4-1 > into his git tree. The changelog stuff you quote is from 2.7.4-1. ok I've stopped panicking :-) However, moving fwd, I really think we need some scripts to manage git/ptools merges. There are scripts we can leverage from XFS for this. Thanks -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From nscott@aconex.com Tue Oct 23 18:41:22 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 18:41:28 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9O1fJlF017489 for ; Tue, 23 Oct 2007 18:41:22 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id B273492C2DD; Wed, 24 Oct 2007 11:41:22 +1000 (EST) Subject: Re: pcp updates From: Nathan Scott Reply-To: nscott@aconex.com To: markgw@sgi.com, kimbrr@sgi.com Cc: pcp@oss.sgi.com In-Reply-To: <471E9D69.8030509@sgi.com> References: <1193124251.24082.36.camel@edge.yarra.acx> <471E9D69.8030509@sgi.com> Content-Type: text/plain Organization: Aconex Date: Wed, 24 Oct 2007 11:41:00 +1000 Message-Id: <1193190060.24082.61.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1422 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp On Wed, 2007-10-24 at 11:18 +1000, Mark Goodwin wrote: > Hi Nathan, > > poking around in the CHANGELOG, most recent changes are: > > pcp-2.7.4 (7 Sep 2007) > - MaxOSX and Debian/Ubuntu build/package fixes > - Add sqlserver active_transactions metrics to the Windows PMDA. > - Fix a pmie_check typo causing mis-identification of pmie > processes. > - Allow pmie and/or operators to function with some data missing. > - Resolve path naming issues with more recent versions of > autoconf. > - pmlogsummary report sum option > - pmval kmtime support > - Additional Linux SNMP metrics > - Fix Linux vmstat nr_slab metrics > - Make pcp status command report build version > - Windows split_io metrics > - Fix pmdapmcd empty pmie instance > - pmdamailq filename regex > - Windows TCP metrics > - pmie log file rotation > - Changed the default compression program to be bzip2(1) > > > How much of your git commit (below) is not documented in the > CHANGELOG, e.g. what are the libpcp changes (and libpcp_pmc?). Much of that particular git commit is SGI code (merged into my git tree). Not sure which libpcp_pmc/libpcp changes you mean there, I haven't changed anything in either of those for ages. Theres odds and ends going into the pcp git tree from time to time, but Michael works through those and merges them back into your internal trees as time permits. > Michael, what's the plan for reconciling this into the master > internal dev tree? A fair bit of review work will be needed, > followed by another round of qa and push to oss. That is the plan (I'd imagine). Then rinse, repeat, rinse, repeat - as new stuff is incoming all the time. BTW, at some point it'd be good to discuss the libpcp changes for different contexts with different proxy hosts (and the associated pmMetricSpec changes you mentioned the other day Mark) - is this something you guys might look at developing? Its not going to see light of day from me for a long time (kmchart eating lots of time), but the user interface support for that in kmchart is mostly there and it'd be a _really_ useful feature... Maybe you guys could write it up (if you have cycles to implement it), and post a plan/detailed design? Theres some notes at the end of the kmchart/README file about this, but doesn't go into enough detail. And its a core PCP change, with API extensions, so I'd really prefer it if you guys could take it on (I'll happily sign up for implementing the kmchart side of things if you implement the libpcp support). cheers. -- Nathan From markgw@sgi.com Tue Oct 23 18:58:33 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 18:58:38 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9O1wUhS020980 for ; Tue, 23 Oct 2007 18:58:32 -0700 Received: from [134.14.55.10] (dhcp10.melbourne.sgi.com [134.14.55.10]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA09560; Wed, 24 Oct 2007 11:58:27 +1000 Message-ID: <471EA6A2.1000804@sgi.com> Date: Wed, 24 Oct 2007 11:57:54 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 1.5.0.13 (Windows/20070809) MIME-Version: 1.0 To: nscott@aconex.com CC: kimbrr@sgi.com, pcp@oss.sgi.com Subject: Re: pcp updates References: <1193124251.24082.36.camel@edge.yarra.acx> <471E9D69.8030509@sgi.com> <1193190060.24082.61.camel@edge.yarra.acx> In-Reply-To: <1193190060.24082.61.camel@edge.yarra.acx> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-archive-position: 1423 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: markgw@sgi.com Precedence: bulk X-list: pcp Nathan Scott wrote: > On Wed, 2007-10-24 at 11:18 +1000, Mark Goodwin wrote: > Much of that particular git commit is SGI code (merged into my git > tree). yes, as Michael already pointed out. >> Michael, what's the plan for reconciling this into the master >> internal dev tree? A fair bit of review work will be needed, >> followed by another round of qa and push to oss. > > That is the plan (I'd imagine). Then rinse, repeat, rinse, repeat - > as new stuff is incoming all the time. yeah ok, I'd still like to see some scripts though. > BTW, at some point it'd be good to discuss the libpcp changes for > different contexts with different proxy hosts (and the associated > pmMetricSpec changes you mentioned the other day Mark) - is this > something you guys might look at developing? Its not going to see > light of day from me for a long time (kmchart eating lots of time), > but the user interface support for that in kmchart is mostly there > and it'd be a _really_ useful feature... yes, eventually. We have multiple-firewall situations to handle with the new SGI clusters. The high level spec is quite simple: augment the hostname argument to pmNewContext to allow a chain of proxys separated by literal ':'. e.g. pminfo -h proxy_a:proxy_b:targethost then hack pmproxy so it can follow chains. No changes required to any existing apps (other than pmproxy). Not sure how much of this is worth doing since ssh tunnels can achieve the same thing, albeit a lot less conveniently, but with better security options. For the metricSpec changes: support for the proxy: syntax in the host component, and regex in the metric and optional instance components. Thanks -- Mark From nscott@aconex.com Tue Oct 23 19:12:16 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 19:12:21 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9O2CEIR022119 for ; Tue, 23 Oct 2007 19:12:15 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 9BBBA92C2DD; Wed, 24 Oct 2007 12:12:17 +1000 (EST) Subject: pmproxy libpcp extensions (Re: pcp updates) From: Nathan Scott Reply-To: nscott@aconex.com To: markgw@sgi.com Cc: kimbrr@sgi.com, pcp@oss.sgi.com In-Reply-To: <471EA6A2.1000804@sgi.com> References: <1193124251.24082.36.camel@edge.yarra.acx> <471E9D69.8030509@sgi.com> <1193190060.24082.61.camel@edge.yarra.acx> <471EA6A2.1000804@sgi.com> Content-Type: text/plain Organization: Aconex Date: Wed, 24 Oct 2007 12:11:54 +1000 Message-Id: <1193191914.24082.74.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1424 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp On Wed, 2007-10-24 at 11:57 +1000, Mark Goodwin wrote: > > yes, eventually. We have multiple-firewall situations to handle with > the new SGI clusters. The high level spec is quite simple: augment > the hostname argument to pmNewContext to allow a chain of proxys > separated by literal ':'. e.g. pminfo -h proxy_a:proxy_b:targethost That syntax is inconsistent with other tools, like ssh. We also should cater for a port number in the syntax, so something like: pminfo -h target:4331@proxy:7885 would probably be more like what people expect (certainly the semi- colon-for-port-number part, not sure about the target/proxy ordering, and the @ separator might not be ideal, but at least its guaranteed not to be in use in a hostname already). The proxy chaining is really not something I see a need for, myself, and is a separate problem to the client / PMPROXY_HOST env var issue. > then hack pmproxy so it can follow chains. No changes required > to any existing apps (other than pmproxy). Not sure how much of this > is worth doing since ssh tunnels can achieve the same thing, albeit > a lot less conveniently, but with better security options. End point for me is I'd really like to be able plot multiple hosts in a single kmchart chart, where each plot is from a different host behind a different proxy. This cant be done today, and ssh port forwarding alone wont solve that class of problem. cheers. -- Nathan From nscott@aconex.com Tue Oct 23 20:14:45 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 23 Oct 2007 20:14:51 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9O3Eg1m027606 for ; Tue, 23 Oct 2007 20:14:45 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 6316092C500 for ; Wed, 24 Oct 2007 13:14:43 +1000 (EST) Subject: Re: Anti-aliased and horizontal charts (was Re: kmchart updates) From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com In-Reply-To: <1193192503.24082.84.camel@edge.yarra.acx> References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> <471C673B.5090908@free.fr> <47315.192.168.3.1.1193052894.squirrel@mail.aconex.com> <471E93B4.3000907@free.fr> <1193192503.24082.84.camel@edge.yarra.acx> Content-Type: text/plain Organization: Aconex Date: Wed, 24 Oct 2007 13:14:20 +1000 Message-Id: <1193195660.24082.86.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1425 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Maybe that attached image was too big, here's a pointer: http://oss.sgi.com/~nathans/vertical.png On Wed, 2007-10-24 at 12:21 +1000, Nathan Scott wrote: > On Wed, 2007-10-24 at 02:37 +0200, Olivier Tarnus wrote: > > Hi Nathan, > > > > nscott@aconex.com wrote: > > >> Regarding the horizontal splitting, you're close to it ;-) I've a > > >> working prototype that load a row option for each chart and load it to a > > >> corresponding horizontal QSplitter that is child of the vertical > > >> splitter. This let user split each row by an arbitrary number. Chart > > >> addition/deletion is now working great. The row is actually a number, > > >> but I'll try to make it text to simplify usage and loading of multiple > > >> views. > > >> > > >> I've not worked on the time axis for the moment. > > >> > > > > > > Hmm. It does seem to me that vertical-inside-of-horizontal is a better way > > > to go than horizontal-inside-of-vertical ... but it will be good to have a > > > look > > > at your prototype and try it out, as its much easier to get a feel for > > > these sort > > > of things when you can interact with the thing. > > > > > Well actually the design is an array of horizontal qsplitters inside a > > vertical qsplitter. This enable to split rows differently, but becomes > > more tricky regarding the timeline... > > If we have 4 rows with different number of graphs, should I add 4 rows > > of timelines at the bottom? This seems not practical. > > Attached image is a mock-up of how I imagine this feature should look. > This could be done with a single horizonal QSplitter and multiple > vertical QSplitter children of that single horizonal splitter. That > would allow the height and width of all charts to be independently > resized, while still maintaining the (critical) functionality that is > the vertical alignment of multiple charts with a time axis. > > The New/Edit Tab dialog would need a "Columns:" label+spinbox, and that > would drive the number of vertical resize handles (number of vertical > QSplitters within the one horizonal QSplitter. > > > I will try with grids... > > Hmm, they don't give the little handles for the user to resize however > they want, do they? Not sure. > > > Attached, a patch that add a label containing value and time at the > > pointer when a graph is clicked. The label is below the timeline. > > Sounds good - will take a look. > > cheers. > > -- > Nathan From nscott@aconex.com Wed Oct 24 04:40:35 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 24 Oct 2007 04:40:42 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9OBeXtt028142 for ; Wed, 24 Oct 2007 04:40:34 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 1848892CEAE; Wed, 24 Oct 2007 21:40:37 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Wed, 24 Oct 2007 21:41:00 +1000 (EST) Message-ID: <58057.192.168.3.1.1193226060.squirrel@mail.aconex.com> Date: Wed, 24 Oct 2007 21:41:00 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com Cc: "Olivier Tarnus" User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1426 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp (Whoops, got the attribution wrong on the second change here, that one was from me). Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/chart.cpp | 20 ++++++--- src/chart/kmchart.cpp | 33 ++++++++++++++- src/chart/kmchart.h | 5 ++ src/chart/kmchart.ui | 104 ++++++++++++++++++++++++++++++++++---------------- src/chart/main.cpp | 17 +++++++- src/chart/main.h | 2 6 files changed, 137 insertions(+), 44 deletions(-) commit f92954ae5bff3f52bd76171d2ecb3824a3e52a8a Merge: 7c561fb... 6fe5f34... Author: Nathan Scott Date: Wed Oct 24 21:29:11 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit 7c561fb5cc463646e765d18ff2e178d113107d31 Author: Nathan Scott Date: Wed Oct 24 21:28:26 2007 +1000 As screen real estate is at a premium in the time axis frame when window resized smaller, remove "Value:" label for current value/timestamp and put the info in braces instead (which gives a clearer delineation between the left-aligned value and right- aligned value/timestamp for small windows. commit a32647734dcc6f829dafd1236ce55b2f7da8020a Author: Nathan Scott Date: Wed Oct 24 21:20:51 2007 +1000 Delay initial creation of all global dialogs. This provides a good boost to how quickly we can realise the top level window and begin interacting with the user. However, we do not delay dialog creation until initial user request (done using a timer) for a dialog as that would just shift the problem to there, and make the first open of a dialog noticably slower. If a dialog is requested before the time expires, then we do have to create the dialogs then and there, but it'd takes a fairly speedy user to see that relative slowness. commit 896dff863212bb621be5c5435c3d064a92abb908 Author: Olivier Tarnus Date: Wed Oct 24 18:09:00 2007 +1000 Add a timer to clear the value label after several seconds of no change. commit c30c601dcb4c2d324273c3e882077fadb2e2b195 Author: Olivier Tarnus Date: Wed Oct 24 17:25:22 2007 +1000 Add a text label to report on the current time/value pair for any point selected from a chart. From nscott@aconex.com Tue Oct 23 19:24:15 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 24 Oct 2007 06:23:35 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9O2OCef023322 for ; Tue, 23 Oct 2007 19:24:14 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 1471392D153; Wed, 24 Oct 2007 12:22:06 +1000 (EST) Subject: Re: Anti-aliased and horizontal charts (was Re: kmchart updates) From: Nathan Scott Reply-To: nscott@aconex.com To: Olivier Tarnus Cc: pcp@oss.sgi.com In-Reply-To: <471E93B4.3000907@free.fr> References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> <471C673B.5090908@free.fr> <47315.192.168.3.1.1193052894.squirrel@mail.aconex.com> <471E93B4.3000907@free.fr> Content-Type: multipart/mixed; boundary="=-yQ05o57aT+SOQB6v4cNV" Organization: Aconex Date: Wed, 24 Oct 2007 12:21:43 +1000 Message-Id: <1193192503.24082.84.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 X-archive-position: 1427 X-Approved-By: makc@sgi.com X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp --=-yQ05o57aT+SOQB6v4cNV Content-Type: text/plain Content-Transfer-Encoding: 7bit On Wed, 2007-10-24 at 02:37 +0200, Olivier Tarnus wrote: > Hi Nathan, > > nscott@aconex.com wrote: > >> Regarding the horizontal splitting, you're close to it ;-) I've a > >> working prototype that load a row option for each chart and load it to a > >> corresponding horizontal QSplitter that is child of the vertical > >> splitter. This let user split each row by an arbitrary number. Chart > >> addition/deletion is now working great. The row is actually a number, > >> but I'll try to make it text to simplify usage and loading of multiple > >> views. > >> > >> I've not worked on the time axis for the moment. > >> > > > > Hmm. It does seem to me that vertical-inside-of-horizontal is a better way > > to go than horizontal-inside-of-vertical ... but it will be good to have a > > look > > at your prototype and try it out, as its much easier to get a feel for > > these sort > > of things when you can interact with the thing. > > > Well actually the design is an array of horizontal qsplitters inside a > vertical qsplitter. This enable to split rows differently, but becomes > more tricky regarding the timeline... > If we have 4 rows with different number of graphs, should I add 4 rows > of timelines at the bottom? This seems not practical. Attached image is a mock-up of how I imagine this feature should look. This could be done with a single horizonal QSplitter and multiple vertical QSplitter children of that single horizonal splitter. That would allow the height and width of all charts to be independently resized, while still maintaining the (critical) functionality that is the vertical alignment of multiple charts with a time axis. The New/Edit Tab dialog would need a "Columns:" label+spinbox, and that would drive the number of vertical resize handles (number of vertical QSplitters within the one horizonal QSplitter. > I will try with grids... Hmm, they don't give the little handles for the user to resize however they want, do they? Not sure. > Attached, a patch that add a label containing value and time at the > pointer when a graph is clicked. The label is below the timeline. Sounds good - will take a look. cheers. -- Nathan --=-yQ05o57aT+SOQB6v4cNV Content-Disposition: attachment; filename=vertical.png Content-Type: image/png; name=vertical.png Content-Transfer-Encoding: base64 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 --=-yQ05o57aT+SOQB6v4cNV-- From makc@melbourne.sgi.com Wed Oct 24 08:23:33 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 24 Oct 2007 08:23:38 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9OFNS8H030437 for ; Wed, 24 Oct 2007 08:23:32 -0700 Received: from kuku.melbourne.sgi.com (kuku.melbourne.sgi.com [134.14.55.163]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id BAA29763; Thu, 25 Oct 2007 01:08:46 +1000 Received: from kuku.melbourne.sgi.com (localhost [127.0.0.1]) by kuku.melbourne.sgi.com (SGI-8.12.11.20060308/8.12.11) with ESMTP id l9OF8kGQ1849075; Thu, 25 Oct 2007 01:08:46 +1000 (EST) Received: (from makc@localhost) by kuku.melbourne.sgi.com (SGI-8.12.11.20060308/8.12.11/Submit) id l9OF8isE1827336; Thu, 25 Oct 2007 01:08:44 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <18207.24571.983566.372448@kuku.melbourne.sgi.com> Date: Thu, 25 Oct 2007 01:08:43 +1000 From: Max Matveev To: nscott@aconex.com Cc: pcp@oss.sgi.com Subject: Re: Anti-aliased and horizontal charts (was Re: kmchart updates) In-Reply-To: <1193192503.24082.84.camel@edge.yarra.acx> References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> <471C673B.5090908@free.fr> <47315.192.168.3.1.1193052894.squirrel@mail.aconex.com> <471E93B4.3000907@free.fr> <1193192503.24082.84.camel@edge.yarra.acx> X-Mailer: VM 7.07 under 21.4 (patch 15) "Security Through Obscurity" XEmacs Lucid X-archive-position: 1428 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: makc@sgi.com Precedence: bulk X-list: pcp Talking about hirozontal charts - did you ever considered placing timeline veritically and plotting metrics horizontally? Considering that most displays have more pixels in width then in height it could allow more stacked plots on one timeline which I find quite useful when trying to figure out what was going on when something has happen. max From nscott@aconex.com Wed Oct 24 16:19:30 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 24 Oct 2007 16:19:35 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9ONJR7q024620 for ; Wed, 24 Oct 2007 16:19:30 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 51B2A92C3F2; Thu, 25 Oct 2007 09:19:30 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 25 Oct 2007 09:19:53 +1000 (EST) Message-ID: <53243.192.168.3.1.1193267993.squirrel@mail.aconex.com> In-Reply-To: <18207.24571.983566.372448@kuku.melbourne.sgi.com> References: <1192778270.24082.6.camel@edge.yarra.acx> <471A8965.9020405@free.fr> <34244.192.168.3.1.1193009560.squirrel@mail.aconex.com> <471C673B.5090908@free.fr> <47315.192.168.3.1.1193052894.squirrel@mail.aconex.com> <471E93B4.3000907@free.fr> <1193192503.24082.84.camel@edge.yarra.acx> <18207.24571.983566.372448@kuku.melbourne.sgi.com> Date: Thu, 25 Oct 2007 09:19:53 +1000 (EST) Subject: Re: Anti-aliased and horizontal charts (was Re: kmchart updates) From: nscott@aconex.com To: "Max Matveev" Cc: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1429 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp > > Talking about hirozontal charts - did you ever considered placing > timeline veritically and plotting metrics horizontally? Considering > that most displays have more pixels in width then in height it could > allow more stacked plots on one timeline which I find quite useful > when trying to figure out what was going on when something has happen. Mmmm, interesting - shouldn't be impossible - Qwt supports axis transforms natively I think, and then its mainly layout issues on moving the time axis and laying out the labels differently, etc. If the time control button and time axis were pushed up into the individual tabs (which we may need to do anyway for Oliviers horizontal charts) then you could even have some tabs going up/down and others running left-to-right ... freeaky). Pretty sure this layout scheme would give me a sore neck though, what with me having to put my head on its side to look at the screen all the time. :) cheers. -- Nathan From nscott@aconex.com Wed Oct 24 16:58:41 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 24 Oct 2007 16:58:49 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9ONwdV4027818 for ; Wed, 24 Oct 2007 16:58:41 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 9841392C2AD for ; Thu, 25 Oct 2007 09:58:42 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 25 Oct 2007 09:59:06 +1000 (EST) Message-ID: <56610.192.168.3.1.1193270346.squirrel@mail.aconex.com> Date: Thu, 25 Oct 2007 09:59:06 +1000 (EST) Subject: pcp updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1430 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/pcp.git configure.in | 19 ++++++++++++++++--- src/include/platform_defs.h.in | 11 +++++++---- src/libpcp/src/logmeta.c | 1 + src/libpcp/src/pmns.c | 1 + src/pmdas/sample/Install | 4 +++- src/pmns/pmnsdel.c | 1 + src/pmns/pmnsmerge.c | 1 + src/pmnscomp/pmnscomp.c | 1 + 8 files changed, 31 insertions(+), 8 deletions(-) commit 05105512d6ae858cc83999b4fcb7e7e5df8fa90c Author: Nathan Scott Date: Thu Oct 25 09:56:55 2007 +1000 Tweak the configure logic for ptrdiff_t, which comes from stddef.h on MacOSX, and not malloc.h which doesn't exist on that platform. Fix a couple of typos in configure and platform_defs too. commit 2f4a1c8805ad3ae47473b07080cf3736a8a66b9a Author: Nathan Scott Date: Thu Oct 25 09:00:46 2007 +1000 Fix sample PMDA in DSO mode on MacOSX, where DSO suffix is not ".so". From nscott@aconex.com Thu Oct 25 02:26:46 2007 Received: with ECARTIS (v1.0.0; list pcp); Thu, 25 Oct 2007 02:26:52 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9P9Qf6x011996 for ; Thu, 25 Oct 2007 02:26:46 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 03A4592D639 for ; Thu, 25 Oct 2007 19:26:43 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 25 Oct 2007 19:27:06 +1000 (EST) Message-ID: <47933.192.168.3.1.1193304426.squirrel@mail.aconex.com> Date: Thu, 25 Oct 2007 19:27:06 +1000 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1431 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git src/chart/GNUmakefile | 13 +++++---- src/chart/timeaxis.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++------- src/chart/timeaxis.h | 10 ++++++- src/query/GNUmakefile | 2 - src/time/GNUmakefile | 4 +- 5 files changed, 76 insertions(+), 19 deletions(-) commit 4713c2cc5d82c9cb8177bb8dabb2593efdf99c36 Merge: 9709272... adabd8e... Author: Nathan Scott Date: Thu Oct 25 19:24:18 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit 97092727ba079fd364abebac469a6aa61dbb970e Author: Nathan Scott Date: Thu Oct 25 17:21:44 2007 +1000 Rework the logic behind the setting of time axis tick marks. This now is much easier to interpret, as we attempt to keep some consistency (and do "rounding") between major ticks. We also display more minor ticks more often, also helping with tick-mark readability. commit adabd8e52c054f792e67c2165e91fe1069b20d03 Author: Nathan Scott Date: Thu Oct 25 15:14:02 2007 +1000 Fix generation of the source tarball/rpm (missing various files due to out-of-date macros) - thanks to Chandana De Silva for reporting. From nscott@aconex.com Sun Oct 28 17:40:19 2007 Received: with ECARTIS (v1.0.0; list pcp); Sun, 28 Oct 2007 17:40:27 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9T0eIff024564 for ; Sun, 28 Oct 2007 17:40:19 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id AF29A92C387 for ; Mon, 29 Oct 2007 11:40:21 +1100 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Mon, 29 Oct 2007 11:40:12 +1100 Message-Id: <1193618412.3862.20.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1432 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 81 ++--------------------------------------- VERSION | 2 - doc/CHANGES | 7 +++ man/html/charts.html | 19 +++++++++ man/html/pmchart.html | 21 ++++++++++ src/chart/chart.cpp | 1 src/chart/timeaxis.cpp | 35 ++++++++--------- src/chart/views/Diskbytes | 6 +++ src/chart/views/GNUmakefile | 3 + src/libqwt/qwt_plot.cpp | 3 + src/libqwt/qwt_plot_layout.cpp | 53 ++++++++++++++++++++++++-- src/libqwt/qwt_plot_layout.h | 3 + src/libqwt/qwt_scale_draw.cpp | 9 ++++ 13 files changed, 138 insertions(+), 105 deletions(-) commit ed9ad5928c5e922aba33423a698856ec9ad2c76b Author: Nathan Scott Date: Mon Oct 29 11:30:45 2007 +1100 Add couple of skeleton docs for parts of online help. commit af5408770f770b8dc873899088a1477116bbc187 Author: Nathan Scott Date: Mon Oct 29 11:29:09 2007 +1100 Update TODO list in README, move forward to Beta2 images. commit 4c51a1adeb054bf84557631d6f92d5ccf68f300f Author: Nathan Scott Date: Mon Oct 29 11:24:23 2007 +1100 Improve time axis minor tick settings calculations - prevents label overwriting on Linux (was fine on Mac though - odd). commit 41b041af6ecd70e6f3be2fa5def684271b8afa2e Author: Nathan Scott Date: Mon Oct 29 11:22:40 2007 +1100 Add some workaround code to QwtScaleDraw to ensure the kmchart time axis backbone does not change position/length. commit 6f50301aeaa09e6a52c581eef3bb99aae8ad5eb6 Author: Nathan Scott Date: Mon Oct 29 11:19:26 2007 +1100 Update change adding canvas show() to QwtPlot to be if not isVisible() commit 0525762b024c1882bfcf9ca29587a4b4e15324f3 Author: Nathan Scott Date: Mon Oct 29 10:30:24 2007 +1100 Add a disk throughput view. commit 055ddaa32063beef9a065674ffc1ad6ea752f982 Author: Nathan Scott Date: Mon Oct 29 10:29:19 2007 +1100 Extend the QwtPlotLayout API to allow us to force a fixed offset for the left axis. This effectively aligns all our charts vertically. From nscott@aconex.com Tue Oct 30 23:29:15 2007 Received: with ECARTIS (v1.0.0; list pcp); Tue, 30 Oct 2007 23:29:23 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9V6TDpk015923 for ; Tue, 30 Oct 2007 23:29:15 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id F3B8F92C426 for ; Wed, 31 Oct 2007 17:29:17 +1100 (EST) Subject: kmchart updates From: Nathan Scott Reply-To: nscott@aconex.com To: pcp@oss.sgi.com Content-Type: text/plain Organization: Aconex Date: Wed, 31 Oct 2007 17:29:14 +1100 Message-Id: <1193812154.3862.110.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-archive-position: 1433 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 65 --- VERSION | 2 build/mac/installer-info | 8 doc/CHANGES | 4 man/html/images/GNUmakefile | 2 qa/006 | 2 qa/006.out | 19 - qa/20071023.08:06:36.folio | 8 qa/20071023.08:06:36.view | 19 + qa/archives/20071023.08:06:36.0 |binary qa/archives/20071023.08:06:36.index |binary qa/archives/20071023.08:06:36.meta |binary qa/chart-control-testcases | 12 qa/chart-create-edit-testcases | 39 ++ qa/chart-scaling-testcases | 55 +++ qa/qa-view-01 | 5 qa/qa-view-02 | 5 qa/qa-view-03 | 5 qa/qa-view-04 | 16 qa/qa-view-05 | 6 qa/views/006-01 | 5 qa/views/006-02 | 5 qa/views/006-03 | 5 qa/views/006-04 | 16 qa/views/006-05 | 6 src/chart/chart.cpp | 636 +++++++++++++++++------------------- src/chart/chart.h | 5 src/chart/chartdialog.cpp | 12 src/chart/exportdialog.cpp | 123 ++++-- src/chart/exportdialog.h | 18 - src/chart/exportdialog.ui | 395 +++++++++++++--------- src/chart/kmchart.cpp | 120 +++--- src/chart/kmchart.h | 2 33 files changed, 877 insertions(+), 743 deletions(-) commit 633d4421ed12ea8f6d558a7b177d789fa1074b60 Author: Nathan Scott Date: Wed Oct 31 17:25:16 2007 +1100 Update version to next beta images. commit 555256b3b06a0b70ca160a8045dd7e8a13387147 Author: Nathan Scott Date: Wed Oct 31 17:23:32 2007 +1100 Tweak Mac build resources to allow installing on Leopard as well as Tiger. commit 240981be05a9a7ca84b7bf7c7348a3cb100d1b8d Author: Nathan Scott Date: Wed Oct 31 17:15:10 2007 +1100 Fix a makefile problem Ken noticed where help/tutorial icons not installed. commit 9b89ea8c359979133c1d11d101b0c0971508adf6 Author: Nathan Scott Date: Wed Oct 31 17:12:24 2007 +1100 Numerous tweaks and fixes to the export-as-image dialog and code. You can now optionally save with transparent background and scale the image to a desired height/width. Also, when changing the type of image via the drop down dialog, the previous filename extension is replaced in the file line edit with the new extension. Most importantly of all, the generated image now actually matches the kmchart image. :) commit a3a72ed697335299f95a16eb8beff729a95c5be0 Author: Ken McDonell Date: Wed Oct 31 11:04:04 2007 +1100 replot() then redoScale() in Chart::setScale() commit 5129a312fbbcd969ad16478643ce14a6add5f4d3 Merge: c22c45c... 531a7c7... Author: Ken McDonell Date: Wed Oct 31 09:36:09 2007 +1100 Merge git://oss.sgi.com:8090/nathans/kmchart commit c22c45c0b25f2b8b0204e718b44f6f95ae356909 Author: Ken McDonell Date: Wed Oct 31 09:32:27 2007 +1100 Tweaking the QA narrative commit 0f4615901b6367d5a0c468f10dbeacfc5c179340 Author: Ken McDonell Date: Wed Oct 31 09:31:55 2007 +1100 Do not autoupdate max and min values based on other value changing (reply on the check after OK and popup if max < min) ... as it was, typing 123 in the max widget causes the min value to be reset to 1 after the first of 3 callbacks commit 68c67f6eb9b5dd11a684529217b53a97d4a975de Author: Ken McDonell Date: Tue Oct 30 21:28:35 2007 +1100 Autoscale on/off changes take effect immediately commit e8dcf84d90ada9f63a109c058c7f78df6ad3fe92 Author: Ken McDonell Date: Tue Oct 30 21:10:59 2007 +1100 Refactor to support hidden plots with utilization and stacked bar plots, qa additions to cover this commit 8956af42ea23c385c0de73c5ad9f7b96541f93cd Author: Ken McDonell Date: Tue Oct 30 21:10:12 2007 +1100 minor corrects to match app behaviour commit e37d06acf28ebc91dcd6325bd12518415039fe1c Author: Ken McDonell Date: Mon Oct 29 21:49:32 2007 +1100 Refactor the Style setting and changes in Style ... fixed several bugs also commit 9f8f9f90c969aa8097bd4fb890500054e89741b8 Merge: ec400c6... 2e24f08... Author: Ken McDonell Date: Mon Oct 29 12:36:12 2007 +1100 from oss.sgi.com commit ec400c65b27c7562f3f3f724d05ce9ab3b7151d0 Author: Ken McDonell Date: Mon Oct 29 12:34:02 2007 +1100 interim util->stack rework commit 971153618b1fa693d0a1dc6e37305446a4bf6c43 Merge: 53e4b87... 4713c2c... Author: Ken McDonell Date: Fri Oct 26 07:11:43 2007 +1000 Merge git://oss.sgi.com:8090/nathans/kmchart commit 53e4b87e9c7687aaf98fca291c21fcdfc600c9df Author: Ken McDonell Date: Fri Oct 26 07:11:25 2007 +1000 remove edit chart, units, scaling, plot compatibility, etc. commit 331130ddf0cffe8669b3c258f96f3338ecaaa7e3 Author: Ken McDonell Date: Tue Oct 23 21:46:06 2007 +1000 Remove item covering union compatible plots, scale comparisons, etc. commit 7614010821469614e51bac13a8d989c7bfba9798 Author: Ken McDonell Date: Tue Oct 23 21:44:00 2007 +1000 Add initial Y-axis rescaling tests commit 4bd744dc1923dc5b4c1bf185ba8540d9012ae94c Author: Ken McDonell Date: Tue Oct 23 21:42:31 2007 +1000 Revamp 006 ... move views into views subdirectory From nscott@aconex.com Wed Oct 31 03:33:19 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 31 Oct 2007 03:33:25 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l9VAXEQ5019747 for ; Wed, 31 Oct 2007 03:33:19 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 20EDF92C5D7; Wed, 31 Oct 2007 21:33:19 +1100 (EST) Received: from 192.168.3.1 (proxying for 58.107.42.33) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Wed, 31 Oct 2007 21:33:43 +1100 (EST) Message-ID: <37167.192.168.3.1.1193826823.squirrel@mail.aconex.com> Date: Wed, 31 Oct 2007 21:33:43 +1100 (EST) Subject: kmchart 1.0 beta images From: nscott@aconex.com To: pcp@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1434 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Hi all, I have begun putting beta images for kmchart 1.0 up on oss.sgi.com. There are binary Centos5 rpms (should work fine on RHEL/Fedora) and also a binary MacOSX 10.4 image (should work fine on Leopard). We've been using these internally at Aconex for a little while, which is why it is up to beta3 already. Appreciate any feedback you have, current plan is to do the first stable kmchart 1.0 release towards the end of November. Binaries: http://oss.sgi.com/~nathans/kmchart-1.0.0Beta3-0.dmg http://oss.sgi.com/~nathans/kmchart-1.0.0Beta3-0.x86_64.rpm http://oss.sgi.com/~nathans/kmchart-1.0.0Beta3-0.i386.rpm Source: git://oss.sgi.com:8090/nathans/kmchart.git http://oss.sgi.com/~nathans/kmchart-1.0.0Beta3.src.tar.gz http://oss.sgi.com/~nathans/kmchart-1.0.0Beta3-0.src.rpm There are pre-built PCP images in similar locations for the same platforms. kmchart also relies on Qt4, which is included in most Linux distributions, and MacOSX Qt4 images can be downloaded from trolltech.com. cheers. -- Nathan From nscott@aconex.com Wed Oct 31 18:30:40 2007 Received: with ECARTIS (v1.0.0; list pcp); Wed, 31 Oct 2007 18:30:50 -0700 (PDT) Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id lA11UcUg032148 for ; Wed, 31 Oct 2007 18:30:39 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 0E0C092C5D7; Thu, 1 Nov 2007 12:30:43 +1100 (EST) Received: from 192.168.3.1 (proxying for 58.107.42.33) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 1 Nov 2007 12:31:07 +1100 (EST) Message-ID: <37802.192.168.3.1.1193880667.squirrel@mail.aconex.com> Date: Thu, 1 Nov 2007 12:31:07 +1100 (EST) Subject: kmchart updates From: nscott@aconex.com To: pcp@oss.sgi.com Cc: "Rodney McKee" User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-archive-position: 1435 X-ecartis-version: Ecartis v1.0.0 Sender: pcp-bounce@oss.sgi.com Errors-to: pcp-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: pcp Changes committed to git://oss.sgi.com:8090/nathans/kmchart.git README | 20 +++++++++++++++++--- build/rpm/kmchart.spec.in | 4 ++++ qa/chart-control-testcases | 33 +++++---------------------------- src/chart/chart.cpp | 37 +++++++++---------------------------- src/chart/chartdialog.cpp | 20 +++++++++++++------- src/chart/chartdialog.h | 3 ++- src/chart/console.cpp | 1 - src/chart/kmchart.h | 1 - src/chart/main.cpp | 2 +- src/chart/openviewdialog.cpp | 6 +++--- src/chart/searchdialog.cpp | 6 +++--- src/chart/tabdialog.cpp | 8 ++++---- src/chart/timebutton.cpp | 24 ++++++++++++------------ src/chart/timecontrol.cpp | 1 - src/chart/views/GNUmakefile | 1 + src/time/kmtimearch.ui | 12 ++++++------ src/time/kmtimelive.ui | 10 +++++----- 17 files changed, 85 insertions(+), 104 deletions(-) commit bf1e6de0086678d0b72d65bb43f3ac80bc591c80 Author: Nathan Scott Date: Thu Nov 1 12:24:56 2007 +1100 Resolve build/rpm related issues reported by Rodney McKee. commit 47a4735daf9a8590c1b424f4be33c197e1e81fdc Author: Nathan Scott Date: Thu Nov 1 10:34:17 2007 +1100 Resolve about half of the current TODO markers in the code, some with actual code changes. Proxy/port stuff marked WISHLIST, for us to come back to later (needs libpcp support). commit c50c907ffc42d7b544f7747cd8430b865f5fa8dc Author: Nathan Scott Date: Thu Nov 1 09:44:05 2007 +1100 Fix the bug where "kmchart -a no.such.file" caused a Qt list assertion failure - we were attempting to remove the archive name from the wrong list. commit 0c33a6f38a64370733363570ac259bc552c9ec8c Author: Nathan Scott Date: Thu Nov 1 09:30:49 2007 +1100 Move remaining chart-control bugs to README so we dont lose track of them. commit edd601189af752f4db3120fb6902ab2d89ae3da4 Author: Nathan Scott Date: Thu Nov 1 09:26:14 2007 +1100 Remove some fixed items from the chart-control-testcases bug list. commit 22fb7045959f25fc55426d6eb9dc9f24a0b01d6a Author: Nathan Scott Date: Thu Nov 1 09:22:40 2007 +1100 Fix icon pointed to in kmtime live mode for Hide. commit a812631f29ef62ad22196fb0e8c88830534c675e Author: Nathan Scott Date: Thu Nov 1 09:11:21 2007 +1100 Fix up layout issues on kmtime main windows, esp. on Mac/Fedora (Qt 4.3+).