summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* window-slot: show window when view starts loadingGeorges Basile Stavracas Neto2015-08-074-27/+4
| | | | | | | | | | | | | | | | | NautilusView directly access NautilusWindow to make sure the window is shown when the view starts loading, and not before this. Since we're restricting communication between NautilusView and other widgets, the view shouldn't ask the window directly. Fixed by making NautilusWindowSlot handle the visibility of the window on NautilusView::begin-loading signal. Also, this patch gets rid of an old code that updates the title of supposedly hidden slots that were present or created before showing the window. which is something doesn't happen anyomore. https://bugzilla.gnome.org/show_bug.cgi?id=753356
* pathbar: handle context menuGeorges Basile Stavracas Neto2015-08-048-285/+259
| | | | | | | | | | | | | | | | | | | | | | NautilusView is an abstract class that manages various context menus, depending on the view's location, the clicked point and the implementation details. While this in theory provides a good isolation from other classes, in practice NautilusView manages the pathbar context menu, which is not necessary, as it doesn't depend on the current view anymore after the GAction rework. Fix that by making NautilusPathBar manage the context menu by itself instead of the view. To cleanly implement that, add a new signal that matches GtkPlacesSidebar::open-location signature, and adapt NautilusWindow to reuse the existing methods to handle pathbar's new signal. https://bugzilla.gnome.org/show_bug.cgi?id=753158
* window: remove old hackGeorges Basile Stavracas Neto2015-07-311-21/+0
| | | | | | | | | | | | | | | NautilusWindow immediately displays the newly opened tab or window and, for that to happen correctly, an old hack is present. This hack, however, added some unecessary complexity to NautilusWindow code, and is completely obsolete nowadays. It was needed to fix bug 679640, but seems like the real cause of the bug was fixed and this hack does nothing, appearently. Remove the old hack and lets see if will continue to behave properly.
* project: simplify focus chainGeorges Basile Stavracas Neto2015-07-317-27/+43
| | | | | | | | | | | | | Nautilus classes add custom methods to grab the focus differently according to the class. The problem with this approach, however, is that we end up with more code coupling, since it's necessary to include more headers to use the custom grab methods. To fix that, make classes override GtkWidget::grab_focus method and remove the custom methods, so widgets can simply call gtk_widget_grab_focus.
* view: change show-hidden setting only when value differsGeorges Basile Stavracas Neto2015-07-311-3/+5
| | | | | | | | | | | | | | | | | Commit 2e1ac98 introduced the new behavior of persistently storing the show-hidden setting whenever it changes. This, however, caused an update cycle where NautilusDirectory tracked the show-hidden change and invalidates the mime types of the files, sending the apropriate ::file-changed signals. When NautilusView receives the signals, it unconditionally updates the action states, which sets the show-hidden action again, causing another change on the setting and re-triggering the NautilusDirectory signals, which are detected by NautilusView and perpetuating the cycle. Fix that by only storing the show-hidden setting when it differs from the current one.
* view: manage the floating barGeorges Basile Stavracas Neto2015-07-314-329/+261
| | | | | | | | | | | NautilusWindowSlot currently manages the floating bar, requiring access to the underlying model of NautilusView and making the code even more coupled and adding more complexity to the codebase. Fix that by delegating the management of the floating bar to NautilusView itself, and turn NautilusView a GtkOverlay subclass in order to facilitate the transition.
* view: manage empty statesGeorges Basile Stavracas Neto2015-07-315-69/+73
| | | | | | | | | | | | NautilusWindowSlot is the class responsible for managing the empty views, causing even more code coupling and blurring the lines of functionality of each class. Also, it requires that the slot access the underlying model behind NautilusView, something we're avoiding in order to get Nautilus ready for future modifications. Fix that by delegating to NautilusView the responsability to manage the empty views, and not NautilusWindowSlot.
* window-slot: plug memory leakCarlos Soriano2015-07-241-2/+4
|
* window-slot: use allow_stop instead of busyCarlos Soriano2015-07-241-23/+11
| | | | | | I put a new attribute, but allow_stop is actually meaning the view is busy. So use that attribute and adjust its behaviour a little to fix some corner cases.
* window: use official name for cursor progressCarlos Soriano2015-07-241-1/+1
|
* window: use watch cursor with pointerCarlos Soriano2015-07-241-1/+1
|
* canvas-view: don't show sort menu on searchCarlos Soriano2015-07-241-1/+14
| | | | Since it's only interesting if searched by search relevance.
* window-slot: check empty states on file creating/deletionCarlos Soriano2015-07-241-0/+12
|
* window-slot: show Folder is Empty when hidden files as wellCarlos Soriano2015-07-241-0/+4
|
* window-slot: factor out empty states checkingCarlos Soriano2015-07-241-35/+42
|
* window-slot: clarify comment about races on done_loadingCarlos Soriano2015-07-231-0/+4
|
* window-slot: fix stopping the view if no viewCarlos Soriano2015-07-231-1/+3
| | | | | The first time we create open a location in the slot there is no view at all...
* window-slot: show a "Folder is Empty" feedbackCarlos Soriano2015-07-233-0/+68
| | | | | | | When the folder the user opens is empty we were providing no feedback, which cause confusion. Show an icon with a label for that case, similar to the feedback we provide when no search results are available.
* window-slot: remove floating bar when search engine finishesCarlos Soriano2015-07-231-15/+26
| | | | | | | | | | | | Now that we are sure that every time the search directory done-loading signal is emitted only when the search engine finished successfully, we can make the floating bar act appropriately, and not hide it just when the view was done loading new files, but instead when the search engine actually finishes. Also, we were hiding the spinner always that we set a file selection, and selection is necesary to press enter to open the first search result. Now that we can track if the view is actually busy, don't hide the spinner even with a selection set.
* window-slot: stop the current view loading in location changeCarlos Soriano2015-07-231-0/+3
| | | | | | | | | | | | | | So the current view don't keep polling files info while we try to actually change the location. This was causing nautilus to be slow like hell on some situations, since the new location waits until it has it's files info ready to actually change the view, but the old view was also polling files info. Given that the priority of both actions are the same, even if they are in different threads, one of those could cope the other one. So just avoid this situation (although there is similar issues like this with the current code...).
* window-slot: disconnect from model signals before stoppingCarlos Soriano2015-07-231-2/+7
| | | | | | | | | | Now that stopping the view also stops the model search, make sure we disconnect from its signals before, so we don't show the no search results because we got a done-loading with an empty directory because we stopped the search. We want to let the view with it's current items, even if the directory stopped to search and it cleared its files (and therefore it reports 0 files).
* window-slot: don't stop the new_content load/searchCarlos Soriano2015-07-231-23/+0
| | | | | | | | | | | | | | | We were stopping the loading and searching of the view when location changed or when location change was canceled, etc. Before it was fine because stopping the view was not making the actual directory behind stop. In previous commits we now make the model stop loading/searching if the view stops as well, so now that this has a different meaning, we don't want to stop the new directory, since it could be the one that will become the current directory. So just don't stop the current view for simple location changes.
* window-slot: factor out connect/disconnect functionsCarlos Soriano2015-07-231-23/+43
|
* search-directory: make sure to stop the search if no clientsCarlos Soriano2015-07-231-7/+5
| | | | | | | | | | | | | | Until now we were not stopping the search if no callbacks from clients were present. That happened when the user canceled the search while the search directory was waiting for its files metadata, since that async call was not canceled. This was actually making nautilus freeze on situations where the search was so expensive that other threads couldn't cope with it. To fix it, make sure we stop the search if no clients are present as callbacks, and make sure we stop the load of the view when we cancel the async call in the stop_loadin handler of the view.
* view: don't crash on view destroy if no modelCarlos Soriano2015-07-231-11/+7
| | | | | | | | | | | We stop loading the view on destroy, and we add a check on done_loading to not do some things if we are on destroy. But the check was checking for the slot not having a window, which actually has if the view is being destroyed while the slot is not, like when switching views. To avoid this crash, mark the model as NULL before all the checking, and check for the model, not for a window in the slot.
* view: remove unused monitorCarlos Soriano2015-07-231-3/+0
|
* shell-search-engine: fix crashCarlos Soriano2015-07-231-2/+3
| | | | | | | With latests commits we changed the finished signal to report also the search engine status. I forgot to change it for the shell-search-provider as well, which was making nautilus crash when searching on shell.
* window: don't set list view as default when searchingCarlos Soriano2015-07-221-19/+19
| | | | | | | | | | | | We recently made a change that the view switchs automatically to list view if it is searching. But we introduced a bug, we were setting as default list view in that case, and therefore if nautilus was closed while searching the default view mode changed to list view. Fix that and only set as default list view if we are not searching and "switch to list view on search" setting is set.
* window-slot: add no search results feedbackCarlos Soriano2015-07-223-2/+113
| | | | | | | | Until now the user was not receiving feedback whether the search finished or not when there were no results, resulting in an empty view. To provide a better search experience, provide feedback to the user in form of a icon + label in the view whether the search finished with no results.
* project: replace deprecated GtkMisc callsGeorges Basile Stavracas Neto2015-07-217-15/+17
| | | | | | | | | | | GtkMisc is deprecated since 3.14 release, being replaced by GtkWidget's halign & valign, and GtkLabel's xalign & yalign. Nautilus, however, did not updated its codebase to match the new deprecations. Remove any reminescent gtk_misc* calls from the codebase.
* project: replace deprecated gdk_cursor_newGeorges Basile Stavracas Neto2015-07-213-5/+10
| | | | | | | | | | | | In 3.16 release gdk_cursor_new was deprecated in favor of gdk_cursor_new_for_display. Nautilus, however, did not updated to use the proposed function, and is still using the deprecated method. Fix that by using the proposed gdk_cursor_new_for_display method.
* view: remove unused prototypeGeorges Basile Stavracas Neto2015-07-211-3/+0
| | | | | | | | | | | NautilusView is the abstract class that concrete views such as icon or list view inherit. In its header, there was a method that was used nowhere throughout the code. Remove this unused method.
* list-view: match gtkfilechooser location namesCarlos Soriano2015-07-201-11/+16
| | | | | Now we put the relative path, and we don't show the path if the current location is the same as the target file.
* window-slot: switch to list view on searchCarlos Soriano2015-07-202-3/+52
| | | | | | | | | | When searching, list view is a better view given that we can see more attributes of the files, for instance, the location is a important part for discerning files in the current folder or in nested folders. For that, switch to list view while searching, and disable this behavior if the user changes the view mode while searching.
* window-slot: remove unused variableCarlos Soriano2015-07-201-5/+0
|
* trivial: remove empty lineCarlos Soriano2015-07-201-1/+0
|
* view: trivial, remove some empty linesCarlos Soriano2015-07-201-3/+0
|
* toolbar: remove access-date menu itemCarlos Soriano2015-07-203-27/+0
| | | | | Since we don't longer show it in Recent, the only places where we were showing it.
* toolbar: don't show sort menu in recentCarlos Soriano2015-07-202-4/+19
| | | | | Since we always want to order by recent... This matchs with latests changes on gtk+ file chooser.
* remove tabs from new written codeCarlos Soriano2015-07-201-6/+4
|
* window: make sidebar menus work with latest GtkPlacesSidebarCarlos Soriano2015-07-202-135/+157
| | | | | Now GtkPlacesSidebar uses GMenu, so the API for the populate-popup signal changed. Update acordingly to make context menus work again.
* window: don't show open button if current locationCarlos Soriano2015-07-171-13/+21
| | | | | | | | In the operation notification we show a "Open X" button to open the destination folder of a operation. But it's not useful if the current location in the view is the destination folder itself. So don't show the open button in that case.
* operations: show a notification when operation finishesCarlos Soriano2015-07-174-44/+250
| | | | | | | | | | | | | | When the operations popover is not visible, we have to give feedback to the user about if an operation finished. For that, show a in-app notification in case the operation popover is closed and a operation finishes. Also, to link the notification with the operation button, make the button pulse for a second. The code interaction between nautilus-file-operations and nautilus-progress-info start to get crowed. At some point, the best we can do is delegate all the progress UI part to nautilus-progress-info, providing all the needed information like the CommonJob, TransferInfo and SourceInfo; so we avoid the current odd interaction between them. This is a future work.
* progress-info: allow finished infos to remain aliveCarlos Soriano2015-07-173-22/+115
| | | | | | | | | | | | We want to not hide the operations and the operations button in the toolbar if the popover is open. For that, we need to allow operations widgets to remain alive even when the operation is finished. For that we need to add a new status state to copying/moving/trashing, like copied/moved/trashed. On the way, improve the wording of file-operations to match the mockups, and also make the report operations code more consistent to each other.
* operations: implement new designCarlos Soriano2015-07-1712-283/+512
| | | | | | | | | 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.
* toolbar: show modified time for all places except RecentCarlos Soriano2015-07-013-8/+35
| | | | | | | | | | | | | | | We changed to only show access time for sorting in the sort menu in 3.16 to avoid having both sorting options always present. But for folders like Downloads, the most useful sorting criteria is actually modified time, since it orders the files in downloading order. Actually modified time is more useful than access time is all cases except in "Recent", which what we actually want is the most recent accessed or modified file. For that, show only Modified Time sorting menu item in all places except in "Recent", where we will show only Access Time. https://bugzilla.gnome.org/show_bug.cgi?id=748185
* preferences: make toolbar hidden files permanent settingCarlos Soriano2015-07-013-20/+3
| | | | Following previous decision for others preferences.
* preferences: make the view buttons permanent settingCarlos Soriano2015-07-013-58/+6
| | | | | | So we can remove it from "Preferences" and don't confuse the user with a temporary preference (the one in the toolbar) and permanent preference (the one in "Preferences")
* application: Ignore --no-desktop if not first launchChow Loong Jin2015-06-091-4/+8
| | | | | | | | | | --no-desktop is an option to allow for running Nautilus under other desktop environments as well as GNOME without clobbering the foreign desktop environment's desktop. https://bugzilla.gnome.org/show_bug.cgi?id=750528 Signed-off-by: Chow Loong Jin <hyperair@debian.org>
* application: Fix a pointer array memory leakDavid King2015-05-241-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=738692