Summary:
This adds support for Documents detection when included as a default
as implemented in D16852. This is a work-in-progress and currently
does not succeed.
Assistance is welcome.
Test Plan: Run ctest within the dolphin build directory.
Reviewers: #dolphin
Subscribers: elvisangelaccio, kfm-devel, ngraham
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16967
Instead of listing the user tags (as tried in D21017), the test should not have
access to the user's baloo DB in the first place.
To do so, we use a QTemporaryDir as $HOME for the test process and for
its ioslave children (by setting KDE_FORK_SLAVES=yes).
While at it, drop the no-op removeTestUserData() function.
Commit bff373d598 was not enough because the model takes into
account the global view properties setting (in PlacesItemModel::initializeDefaultViewProperties()).
This means we need to disable the setting before init() runs.
Summary:
Access the object by its existing name rather than renaming it.
BUG: 405780
FIXED-IN: 19.04.1
Test Plan:
- Add {nav Create New} item to toolbar; it now works
- Verify that {nav Create New} menu and toolbar items are disabled when in the trash
- All tests still pass
Reviewers: elvisangelaccio, broulik, #dolphin, cfeck
Reviewed By: cfeck
Subscribers: cfeck, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D20664
Summary:
new finding tech:
- find_gem function configures gem-specific FindFoo files and wraps around
find_package
- FindFoo files look for ruby and then attempt to require the gem name
i.e. it checks if the gem can be successfully loaded by the interpreter
- since this is based on find_package it may be influenced in all the
regular ways (e.g. forced found or disabled from finding altogether
via CMAKE_DISABLE_FIND_PACKAGE_$PKGNAME)
various notes for the future:
- technically this isn't 100% correct because the require name of a gem and
the gem name may not be the same. e.g. the gem `docker-api` has the
require name `docker`. for all currently used gems the names are however
the same and so simply requiring the gem name is expected to work
- the implementation doesn't care about versions, again because we don't
need it to
- test-unit is a bundled gem, some distributions (e.g. Arch) do split it
out without making suitable dependency arrangements on a package level
though
the tech is heavily inspired by Aleix Pol's tech for finding QML modules
as seen in extra-cmake-modules
Test Plan:
- ruby not found: none of the modules found
- test-unit not present: error
- simplecov not prseent: never errors
- having a module installed or not is reported in the cmake output
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D19856
Summary:
- apply ruby community style guidelines
- full rewrite fixing, among other things:
- inefficient/unreadable String#end_with reimplementation
- inefficient use of Kernel.system (forked shell to fork a shell)
- inefficient/unreadable Dir.glob reimplementation
- inefficient File initialization for single chmod
- invocation conditions are now actually readable
- invocation conditions now also force +x on argless scripts, not just
scripts that need arguments
- repetitive conditions are now expressed as loops on argument arrays
- mime detection now uses xdg-mime instead of file (xdg-mime internally
may fall back to mime but will prefer higher level tools such as
kmimetypefinder5; giving better results overall)
- return values of "backtick forks" are now checked and will produce
suitable errors on stderr
- fail now takes a log_msg argument which is printed to stderr. this
is in addition to the error raised as notification for the user, as
that is unfortunately not so useful for diagnostics
- overall error handling and logging of problem causes is much improved
- add license headers. the original code was actually fairly exhaustive, so
this really should have had a header to begin with. the code was
originally introduced in svn r1045663 on Nov 6 14:56:35 2009 UTC
- add blackbox tests. in the interest of keeping the scripts actually
simple scripts (as opposed to a bunch of classes used by even simpler
scirpts) they are now also covered by test rigging which runs them as
scripts (again, as opposed to individual unit testing of distinct units)
- the tests optionally can use simplecov to gather coverage metrics
- also wired up to ctest so it actually gets run
structurally there is actually a fair amount of overlap between the two
scripts, but again, in the interest of keeping things simple I think it's
better to live with that instead of refactoring a shared library out of
it and then use heavy-duty meta-programming
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D19334
Summary:
The DolphinTabPage::activeViewUrlChanged signal triggers the title
update in DolphinMainWindow, which sets the new title from the
`m_activeViewContainer` instance.
This means we need to notify the main window that the active view
changed before telling it that the current url changed.
BUG: 402641
FIXED-IN: 18.12.1
Reviewers: #dolphin, rizzitello, ngraham
Reviewed By: #dolphin, rizzitello, ngraham
Subscribers: rizzitello, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D17881
Commit c527dc2172 proves that on the CI sometimes the `QAbstractItemModel::dataChanged`
signal is not being emitted at all (build #208 failed because the test timed out).
KFilePlacesModel emits `dataChanged()` in the `_k_reloadBookmarks()`
slot only when it's called after the KBookmarkManager emits the `changed()` signal.
And the `changed()` signal is emitted after KDirWatch emits the
`created` signal.
On the CI server kdirwatch is probably not reliable, which would explain
why the test randomly fails.
The randomly failing `testRefresh()` on the CI can be reproduced by
replacing the QTRY_COMPARE with a simple QCOMPARE.
So it seems the CI can be slow such that the default QTR_COMPARE
timeout of 5 seconds is not enough.
If a timeout of 10 seconds fixes this particular test case, we can use
this bigger timeout also in the other failing tests.
removePlaceAfter(index) is a bit misleading, because it seems we are
going to remove the place after index `index`.
This method is just scheduling the removal of the place instead.
The method name should be consistent with what it actually does.
KFilePlacesModel creates the Desktop and Downloads bookmarks only if
their folder exists.
This should hopefully fix the failing test on the CI (actual count = 15,
expected count = 17), since the CI runs in docker and probably doesn't
have those two folders by default.
Summary:
Root and Trash test cases are currently failing because of
commit e133c4557e.
Reviewers: #dolphin
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16005
Summary:
With the new uds implementation, when some data is meant to replace an old one, it has to use replace() instead of insert() to avoid an assert of data already exists.
Use 3 different entries and only insert().
Test Plan:
before: crash in the uds assert
after: passes the test
Reviewers: #dolphin, #frameworks, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: bcooksley, bshah, nalvarez, cfeck, dfaure, aacid, ngraham, bruns, elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D13813
Summary:
With the new uds implementation, when some data is meant to replace an old one, it has to use replace() instead of insert() to avoid an assert of data already exists.
Use 3 different entries and only insert().
Test Plan:
before: crash in the uds assert
after: passes the test
Reviewers: #dolphin, #frameworks, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: dfaure, aacid, ngraham, bruns, elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D13813
Otherwise the test executable will not be able to find the .rc file
while creating a DolphinMainWindow instance.
We also need to force the component name to `dolphin`, otherwise kxmlgui
will default to the name of the binary (which in this case would be
dolphinmainwindowtest rather than dolphin).
We deactivate the previously active view container whenever we change the active
split view, but we never do the same when we close the split view.
Long term we should probably even delete the secondary view after
closing the split view, because it will never be used again and the
pointer will be overwritten the next time the user opens the split view.