Commit graph

2354 commits

Author SHA1 Message Date
Peter Penz
9470f30828 If the revision states have been changed because of executing a SVN context menu action, the resulting update should be done silently without information messages.
svn path=/trunk/KDE/kdebase/apps/; revision=1004412
2009-07-30 06:21:35 +00:00
Peter Penz
ddc1461147 terminate the thread which checks the revision state of items if the revision control observer gets deleted
svn path=/trunk/KDE/kdebase/apps/; revision=1004371
2009-07-29 22:50:35 +00:00
Peter Penz
1abf1974f5 inform the revision control observer about changed revision states
svn path=/trunk/KDE/kdebase/apps/; revision=1004351
2009-07-29 22:03:11 +00:00
Peter Penz
a70be712fd Allow the revision control plugins to indicate information-, error- and operation-completed messages.
svn path=/trunk/KDE/kdebase/apps/; revision=1004346
2009-07-29 21:56:37 +00:00
Michael Jansen
a48c813fd9 Fix memory leak. QMenu::addAction(QMenu*) does not take ownership.
svn path=/trunk/KDE/kdebase/apps/; revision=1004276
2009-07-29 18:59:06 +00:00
Script Kiddy
b1d5b7d017 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/apps/; revision=1004107
2009-07-29 11:36:58 +00:00
Peter Penz
11b2a3f61c - indicate whether the server provides an updated version of a file
- QProcess::waitForReadyRead() must be invoked until it returns false. BTW: this method is invoked inside a non-GUI-thread and hence does not block Dolphin

svn path=/trunk/KDE/kdebase/apps/; revision=1004044
2009-07-29 07:38:57 +00:00
Peter Penz
d4ba16b900 Use QProcess instead of the low-level API popen(). Thanks to André Wöbbeking for the hint.
svn path=/trunk/KDE/kdebase/apps/; revision=1004024
2009-07-29 06:31:20 +00:00
Rafael Fernández López
9eaecac019 Adapt KCategorizedView and KCategoryDrawer changes from kdelibs
svn path=/trunk/KDE/kdebase/apps/; revision=1003883
2009-07-28 23:30:46 +00:00
Peter Penz
a2913a0205 SVN_SILENT: add m_revisionInfoKeys to the initializer list
svn path=/trunk/KDE/kdebase/apps/; revision=1003848
2009-07-28 22:08:39 +00:00
Peter Penz
47615514f8 Use the output of 'svn status' instead of doing a custom and error-prone .svn-parsing. BTW: this commit is the first done within Dolphin itself :-)
svn path=/trunk/KDE/kdebase/apps/; revision=1003845
2009-07-28 22:04:00 +00:00
Peter Penz
66ad27aba1 Improved Subversion test plugin to allow committing, updating, diffing, adding and removing of files. As soon as the test plugin gets moved to kdesdk, the code should be improved to use the libsvn interface.
svn path=/trunk/KDE/kdebase/apps/; revision=1002839
2009-07-27 05:31:48 +00:00
Peter Penz
47d5003283 The revision control plugin must be aware on which directory the context-menu-actions should get applied. Relying on the directory that has been used in beginRetrieval() does not work when having a treeview.
svn path=/trunk/KDE/kdebase/apps/; revision=1001388
2009-07-23 06:28:28 +00:00
Peter Penz
fddd17030c replace list.count() > 0 by !list.isEmpty()
svn path=/trunk/KDE/kdebase/apps/; revision=1001386
2009-07-23 06:14:57 +00:00
Peter Penz
9340a52cf8 also provide revision control actions for the viewport-context-menu
svn path=/trunk/KDE/kdebase/apps/; revision=1001385
2009-07-23 06:10:01 +00:00
Peter Penz
a9ef4bd96a show the actions of a revision control plugin in the context menu
svn path=/trunk/KDE/kdebase/apps/; revision=1001270
2009-07-22 19:26:25 +00:00
Peter Penz
ebf78d6ac2 - Documentation updates.
- Allow the revision plugin to emit a signal which indicates a changed revision state.
- Update the revision state if the state of file items has been changed.
- Check also the content of a file if the size of a local and revisioned file is equal.

svn path=/trunk/KDE/kdebase/apps/; revision=1000831
2009-07-22 07:07:43 +00:00
Script Kiddy
c92c5cada0 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/apps/; revision=1000560
2009-07-21 15:15:44 +00:00
Peter Penz
d288b1cda4 - interface cleanups
- the subversion test plugin is at least capable of indicating the revision state for files

svn path=/trunk/KDE/kdebase/apps/; revision=999489
2009-07-19 22:29:59 +00:00
Peter Penz
46dcb12d9f no need to export this internal class
svn path=/trunk/KDE/kdebase/apps/; revision=998500
2009-07-17 19:41:29 +00:00
Peter Penz
68a2ef9143 remove revision-information entries when items got deleted in the model
svn path=/trunk/KDE/kdebase/apps/; revision=998498
2009-07-17 19:37:47 +00:00
Peter Penz
a447eb391c The performance of updating the revision state of items depends on the used plugin. To prevent that Dolphin gets blocked by a slow plugin, the updating is delegated to a thread.
Still open issue: Applying the revision control property to the model is a bottleneck in QListView (a detailed description of the reason is in kdelibs/kfile/kfilepreviewgenerator.cpp, class LayoutBlocker). But the approach used in KFilePreviewGenerator destroys the textlayout in this case and is temporary disabled until I could track down the reason.

svn path=/trunk/KDE/kdebase/apps/; revision=998492
2009-07-17 19:26:46 +00:00
Peter Penz
93ce7f40e2 When pressing a key after entering a directory, QAbstractItemView::scrollTo() must be invoked to have autoscroll behavior.
BUG: 199833

svn path=/trunk/KDE/kdebase/apps/; revision=998474
2009-07-17 18:33:37 +00:00
Darío Andrés Rodríguez
17b8ac7458 Call MediaObject::play() on Audio files mode.
BUG: 196243


svn path=/trunk/KDE/kdebase/apps/; revision=998153
2009-07-17 01:49:08 +00:00
Peter Penz
fae6ac51a1 simplify the revision control API
svn path=/trunk/KDE/kdebase/apps/; revision=996886
2009-07-15 06:27:53 +00:00
Frank Reininghaus
027bfb1789 Improve selection behaviour concerning the new "jump to next/previous
row using right/left arrow" and "jump to next/previous column using
down/up arrow" when using the Icon View's "Rows" and "Columns"
arrangement, respectively, in the following cases:

1. In "Columns" arrangement, if the first item is selected and
Ctrl-Down is pressed repeatedly, don't deselect the first item when
jumping to the next column.

2. In "Rows" arrangement, if the first item in the second row is
active and then Left and finally Shift-Left is pressed, don't
re-select the first item in the second row unexpectedly.

3. If an item in the middle of the second row is selected, make sure
that selection with Shift-Left/Shift-Right is reversible even if the
previous/next row is reached. 

svn path=/trunk/KDE/kdebase/apps/; revision=996758
2009-07-14 20:47:37 +00:00
Peter Penz
32157cc47c Forward port for SVN commit 996129: Fix possible crash when no current item is given. Thanks to Martin Koller for the patch!
CCBUG: 198805
CCBUG: 200037

svn path=/trunk/KDE/kdebase/apps/; revision=996131
2009-07-13 21:28:54 +00:00
Peter Penz
a655a560fb The Oxygen team will provide revision control emblems for KDE 4.4. Adjust the code to use icons instead of coloring the text... The icon position at the moment is terrible, an interface extension in KFileItemDelegate is required to get the icon boundaries.
svn path=/trunk/KDE/kdebase/apps/; revision=996101
2009-07-13 20:39:44 +00:00
Peter Penz
220355ca8d Just change the text color for revisioned files instead of using a completely filled background. I'm unsure whether we should use emblems or not... The problem with emblems is that most people that work with revisioned files use the details view with very small icons. So having an emblem above an icon and additionally the selection indicator does not work. Any ideas?
svn path=/trunk/KDE/kdebase/apps/; revision=995378
2009-07-12 15:15:10 +00:00
Peter Penz
01a158c9e0 The information whether an item is a file or a directory is already known by Dolphin and might be useful for revision control plugins.
svn path=/trunk/KDE/kdebase/apps/; revision=995365
2009-07-12 14:33:26 +00:00
Peter Penz
fa4680cb38 Enable Dolphin to show the revision states of files that are under revision control systems like SVN, Git, CVS, ... The current code is an early draft and it is planned that all plugins (SVN, Git, CVS, ...) are maintained outside Dolphin. If the API is stable enough, a discussion will be done at kfm-devel@kde.org regarding the location of the plugins (the current implementation of SubversionPlugin is only temporary located in Dolphin for testing purposes).
RevisionControlObserver is implemented in a way that no recognizable slowdown is given for directories that are not under revision control.

CCBUG: 192158

svn path=/trunk/KDE/kdebase/apps/; revision=995351
2009-07-12 14:00:45 +00:00
David Faure
2df2d4ea7e Same change as in r995015, but for usage in konq: Don't connect to KDirLister::itemDeleted(const KFileItem&), but KDirLister::itemsDeleted(const KFileItemList&).
svn path=/trunk/KDE/kdebase/apps/; revision=995123
2009-07-12 01:00:14 +00:00
Peter Penz
430c2e768c Don't open folders on a single-click in the column view when the mouse settings specify double-click. Originally this was meant as a kind of feature (open files on double-click, but folders still on single-click), but it has been received as bug.
BUG: 198464

svn path=/trunk/KDE/kdebase/apps/; revision=995029
2009-07-11 18:56:03 +00:00
Peter Penz
00cc24a9ba Update the statusbar synchronously when the directory lister has been completed. As no selection is given at this moment, there is no risk that updateStatusBar() is expensive.
svn path=/trunk/KDE/kdebase/apps/; revision=995021
2009-07-11 18:10:35 +00:00
Peter Penz
8e6dbadef2 Fixed performance issues related to selections and deleting of files:
- Don't connect to KDirLister::itemDeleted(const KFileItem&), but KDirLister::itemsDeleted(const KFileItemList&). Otherwise Dolphin is informed about each single file deletion instead of getting the deleted items as a list. Thanks to David Faure for the hint!

- DolphinViewContainer::updateStatusBar() can be expensive when a lot of files are selected, as the file size must get retrieved. Assure that fast calls for updateStatusBar() don't trigger a synchronous update, do the update after 300 ms where no further update has been triggered.

- Dolphin provides a list of file items when emitting the selectionChanged() signal. Collecting the file items is a quite expensive operation, so use the same approach as when updating the statusbar: only emit the selection changed signal when no change has been done within 300 ms. This improves the performance when doing huge selections a lot.

- Make updateStatusBar() a private method, the main window should not need to take care about updating the statusbar (this is done internally now by DolphinViewContainer).

BUG: 199090
BUG: 195787
CCBUG: 199352
CCBUG: 188218

svn path=/trunk/KDE/kdebase/apps/; revision=995015
2009-07-11 17:48:05 +00:00
David Faure
ebd0f1b06f Fix regression introduced by an obviously untested "krazy fix" (r973284). Setting a
QVariant to QString() is not the same as calling clear on the QVariant (which makes the variant invalid).
(BUG 194502)

svn path=/trunk/KDE/kdebase/apps/; revision=994217
2009-07-10 11:46:48 +00:00
Peter Penz
c3ffc95a73 - adding missing const
- minor adjustment of name
- use same declaration order as other private methods

CCMAIL: predator106@gmail.com 

svn path=/trunk/KDE/kdebase/apps/; revision=994089
2009-07-10 06:07:32 +00:00
Shaun Reich
70915125f7 Fixed the annoying bug (for me) that dealt with having a very long folder name. In this case, the name of the tab could be many more times bigger than the tabBar itself.
Now they are ellided, so e.g. "really really long folder name...is" or something.

Few more cases left for me to fix(shortly), but those are not quite close to this section.

svn path=/trunk/KDE/kdebase/apps/; revision=993618
2009-07-09 04:41:53 +00:00
Peter Penz
31d359323c Performance improvement when selecting pasted/dropped items.
svn path=/trunk/KDE/kdebase/apps/; revision=993585
2009-07-08 22:34:02 +00:00
Peter Penz
7c539fd12f Fixed regression when refactoring the Information Panel: Don't forget to give a visual indication if the generation of the preview takes long.
svn path=/trunk/KDE/kdebase/apps/; revision=993584
2009-07-08 22:31:45 +00:00
Script Kiddy
00488cfa3c SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/apps/; revision=992648
2009-07-07 14:08:46 +00:00
Peter Penz
dc29afa688 The complexity of the class InformationPanel has grown a lot from KDE 4.0 to KDE 4.3. One main reason is that a lot of things are done now asynchronously with timers to prevent a blocking UI and unnecessary expensive operations.
To keep the Information Panel maintainable and prepared for future features a cleanup has been done. The whole user interface handling has been moved into the class InformationPanelContent that offers a straight forward interface: showItem(const KFileItem& item) and showItems(const KFileItemList& items).

The class InformationPanel is responsible for calling those methods in a way that hovering items, changing directories, doing selections, rename and delete operations, ... don't result in calling showItem() 10 times per second.

This cleanup won't be backported to KDE 4.3.x

svn path=/trunk/KDE/kdebase/apps/; revision=991902
2009-07-05 22:54:37 +00:00
Peter Penz
b4aacaf4d2 Improve performance of Dolphin:
- When changing a directory the receiving of the meta data is done now with a short delay. This gives the directory lister the chance to show the directory as fast as possible.
- Prevent that DolphinInformationPanel::reset() is invoked when changing a directory. The method only needs to get invoked if an item has been deleted or renamed.
- Cache an unknown file item. This improves the startup time of Dolphin (-> KFileItem constructor is invoked only once instead of up to 6 times).

svn path=/trunk/KDE/kdebase/apps/; revision=991840
2009-07-05 19:10:20 +00:00
Peter Penz
40cd135f4d Wrap the cursor on the right/left side to have a similar keyboard behavior like in Konqueror for KDE 3. Thanks to Tahseen Mohammad for the patch!
No backport to KDE 4.3.x is done until the patch has proven to work well under all circumstances.

BUG: 152985
CCMAIL: tahseen.mohammad@gmail.com
CCMAIL: frank78ac@googlemail.com

svn path=/trunk/KDE/kdebase/apps/; revision=991780
2009-07-05 16:24:46 +00:00
Script Kiddy
49bbd0097c SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/apps/; revision=990943
2009-07-03 14:05:35 +00:00
Frank Reininghaus
793b6832ce Pass the "Yesterday (%B, %Y)" string to modifiedTime.toString(), such
that %B and %Y actually get replaced by month and year. Today seemed
to be a good day to reproduce and fix this :-)

BUG: 179262

svn path=/trunk/KDE/kdebase/apps/; revision=990131
2009-07-01 18:51:17 +00:00
Andrius Štikonas
23bd9f0d66 Use KIntSpinBox instead of QSpinBox for better integration with KDE. As a bonus this allows to use plural suffix in spinboxes since KDE 4.3 if necessary.
svn path=/trunk/KDE/kdebase/apps/; revision=989742
2009-06-30 20:09:04 +00:00
Peter Penz
c1a086da25 Fixed issue that the scroll position is reset if the focus of the itemview changes.
BUG: 197951

svn path=/trunk/KDE/kdebase/apps/; revision=989236
2009-06-29 19:32:39 +00:00
Script Kiddy
76d52a5ff1 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/apps/; revision=988696
2009-06-28 14:31:57 +00:00
Frank Reininghaus
fc77061ec0 Swap two lines in DolphinViewContainer::setUrl. Up to now, the "if
(...)" check was more or less equivalent to "if (false)" here ;-) I've
verified that the "Create New..." menu is still enabled correctly when
switching columns in Columns view, which is what the "if" check
was added for in the first place.  

svn path=/trunk/KDE/kdebase/apps/; revision=988119
2009-06-27 10:42:47 +00:00