Commit graph

236 commits

Author SHA1 Message Date
António Fernandes 37740f0d72 general: Stop using gtk_main_iteration()
It's going away with GTK4. Use the recomended replacement.
2021-11-22 15:16:18 +00:00
Ondrej Holy a22f7ffc7c test: Run tests in unique directory
The tests currently create various files and directories with generic names
and manipulate with them directly in the `/tmp` directory. The tests also
remove all files in `/tmp` with the generic prefixes like `move`, `copy`,
etc. This can simply cause test suite failures if files with such names
already exist in the `/tmp` directory. Also, the test suite can easily remove
files created by other applications. Let's always create an unique directory
in `/tmp` for tests to fix the mentioned problems...
2021-01-18 10:32:12 +00:00
Sam Thursfield 7712c2c7e1 Port to Tracker 3
Mostly the port is straightforward, we connect to tracker-miner-fs
explicitly over D-Bus instead of the centralized tracker-store daemon
we connected to previously.

The search-engine-tracker test is now isolated from the user's real
Tracker index using the `tracker-sandbox` script provided by Tracker,
and it lets tracker-miner-fs index the test file rather than trying
to synthesize the expected database contents.

There are more changes in nautilus-tag-manager.c.  Until now, starred
file information was stored in the tracker-miner-fs database. This has
some downsides, firstly the data is deleted if someone runs `tracker
reset --hard`, secondly it isn't possible to do this from inside a
Flatpak sandbox with Tracker 3.0.  because the

This commit changes the NautilusTagManager to set up a private
database inside XDG_DATA_HOME/nautilus/tags. This stores the starred
file information. The database is managed with Tracker, which allows us
to continue using the rename-tracking that tracker-miner-fs provides.
The same limitations apply as before that only files in indexed
locations can be starred.
2020-09-02 17:28:38 +02:00
Sam Thursfield 1321a34947 tests: Make search tests return error codes on failure
Previously the tests could appear to succeed even if the search
didn't work as expected.
2020-09-02 12:17:31 +02:00
Alberts Muktupāvels dce530aa87 dbus-manager: add and implement FileOperations2 interface
Add new version of FileOperations interface. This versions adds
PlatformData argument to all methods. Currently supported arguments
are parent-handle and timestamp.

This change is necessary for proper focus handling.

https://gitlab.gnome.org/GNOME/nautilus/merge_requests/504
2020-04-06 21:19:15 +03:00
Ondrej Holy fd2e7dfdea general: Run uncrustify script
There are some style issue since the last run. Let's run it again
before enabling style-check CI job.
2020-04-05 16:22:26 +00:00
Carlos Soriano 20c94c338f test: As the previous commit, increase test timeout
These tests take long...
2019-01-22 12:51:55 +00:00
Carlos Soriano 9d8ee6adf9 test: Increase timeout to 480
Those tests just take long time...
2019-01-22 12:50:31 +00:00
Ernestas Kulik d92e1133da general: Null-initialize some more auto variables 2018-12-12 14:02:51 +01:00
Carlos Soriano 1f8b23d7c0 tests: Increase timeout
It timeouts in Debian and sometimes locally.
2018-09-14 05:17:35 +00:00
Carlos Soriano 9b3d13ce8c tests: Make timeout bigger
Some tests just require more, don't fail because they do so.
2018-09-12 13:00:07 +00:00
Alexandru Fazakas 375c9ee792 Undo/redo, search tests, test library and more 2018-08-28 12:35:46 +00:00
Alexandru Fazakas e126170bf9 test: copy-files: Fix copy-files test
In order for the tests to work in parallel, we need the file/directory
names not to collide.

This patch fixes the namy for the copy-files test, now all file-operations
tests should be able to work in parallel.
2018-07-20 16:58:37 +03:00
Alexandru Fazakas a54c98973f test: Add trash-or-delete test
This patch adds trash_or_delete synchronous alternative and a test
including both of these functionalities.
2018-07-20 16:58:37 +03:00
Alexandru Fazakas 2727c82900 test: Add copy operations unit test
This patch adds both a sync alternative to the copy operations and a
test for it.
2018-07-20 16:58:33 +03:00
Alexandru Fazakas 1be08bd3a0 test: dir-has-files: Clean up files
We should clean up files/directories after using them for testing.

This patch deletes all create files after using them for the dir-has-files
test.
2018-07-20 12:57:25 +03:00
Ernestas Kulik 609bf585fe tests: Remove git conflict indicator from build file
Oops.
2018-07-19 13:23:21 +03:00
Ernestas Kulik 2f8e300d3d tests: Use GMainLoop in search engine test
This removes the need for a display.
2018-07-19 13:20:38 +03:00
Alexandru Fazakas ab31018cda test: Add file-operations-move test
This patch includes the addition of the sync alternative to the
file-operations-move function and a test for it.
2018-07-16 18:51:44 +00:00
Alexandru Fazakas 93fb7954fb test: Remove useless macro definition
This definition in the dir_has_files unit test is not used,
so it should be removed.
2018-05-18 14:56:34 +00:00
Alexandru Fazakas bfc3aebe04 test: Add dir_has_files unit test
In this patch we added an unit test with 3 simple tests for the
dir_has_files.

https://gitlab.gnome.org/GNOME/nautilus/issues/224
2018-05-18 14:47:36 +00:00
Ernestas Kulik f3be754974 tests: directory-async: Use GMainLoop
Using the GTK+ main loop doesn’t make a lot of sense in this case.
2018-05-18 14:39:27 +00:00
Ernestas Kulik cfa26f0cfe build: Set a couple env vars when running tests
This will save some time/thinking when running tests manually.
G_TEST_BUILDDIR and G_TEST_SRCDIR will be useful if
g_test_build_filename() is ever used, since our primary build mode is
outside the source directory, which would break the function.
2018-05-18 14:05:53 +00:00
António Fernandes 694e4396c7 file: Remove link info attribute
Leftovers from NautilusLink removal.
2018-05-14 00:17:08 +01:00
Alexandru Fazakas 89e362ae13 test: Add file-utilities unit test
File utilities operations need to be tested thoroughly everytime
we make changes to make sure they're fine to use further.

This patch introduces an unit test file for the
nautilus_file_selection_equal.
2018-04-04 12:10:05 +03:00
Alexandru Fazakas 95ecfc8ea0 general: Remove include guards in favor of pragma once
The traditional include guards are not as easy to handle
and require extra thought into the names.

Pragma once is an easier, more contributor friendly approach.

Closes https://gitlab.gnome.org/GNOME/nautilus/issues/294

general: Remove include guards in favor of pragma once

The traditional include guards are not as easy to handle
and require extra thought into the names.

Pragma once is an easier, more contributor friendly approach.

Closes https://gitlab.gnome.org/GNOME/nautilus/issues/294
2018-03-19 14:43:38 +02:00
Ernestas Kulik 510a8303dd build: make all tests optional
This can help cut down on link times a bit when working on things.
2018-03-16 06:22:36 +02:00
Ernestas Kulik 9e8f138999 general: fix old-style function declarations
Parameterless function declarations imply indeterminate parameter count,
while the implementations take no arguments.
2018-03-01 08:37:49 +00:00
Carlos Soriano 12601e9204 tests: Split between display and displayless
Some tests require gtk_init, which requires a display and therefore
cannot be part of the tests to be ran in the GitLab CI.

Split those so we can pass an option to meson to only test the
displayless tests for GitLab CI.
2018-01-06 01:17:29 +01:00
Ernestas Kulik 6bc3255fea tests: remove obsolete test
test-eel-background hasn’t been built forever and the code it tests is
long gone.
2018-01-05 23:33:53 +02:00
Ernestas Kulik 22075a4c3c tests: update common filename prefix test
61ac48bdc0 changed the way the prefix is
computed, thus breaking some of the tests. This commit removes
irrelevant tests and updates broken cases.
2018-01-05 23:24:58 +02:00
Ernestas Kulik 983892a656 build: general cleanups
This commit does the following:
  * Canonicalize the style:
    * Use two-space indentations.
    * Un-Autotools-ify option names.
    * Don’t align arguments, simply increase indentation.
    * Don’t add a space before opening parenthesis in calls.
  * Remove unused variables.
  * Remove unused dependencies.
  * Remove config.h.meson.
  * Optimize dependencies.
  * Use disabler functionality for libselinux dependency, to save lines.
2018-01-02 12:51:32 +02:00
Ernestas Kulik 74dd9c9f72 general: remove desktop support 2018-01-02 12:51:32 +02:00
Ernestas Kulik 61ac48bdc0 file-utilities: rework common prefix computation
Currently, the process for getting the common prefix of a list of file
names is a tad too greedy:
    1. Find the common prefix of all the strings.
    2. Strip the extension from the prefix.
    3. Strip trailing punctuation.

Step 2 may strip dots if there’s trailing whitespace and step 3 may
strip useful punctuation (e.g. parentheses). This commit reworks the
process as such:
    1. Strip the extension from all the file names.
    2. Find the common prefix of all the strings.
    3. Trim trailing whitespace.

Fixes #174.
2017-12-23 17:38:17 +02:00
Alexandru Pandelea 6eb160fbbc Revert "search-engine: fix search providers handling"
This reverts commit 37693c4279.

The patch was pushed by accident.
2017-08-17 11:29:41 +01:00
Alexandru Pandelea 37693c4279 search-engine: fix search providers handling
When starting the search providers, some provider might finish
before all providers are started, so a wrong value of providers_running
will be used, making Nautilus crash.

To fix this, keep a queue of the started providers and whenever the
value of the finised/running providers is needed, check the status of
each provider.

https://bugzilla.gnome.org/show_bug.cgi?id=785723
2017-08-15 21:42:15 +01:00
Ernestas Kulik 857a90c29b autotools: kill it
We’re moving to Meson this cycle, so this is losing some deadweight.

https://bugzilla.gnome.org/show_bug.cgi?id=780366
2017-03-22 17:18:29 +02:00
Jan Tojnar 5488240840 tests: Fix directory extensions points
In 7840b533e2, `nautilus-directory-provider` extension point was added
to the code paths used by the tests. When glib is asked for extensions,
it assumes the extension point is registered so it segfaults.

This patch registers the extension point before the tests are run.

https://bugzilla.gnome.org/show_bug.cgi?id=779178
2017-02-24 14:30:21 +01:00
Ernestas Kulik ed5652c89a general: add support for Meson
Since it’s 2017 already, Nautilus should use a build system that doesn’t
take longer to set up the build than it takes to actually build. An
observed build time using Ninja of roughly one-fifth of what it took
Autotools is more than reason enough to add support for Meson. Along
with that, this commit adds a convenience script to generate a tarball
for releases, since we use libgd as a submodule and Meson does not
handle source distributions.

https://bugzilla.gnome.org/show_bug.cgi?id=778167
2017-02-24 00:24:27 +02:00
Ernestas Kulik 728300331d general: drop git.mk
This commit removes git.mk and adds hand-written gitignore files. That
is needed to ignore build/, which is the directory of choice for Meson
builds.

https://bugzilla.gnome.org/show_bug.cgi?id=778167
2017-02-24 00:24:27 +02:00
Carlos Soriano 52d960542b general: run uncrustify
And make the style of Nautilus the same for all files.
Hopefully we can fix all the style issues we can find in the next days,
so expect a little of movement on this.

https://bugzilla.gnome.org/show_bug.cgi?id=770564
2016-08-29 18:37:10 +02:00
Carlos Soriano 4cafccd828 general: add uncrustify script
The current style of nautilus is rather poor and mixes at least 3
different code styles.

Specific issues that affect the most common contributors to Nautilus
performance are:
- tabs for multiline alignment.
- mix of tabs and spaces.
- errors on no braced one liners conditionals.
- errors on non braced case statements with variable declarations.

So I would say requirements for the style is to address the previous
issues and also be a well known style. I don't want new contributors
to see a new style completely different from C books authors.

So far, I found Allman (aka BSD) style which seems the choice of most C
books authors as far as I can see on internet, and it address the
previous mentioned issues.

Since uncrustify doesn't support the aligment of parameters we do for
multiple stars "**", we also added a script made by Sebastian Wilmet
to align those.

As a matter of practicity I'm going to convert all Nautilus style to
this one, and if the next person who contributes most on Nautilus has
a different choice, please feel free to change it to whatever makes your
performance and your contributors performance the best.

https://bugzilla.gnome.org/show_bug.cgi?id=770564
2016-08-29 18:37:10 +02:00
Emmanuele Bassi 9b674dc6ec tests: Fix build failure caused by C99 use
Build failure in Continuous:

../../test/test-file-utilities-get-common-filename-prefix.c: In function
'test_many_strings':
../../test/test-file-utilities-get-common-filename-prefix.c:366:9:
error: 'for' loop initial declarations are only allowed in C99 or C11
mode
         for (int i = 0; i < 500; ++i) {
2016-07-10 13:46:24 +01:00
Neil Herald ca0e00b6b3 files-view: change "New Folder /w Selection" to offer a name
New Folder with Selection currently doesn't offer a folder name. It
would be better if it suggested a folder name based on the files that
are selected.

With this change, it now looks for a common filename prefix of the
selected files, and pre-populates the folder name entry with that. If no
common prefix is found that is greater than 3 characters long, the
folder name entry will be left blank.

https://bugzilla.gnome.org/show_bug.cgi?id=747907
2016-07-10 08:30:48 +01:00
Carlos Soriano 7e24f1b2a2 general: merge libnautilus-private to src
And fix make distcheck.

Although libnautilus-private seem self contained, it was actually
depending on the files on src/ for dnd.
Not only that, but files in libnautilus-private also were depending on
dnd files, which you can guess it's wrong.

Before the desktop split, this was working because the files were
distributed, but now was a problem since we reestructured the code, and
now nautilus being a library make distcheck stop working.

First solution was try to fix this inter dependency of files, but at
some point I realized that there was no real point on splitting some of
those files, because for example, is perfectly fine for dnd to need to
access the window functions, and it's perfectly fine for the widgets
in the private library to need to access to all dnd functions.

So seems to me the private library of nautilus is somehow an artificial
split, which provides more problems than solutions.

We needed libnautilus-private to have a private library that we could
isolate from extensions, but I don't think it worth given the problems
it provides, and also, this not so good logical split.
Right now, since with the desktop split we created a libnautilus to be
used by the desktop part of nautilus, extensions have access to all
the API of nautilus. We will think in future how this can be handled if
we want.

So for now, merge the libnautilus-private into src, and let's rethink
a better logic to split the code and the private parts of nautilus than
what we had.

Thanks a lot to Rafael Fonseca for helping in get this done.

https://bugzilla.gnome.org/show_bug.cgi?id=765543
2016-04-25 16:31:42 +02:00
Carlos Soriano ff6ccbaf40 search: done loading signal only if not restarting engine
It was working as:
- Search directory starts a new search
- Search engine starts all search providers, each one in its
own thread.
- User changes query
- Search engine stops all search providers
- Searchs providers, since they are in its own thread, cancel
in a unknown time.
- Search directory starts a new search, even before all providers
are finished.
- Search engine is marked as need to restart.
- Search providers finished.
- Search engine emits finished signal, since all search providers
now are stopped.
- Clients doesn't have a way to know if the engine
actually finished searching the current search, or the previous
search that the client asked to stop. That might confuse clients
if they ask for results.
- Search engine restart the search providers without noticing the
client, that thinks that the latest search it started was finished
already.

So to fix this confusion, only report that the engine actually finished
if the engine is not going to restart the search providers.
In this way a client can start a batch of consecutive searches without
the risk of getting search finished signals from previous searches.
Clients now will always get the search-finished signal of the
latest search they started.
2015-07-22 13:02:04 +02:00
Carlos Soriano 192d2e2fcc operations: implement new design
Now operations reside in the toolbar, in form of a button with
a popover. In this way we avoid to have a nautilus window hanging
around for it.
When no nautilus window is open, the persistence handlers of nautilus
are enough. This use a notification if the server supports it or
a systray icon in case it doesn't.
2015-07-17 00:45:39 +02:00
Cosimo Cecchi e816485d52 eel: remove unused EelEditableLabel
This was only used for in-place renaming inside the canvas container,
which does not exist any more. Remove it.
2015-05-23 12:14:32 -07:00
Cosimo Cecchi cbc37d3ecd Don't mention FSF address
Use the website instead.

https://bugzilla.gnome.org/show_bug.cgi?id=721518
2014-02-17 14:41:43 -08:00
Daniel Mustieles e314fbcc99 Updated FSF's address 2014-01-31 14:13:48 +01:00