# HG changeset patch # User Chris Cannam # Date 1331564320 0 # Node ID e40e3ebe9f2e95fccb745aba74087c73619cfb07 # Parent 9f91d1b2ed51857c565bae86fa198301f9d3399a# Parent f3a61f28896ef7f56fa2eba1f56b75038dd9d81b Merge from default branch diff -r 9f91d1b2ed51 -r e40e3ebe9f2e .hgtags --- a/.hgtags Tue Feb 14 17:53:29 2012 +0000 +++ b/.hgtags Mon Mar 12 14:58:40 2012 +0000 @@ -15,3 +15,4 @@ 319f920a51ee61df29701db8ad9bdb413c66a399 easyhg_v0.9.8 6bb2a1f3087cd57d5a3296bbb82a494b7fa609c6 easyhg_v1.0 06507a59f2b8f5db9ae37e0dcd37a320e03ae8b8 easyhg_v1.1 +ca943d5147697d8a63d835e1227315fefee0691b easyhg_v1.2 diff -r 9f91d1b2ed51 -r e40e3ebe9f2e CHANGELOG --- a/CHANGELOG Tue Feb 14 17:53:29 2012 +0000 +++ b/CHANGELOG Mon Mar 12 14:58:40 2012 +0000 @@ -1,3 +1,20 @@ +Changes in v1.2 since v1.1: + + * Add a Find function to both My Work and History tabs + * Add a Cancel button to the progress bar in the status line when + carrying out network operations + * Remove Refresh button from the toolbar. This button was found to be + causing significant confusion, as some users interpreted it as + meaning resynchronise with the server, while in fact all it did was + re-read the local working copy. The function is still present, but + has been relegated to File -> Re-Read Working Folder + * Rework the filesystem watcher code, making it generally more + reliable (a requirement for removing the Refresh button) + * Fix problem with return codes in Mercurial 2.1 causing push and + pull to be reported as failing + * Make it possible to clear the remote repository URL + * Switch the Windows installer from InstallJammer to WiX + Changes in v1.1 since v1.0.1: * Closed branches are now supported: you can close a branch in EasyMercurial diff -r 9f91d1b2ed51 -r e40e3ebe9f2e README.txt --- a/README.txt Tue Feb 14 17:53:29 2012 +0000 +++ b/README.txt Mon Mar 12 14:58:40 2012 +0000 @@ -44,8 +44,8 @@ EasyMercurial is Copyright 2010 Jari Korhonen -Copyright 2010-2011 Chris Cannam -Copyright 2010-2011 Queen Mary, University of London +Copyright 2010-2012 Chris Cannam +Copyright 2010-2012 Queen Mary, University of London diff -r 9f91d1b2ed51 -r e40e3ebe9f2e deploy/osx/deploy.sh --- a/deploy/osx/deploy.sh Tue Feb 14 17:53:29 2012 +0000 +++ b/deploy/osx/deploy.sh Mon Mar 12 14:58:40 2012 +0000 @@ -30,6 +30,7 @@ mkdir "$volume" || exit 1 ln -s /Applications "$volume"/Applications +cp COPYING "$volume/COPYING.txt" cp -RPp "$source" "$target" echo "Done" diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg-icon.icns Binary file easyhg-icon.icns has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg-icon.ico Binary file easyhg-icon.ico has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg.ico Binary file easyhg.ico has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg.pro --- a/easyhg.pro Tue Feb 14 17:53:29 2012 +0000 +++ b/easyhg.pro Mon Mar 12 14:58:40 2012 +0000 @@ -65,7 +65,8 @@ src/hgignoredialog.h \ src/versiontester.h \ src/squeezedlabel.h \ - src/fswatcher.h + src/fswatcher.h \ + src/findwidget.h SOURCES = \ src/main.cpp \ src/mainwindow.cpp \ @@ -103,7 +104,8 @@ src/hgignoredialog.cpp \ src/versiontester.cpp \ src/squeezedlabel.cpp \ - src/fswatcher.cpp + src/fswatcher.cpp \ + src/findwidget.cpp macx-* { SOURCES += src/common_osx.mm diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg.py --- a/easyhg.py Tue Feb 14 17:53:29 2012 +0000 +++ b/easyhg.py Mon Mar 12 14:58:40 2012 +0000 @@ -4,8 +4,8 @@ # # Based on hgExplorer by Jari Korhonen # Copyright (c) 2010 Jari Korhonen -# Copyright (c) 2010-2011 Chris Cannam -# Copyright (c) 2010-2011 Queen Mary, University of London +# Copyright (c) 2010-2012 Chris Cannam +# Copyright (c) 2010-2012 Queen Mary, University of London # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg.qrc --- a/easyhg.qrc Tue Feb 14 17:53:29 2012 +0000 +++ b/easyhg.qrc Mon Mar 12 14:58:40 2012 +0000 @@ -27,6 +27,7 @@ images/home.png images/back.png images/forward.png + images/cancel-small.png help/topics.html help/help.css help/a-04.html @@ -43,6 +44,7 @@ help/a-32.html help/a-33.html help/a-34.html + help/a-35.html help/a-40.html help/images/openremote50.png help/images/openfolder50.png diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg.rc --- a/easyhg.rc Tue Feb 14 17:53:29 2012 +0000 +++ b/easyhg.rc Mon Mar 12 14:58:40 2012 +0000 @@ -1,1 +1,1 @@ -IDI_ICON1 ICON DISCARDABLE "easyhg-icon.ico" +IDI_ICON1 ICON DISCARDABLE "easyhg.ico" diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg.wxs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/easyhg.wxs Mon Mar 12 14:58:40 2012 +0000 @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 9f91d1b2ed51 -r e40e3ebe9f2e easyhg_en.ts --- a/easyhg_en.ts Tue Feb 14 17:53:29 2012 +0000 +++ b/easyhg_en.ts Mon Mar 12 14:58:40 2012 +0000 @@ -868,7 +868,7 @@ - <qt><h2>EasyMercurial v%1</h2><font size=-1><p>EasyMercurial is a simple user interface for the Mercurial</a> version control system.</p><h4>Credits and Copyright</h4><p>Development carried out by Chris Cannam for SoundSoftware.ac.uk at the Centre for Digital Music, Queen Mary, University of London.</p><p>EasyMercurial is based on HgExplorer by Jari Korhonen, with thanks.</p><p style="margin-left: 2em;">Copyright &copy; 2011 Queen Mary, University of London.<br>Copyright &copy; 2010 Jari Korhonen.<br>Copyright &copy; 2011 Chris Cannam.</p><p style="margin-left: 2em;">This program requires Mercurial, by Matt Mackall and others.<br>This program uses Qt by Nokia.<br>This program uses Nuvola icons by David Vignoni.<br>This program may use KDiff3 by Joachim Eibl.<br>This program may use PyQt by River Bank Computing.<br>Packaging for Mercurial and other dependencies on Windows is derived from TortoiseHg by Steve Borho and others.</p><h4>License</h4><p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information.</p></font> + <qt><h2>EasyMercurial v%1</h2><font size=-1><p>EasyMercurial is a simple user interface for the Mercurial</a> version control system.</p><h4>Credits and Copyright</h4><p>Development carried out by Chris Cannam for SoundSoftware.ac.uk at the Centre for Digital Music, Queen Mary, University of London.</p><p>EasyMercurial is based on HgExplorer by Jari Korhonen, with thanks.</p><p style="margin-left: 2em;">Copyright &copy; 2012 Queen Mary, University of London.<br>Copyright &copy; 2010 Jari Korhonen.<br>Copyright &copy; 2012 Chris Cannam.</p><p style="margin-left: 2em;">This program requires Mercurial, by Matt Mackall and others.<br>This program uses Qt by Nokia.<br>This program uses Nuvola icons by David Vignoni.<br>This program may use KDiff3 by Joachim Eibl.<br>This program may use PyQt by River Bank Computing.<br>Packaging for Mercurial and other dependencies on Windows is derived from TortoiseHg by Steve Borho and others.</p><h4>License</h4><p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING included with this distribution for more information.</p></font> diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/a-34.html --- a/help/a-34.html Tue Feb 14 17:53:29 2012 +0000 +++ b/help/a-34.html Mon Mar 12 14:58:40 2012 +0000 @@ -1,57 +1,30 @@ -

How do I use the Merge window?

+

Every time I push some changes, I have to type my password again

-

If you are working with other people on a project, it is likely that -at some point you'll find that more than one of you have edited the -same lines in the same file, in different ways.

+

When you push to a remote repository with an “https:" prefix on its +URL, EasyMercurial's password dialog should ask whether you want to +remember your login details.

-

When that happens and you try to merge the two versions, EasyMercurial -will pop up a merge window that looks a bit like this.

+

If you say yes, the details will be stored until EasyMercurial +exits—so you won't have to enter them if you push or pull again +while the present EasyMercurial session is running. Your password will +be stored, encrypted with a session key, in a file which is deleted +when EasyMercurial exits.

-

+

If this option does not appear

-

(This is actually a separate program, not part of EasyMercurial: it's -a merge tool called kdiff3.)

+

... and if you're using OS/X, then you need to install the PyCrypto +library before EasyMercurial will be able to store encrypted passwords +for you.

-

This looks a bit complicated, but it is there to help you pick which -of the changes from each of the two “rival” versions of the file you -want to use in your merged version.

+

Try running sudo easy_install pycrypto in a terminal window.

-

The top middle one is your current version. That's - the one you had before you decided to merge the other version into - it.

+

Not using an https repository?

-

At top right is the version you're merging. That's the other - rival version – the one that the other person can see in their copy - of the repository.

+

If your remote repository uses ssh or some other protocol, then +EasyMercurial won't be able to help. You might consider using ssh +public key authentication and an ssh agent—talk to the admin of your +remote repository for more details.

-

At top left is the common ancestor. That's the version that both - of you had, before you started editing it in different ways.

- -

At the bottom is the output.

- -

Each conflict (a line which you have both changed in different ways) -is shown with Merge Conflict in the output at the bottom. To sort -out the conflicts and get the right output, you need to go through -them one by one, for each one pressing the A, B, or C button to say -whether for this line you want the top-left, top-middle, or top-right -version to “win”. (You can choose more than one, if you want both -versions of a line to appear.)

- -

Then having resolved a conflict, press the three-arrows-down toolbar -button to go to the next one – and when you've done them all, save -and exit.

- -

The most important thing to remember is that whatever appears in the -bottom pane is what you'll get as a result.

- -

No matter how confusing the process, just remember that if it looks -correct in the bottom pane, it will be correct when you save and -exit. You can even edit the file directly in the bottom pane if you -aren't happy with the way the merge is going.

- - - - diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/a-35.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/help/a-35.html Mon Mar 12 14:58:40 2012 +0000 @@ -0,0 +1,57 @@ + + + +

How do I use the Merge window?

+ +

If you are working with other people on a project, it is likely that +at some point you'll find that more than one of you have edited the +same lines in the same file, in different ways.

+ +

When that happens and you try to merge the two versions, EasyMercurial +will pop up a merge window that looks a bit like this.

+ +

+ +

(This is actually a separate program, not part of EasyMercurial: it's +a merge tool called kdiff3.)

+ +

This looks a bit complicated, but it is there to help you pick which +of the changes from each of the two “rival” versions of the file you +want to use in your merged version.

+ +

The top middle one is your current version. That's + the one you had before you decided to merge the other version into + it.

+ +

At top right is the version you're merging. That's the other + rival version – the one that the other person can see in their copy + of the repository.

+ +

At top left is the common ancestor. That's the version that both + of you had, before you started editing it in different ways.

+ +

At the bottom is the output.

+ +

Each conflict (a line which you have both changed in different ways) +is shown with Merge Conflict in the output at the bottom. To sort +out the conflicts and get the right output, you need to go through +them one by one, for each one pressing the A, B, or C button to say +whether for this line you want the top-left, top-middle, or top-right +version to “win”. (You can choose more than one, if you want both +versions of a line to appear.)

+ +

Then having resolved a conflict, press the three-arrows-down toolbar +button to go to the next one – and when you've done them all, save +and exit.

+ +

The most important thing to remember is that whatever appears in the +bottom pane is what you'll get as a result.

+ +

No matter how confusing the process, just remember that if it looks +correct in the bottom pane, it will be correct when you save and +exit. You can even edit the file directly in the bottom pane if you +aren't happy with the way the merge is going.

+ + + + diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/images/openfolder50.png Binary file help/images/openfolder50.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/images/openlocal50.png Binary file help/images/openlocal50.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/images/openremote50.png Binary file help/images/openremote50.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/topics.html --- a/help/topics.html Tue Feb 14 17:53:29 2012 +0000 +++ b/help/topics.html Mon Mar 12 14:58:40 2012 +0000 @@ -20,6 +20,7 @@

I want to let my colleagues pull changes directly from my local repository

I want to put my changes into a master repository shared with my colleagues

I tried to push my changes, but it told me “the remote repository may have been changed by someone else” and refused

-

How do I use the Merge window?

+

Every time I push some changes, I have to type my password again

+

How do I use the Merge window?

See also

Video tutorials

diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/topics/34.txt --- a/help/topics/34.txt Tue Feb 14 17:53:29 2012 +0000 +++ b/help/topics/34.txt Mon Mar 12 14:58:40 2012 +0000 @@ -1,56 +1,28 @@ {Sharing changes} -How do I use the Merge window? +Every time I push some changes, I have to type my password again -If you are working with other people on a project, it is likely that -at some point you'll find that more than one of you have edited the -same lines in the same file, in different ways. +When you push to a remote repository with an "https:" prefix on its +URL, EasyMercurial's password dialog should ask whether you want to +remember your login details. -When that happens and you try to merge the two versions, EasyMercurial -will pop up a merge window that looks a bit like this. +If you say yes, the details will be stored until EasyMercurial +exits---so you won't have to enter them if you push or pull again +while the present EasyMercurial session is running. Your password will +be stored, encrypted with a session key, in a file which is deleted +when EasyMercurial exits. -#merge50 +*If this option does not appear* -(This is actually a separate program, not part of EasyMercurial: it's -a merge tool called kdiff3.) +... and if you're using OS/X, then you need to install the PyCrypto +library before EasyMercurial will be able to store encrypted passwords +for you. -This looks a bit complicated, but it is there to help you pick which -of the changes from each of the two "rival" versions of the file you -want to use in your merged version. +Try running @sudo easy_install pycrypto@ in a terminal window. - *The top middle one is _your current version_.* That's - the one you had before you decided to merge the other version into - it. +*Not using an https repository?* - *At top right is _the version you're merging_.* That's the other - rival version -- the one that the other person can see in their copy - of the repository. - - *At top left is _the common ancestor_.* That's the version that both - of you had, before you started editing it in different ways. - - *At the bottom is the output.* - -Each _conflict_ (a line which you have both changed in different ways) -is shown with *Merge Conflict* in the output at the bottom. To sort -out the conflicts and get the right output, you need to go through -them one by one, for each one pressing the A, B, or C button to say -whether for this line you want the top-left, top-middle, or top-right -version to "win". (You can choose more than one, if you want both -versions of a line to appear.) - -Then having resolved a conflict, press the three-arrows-down toolbar -button to go to the next one -- and when you've done them all, save -and exit. - -The most important thing to remember is that _whatever appears in the -bottom pane is what you'll get as a result_. - -No matter how confusing the process, just remember that if it looks -correct in the bottom pane, it will be correct when you save and -exit. You can even edit the file directly in the bottom pane if you -aren't happy with the way the merge is going. - - - - +If your remote repository uses ssh or some other protocol, then +EasyMercurial won't be able to help. You might consider using ssh +public key authentication and an ssh agent---talk to the admin of your +remote repository for more details. diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/topics/35.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/help/topics/35.txt Mon Mar 12 14:58:40 2012 +0000 @@ -0,0 +1,56 @@ +{Sharing changes} + +How do I use the Merge window? + +If you are working with other people on a project, it is likely that +at some point you'll find that more than one of you have edited the +same lines in the same file, in different ways. + +When that happens and you try to merge the two versions, EasyMercurial +will pop up a merge window that looks a bit like this. + +#merge50 + +(This is actually a separate program, not part of EasyMercurial: it's +a merge tool called kdiff3.) + +This looks a bit complicated, but it is there to help you pick which +of the changes from each of the two "rival" versions of the file you +want to use in your merged version. + + *The top middle one is _your current version_.* That's + the one you had before you decided to merge the other version into + it. + + *At top right is _the version you're merging_.* That's the other + rival version -- the one that the other person can see in their copy + of the repository. + + *At top left is _the common ancestor_.* That's the version that both + of you had, before you started editing it in different ways. + + *At the bottom is the output.* + +Each _conflict_ (a line which you have both changed in different ways) +is shown with *Merge Conflict* in the output at the bottom. To sort +out the conflicts and get the right output, you need to go through +them one by one, for each one pressing the A, B, or C button to say +whether for this line you want the top-left, top-middle, or top-right +version to "win". (You can choose more than one, if you want both +versions of a line to appear.) + +Then having resolved a conflict, press the three-arrows-down toolbar +button to go to the next one -- and when you've done them all, save +and exit. + +The most important thing to remember is that _whatever appears in the +bottom pane is what you'll get as a result_. + +No matter how confusing the process, just remember that if it looks +correct in the bottom pane, it will be correct when you save and +exit. You can even edit the file directly in the bottom pane if you +aren't happy with the way the merge is going. + + + + diff -r 9f91d1b2ed51 -r e40e3ebe9f2e help/topics/40.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/help/topics/40.txt Mon Mar 12 14:58:40 2012 +0000 @@ -0,0 +1,8 @@ +{See also} + +Video tutorials + +There are some very simple video tutorials available on the EasyMercurial website. + +Please see [[http://easyhg.org/videos.html]]. + diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/cancel-small.png Binary file images/cancel-small.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/crappy-icon-design.xcf Binary file images/crappy-icon-design.xcf has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/crappy-icon.png Binary file images/crappy-icon.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-128.png Binary file images/easyhg-icon-128.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-16.png Binary file images/easyhg-icon-16.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-192.png Binary file images/easyhg-icon-192.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-22.png Binary file images/easyhg-icon-22.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-24.png Binary file images/easyhg-icon-24.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-256.png Binary file images/easyhg-icon-256.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-32.png Binary file images/easyhg-icon-32.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-48.png Binary file images/easyhg-icon-48.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon-64.png Binary file images/easyhg-icon-64.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon.png Binary file images/easyhg-icon.png has changed diff -r 9f91d1b2ed51 -r e40e3ebe9f2e images/easyhg-icon.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/images/easyhg-icon.svg Mon Mar 12 14:58:40 2012 +0000 @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/annotatedialog.cpp --- a/src/annotatedialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/annotatedialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/annotatedialog.h --- a/src/annotatedialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/annotatedialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changeset.cpp --- a/src/changeset.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changeset.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changeset.h --- a/src/changeset.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changeset.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetdetailitem.cpp --- a/src/changesetdetailitem.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetdetailitem.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetdetailitem.h --- a/src/changesetdetailitem.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetdetailitem.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetitem.cpp --- a/src/changesetitem.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetitem.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -38,7 +38,7 @@ ChangesetItem::ChangesetItem(Changeset *cs) : m_changeset(cs), m_detail(0), m_showBranch(false), m_column(0), m_row(0), m_wide(false), - m_current(false), m_closing(false), m_new(false) + m_current(false), m_closing(false), m_new(false), m_searchMatches(false) { m_font = QFont(); m_font.setPixelSize(11); @@ -91,6 +91,22 @@ emit detailHidden(); } +bool +ChangesetItem::matchSearchText(QString text) +{ + m_searchText = text; + m_searchMatches = false; + if (m_showBranch) { + m_searchMatches = (m_changeset->branch().contains + (text, Qt::CaseInsensitive)); + } + if (!m_searchMatches) { + m_searchMatches = (m_changeset->comment().contains + (text, Qt::CaseInsensitive)); + } + return m_searchMatches; +} + void ChangesetItem::mousePressEvent(QGraphicsSceneMouseEvent *e) { @@ -296,6 +312,17 @@ bool showText = (scale >= 0.2); bool showProperLines = (scale >= 0.1); + if (m_searchText != "") { + if (m_searchMatches) { + userColour = QColor("#008400"); + showProperLines = true; + showText = true; + } else { + branchColour = Qt::gray; + userColour = Qt::gray; + } + } + if (!showProperLines) { paint->setPen(QPen(branchColour, 0)); } else { @@ -452,6 +479,8 @@ paint->setFont(f); + if (m_searchMatches) paint->setPen(userColour); + for (int i = 0; i < lines.size(); ++i) { paint->drawText(x0 + 3, i * fh + fh + fm.ascent(), lines[i].trimmed()); } diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetitem.h --- a/src/changesetitem.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetitem.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -65,6 +65,8 @@ bool showBranch() const { return m_showBranch; } void setShowBranch(bool s) { m_showBranch = s; } + bool matchSearchText(QString text); // return true and records the match if it matches + signals: void detailShown(); void detailHidden(); @@ -110,6 +112,8 @@ bool m_current; bool m_closing; bool m_new; + QString m_searchText; + bool m_searchMatches; QMap m_parentDiffActions; QMap m_summaryActions; diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetscene.cpp --- a/src/changesetscene.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetscene.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetscene.h --- a/src/changesetscene.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetscene.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetview.cpp --- a/src/changesetview.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetview.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/changesetview.h --- a/src/changesetview.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/changesetview.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/clickablelabel.h --- a/src/clickablelabel.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/clickablelabel.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/colourset.cpp --- a/src/colourset.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/colourset.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/colourset.h --- a/src/colourset.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/colourset.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/common.cpp --- a/src/common.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/common.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/common.h --- a/src/common.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/common.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/confirmcommentdialog.cpp --- a/src/confirmcommentdialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/confirmcommentdialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/confirmcommentdialog.h --- a/src/confirmcommentdialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/confirmcommentdialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/connectionitem.cpp --- a/src/connectionitem.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/connectionitem.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/connectionitem.h --- a/src/connectionitem.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/connectionitem.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/debug.cpp --- a/src/debug.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/debug.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/debug.h --- a/src/debug.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/debug.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/filestates.cpp --- a/src/filestates.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/filestates.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/filestates.h --- a/src/filestates.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/filestates.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/filestatuswidget.cpp --- a/src/filestatuswidget.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/filestatuswidget.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -18,6 +18,7 @@ #include "filestatuswidget.h" #include "debug.h" #include "multichoicedialog.h" +#include "findwidget.h" #include #include @@ -154,9 +155,19 @@ layout->addItem(new QSpacerItem(8, 8), ++row, 0); - m_showAllFiles = new QCheckBox(tr("Show all files"), this); + QWidget *opts = new QWidget; + QGridLayout *optLayout = new QGridLayout(opts); + optLayout->setMargin(0); + layout->addWidget(opts, ++row, 0); + + m_findWidget = new FindWidget(this); + optLayout->addWidget(m_findWidget, 0, 0, Qt::AlignLeft); + connect(m_findWidget, SIGNAL(findTextChanged(QString)), + this, SLOT(setSearchText(QString))); + + m_showAllFiles = new QCheckBox(tr("Show all file states"), this); m_showAllFiles->setEnabled(false); - layout->addWidget(m_showAllFiles, ++row, 0, Qt::AlignLeft); + optLayout->addWidget(m_showAllFiles, 0, 1, Qt::AlignRight); QSettings settings; m_showAllFiles->setChecked(settings.value("showall", false).toBool()); @@ -209,7 +220,16 @@ { QSettings settings; settings.beginGroup("Presentation"); - if (settings.value("showhelpfultext", true).toBool()) { + + if (m_searchText != "") { + if (!m_showAllFiles->isChecked()) { + m_noModificationsLabel->setText + (tr("Nothing found
None of the modified files have matching filenames.
Select Show all file states to find matches among unmodified and untracked files as well.
")); + } else { + m_noModificationsLabel->setText + (tr("Nothing found
No files have matching filenames.
")); + } + } else if (settings.value("showhelpfultext", true).toBool()) { m_noModificationsLabel->setText (tr("This area will list files in your working folder that you have changed.

At the moment you have no uncommitted changes.

To see changes previously made to the repository,
switch to the History tab.

%1
") #if defined Q_OS_MAC @@ -413,6 +433,14 @@ } void +FileStatusWidget::setSearchText(QString text) +{ + if (m_searchText == text) return; + m_searchText = text; + updateWidgets(); +} + +void FileStatusWidget::updateWidgets() { QDateTime lastInteractionTime; @@ -425,6 +453,7 @@ foreach (QString f, m_selectedFiles) selectedFiles.insert(f); int visibleCount = 0; + bool finding = (m_searchText != ""); foreach (FileStates::State s, m_stateListMap.keys()) { @@ -437,11 +466,22 @@ } QStringList files = m_fileStates.filesInState(s); + bool foundSomething = false; QStringList highPriority, lowPriority; foreach (QString file, files) { + if (finding) { + if (file.contains(m_searchText, Qt::CaseInsensitive)) { + highPriority.push_back(file); + foundSomething = true; + } + continue; + } else { + foundSomething = true; + } + bool highlighted = false; if (s == FileStates::Unknown) { @@ -467,7 +507,11 @@ foreach (QString file, highPriority) { QListWidgetItem *item = new QListWidgetItem(file); w->addItem(item); - item->setForeground(QColor("#d40000")); + if (finding) { + item->setForeground(QColor("#008400")); + } else { + item->setForeground(QColor("#d40000")); + } item->setSelected(selectedFiles.contains(file)); } @@ -479,7 +523,7 @@ setLabelFor(w, s, !highPriority.empty()); - if (files.empty()) { + if (!foundSomething) { w->parentWidget()->hide(); } else { w->parentWidget()->show(); diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/filestatuswidget.h --- a/src/filestatuswidget.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/filestatuswidget.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -29,6 +29,7 @@ class QPushButton; class QFileInfo; class QCheckBox; +class FindWidget; class FileStatusWidget : public QWidget { @@ -78,6 +79,8 @@ void clearSelections(); void updateWidgets(); + void setSearchText(QString text); + private slots: void menuActionActivated(); void itemSelectionChanged(); @@ -87,6 +90,7 @@ QString m_localPath; QLabel *m_noModificationsLabel; + FindWidget *m_findWidget; QCheckBox *m_showAllFiles; FileStates m_fileStates; @@ -104,6 +108,8 @@ QList m_boxes; QWidget *m_boxesParent; + QString m_searchText; + void layoutBoxesGridly(int count); void layoutBoxesLinearly(); void setNoModificationsLabelText(); diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/findwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/findwidget.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -0,0 +1,76 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + EasyMercurial + + Based on HgExplorer by Jari Korhonen + Copyright (c) 2010 Jari Korhonen + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#include "findwidget.h" + +#include +#include +#include +#include + +FindWidget::FindWidget(QWidget *parent) : + QWidget(parent) +{ + QGridLayout *layout = new QGridLayout; + layout->setMargin(0); + setLayout(layout); + + QToolButton *button = new QToolButton(); + layout->addWidget(button, 0, 0); + button->setText(tr("Find...")); + button->setToolButtonStyle(Qt::ToolButtonTextOnly); + connect(button, SIGNAL(clicked()), this, SLOT(buttonPressed())); + + m_lineEdit = new QLineEdit(); + layout->addWidget(m_lineEdit, 0, 1); + + m_lineEdit->setFixedWidth(100); + m_lineEdit->hide(); + + int h = m_lineEdit->sizeHint().height(); + int h0 = button->sizeHint().height(); + if (h > h0) button->setFixedHeight(h); + + connect(m_lineEdit, SIGNAL(textChanged(const QString &)), + this, SIGNAL(findTextChanged(QString))); +} + +FindWidget::~FindWidget() +{ +} + +void +FindWidget::buttonPressed() +{ + QAbstractButton *button = qobject_cast(sender()); + if (!button) return; + if (m_lineEdit->isVisible()) { + m_lineEdit->hide(); + button->setText(tr("Find...")); + if (m_lineEdit->text() != "") { + emit findTextChanged(""); + } + } else { + m_lineEdit->show(); + m_lineEdit->setFocus(Qt::OtherFocusReason); + button->setText(tr("Find:")); + if (m_lineEdit->text() != "") { + emit findTextChanged(m_lineEdit->text()); + } + } +} + diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/findwidget.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/findwidget.h Mon Mar 12 14:58:40 2012 +0000 @@ -0,0 +1,43 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + EasyMercurial + + Based on HgExplorer by Jari Korhonen + Copyright (c) 2010 Jari Korhonen + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#ifndef FINDWIDGET_H +#define FINDWIDGET_H + +#include + +class QLineEdit; + +class FindWidget : public QWidget +{ + Q_OBJECT + +public: + FindWidget(QWidget *parent = 0); + ~FindWidget(); + +signals: + void findTextChanged(QString); + +private slots: + void buttonPressed(); + +private: + QLineEdit *m_lineEdit; +}; + +#endif diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/fswatcher.cpp --- a/src/fswatcher.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/fswatcher.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -23,7 +23,7 @@ #include -#define DEBUG_FSWATCHER 1 +//#define DEBUG_FSWATCHER 1 /* * Watching the filesystem is trickier than it seems at first glance. @@ -66,8 +66,13 @@ { QMutexLocker locker(&m_mutex); if (m_workDirPath == path) return; - m_watcher.removePaths(m_watcher.directories()); - m_watcher.removePaths(m_watcher.files()); + // annoyingly, removePaths prints a warning if given an empty list + if (!m_watcher.directories().empty()) { + m_watcher.removePaths(m_watcher.directories()); + } + if (!m_watcher.files().empty()) { + m_watcher.removePaths(m_watcher.files()); + } m_workDirPath = path; addWorkDirectory(path); debugPrint(); @@ -212,7 +217,9 @@ // watching the file explicitly, i.e. the file is in the // tracked file paths list. So we never want to ignore them +#ifdef DEBUG_FSWATCHER std::cerr << "FsWatcher: Tracked file " << path << " has changed" << std::endl; +#endif size_t counter = ++m_lastCounter; m_changes[path] = counter; @@ -228,13 +235,17 @@ QString fn(fi.fileName()); foreach (QString pfx, m_ignoredPrefixes) { if (fn.startsWith(pfx)) { +#ifdef DEBUG_FSWATCHER std::cerr << "(ignoring: " << path << ")" << std::endl; +#endif return true; } } foreach (QString sfx, m_ignoredSuffixes) { if (fn.endsWith(sfx)) { +#ifdef DEBUG_FSWATCHER std::cerr << "(ignoring: " << path << ")" << std::endl; +#endif return true; } } diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/fswatcher.h --- a/src/fswatcher.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/fswatcher.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/grapher.cpp --- a/src/grapher.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/grapher.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/grapher.h --- a/src/grapher.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/grapher.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/hgaction.h --- a/src/hgaction.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/hgaction.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -118,6 +118,20 @@ return false; } } + + bool makesSenseToCancel() const { + switch (action) { + case ACT_INCOMING: + case ACT_PUSH: + case ACT_PULL: + case ACT_CLONEFROMREMOTE: + case ACT_FOLDERDIFF: + case ACT_CHGSETDIFF: + return true; + default: + return false; + } + } }; #endif diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/hgignoredialog.cpp --- a/src/hgignoredialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/hgignoredialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/hgignoredialog.h --- a/src/hgignoredialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/hgignoredialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/hgrunner.cpp --- a/src/hgrunner.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/hgrunner.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -20,16 +20,14 @@ #include "debug.h" #include "settingsdialog.h" -#include -#include -#include -#include -#include #include #include #include #include #include +#include +#include +#include #include #include @@ -44,10 +42,24 @@ #include #endif -HgRunner::HgRunner(QString myDirPath, QWidget * parent) : - QProgressBar(parent), +HgRunner::HgRunner(QString myDirPath, QWidget *parent) : + QWidget(parent), m_myDirPath(myDirPath) { + QGridLayout *layout = new QGridLayout(this); + layout->setMargin(0); + + m_progress = new QProgressBar; + layout->addWidget(m_progress, 0, 0); + + m_cancel = new QPushButton; + m_cancel->setIcon(QIcon(":images/cancel-small.png")); + m_cancel->setFlat(true); + m_cancel->setFixedHeight(m_progress->sizeHint().height()); + m_cancel->setFixedWidth(m_progress->sizeHint().height()); + connect(m_cancel, SIGNAL(clicked()), this, SLOT(killCurrentActions())); + layout->addWidget(m_cancel, 0, 1); + m_proc = 0; // Always unbundle the extension: even if it already exists (in @@ -59,8 +71,8 @@ // unbundling failed unbundleExtension(); - setTextVisible(false); - setVisible(false); + m_progress->setTextVisible(false); + hide(); m_isRunning = false; } @@ -328,9 +340,9 @@ void HgRunner::finished(int procExitCode, QProcess::ExitStatus procExitStatus) { - if (!m_proc) return; + if (!m_proc) return; - // Save the current action and reset m_currentAction before we + // Save the current action and reset m_currentAction before we // emit a signal to mark the completion; otherwise we may be // resetting the action after a slot has already tried to set it // to something else to start a new action @@ -366,8 +378,10 @@ void HgRunner::killCurrentActions() { + HgAction current = m_currentAction; m_queue.clear(); killCurrentCommand(); + emit commandCancelled(current); } void HgRunner::killCurrentCommand() @@ -524,8 +538,11 @@ } m_isRunning = true; - setRange(0, 0); - if (!action.shouldBeFast()) show(); + m_progress->setRange(0, 0); + if (!action.shouldBeFast()) { + show(); + m_cancel->setVisible(action.makesSenseToCancel()); + } m_stdout.clear(); m_stderr.clear(); m_realm = ""; diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/hgrunner.h --- a/src/hgrunner.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/hgrunner.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -20,22 +20,24 @@ #include "hgaction.h" -#include +#include #include -#include -#include -#include + +class QProgressBar; +class QPushButton; +class QFile; #include -class HgRunner : public QProgressBar +class HgRunner : public QWidget { Q_OBJECT public: - HgRunner(QString myDirPath, QWidget * parent = 0); + HgRunner(QString myDirPath, QWidget *parent = 0); ~HgRunner(); +public slots: void requestAction(HgAction action); void killCurrentActions(); // kill anything running; clear the queue @@ -44,6 +46,13 @@ void commandCompleted(HgAction action, QString stdOut); void commandFailed(HgAction action, QString stdErr, QString stdOut); + /** + * Emitted when the currently executing command is cancelled. Note + * that this clears the queue completely, so all subsequent + * commands are also discarded. + */ + void commandCancelled(HgAction action); + private slots: void started(); void error(QProcess::ProcessError); @@ -78,6 +87,9 @@ QString getUnbundledFileName(); QString unbundleExtension(); + QProgressBar *m_progress; + QPushButton *m_cancel; + QStringList addExtensionOptions(QStringList); int m_ptyMasterFd; diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/hgtabwidget.cpp --- a/src/hgtabwidget.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/hgtabwidget.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -154,6 +154,12 @@ m_historyWidget->update(); } +void HgTabWidget::setSearchText(QString text) +{ + m_fileStatusWidget->setSearchText(text); + m_historyWidget->setSearchText(text); +} + bool HgTabWidget::canDiff() const { return canRevert(); diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/hgtabwidget.h --- a/src/hgtabwidget.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/hgtabwidget.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -113,6 +113,8 @@ void showWorkTab(); void showHistoryTab(); + void setSearchText(QString text); + private: FileStatusWidget *m_fileStatusWidget; HistoryWidget *m_historyWidget; diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/historywidget.cpp --- a/src/historywidget.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/historywidget.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -23,6 +23,7 @@ #include "grapher.h" #include "debug.h" #include "uncommitteditem.h" +#include "findwidget.h" #include @@ -55,11 +56,21 @@ settings.beginGroup("Presentation"); bool showClosed = (settings.value("showclosedbranches", false).toBool()); + QWidget *opts = new QWidget; + QGridLayout *optLayout = new QGridLayout(opts); + optLayout->setMargin(0); + layout->addWidget(opts, ++row, 0, 1, 2); + + m_findWidget = new FindWidget(this); + optLayout->addWidget(m_findWidget, 0, 0, Qt::AlignLeft); + connect(m_findWidget, SIGNAL(findTextChanged(QString)), + this, SLOT(setSearchText(QString))); + m_showClosedBranches = new QCheckBox(tr("Show closed branches"), this); m_showClosedBranches->setChecked(showClosed); connect(m_showClosedBranches, SIGNAL(toggled(bool)), this, SLOT(showClosedChanged(bool))); - layout->addWidget(m_showClosedBranches, ++row, 0, Qt::AlignLeft); + optLayout->addWidget(m_showClosedBranches, 0, 1, Qt::AlignRight); m_showClosedBranches->hide(); setLayout(layout); @@ -241,6 +252,9 @@ toFocus->ensureVisible(); } + if (m_searchText != "") { + updateSearchStatus(); + } connectSceneSignals(); } @@ -294,6 +308,38 @@ } } +void HistoryWidget::setSearchText(QString text) +{ + if (m_searchText == text) return; + m_searchText = text; + updateSearchStatus(); +} + +void HistoryWidget::updateSearchStatus() +{ + QGraphicsScene *scene = m_panned->scene(); + if (!scene) return; + + ChangesetItem *toFocus = 0; + + QList items = scene->items(); + foreach (QGraphicsItem *it, items) { + + ChangesetItem *csit = dynamic_cast(it); + if (!csit) continue; + + bool matched = csit->matchSearchText(m_searchText); + if (matched && (!toFocus || csit->row() < toFocus->row())) { + toFocus = csit; + } + csit->update(); + } + + if (toFocus) { + toFocus->ensureVisible(); + } +} + void HistoryWidget::connectSceneSignals() { ChangesetScene *scene = qobject_cast(m_panned->scene()); diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/historywidget.h --- a/src/historywidget.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/historywidget.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -28,6 +28,7 @@ class Panner; class UncommittedItem; class QGraphicsScene; +class FindWidget; class HistoryWidget : public QWidget { @@ -68,6 +69,9 @@ private slots: void showClosedChanged(bool); + +public slots: + void setSearchText(QString); private: Changesets m_changesets; @@ -78,10 +82,13 @@ bool m_showUncommitted; bool m_refreshNeeded; + FindWidget *m_findWidget; Panned *m_panned; Panner *m_panner; QCheckBox *m_showClosedBranches; + QString m_searchText; + QGraphicsScene *scene(); void clearChangesets(); void replaceChangesets(Changesets); @@ -90,6 +97,7 @@ void setChangesetParents(); void updateNewAndCurrentItems(); void connectSceneSignals(); + void updateSearchStatus(); }; #endif diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/incomingdialog.cpp --- a/src/incomingdialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/incomingdialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/incomingdialog.h --- a/src/incomingdialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/incomingdialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/logparser.cpp --- a/src/logparser.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/logparser.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/logparser.h --- a/src/logparser.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/logparser.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/main.cpp --- a/src/main.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/main.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/mainwindow.cpp --- a/src/mainwindow.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/mainwindow.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -85,6 +85,8 @@ this, SLOT(commandCompleted(HgAction, QString))); connect(m_runner, SIGNAL(commandFailed(HgAction, QString, QString)), this, SLOT(commandFailed(HgAction, QString, QString))); + connect(m_runner, SIGNAL(commandCancelled(HgAction)), + this, SLOT(commandCancelled(HgAction))); statusBar()->addPermanentWidget(m_runner); setWindowTitle(tr("EasyMercurial")); @@ -112,7 +114,7 @@ m_hgTabs = new HgTabWidget(central, m_workFolderPath); connectTabsSignals(); - cl->addWidget(m_hgTabs, row++, 0); + cl->addWidget(m_hgTabs, row++, 0, 1, 2); connect(m_hgTabs, SIGNAL(selectionChanged()), this, SLOT(enableDisableActions())); @@ -153,6 +155,11 @@ } +void MainWindow::resizeEvent(QResizeEvent *) +{ +} + + QString MainWindow::getUserInfo() const { QSettings settings; @@ -187,9 +194,9 @@ "

EasyMercurial is based on HgExplorer by " "Jari Korhonen, with thanks.

" "

" - "Copyright © 2011 Queen Mary, University of London.
" + "Copyright © 2012 Queen Mary, University of London.
" "Copyright © 2010 Jari Korhonen.
" - "Copyright © 2011 Chris Cannam." + "Copyright © 2012 Chris Cannam." "

" "

" "This program requires Mercurial, by Matt Mackall and others.
" @@ -282,6 +289,8 @@ path = s.value("default").toString(); } +// std::cerr << "hgQueryPaths: setting m_remoteRepoPath to " << m_remoteRepoPath << " from file " << hgrc.absoluteFilePath() << std::endl; + m_remoteRepoPath = path; // We have to do this here, because commandCompleted won't be called @@ -1484,7 +1493,8 @@ d->addChoice("remote", tr("


Remote repository
"), explanation, - MultiChoiceDialog::UrlArg); + MultiChoiceDialog::UrlArg, + true); // default empty if (d->exec() == QDialog::Accepted) { @@ -1779,6 +1789,7 @@ if (status == FolderHasRepo) { if (!askToOpenInsteadOfInit(local)) return false; + return openLocal(local); } if (containing != "") { @@ -1831,8 +1842,8 @@ hgRefresh(); return; } + updateFsWatcher(); } - updateFsWatcher(); } QString MainWindow::format1(QString head) @@ -2519,6 +2530,19 @@ } } +void MainWindow::commandCancelled(HgAction cancelledAction) +{ + // Originally I had this checking whether the cancelled action was + // a network one and, if so, calling hgQueryPaths to update the + // local view in case it had changed anything. But that doesn't + // work properly -- because at this point, although the command + // has been cancelled and a kill signal sent, it hasn't actually + // exited yet. If we request another command now, it will go on + // the stack and be associated with the failed exit forthcoming + // from the cancelled command -- giving the user a disturbing + // command-failed dialog +} + void MainWindow::connectActions() { connect(m_exitAct, SIGNAL(triggered()), this, SLOT(close())); @@ -3007,8 +3031,13 @@ int sz = 32; bool spacingReqd = false; + QString spacer = ""; #ifndef Q_OS_MAC spacingReqd = true; + spacer = " "; +#ifdef Q_OS_WIN32 + spacer = " "; +#endif #endif m_workFolderToolBar = addToolBar(tr("Work")); @@ -3032,9 +3061,13 @@ m_repoToolBar = addToolBar(tr("Remote")); m_repoToolBar->setIconSize(QSize(sz, sz)); - if (spacingReqd) m_repoToolBar->addWidget(new QLabel(" ")); + if (spacingReqd) { + m_repoToolBar->addWidget(new QLabel(spacer)); + } m_repoToolBar->addAction(m_openAct); - if (spacingReqd) m_repoToolBar->addWidget(new QLabel(" ")); + if (spacingReqd) { + m_repoToolBar->addWidget(new QLabel(spacer)); + } m_repoToolBar->addSeparator(); m_repoToolBar->addAction(m_hgIncomingAct); m_repoToolBar->addAction(m_hgPullAct); @@ -3077,10 +3110,8 @@ QSettings settings; - m_remoteRepoPath = settings.value("remoterepopath", "").toString(); m_workFolderPath = settings.value("workfolderpath", "").toString(); - if (!workFolder.exists(m_workFolderPath)) - { + if (!workFolder.exists(m_workFolderPath)) { m_workFolderPath = ""; } diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/mainwindow.h --- a/src/mainwindow.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/mainwindow.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -46,6 +46,7 @@ protected: void closeEvent(QCloseEvent *event); + void resizeEvent(QResizeEvent *event); public slots: void open(QString local); @@ -53,6 +54,7 @@ void commandStarting(HgAction); void commandCompleted(HgAction action, QString stdOut); void commandFailed(HgAction action, QString stdErr, QString stdOut); + void commandCancelled(HgAction action); void enableDisableActions(); private slots: diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/moreinformationdialog.cpp --- a/src/moreinformationdialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/moreinformationdialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/moreinformationdialog.h --- a/src/moreinformationdialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/moreinformationdialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/multichoicedialog.cpp --- a/src/multichoicedialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/multichoicedialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -136,13 +136,15 @@ void MultiChoiceDialog::addChoice(QString id, QString text, - QString description, ArgType arg) + QString description, ArgType arg, + bool defaultEmpty) { bool first = (m_texts.empty()); m_texts[id] = text; m_descriptions[id] = description; m_argTypes[id] = arg; + m_defaultEmpty[id] = defaultEmpty; if (arg != NoArg) { m_recentFiles[id] = QSharedPointer @@ -263,7 +265,9 @@ void MultiChoiceDialog::updateOkButton() { - if (m_argTypes[m_currentChoice] == UrlToDirectoryArg) { + if (m_defaultEmpty[m_currentChoice]) { + m_okButton->setEnabled(true); + } else if (m_argTypes[m_currentChoice] == UrlToDirectoryArg) { m_okButton->setEnabled(getArgument() != "" && getAdditionalArgument() != ""); } else { @@ -326,6 +330,7 @@ m_fileLabel->show(); m_fileCombo->show(); m_fileCombo->addItems(rf->getRecent()); + if (m_defaultEmpty[id]) m_fileCombo->lineEdit()->setText(""); m_browseButton->show(); break; @@ -334,6 +339,7 @@ m_fileLabel->show(); m_fileCombo->show(); m_fileCombo->addItems(rf->getRecent()); + if (m_defaultEmpty[id]) m_fileCombo->lineEdit()->setText(""); m_browseButton->show(); break; @@ -341,12 +347,14 @@ m_urlLabel->show(); m_urlCombo->show(); m_urlCombo->addItems(rf->getRecent()); + if (m_defaultEmpty[id]) m_urlCombo->lineEdit()->setText(""); break; case UrlToDirectoryArg: m_urlLabel->show(); m_urlCombo->show(); m_urlCombo->addItems(rf->getRecent()); + if (m_defaultEmpty[id]) m_urlCombo->lineEdit()->setText(""); m_fileLabel->setText(tr("&Folder:")); m_fileLabel->show(); m_fileCombo->show(); diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/multichoicedialog.h --- a/src/multichoicedialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/multichoicedialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -48,7 +48,8 @@ }; void addChoice(QString identifier, QString text, - QString description, ArgType arg); + QString description, ArgType arg, + bool defaultEmpty = false); void setCurrentChoice(QString); QString getCurrentChoice(); @@ -71,6 +72,7 @@ QMap m_texts; QMap m_descriptions; QMap m_argTypes; + QMap m_defaultEmpty; QMap > m_recentFiles; QString m_currentChoice; diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/panned.cpp --- a/src/panned.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/panned.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/panned.h --- a/src/panned.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/panned.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/panner.cpp --- a/src/panner.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/panner.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/panner.h --- a/src/panner.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/panner.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/recentfiles.cpp --- a/src/recentfiles.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/recentfiles.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/recentfiles.h --- a/src/recentfiles.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/recentfiles.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/repositorydialog.cpp --- a/src/repositorydialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/repositorydialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/repositorydialog.h --- a/src/repositorydialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/repositorydialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/selectablelabel.cpp --- a/src/selectablelabel.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/selectablelabel.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/selectablelabel.h --- a/src/selectablelabel.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/selectablelabel.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/settingsdialog.cpp --- a/src/settingsdialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/settingsdialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/settingsdialog.h --- a/src/settingsdialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/settingsdialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/squeezedlabel.cpp --- a/src/squeezedlabel.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/squeezedlabel.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -17,7 +17,7 @@ /* This file adapted from Rosegarden, a sequencer and musical - notation editor. Copyright 2000-2011 the Rosegarden development + notation editor. Copyright 2000-2012 the Rosegarden development team. Adapted from KDE 4.2.0, this code originally Copyright (c) 2000 diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/squeezedlabel.h --- a/src/squeezedlabel.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/squeezedlabel.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -17,7 +17,7 @@ /* This file adapted from Rosegarden, a sequencer and musical - notation editor. Copyright 2000-2011 the Rosegarden development + notation editor. Copyright 2000-2012 the Rosegarden development team. Adapted from KDE 4.2.0, this code originally Copyright (c) 2000 diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/startupdialog.cpp --- a/src/startupdialog.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/startupdialog.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/startupdialog.h --- a/src/startupdialog.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/startupdialog.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/textabbrev.cpp --- a/src/textabbrev.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/textabbrev.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/textabbrev.h --- a/src/textabbrev.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/textabbrev.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/uncommitteditem.cpp --- a/src/uncommitteditem.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/uncommitteditem.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/uncommitteditem.h --- a/src/uncommitteditem.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/uncommitteditem.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/version.h --- a/src/version.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/version.h Mon Mar 12 14:58:40 2012 +0000 @@ -1,1 +1,1 @@ -#define EASYHG_VERSION "1.1" +#define EASYHG_VERSION "1.2" diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/versiontester.cpp --- a/src/versiontester.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/versiontester.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/versiontester.h --- a/src/versiontester.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/versiontester.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on hgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/workstatuswidget.cpp --- a/src/workstatuswidget.cpp Tue Feb 14 17:53:29 2012 +0000 +++ b/src/workstatuswidget.cpp Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff -r 9f91d1b2ed51 -r e40e3ebe9f2e src/workstatuswidget.h --- a/src/workstatuswidget.h Tue Feb 14 17:53:29 2012 +0000 +++ b/src/workstatuswidget.h Mon Mar 12 14:58:40 2012 +0000 @@ -5,8 +5,8 @@ Based on HgExplorer by Jari Korhonen Copyright (c) 2010 Jari Korhonen - Copyright (c) 2011 Chris Cannam - Copyright (c) 2011 Queen Mary, University of London + Copyright (c) 2012 Chris Cannam + Copyright (c) 2012 Queen Mary, University of London This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as