tabs menu related code from DolphinMainWindow in a new class.
The DolphinRecentTabsMenu remembers the tab configuration if a
tab has been closed.
REVIEW: 118805
When emitting the itemsChanged signal in KFileItemModel::setRoles,
use the changed roles in the argument of the signal.
A warning message which was related to this issue was removed in
7a83252e0d
REVIEW: 118815
The message
"TODO: Emitting itemsChanged() with no information what has changed!"
is not helpful for the user.
The implementation of the TODO will be done in master, see
https://git.reviewboard.kde.org/r/118815/
CCBUG: 336174
This removes the remaining unchecked accesses to the clipboard mime
data after commit 7828b057da. According
to a bug report, it can be a null pointer on Wayland.
BUG: 335053
REVIEW: 118649
The KF5 version of KPageDialog has no virtual slot
"slotButtonClicked(int button)". Its kdelibs 4.x counterpart had such
a slot, which was connected automatically to the corresponding signal.
This slot was overriden by
DolphinSettingsDialog::slotButtonClicked(int button)
which was responsible for applying the changed setting and restoring
the default values if the corresponding button was clicked.
The lack of the buttonClicked(int) signal and the corresponding slot
caused the problem that clicking a button in the settings dialog had no
effect.
This patch makes the functions applySettings() and restoreDefaults()
functions slots, and connects them directly to the "clicked" signal of
the corresponding buttons.
BUG: 335709
REVIEW: 118576
By separating the width and height info, we can save some unnecessary
overhead in terms of memory and CPU cycles, and make the calculation of
the height of a row (or the width of a column in Compact View) a bit
simpler.
To achieve this, this patch extends the concept of "logical rows"
(which are actually columns in Compact View) to "logical width" and
"logical height" (which is the actual height and width, respectively, in
Compact View). The distinction between rows/columns and "logical"
rows/columns may be a bit confusing, but the confusion is already in the
current code, and I hope that it will be mitigated a bit by prefixing
the corresponding variables with "logical".
REVIEW: 118454
Since the KF5 libraries and the applications will not have a
synchronized release schedule any more, it does not make sense to
continue using KDE_VERSION_STRING as the Dolphin version.
The return type and return values of KMessageBox::createKMessageBox()
have changed in KF5. We have to adjust the code
in DolphinMainWindow::closeEvent(QCloseEvent* event) in order to make
windows with multiple tabs closable.
BUG: 335732
REVIEW: 118508
When opening the URL "man:", there are multiple items with the same
name (for example, _exit is shown twice here). When opening a new tab,
the kioslave reports some items as deleted (I have not quite understood
why). The problem is that it reports some of the duplicate items twice
in the list of deleted items. This confused KFileItemModel and
corrupted the internal data structures, and finally, caused a crash.
The fix is to remove all duplicates from
KItemRangeList::fromSortedContainer(const Container& container).
New unit tests included.
BUG: 335672
REVIEW: 118507
FIXED-IN: 4.13.2
of "m_selectionToggle->contains(pos)" in
KItemListWidget::setHoverPosition(const QPointF& pos).
This wrong check was accidentally introduced by
commit 24326d4473
BUG: 299328
REVIEW: 118320
FIXED-IN: 4.13.2
The old code would watch the free space on a mount point, i.e.,
determine the free space again, in 10-second intervals, only until the
view became invisible once (even if it was invisible only for a very
short moment, i.e., while splitting the view).
This commit ensures that the mount point is watched again as soon as
the corresponding view becomes visible again.
Moreover, the object that watches the free space for a mount point is
shared among all views that show URLs that belong to this mount point.
To achieve this, there is a central cache which can be used to obtain
an existing MountPointObserver for a certain path. If necessary, a new
MountPointObserver is created and added to the cache.
The MountPointObserver is removed from the cache and destroyed only if
no views use it any more, and no new users appear until the next update
(which happens every 10 seconds). This prevents that the free space is
measured repeatedly when changing the current directory on the same
mount point.
Many thanks to Emmanuel Pescosta for the initial ideas to factor out
the "free space" code and to establish a central storage for the
"observer" objects, and for providing many good suggestions how to
improve the code!
BUG: 327708
REVIEW: 118208
FIXED-IN: 4.14.0
If the "Places" are updated outside the current Dolphin process,
PlacesItemModel::updateBookmarks() is called, which invokes
PlacesItem::setBookmark(const KBookmark& bookmark) for each item. This
commit ensures that the correct translation is used for system
bookmarks like "Root", "Network", etc.
Without this patch, all Places entries in the remaining Dolphin windows
would switch to US English if one of multiple windows is closed.
See http://lists.kde.org/?t=139660468400004&r=1&w=2 for details.
BUG: 334999
REVIEW: 118207
FIXED-IN: 4.13.2
Before this patch, KDirLister would continue listing any children of
collapsed folders, even though the children themselves were removed
from the model. This could lead to new items being inserted as
top-level items at some later point, because no parent could be found
for them. This inconsistent model state could lead to a crash later on.
Many thanks to Martin Koller for helping to debug this problem!
BUG: 332102
REVIEW: 118055
FIXED-IN: 4.13.2
Before this patch, any (direct or indirect) children that might have
been in m_pendingItemsToInsert, i.e., that were not inserted into the
model yet because KDirLister had not finished listing the directory
yet, would be added to the model later without a proper parent. This
could cause a crash later on.
CCBUG: 332102
FIXED-IN: 4.13.2
Since the master branch had never been merged into frameworks since the
creation of the frameworks branch, I had to fix a couple of merge
conflicts and make another change in order to make it build - I hope I
did not get anything wrong.
We should probably merge master into frameworks on a regular basis from
now on.
CCMAIL:kfm-devel@kde.org
Conflicts:
dolphin/src/dolphinmainwindow.cpp
dolphin/src/search/dolphinfacetswidget.cpp
dolphin/src/statusbar/dolphinstatusbar.cpp
dolphin/src/views/dolphinview.cpp
Middle clicking on Forward/Backward/Home/etc. will no longer open a new
tab since the QAction triggered signal no longer tell us which mouse
button was pressed
Removed arguments from DolphinViewActionHandler::slotTrashActivated since
they were unused and made the connection fail.
Also fixed a bad connection in dolphinview.cpp, there is no signal
KFileItemModel::loadingCompleted
TerminalPanel connections to konsole part were not converted since there
is no header available that defines these function, we have to keep the
old syntax here.
Additionally the new syntax no longer accepts QPointer arguments, we have
to explicitly call .data() there.
This conversion was performed automatically using convert2qt5signalslot.
The only manual changes required were changing the overloaded signal
KDirLister::redirection and KDirLister::completed from KUrl to QUrl. All
other cases were no problem since these signals are not overloaded and a
static_cast for disambiguation is not necessary.
Code inside HAVE_BALOO is not converted yet, will do that once I can build
a version with Baloo.