Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(138) |
Nov
(254) |
Dec
(246) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(543) |
Feb
(315) |
Mar
(531) |
Apr
(512) |
May
(327) |
Jun
(314) |
Jul
(511) |
Aug
(623) |
Sep
(232) |
Oct
(408) |
Nov
(285) |
Dec
(309) |
2003 |
Jan
(594) |
Feb
(532) |
Mar
(548) |
Apr
(535) |
May
(415) |
Jun
(490) |
Jul
(320) |
Aug
(117) |
Sep
(214) |
Oct
(349) |
Nov
(310) |
Dec
(354) |
2004 |
Jan
(310) |
Feb
(203) |
Mar
(480) |
Apr
(632) |
May
(477) |
Jun
(369) |
Jul
(362) |
Aug
(226) |
Sep
(170) |
Oct
(235) |
Nov
(149) |
Dec
(108) |
2005 |
Jan
(40) |
Feb
(372) |
Mar
(72) |
Apr
(46) |
May
(288) |
Jun
(205) |
Jul
(279) |
Aug
(184) |
Sep
(52) |
Oct
(139) |
Nov
(180) |
Dec
(199) |
2006 |
Jan
(172) |
Feb
(261) |
Mar
(275) |
Apr
(85) |
May
(86) |
Jun
(300) |
Jul
(216) |
Aug
(121) |
Sep
(148) |
Oct
(30) |
Nov
(141) |
Dec
(98) |
2007 |
Jan
(68) |
Feb
(85) |
Mar
(113) |
Apr
(73) |
May
(24) |
Jun
(114) |
Jul
(132) |
Aug
(76) |
Sep
(100) |
Oct
(137) |
Nov
(85) |
Dec
(98) |
2008 |
Jan
(48) |
Feb
(78) |
Mar
(47) |
Apr
(164) |
May
(58) |
Jun
(26) |
Jul
(154) |
Aug
(110) |
Sep
(310) |
Oct
(128) |
Nov
(84) |
Dec
(27) |
2009 |
Jan
(361) |
Feb
(134) |
Mar
(123) |
Apr
(107) |
May
(51) |
Jun
(107) |
Jul
(232) |
Aug
(359) |
Sep
(266) |
Oct
(150) |
Nov
(172) |
Dec
(86) |
2010 |
Jan
(189) |
Feb
(144) |
Mar
(21) |
Apr
(47) |
May
(112) |
Jun
(33) |
Jul
(10) |
Aug
(67) |
Sep
(97) |
Oct
(80) |
Nov
(78) |
Dec
(29) |
2011 |
Jan
(25) |
Feb
(109) |
Mar
(27) |
Apr
(43) |
May
(14) |
Jun
(23) |
Jul
(19) |
Aug
(12) |
Sep
(118) |
Oct
(77) |
Nov
(52) |
Dec
(38) |
2012 |
Jan
(70) |
Feb
(84) |
Mar
(38) |
Apr
(74) |
May
(63) |
Jun
(47) |
Jul
(9) |
Aug
(16) |
Sep
(151) |
Oct
(64) |
Nov
(54) |
Dec
(24) |
2013 |
Jan
(53) |
Feb
(62) |
Mar
(52) |
Apr
(51) |
May
(48) |
Jun
(28) |
Jul
(82) |
Aug
(28) |
Sep
(97) |
Oct
(51) |
Nov
(52) |
Dec
(14) |
2014 |
Jan
(2) |
Feb
(9) |
Mar
(20) |
Apr
(22) |
May
(81) |
Jun
(22) |
Jul
(7) |
Aug
(8) |
Sep
(9) |
Oct
(9) |
Nov
(18) |
Dec
(10) |
2015 |
Jan
(6) |
Feb
(6) |
Mar
(20) |
Apr
(47) |
May
(9) |
Jun
(20) |
Jul
|
Aug
(5) |
Sep
(36) |
Oct
(37) |
Nov
(163) |
Dec
(40) |
2016 |
Jan
(13) |
Feb
(28) |
Mar
(5) |
Apr
(13) |
May
(7) |
Jun
(28) |
Jul
(27) |
Aug
(2) |
Sep
(15) |
Oct
(9) |
Nov
(7) |
Dec
(27) |
2017 |
Jan
(25) |
Feb
(37) |
Mar
(18) |
Apr
(9) |
May
|
Jun
(4) |
Jul
|
Aug
(5) |
Sep
|
Oct
(2) |
Nov
(8) |
Dec
(5) |
2018 |
Jan
|
Feb
(8) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
(9) |
2
(10) |
3
(5) |
4
(8) |
5
(3) |
6
(11) |
7
|
8
|
9
(39) |
10
(5) |
11
(4) |
12
(5) |
13
(17) |
14
(5) |
15
(25) |
16
(20) |
17
(8) |
18
(43) |
19
(5) |
20
(11) |
21
(29) |
22
(1) |
23
(13) |
24
(16) |
25
|
26
(3) |
27
(2) |
28
(18) |
|
|
From: Guillaume Laurent <glaurent@te...> - 2002-02-16 20:36:04
|
On Saturday 16 February 2002 19:33, Chris Cannam wrote: > BarButtons is a composite thing at the moment (an hbox containing > vboxes, for some reason, each of which contains a label). We need > to decide whether we're going to give it any actual buttons; if > not, it might as well be a simple widget like LoopRuler. This reminds me : since I now know that there isn't any problem with displaying regular widgets over a QCanvas, this means that we can make the various loop and position pointers widgets, which should also considerably simplify things (no need to deal with their interactivity at the EditView level). -- Guillaume. http://www.telegraph-road.org |
From: Chris Cannam <cannam@al...> - 2002-02-16 19:17:58
|
Richard Bown wrote: > I overrode [MappedComposition::]clear() to explicitly > delete the MappedEvent members and then clear down the iterator (which it wasn't > doing before - ouch). This worked fine and so I added the clear() to the destructor > and this appears to be the problem. No, I think that's fine. I think your problem is a bit more complicated than that. Check out RosegardenGUIApp::getSequencerSlice. This gets a pointer to a (shared) MappedComposition from the SequenceManager, and then it expensively copies the whole thing when returning by value only to see the result streamed out via MCOP and then thrown away. That seems wasteful, but it's not the problem -- the problem is that MappedComposition has no copy constructor, so the return by value does a shallow copy and when the copied version is destroyed, so is the integrity of the original. At least, I think that's the problem. Obviously you could write a copy constructor (and should anyway, or else declare it private) but mightn't it be better to return a pointer from getSequencerSlice and then have a stream operators that take pointer rather than reference arguments? Or I suppose you could return a reference from getSequencerSlice, whatever. There surely must be a construction that works well with MCOP without having to copy the entire thing just after making it. btw, your MappedComposition::operator= has the classic C++ interview-question bug: if you assign a MappedComposition from itself, you lose the lot. Chris |
From: Guillaume Laurent <glaurent@te...> - 2002-02-16 18:40:28
|
On Saturday 16 February 2002 19:33, Chris Cannam wrote: > > As a comment of mine notes (trackeditor.cpp:139), the horizontal > QHeader is not even used for any real purpose any more (it's been > superceded by the RulerScale). Yes, I'm about to remove it. > BarButtons is a composite thing at the moment (an hbox containing > vboxes, for some reason, each of which contains a label). We need > to decide whether we're going to give it any actual buttons; if > not, it might as well be a simple widget like LoopRuler. Let's look at that when we're done with tidying up around. > That apart, I'm pretty much in agreement. I don't think it'll > conflict much with anything I'm intending either. OK. -- Guillaume. http://www.telegraph-road.org |
From: Chris Cannam <cannam@al...> - 2002-02-16 18:37:23
|
Guillaume Laurent wrote: > We maintain > two headers (a QHeader and a TrackHeader) just for size computing purposes As a comment of mine notes (trackeditor.cpp:139), the horizontal QHeader is not even used for any real purpose any more (it's been superceded by the RulerScale). > BarButtons BarButtons is a composite thing at the moment (an hbox containing vboxes, for some reason, each of which contains a label). We need to decide whether we're going to give it any actual buttons; if not, it might as well be a simple widget like LoopRuler. That apart, I'm pretty much in agreement. I don't think it'll conflict much with anything I'm intending either. Chris |
From: Guillaume Laurent <glaurent@te...> - 2002-02-16 18:25:45
|
On Saturday 16 February 2002 18:53, Guillaume Laurent wrote: > > Theoretically, we should have only this : > > MainWindow > Grid > TrackButtons > BarButtons > LoopRuler > TrackEditor > SegmentCanvas Make that : MainWindow TrackEditor SegmentCanvas TrackButtons BarButtons LoopRuler -- Guillaume. http://www.telegraph-road.org |
From: Guillaume Laurent <glaurent@te...> - 2002-02-16 17:53:57
|
The whole main GUI is a mess in dire need of refactoring. Before worrying about signals, the whole widget tree is just too damn complex. We maintain two headers (a QHeader and a TrackHeader) just for size computing purposes, even though we don't show them. There are QScrollViews all over the place for no good reason either, etc... Theoretically, we should have only this : MainWindow Grid TrackButtons BarButtons LoopRuler TrackEditor SegmentCanvas I'd like to take on with that, which means heavy editing in these files should wait a little. Do you guys agree ? -- Guillaume. http://www.telegraph-road.org |
From: Richard Bown <bownie@bo...> - 2002-02-16 16:10:51
|
Chris Cannam wrote: > I guess it's mostly helpful for people who program more by > intuition than methodical rigour. I'd rather like to hear > Bownie's opinion, 'cos he's the very model of an intuition guy. Erm. Well I've kind of gone the crap way - I've used signal.. and slot.. when I'm reusing the name in a class and haven't worked out how get around the horrible mess I'm about to create. Also I think somewhere along the way I have a basic misunderstanding of signals - do they just percolate up like exceptions if you don't explicitly connect them or do you _have_ to connect them at every layer they pass through? If the former then things could certainly become a lot easier almost instantaneously. > (btw, for some reason I have more of a problem with slots > than with signals -- I'd be happy to see all the slots called > slot-blah even if the signals weren't called signal-blah.) I think we should be consistent - I do tend to agree that we should use the signal and slot names at the beginnings of the relevant methods. Although for a neat, short little method name point of view it doesn't look very elegant it does make us think about where we're using them. R |
From: Richard Bown <bownie@bo...> - 2002-02-16 16:08:22
|
> Is it me, or does something to do with setPointerPosition prevent > the thing from building in the first place? I'm going to move setPointerPosition to doc now anyway and get rid of that nasty signal business which was a horrible hack anyway. We'll see if that clears it up. R |
From: Richard Bown <bownie@bo...> - 2002-02-16 14:59:58
|
Chris Cannam wrote: > Looks like a buffer overflow to me. It's in an allocator, > possibly the "new EventData()" in the Event constructor; the > data otherwise appears to be sound; it happens unpredictably. > I think a malloc chain has become corrupted. Have you > recently made changes to the way memory is allocated and > filled when sending mapped event slices, or some such? I have - probably wrongly - in MappedComposition. I overrode clear() to explicitly delete the MappedEvent members and then clear down the iterator (which it wasn't doing before - ouch). This worked fine and so I added the clear() to the destructor and this appears to be the problem. If you remove the clear() from MC's destructor then everything starts working - but are we not leaking? R M.C. Destructor |
From: Guillaume Laurent <glaurent@te...> - 2002-02-16 14:30:45
|
On Saturday 16 February 2002 12:47, Chris Cannam wrote: > > > I'm working on how to put widgets the rulerscale above the scrollbar > > Groovy -- and it'd possibly be a good idea to do the same thing > with the top LoopRuler as well, That was part of the plan. And the tracks sidebar too. I've found how to do it, it's actually quite simple, just put the widget where you want it to be and it works. > because presumably that way we > could more easily ensure it was the right length (at the moment > it stops scrolling a bit before the canvas does) and keep it in > sync with the canvas scroll without those signals. Yup. -- Guillaume. http://www.telegraph-road.org |
From: Chris Cannam <cannam@al...> - 2002-02-16 12:11:57
|
Chris Cannam wrote: > Yes, fascinating. It's not at a predictable moment, but it > always does it. Hmm. Looks like a buffer overflow to me. It's in an allocator, possibly the "new EventData()" in the Event constructor; the data otherwise appears to be sound; it happens unpredictably. I think a malloc chain has become corrupted. Have you recently made changes to the way memory is allocated and filled when sending mapped event slices, or some such? Chris |
From: Chris Cannam <cannam@al...> - 2002-02-16 11:52:48
|
Richard Bown wrote: > Is it me or is the GUI crasing in setPointerPosition after a few notes of playback? Yes, fascinating. It's not at a predictable moment, but it always does it. Hmm. Chris |
From: Chris Cannam <cannam@al...> - 2002-02-16 11:50:31
|
Guillaume Laurent wrote: > signals are always used with 'emit', and having a 'signal' prefix in > front of their name would be really cumbersome. Yes, and of course you don't have to give them definitions -- much of the problem is in knowing how the method will be used when you're editing the .cpp file rather than the header. > I'm working on how to put widgets the rulerscale above the scrollbar Groovy -- and it'd possibly be a good idea to do the same thing with the top LoopRuler as well, because presumably that way we could more easily ensure it was the right length (at the moment it stops scrolling a bit before the canvas does) and keep it in sync with the canvas scroll without those signals. Chris |
From: Richard Bown <bownie@bo...> - 2002-02-16 11:35:55
|
> Is it me or is the GUI crasing in setPointerPosition after a few notes of playback? Actually even if I get rid of the dodgy looking QObject stuff in SequenceManager I still get a spang at getElapsedTimeForRealTime() in setPointerPosition(). R |
From: Guillaume Laurent <glaurent@te...> - 2002-02-16 11:08:19
|
On Saturday 16 February 2002 11:16, Chris Cannam wrote: > There are a few reasons I can think of why that naming scheme > is useful: > [....] I don't particularly disagree with any of these, plus we're already halfway there, so let's bite the bullet and go all the way. It would be better to wait for the code to stabilize a little first, and that we've reviewed all the slot/signals for possible removal. > (btw, for some reason I have more of a problem with slots > than with signals -- I'd be happy to see all the slots called > slot-blah even if the signals weren't called signal-blah.) OK. signals are always used with 'emit', and having a 'signal' prefix in front of their name would be really cumbersome. BTW, I'm working on how to put widgets the rulerscale above the scrollbar in matrix and notation view. This could also be applied to the track editor and would also help reducing the number of signal/slots firing around. -- Guillaume. http://www.telegraph-road.org |
From: Chris Cannam <cannam@al...> - 2002-02-16 10:22:13
|
Guillaume Laurent wrote: > On Friday 15 February 2002 21:31, Chris Cannam wrote: >>in segmentcanvas.cpp; it seems overkill to have all the tools emitting >>signals that are simply re-emitted by the canvas > > these signals would better be directly connected to the track editor. I thought so to, but it wasn't apparent to me how to do that without putting lots of junk into SegmentCanvas or telling the tools about the TrackEditor, both of which would be nice to avoid. Chris |
From: Chris Cannam <cannam@al...> - 2002-02-16 10:17:37
|
Guillaume Laurent wrote: > The pb with signals is that they make it non obvious to know what > happens next, but how they're used is fairly unambiguous. There are a few reasons I can think of why that naming scheme is useful: -- You need to know whether a method is a signal or slot or neither, because if it is, you can't change the signature without silently breaking the connections. (And it took me ages to work out why none of my signals was working, when all I'd done was put the Rosegarden:: namespace prefix in the header but not in the connect call...) You obviously can find out if a method's a signal or slot by scanning back through the header, but a naming scheme is clearer especially with headers like notationview.h that have dozens of slots. -- We sometimes have the same method, or similar methods, appearing more than once but only sometimes being a slot: a nasty example is TrackEditor::addSegment which appears as a DCOP call and a slot, although that example is one that should probably die anyway. -- If your slots are all called slot-something, you have a bit of a head start in resolving the "what happens next" problem because at least you know it's going to be one of those slot things. I guess it's mostly helpful for people who program more by intuition than methodical rigour. I'd rather like to hear Bownie's opinion, 'cos he's the very model of an intuition guy. (btw, for some reason I have more of a problem with slots than with signals -- I'd be happy to see all the slots called slot-blah even if the signals weren't called signal-blah.) Chris |
From: Chris Cannam <cannam@al...> - 2002-02-16 10:09:44
|
Chris Cannam wrote: > Is it me, or does something to do with setPointerPosition prevent > the thing from building in the first place? Oh, forget I asked, of course, it's going to be that stupid, stupid, stupid, stupid, stupid, stupid, stupid moc thing that means I need to run the configure script rather than just clean and rebuild. Sorry. Chris |
From: Chris Cannam <cannam@al...> - 2002-02-16 10:08:00
|
Richard Bown wrote: > Is it me or is the GUI crasing in setPointerPosition after a few notes of playback? Is it me, or does something to do with setPointerPosition prevent the thing from building in the first place? Lots of /home/cannam/rosegarden/gui/rosegardengui.cpp:1120: undefined reference to `Rosegarden::SequenceManager::getTransportStatus(void) const' and virtual table, and similar. I did a make clean and rebuild yesterday (I think -- the machine crashed at some point, but I'm pretty sure that was after the make clean). Chris |
From: Richard Bown <bownie@bo...> - 2002-02-16 09:59:27
|
Is it me or is the GUI crasing in setPointerPosition after a few notes of playback? R |