Codebase list gnome-shell-extension-desktop-icons / upstream/19.01
New upstream version 19.01 Iain Lane 5 years ago
12 changed file(s) with 229 addition(s) and 225 deletion(s). Raw diff Collapse all Expand all
88 ## How to contribute?
99 * Download the code
1010 * Build with Meson (see at the next section)
11 * Log out & log in from your user session. Alternatively, just restart the computer.
1112 * Activate the extension in GNOME Tweaks
1213
1314 ## Build with Meson
5454 REDO: 2,
5555 };
5656
57 var StoredCoordinates = {
58 PRESERVE: 0,
59 OVERWRITE:1,
60 };
61
5762 class Placeholder extends St.Bin {
5863 constructor() {
5964 super();
8691 can_focus: true,
8792 opacity: 255
8893 });
89 this.actor.add_actor(this._grid);
94 this.actor.add_child(this._grid);
9095
9196 this._renamePopup = new RenamePopup(this);
92 this.actor.add_actor(this._renamePopup.actor);
93
94 this._bgManager._container.add_actor(this.actor);
97 this.actor.add_child(this._renamePopup.actor);
98
99 this._bgManager._container.add_child(this.actor);
95100
96101 this.actor.connect('destroy', () => this._onDestroy());
97102
108113 () => this._backgroundDestroyed());
109114
110115 this._grid.connect('button-press-event', (actor, event) => this._onPressButton(actor, event));
111 this._rubberBand = new St.Widget({ style_class: 'rubber-band' });
112 this._rubberBand.hide();
113 Main.layoutManager.uiGroup.add_actor(this._rubberBand);
114116
115117 this._grid.connect('key-press-event', this._onKeyPress.bind(this));
116118
151153 else if (symbol == Clutter.Delete) {
152154 Extension.desktopManager.doTrash();
153155 return Clutter.EVENT_STOP;
156 } else if (symbol == Clutter.F2) {
157 // Support renaming other grids file items.
158 Extension.desktopManager.doRename();
159 return Clutter.EVENT_STOP;
154160 }
155161
156162 return Clutter.EVENT_PROPAGATE;
174180 this._bgManager.backgroundActor.disconnect(this._bgDestroyedId);
175181 this._bgDestroyedId = 0;
176182 this._bgManager = null;
177 this._rubberBand.destroy();
178183 }
179184
180185 _omNewFolderClicked() {
278283 }
279284
280285 _onOpenTerminalClicked() {
281 let desktopUri = DesktopIconsUtil.getDesktopDir().get_uri();
282 let command = DesktopIconsUtil.getTerminalCommand(desktopUri);
286 let desktopPath = DesktopIconsUtil.getDesktopDir().get_path();
287 let command = DesktopIconsUtil.getTerminalCommand(desktopPath);
283288
284289 Util.spawnCommandLine(command);
285290 }
303308 this._undoMenuItem = menu.addAction(_("Undo"), () => this._onUndoClicked());
304309 this._redoMenuItem = menu.addAction(_("Redo"), () => this._onRedoClicked());
305310 menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
306 menu.addAction(_("Open Desktop in Files"), () => this._onOpenDesktopInFilesClicked());
307 menu.addAction(_("Open Terminal"), () => this._onOpenTerminalClicked());
311 menu.addAction(_("Show Desktop in Files"), () => this._onOpenDesktopInFilesClicked());
312 menu.addAction(_("Open in Terminal"), () => this._onOpenTerminalClicked());
308313 menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
309314 menu.addSettingsAction(_("Change Background…"), 'gnome-background-panel.desktop');
315 menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
310316 menu.addSettingsAction(_("Display Settings"), 'gnome-display-panel.desktop');
311317 menu.addSettingsAction(_("Settings"), 'gnome-control-center.desktop');
312318
313319 menu.actor.add_style_class_name('background-menu');
314320
315 Main.layoutManager.uiGroup.add_actor(menu.actor);
321 Main.layoutManager.uiGroup.add_child(menu.actor);
316322 menu.actor.hide();
317323
318324 menu._propertiesChangedId = DBusUtils.NautilusFileOperationsProxy.connect('g-properties-changed',
346352 this.actor._desktopBackgroundManager.ignoreRelease();
347353 }
348354
349 dropItems(fileItems) {
350 let reserved = {};
351 for (let fileItem of fileItems) {
352 let [dropX, dropY] = (fileItem.savedCoordinates == null) ? [0, 0] : fileItem.savedCoordinates;
353 let [column, row] = this._getEmptyPlaceClosestTo(dropX, dropY, reserved);
354 let placeholder = this.layout.get_child_at(column, row);
355 let hashedPosition = `${column},${row}`;
356 if (hashedPosition in reserved)
357 continue;
358
359 reserved[`${column},${row}`] = fileItem;
360 placeholder.child = fileItem.actor;
361 this._addFileItemTo(fileItem, column, row);
362 }
363 }
364
365 _addFileItemTo(fileItem, column, row) {
355 _addFileItemTo(fileItem, column, row, overwriteCoordinates) {
366356 let placeholder = this.layout.get_child_at(column, row);
367357 placeholder.child = fileItem.actor;
368358 this._fileItems.push(fileItem);
369359 let selectedId = fileItem.connect('selected', this._onFileItemSelected.bind(this));
370 let renameId = fileItem.connect('rename-clicked', this._onFileItemRenameClicked.bind(this));
360 let renameId = fileItem.connect('rename-clicked', this.doRename.bind(this));
371361 this._fileItemHandlers.set(fileItem, [selectedId, renameId]);
362
372363 /* If this file is new in the Desktop and hasn't yet
373364 * fixed coordinates, store the new possition to ensure
374 * that the next time it will be shown in the same possition
365 * that the next time it will be shown in the same possition.
366 * Also store the new possition if it has been moved by the user,
367 * and not triggered by a screen change.
375368 */
376 if (fileItem.savedCoordinates == null) {
369 if ((fileItem.savedCoordinates == null) || (overwriteCoordinates == StoredCoordinates.OVERWRITE)) {
377370 let [fileX, fileY] = placeholder.get_transformed_position();
378371 fileItem.savedCoordinates = [Math.round(fileX), Math.round(fileY)];
379372 }
380373 }
381374
382 addFileItemCloseTo(fileItem, x, y) {
383 let [column, row] = this._getEmptyPlaceClosestTo(x, y, null);
384 this._addFileItemTo(fileItem, column, row);
385 }
386
387 _getEmptyPlaceClosestTo(x, y, reserved) {
375 addFileItemCloseTo(fileItem, x, y, overwriteCoordinates) {
376 let [column, row] = this._getEmptyPlaceClosestTo(x, y);
377 this._addFileItemTo(fileItem, column, row, overwriteCoordinates);
378 }
379
380 _getEmptyPlaceClosestTo(x, y) {
388381 let maxColumns = this._getMaxColumns();
389382 let maxRows = this._getMaxRows();
390383
408401 if (placeholder.child != null)
409402 continue;
410403
411 if (reserved && `${column},${row}` in reserved)
412 continue;
413
414404 let [proposedX, proposedY] = placeholder.get_transformed_position();
415405 let distance = DesktopIconsUtil.distanceBetweenPoints(proposedX, proposedY, x, y);
416406 if (distance < minDistance) {
453443 }
454444
455445 reset() {
456 for (let fileItem of this._fileItems)
446 let tmpFileItemsCopy = this._fileItems.slice();
447 for (let fileItem of tmpFileItemsCopy)
457448 this.removeFileItem(fileItem);
458449 this._grid.remove_all_children();
459450
553544 this._grid.grab_key_focus();
554545 }
555546
556 _onFileItemRenameClicked(fileItem) {
547 doRename(fileItem) {
557548 this._renamePopup.onFileItemRenameClicked(fileItem);
558549 }
559550 };
585576 let renameButtonsBoxLayout = new Clutter.BoxLayout({ homogeneous: true });
586577 let renameButtonsBox = new St.Widget({ layout_manager: renameButtonsBoxLayout,
587578 x_expand: true });
588 renameButtonsBox.add_actor(this._renameCancelButton);
589 renameButtonsBox.add_actor(this._renameOkButton);
579 renameButtonsBox.add_child(this._renameCancelButton);
580 renameButtonsBox.add_child(this._renameOkButton);
590581
591582 let renameContentLayout = new Clutter.BoxLayout({ spacing: 6,
592583 orientation: Clutter.Orientation.VERTICAL });
593584 let renameContent = new St.Widget({ style_class: 'rename-popup',
594585 layout_manager: renameContentLayout,
595586 x_expand: true });
596 renameContent.add_actor(this._renameEntry);
597 renameContent.add_actor(renameButtonsBox);
587 renameContent.add_child(this._renameEntry);
588 renameContent.add_child(renameButtonsBox);
598589
599590 this._boxPointer = new BoxPointer.BoxPointer(St.Side.TOP, { can_focus: false, x_expand: true });
600591 this.actor = this._boxPointer.actor;
5050 function getExtraFolders() {
5151 let extraFolders = new Array();
5252 if (Prefs.settings.get_boolean('show-home')) {
53 extraFolders.push([Gio.File.new_for_commandline_arg(GLib.get_home_dir()), Prefs.FILE_TYPE.USER_DIRECTORY_HOME]);
53 extraFolders.push([Gio.File.new_for_commandline_arg(GLib.get_home_dir()), Prefs.FileType.USER_DIRECTORY_HOME]);
5454 }
5555 if (Prefs.settings.get_boolean('show-trash')) {
56 extraFolders.push([Gio.File.new_for_uri('trash:///'), Prefs.FILE_TYPE.USER_DIRECTORY_TRASH]);
56 extraFolders.push([Gio.File.new_for_uri('trash:///'), Prefs.FileType.USER_DIRECTORY_TRASH]);
5757 }
5858 return extraFolders;
5959 }
6969
7070 this._layoutChildrenId = 0;
7171 this._deleteChildrenId = 0;
72 this._scheduleDesktopsRefreshId = 0;
7372 this._monitorDesktopDir = null;
7473 this._desktopMonitorCancellable = null;
7574 this._desktopGrids = {};
8382 this._monitorsChangedId = Main.layoutManager.connect('monitors-changed', () => this._recreateDesktopIcons());
8483 this._rubberBand = new St.Widget({ style_class: 'rubber-band' });
8584 this._rubberBand.hide();
86 Main.layoutManager.uiGroup.add_actor(this._rubberBand);
85 Main.layoutManager.uiGroup.add_child(this._rubberBand);
8786 this._grabHelper = new GrabHelper.GrabHelper(global.stage);
88
89 if (this.writableByOthers)
90 log(`desktop-icons: Desktop is writable by others - will not allow launching any desktop files`);
9187
9288 this._addDesktopIcons();
9389 this._monitorDesktopFolder();
239235 let resultGenerator = function *() {
240236 let info;
241237 while ((info = fileEnum.next_file(null)))
242 yield [fileEnum.get_child(info), info, Prefs.FILE_TYPE.NONE];
238 yield [fileEnum.get_child(info), info, Prefs.FileType.NONE];
243239 for (let [newFolder, extras] of DesktopIconsUtil.getExtraFolders()) {
244240 yield [newFolder, newFolder.query_info(DesktopIconsUtil.DEFAULT_ATTRIBUTES, Gio.FileQueryInfoFlags.NONE, this._desktopEnumerateCancellable), extras];
245241 }
321317 this._unixMode = info.get_attribute_uint32(Gio.FILE_ATTRIBUTE_UNIX_MODE);
322318 this._setWritableByOthers((this._unixMode & S_IWOTH) != 0);
323319
324 if (this.writableByOthers)
320 if (this._writableByOthers)
325321 log(`desktop-icons: Desktop is writable by others - will not allow launching any desktop files`);
326322 } catch(error) {
327323 if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
332328 return;
333329 }
334330
335 // Rate limiting isn't enough, as one action will create different events on the same file.
336 // limit by adding a timeout
337 if (this._scheduleDesktopsRefreshId) {
338 return;
339 }
340
341331 // Only get a subset of events we are interested in.
342332 // Note that CREATED will emit a CHANGES_DONE_HINT
343333 if (![DELETED, MOVED_IN, MOVED_OUT, CREATED].includes(eventType))
344334 return;
345335
346336 this._recreateDesktopIcons();
347 }
348
349 _getContainerWithChild(child) {
350 let monitorIndex = Main.layoutManager.findIndexForActor(child);
351 let desktopGrid = this._desktopGrids[monitorIndex];
352 let children = desktopGrid.actor.get_children();
353
354 if (children.some(x => x.child == child))
355 return desktopGrid;
356 else
357 throw new Error('Missmatch between expected items in a desktop grid not found');
358337 }
359338
360339 _setupDnD() {
397376 });
398377 clone.x = fileItem.actor.get_transformed_position()[0];
399378 clone.y = fileItem.actor.get_transformed_position()[1];
400 this._draggableContainer.add_actor(clone);
379 this._draggableContainer.add_child(clone);
401380 }
402381
403382 Main.layoutManager.uiGroup.add_child(this._draggableContainer);
493472 * them.
494473 */
495474 for (let item of this._selection) {
496 let [itemX, itemY] = (item.savedCoordinates == null) ? [0, 0] : item.savedCoordinates;
475 let [itemX, itemY] = item.actor.get_transformed_position();
497476 let monitorIndex = findMonitorIndexForPos(itemX, itemY);
498 savedCoordinates.set(item, item.actor.get_transformed_position());
477 savedCoordinates.set(item, [itemX, itemY]);
499478 this._desktopGrids[monitorIndex].removeFileItem(item);
479 }
480
481 for (let item of this._selection) {
482 let [itemX, itemY] = savedCoordinates.get(item);
500483 /* Set the new ideal position where the item drop should happen */
501 let newfileX = Math.round(xDiff + itemX);
502 let newfileY = Math.round(yDiff + itemY);
503 item.savedCoordinates = [newfileX, newfileY];
504 }
505
506 for (let key in this._desktopGrids) {
507 /* Create list of items to drop per desktop. We want to drop them at
508 * once so calculations for the dropping per grid are smoother
509 */
510 let itemsForDropDesktop = [...this._selection].filter(
511 (x) => {
512 let [itemX, itemY] = (x.savedCoordinates == null) ? [0, 0] : x.savedCoordinates;
513 let monitorIndex = findMonitorIndexForPos(itemX, itemY);
514 return key == monitorIndex;
515 }
516 );
517
518 this._desktopGrids[key].dropItems(itemsForDropDesktop);
484 let newFileX = Math.round(xDiff + itemX);
485 let newFileY = Math.round(yDiff + itemY);
486 let monitorIndex = findMonitorIndexForPos(newFileX, newFileY);
487 this._desktopGrids[monitorIndex].addFileItemCloseTo(item, newFileX, newFileY, DesktopGrid.StoredCoordinates.OVERWRITE);
519488 }
520489
521490 return true;
530499 if (fileItem.isSpecial)
531500 return false;
532501 if (fileItemDestination.file.get_uri() == fileItem.file.get_uri())
533 continue;
502 return false;
534503 droppedUris.push(fileItem.file.get_uri());
535504 }
536505
581550 let monitorIndex = findMonitorIndexForPos(x, y);
582551 let desktopGrid = this._desktopGrids[monitorIndex];
583552 try {
584 desktopGrid.addFileItemCloseTo(item, x, y);
553 desktopGrid.addFileItemCloseTo(item, x, y, DesktopGrid.StoredCoordinates.PRESERVE);
585554 } catch (e) {
586555 log(`Error adding children to desktop: ${e.message}`);
587556 }
618587 return GLib.SOURCE_REMOVE;
619588 }
620589
590 doRename() {
591 if (this._selection.size != 1)
592 return;
593
594 let item = [...this._selection][0];
595 if (item.canRename())
596 item.doRename();
597 }
598
621599 doOpen() {
622600 for (let fileItem of this._selection)
623601 fileItem.doOpen();
6363 this._thumbnailScriptWatch = 0;
6464 this._setMetadataCancellable = null;
6565 this._queryFileInfoCancellable = null;
66 this._isSpecial = this._fileExtra != Prefs.FILE_TYPE.NONE;
66 this._isSpecial = this._fileExtra != Prefs.FileType.NONE;
6767
6868 this._file = file;
6969
9090 y_expand: true,
9191 x_align: Clutter.ActorAlign.FILL,
9292 vertical: true });
93 this.actor.add_actor(this._container);
93 this.actor.set_child(this._container);
9494 this._icon = new St.Bin();
9595 this._icon.set_height(Prefs.get_icon_size() * scaleFactor);
9696
9797 this._iconContainer = new St.Bin({ visible: true });
9898 this._iconContainer.child = this._icon;
99 this._container.add_actor(this._iconContainer);
99 this._container.add_child(this._iconContainer);
100100
101101 this._label = new St.Label({
102102 style_class: 'name-label'
103103 });
104104
105 this._container.add_actor(this._label);
105 this._container.add_child(this._label);
106106 let clutterText = this._label.get_clutter_text();
107107 /* TODO: Convert to gobject.set for 3.30 */
108108 clutterText.set_line_wrap(true);
137137 this._primaryButtonPressed = false;
138138 if (this._attributeCanExecute && !this._isDesktopFile)
139139 this._execLine = this.file.get_path();
140 if (fileExtra == Prefs.FILE_TYPE.USER_DIRECTORY_TRASH) {
140 if (fileExtra == Prefs.FileType.USER_DIRECTORY_TRASH) {
141141 // if this icon is the trash, monitor the state of the directory to update the icon
142142 this._trashChanged = false;
143143 this._trashInitializeCancellable = null;
248248
249249 this._fileType = fileInfo.get_file_type();
250250 this._isDirectory = this._fileType == Gio.FileType.DIRECTORY;
251 this._isSpecial = this._fileExtra != Prefs.FILE_TYPE.NONE;
251 this._isSpecial = this._fileExtra != Prefs.FileType.NONE;
252252 this._attributeHidden = fileInfo.get_is_hidden();
253253 this._isSymlink = fileInfo.get_is_symlink();
254254 this._modifiedTime = this._fileInfo.get_attribute_uint64("time::modified");
267267 }
268268
269269 _updateIcon() {
270 if (this._fileExtra == Prefs.FILE_TYPE.USER_DIRECTORY_TRASH) {
270 if (this._fileExtra == Prefs.FileType.USER_DIRECTORY_TRASH) {
271271 this._icon.child = this._createEmblemedStIcon(this._fileInfo.get_icon(), null);
272272 return;
273273 }
411411 }
412412
413413 doRename() {
414 if (!this.canRename()) {
415 log (`Error: ${this.file.get_uri()} cannot be renamed`);
416 return;
417 }
418
414419 this.emit('rename-clicked');
415420 }
416421
540545 }
541546 }
542547
548 canRename() {
549 return !this.trustedDesktopFile && this._fileExtra == Prefs.FileType.NONE;
550 }
551
543552 _createMenu() {
544553 this._menuManager = new PopupMenu.PopupMenuManager({ actor: this.actor });
545554 let side = St.Side.LEFT;
548557 this._menu = new PopupMenu.PopupMenu(this.actor, 0.5, side);
549558 this._menu.addAction(_('Open'), () => this.doOpen());
550559 switch (this._fileExtra) {
551 case Prefs.FILE_TYPE.NONE:
560 case Prefs.FileType.NONE:
552561 this._actionCut = this._menu.addAction(_('Cut'), () => this._onCutClicked());
553562 this._actionCopy = this._menu.addAction(_('Copy'), () => this._onCopyClicked());
554 if (!this.trustedDesktopFile)
555 this._menu.addAction(_('Rename'), () => this.doRename());
563 if (this.canRename())
564 this._menu.addAction(_('Rename…'), () => this.doRename());
556565 this._actionTrash = this._menu.addAction(_('Move to Trash'), () => this._onMoveToTrashClicked());
557566 if (this._isDesktopFile && !Extension.desktopManager.writableByOthers && !this._writableByOthers) {
558567 this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
561570
562571 }
563572 break;
564 case Prefs.FILE_TYPE.USER_DIRECTORY_TRASH:
573 case Prefs.FileType.USER_DIRECTORY_TRASH:
565574 this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
566575 this._menu.addAction(_('Empty Trash'), () => this._onEmptyTrashClicked());
567576 break;
572581 this._menu.addAction(_('Properties'), () => this._onPropertiesClicked());
573582 this._menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
574583 this._menu.addAction(_('Show in Files'), () => this._onShowInFilesClicked());
584 if (this._isDirectory && this.file.get_path() != null)
585 this._actionOpenInTerminal = this._menu.addAction(_('Open in Terminal'), () => this._onOpenTerminalClicked());
586
575587 this._menuManager.addMenu(this._menu);
576588
577 Main.layoutManager.uiGroup.add_actor(this._menu.actor);
589 Main.layoutManager.uiGroup.add_child(this._menu.actor);
578590 this._menu.actor.hide();
591 }
592
593 _onOpenTerminalClicked () {
594 let command = DesktopIconsUtil.getTerminalCommand(this.file.get_path());
595 Util.spawnCommandLine(command);
579596 }
580597
581598 _onPressButton(actor, event) {
00 project('desktop-icons',
1 version: '18.11rc',
1 version: '19.01',
22 license: 'GPL3'
33 )
44
0 {"name": "Desktop Icons", "description": "Add icons to the desktop", "uuid": "desktop-icons@csoriano", "shell-version": ["3.28.0", "3.30.0"]}
0 {"name": "Desktop Icons", "description": "Add icons to the desktop", "uuid": "desktop-icons@csoriano", "shell-version": ["3.30.0"]}
22 # This file is distributed under the same license as the PACKAGE package.
33 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
44 # Sergio Costas <rastersoft@gmail.com>, 2018.
5 # Daniel Mustieles <daniel.mustieles@gmail.com>, 2018.
5 # Daniel Mustieles <daniel.mustieles@gmail.com>, 2018, 2019.
66 #
77 msgid ""
88 msgstr ""
99 "Project-Id-Version: PACKAGE VERSION\n"
1010 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
1111 "icons/issues\n"
12 "POT-Creation-Date: 2018-11-29 09:07+0000\n"
13 "PO-Revision-Date: 2018-11-30 09:33+0100\n"
12 "POT-Creation-Date: 2018-12-14 09:12+0000\n"
13 "PO-Revision-Date: 2019-01-08 16:12+0100\n"
1414 "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
1515 "Language-Team: es <gnome-es-list@gnome.org>\n"
1616 "Language: es\n"
2020 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
2121 "X-Generator: Gtranslator 2.91.7\n"
2222
23 #: prefs.js:93
23 #: prefs.js:102
2424 msgid "Size for the desktop icons"
2525 msgstr "Tamaño de los iconos del escritorio"
2626
27 #: prefs.js:93
27 #: prefs.js:102
2828 msgid "Small"
2929 msgstr "Pequeño"
3030
31 #: prefs.js:93
31 #: prefs.js:102
3232 msgid "Standard"
3333 msgstr "Estándar"
3434
35 #: prefs.js:93
35 #: prefs.js:102
3636 msgid "Large"
3737 msgstr "Grande"
3838
39 #: prefs.js:93
39 #: prefs.js:102
4040 msgid "Huge"
4141 msgstr "Inmenso"
4242
43 #: prefs.js:94
43 #: prefs.js:103
4444 msgid "Show the personal folder in the desktop"
4545 msgstr "Mostrar la carpeta personal en el escritorio"
4646
47 #: prefs.js:95
47 #: prefs.js:104
4848 msgid "Show the trash icon in the desktop"
4949 msgstr "Mostrar la papelera en el escritorio"
5050
51 #: desktopGrid.js:185 desktopGrid.js:304
51 #: desktopGrid.js:182 desktopGrid.js:301
5252 msgid "New Folder"
5353 msgstr "Nueva carpeta"
5454
55 #: desktopGrid.js:306
55 #: desktopGrid.js:303
5656 msgid "Paste"
5757 msgstr "Pegar"
5858
59 #: desktopGrid.js:307
59 #: desktopGrid.js:304
6060 msgid "Undo"
6161 msgstr "Deshacer"
6262
63 #: desktopGrid.js:308
63 #: desktopGrid.js:305
6464 msgid "Redo"
6565 msgstr "Rehacer"
6666
67 #: desktopGrid.js:310
67 #: desktopGrid.js:307
6868 msgid "Open Desktop in Files"
6969 msgstr "Abrir el escritorio en Files"
7070
71 #: desktopGrid.js:311
71 #: desktopGrid.js:308
7272 msgid "Open Terminal"
7373 msgstr "Abrir un terminal"
7474
75 #: desktopGrid.js:313
75 #: desktopGrid.js:310
7676 msgid "Change Background…"
7777 msgstr "Cambiar el fondo..."
7878
79 #: desktopGrid.js:314
79 #: desktopGrid.js:311
8080 msgid "Display Settings"
8181 msgstr "Configuración de pantalla"
8282
83 #: desktopGrid.js:315
83 #: desktopGrid.js:312
8484 msgid "Settings"
8585 msgstr "Configuración"
8686
87 #: desktopGrid.js:569
87 #: desktopGrid.js:568
8888 msgid "Enter file name…"
8989 msgstr "Introduzca el nombre del archivo…"
9090
91 #: desktopGrid.js:573
92 msgid "Ok"
91 #: desktopGrid.js:572
92 msgid "OK"
9393 msgstr "Aceptar"
9494
95 #: desktopGrid.js:579
95 #: desktopGrid.js:578
9696 msgid "Cancel"
9797 msgstr "Cancelar"
9898
99 #: fileItem.js:393
99 #: fileItem.js:485
100 msgid "Don’t Allow Launching"
101 msgstr "No permitir lanzar"
102
103 #: fileItem.js:487
104 msgid "Allow Launching"
105 msgstr "Permitir lanzar"
106
107 #: fileItem.js:550
100108 msgid "Open"
101109 msgstr "Abrir"
102110
103 #: fileItem.js:396
111 #: fileItem.js:553
104112 msgid "Cut"
105113 msgstr "Cortar"
106114
107 #: fileItem.js:397
115 #: fileItem.js:554
108116 msgid "Copy"
109117 msgstr "Copiar"
110118
111 #: fileItem.js:398
119 #: fileItem.js:556
112120 msgid "Rename"
113121 msgstr "Renombrar"
114122
115 #: fileItem.js:399
123 #: fileItem.js:557
116124 msgid "Move to Trash"
117125 msgstr "Mover a la papelera"
118126
119 #: fileItem.js:403
120 #| msgid "Empty trash"
127 #: fileItem.js:567
121128 msgid "Empty Trash"
122129 msgstr "Vaciar la papelera"
123130
124 #: fileItem.js:409
131 #: fileItem.js:573
125132 msgid "Properties"
126133 msgstr "Propiedades"
127134
128 #: fileItem.js:411
135 #: fileItem.js:575
129136 msgid "Show in Files"
130137 msgstr "Mostrar en Files"
131138
153160 msgid "Show the trash icon in the desktop."
154161 msgstr "Mostrar la papelera en el escritorio."
155162
163 #~ msgid "Ok"
164 #~ msgstr "Aceptar"
165
156166 #~ msgid "huge"
157167 #~ msgstr "inmenso"
158168
11 # Copyright (C) 2018 desktop-icons's COPYRIGHT HOLDER
22 # This file is distributed under the same license as the desktop-icons package.
33 # ghentdebian <ghent.debian@gmail.com>, 2018.
4 # Charles Monzat <charles.monzat@numericable.fr>, 2018.
45 #
56 msgid ""
67 msgstr ""
78 "Project-Id-Version: desktop-icons master\n"
89 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
910 "icons/issues\n"
10 "POT-Creation-Date: 2018-11-29 09:07+0000\n"
11 "PO-Revision-Date: 2018-11-30 10:21+0100\n"
12 "Last-Translator: ghentdebian <ghent.debian@gmail.com>\n"
13 "Language-Team: French <gnomefr@traduc.org>\n"
11 "POT-Creation-Date: 2018-12-14 09:12+0000\n"
12 "PO-Revision-Date: 2018-12-16 17:47+0100\n"
13 "Last-Translator: Charles Monzat <charles.monzat@numericable.fr>\n"
14 "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
1415 "Language: fr\n"
1516 "MIME-Version: 1.0\n"
1617 "Content-Type: text/plain; charset=UTF-8\n"
1718 "Content-Transfer-Encoding: 8bit\n"
18 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
19 "X-Generator: Poedit 2.2\n"
19 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
20 "X-Generator: Gtranslator 3.30.0\n"
2021
21 #: prefs.js:93
22 #: prefs.js:102
2223 msgid "Size for the desktop icons"
2324 msgstr "Taille des icônes du bureau"
2425
25 #: prefs.js:93
26 #: prefs.js:102
2627 msgid "Small"
2728 msgstr "Petite"
2829
29 #: prefs.js:93
30 #: prefs.js:102
3031 msgid "Standard"
3132 msgstr "Normale"
3233
33 #: prefs.js:93
34 #: prefs.js:102
3435 msgid "Large"
3536 msgstr "Grande"
3637
37 #: prefs.js:93
38 #: prefs.js:102
3839 msgid "Huge"
3940 msgstr "Immense"
4041
41 #: prefs.js:94
42 #: prefs.js:103
4243 msgid "Show the personal folder in the desktop"
4344 msgstr "Montrer le dossier personnel sur le bureau"
4445
45 #: prefs.js:95
46 #: prefs.js:104
4647 msgid "Show the trash icon in the desktop"
4748 msgstr "Montrer la corbeille sur le bureau"
4849
49 #: desktopGrid.js:185 desktopGrid.js:304
50 #: desktopGrid.js:182 desktopGrid.js:301
5051 msgid "New Folder"
5152 msgstr "Nouveau dossier"
5253
53 #: desktopGrid.js:306
54 #: desktopGrid.js:303
5455 msgid "Paste"
5556 msgstr "Coller"
5657
57 #: desktopGrid.js:307
58 #: desktopGrid.js:304
5859 msgid "Undo"
5960 msgstr "Annuler"
6061
61 #: desktopGrid.js:308
62 #: desktopGrid.js:305
6263 msgid "Redo"
6364 msgstr "Refaire"
6465
65 #: desktopGrid.js:310
66 #: desktopGrid.js:307
6667 msgid "Open Desktop in Files"
6768 msgstr "Ouvrir le bureau dans Fichiers"
6869
69 #: desktopGrid.js:311
70 #: desktopGrid.js:308
7071 msgid "Open Terminal"
7172 msgstr "Ouvrir un terminal"
7273
73 #: desktopGrid.js:313
74 #: desktopGrid.js:310
7475 msgid "Change Background…"
7576 msgstr "Changer l’arrière-plan…"
7677
77 #: desktopGrid.js:314
78 #: desktopGrid.js:311
7879 msgid "Display Settings"
7980 msgstr "Configuration d’affichage"
8081
81 #: desktopGrid.js:315
82 #: desktopGrid.js:312
8283 msgid "Settings"
8384 msgstr "Paramètres"
8485
85 #: desktopGrid.js:569
86 #: desktopGrid.js:568
8687 msgid "Enter file name…"
8788 msgstr "Saisir un nom de fichier…"
8889
89 #: desktopGrid.js:573
90 msgid "Ok"
90 #: desktopGrid.js:572
91 msgid "OK"
9192 msgstr "Valider"
9293
93 #: desktopGrid.js:579
94 #: desktopGrid.js:578
9495 msgid "Cancel"
9596 msgstr "Annuler"
9697
97 #: fileItem.js:393
98 #: fileItem.js:485
99 msgid "Don’t Allow Launching"
100 msgstr "Ne pas autoriser le lancement"
101
102 #: fileItem.js:487
103 msgid "Allow Launching"
104 msgstr "Autoriser le lancement"
105
106 #: fileItem.js:550
98107 msgid "Open"
99108 msgstr "Ouvrir"
100109
101 #: fileItem.js:396
110 #: fileItem.js:553
102111 msgid "Cut"
103112 msgstr "Couper"
104113
105 #: fileItem.js:397
114 #: fileItem.js:554
106115 msgid "Copy"
107116 msgstr "Copier"
108117
109 #: fileItem.js:398
118 #: fileItem.js:556
110119 msgid "Rename"
111120 msgstr "Renommer"
112121
113 #: fileItem.js:399
122 #: fileItem.js:557
114123 msgid "Move to Trash"
115124 msgstr "Mettre à la corbeille"
116125
117 #: fileItem.js:403
126 #: fileItem.js:567
118127 msgid "Empty Trash"
119128 msgstr "Vider la corbeille"
120129
121 #: fileItem.js:409
130 #: fileItem.js:573
122131 msgid "Properties"
123132 msgstr "Propriétés"
124133
125 #: fileItem.js:411
134 #: fileItem.js:575
126135 msgid "Show in Files"
127136 msgstr "Montrer dans Fichiers"
128137
149158 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
150159 msgid "Show the trash icon in the desktop."
151160 msgstr "Montrer la corbeille sur le bureau."
161
162 #~ msgid "Ok"
163 #~ msgstr "Valider"
00 # Polish translation for desktop-icons.
1 # Copyright © 2018 the desktop-icons authors.
1 # Copyright © 2018-2019 the desktop-icons authors.
22 # This file is distributed under the same license as the desktop-icons package.
3 # Piotr Drąg <piotrdrag@gmail.com>, 2018.
4 # Aviary.pl <community-poland@mozilla.org>, 2018.
3 # Piotr Drąg <piotrdrag@gmail.com>, 2018-2019.
4 # Aviary.pl <community-poland@mozilla.org>, 2018-2019.
55 #
66 msgid ""
77 msgstr ""
88 "Project-Id-Version: desktop-icons\n"
99 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/ShellExtensions/desktop-"
1010 "icons/issues\n"
11 "POT-Creation-Date: 2018-12-14 09:12+0000\n"
12 "PO-Revision-Date: 2018-12-15 15:27+0100\n"
11 "POT-Creation-Date: 2019-01-11 11:54+0000\n"
12 "PO-Revision-Date: 2019-01-12 12:39+0100\n"
1313 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
1414 "Language-Team: Polish <community-poland@mozilla.org>\n"
1515 "Language: pl\n"
3535 msgid "Large"
3636 msgstr "Duży"
3737
38 #: prefs.js:102
39 msgid "Huge"
40 msgstr "Wielki"
41
4238 #: prefs.js:103
4339 msgid "Show the personal folder in the desktop"
4440 msgstr "Katalog domowy na pulpicie"
4743 msgid "Show the trash icon in the desktop"
4844 msgstr "Kosz na pulpicie"
4945
50 #: desktopGrid.js:182 desktopGrid.js:301
46 #: desktopGrid.js:187 desktopGrid.js:306
5147 msgid "New Folder"
5248 msgstr "Nowy katalog"
5349
54 #: desktopGrid.js:303
50 #: desktopGrid.js:308
5551 msgid "Paste"
5652 msgstr "Wklej"
5753
58 #: desktopGrid.js:304
54 #: desktopGrid.js:309
5955 msgid "Undo"
6056 msgstr "Cofnij"
6157
62 #: desktopGrid.js:305
58 #: desktopGrid.js:310
6359 msgid "Redo"
6460 msgstr "Ponów"
6561
66 #: desktopGrid.js:307
67 msgid "Open Desktop in Files"
68 msgstr "Otwórz pulpit w menedżerze plików"
62 #: desktopGrid.js:312
63 msgid "Show Desktop in Files"
64 msgstr "Wyświetl pulpit w menedżerze plików"
6965
70 #: desktopGrid.js:308
66 #: desktopGrid.js:313
7167 msgid "Open Terminal"
7268 msgstr "Otwórz terminal"
7369
74 #: desktopGrid.js:310
70 #: desktopGrid.js:315
7571 msgid "Change Background…"
7672 msgstr "Zmień tło…"
7773
78 #: desktopGrid.js:311
74 #: desktopGrid.js:317
7975 msgid "Display Settings"
8076 msgstr "Ustawienia ekranu"
8177
82 #: desktopGrid.js:312
78 #: desktopGrid.js:318
8379 msgid "Settings"
8480 msgstr "Ustawienia"
8581
86 #: desktopGrid.js:568
82 #: desktopGrid.js:559
8783 msgid "Enter file name…"
8884 msgstr "Nazwa pliku…"
8985
90 #: desktopGrid.js:572
86 #: desktopGrid.js:563
9187 msgid "OK"
9288 msgstr "OK"
9389
94 #: desktopGrid.js:578
90 #: desktopGrid.js:569
9591 msgid "Cancel"
9692 msgstr "Anuluj"
9793
98 #: fileItem.js:485
94 #: fileItem.js:490
9995 msgid "Don’t Allow Launching"
10096 msgstr "Nie zezwalaj na uruchamianie"
10197
102 #: fileItem.js:487
98 #: fileItem.js:492
10399 msgid "Allow Launching"
104100 msgstr "Zezwól na uruchamianie"
105101
106 #: fileItem.js:550
102 #: fileItem.js:559
107103 msgid "Open"
108104 msgstr "Otwórz"
109105
110 #: fileItem.js:553
106 #: fileItem.js:562
111107 msgid "Cut"
112108 msgstr "Wytnij"
113109
114 #: fileItem.js:554
110 #: fileItem.js:563
115111 msgid "Copy"
116112 msgstr "Skopiuj"
117113
118 #: fileItem.js:556
119 msgid "Rename"
120 msgstr "Zmień nazwę"
114 #: fileItem.js:565
115 msgid "Rename…"
116 msgstr "Zmień nazwę…"
121117
122 #: fileItem.js:557
118 #: fileItem.js:566
123119 msgid "Move to Trash"
124120 msgstr "Przenieś do kosza"
125121
126 #: fileItem.js:567
122 #: fileItem.js:576
127123 msgid "Empty Trash"
128124 msgstr "Opróżnij kosz"
129125
130 #: fileItem.js:573
126 #: fileItem.js:582
131127 msgid "Properties"
132128 msgstr "Właściwości"
133129
134 #: fileItem.js:575
130 #: fileItem.js:584
135131 msgid "Show in Files"
136132 msgstr "Wyświetl w menedżerze plików"
137133
138 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
134 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:11
139135 msgid "Icon size"
140136 msgstr "Rozmiar ikon"
141137
142 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:13
138 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:12
143139 msgid "Set the size for the desktop icons."
144140 msgstr "Ustawia rozmiar ikon na pulpicie."
145141
146 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
142 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:16
147143 msgid "Show personal folder"
148144 msgstr "Katalog domowy"
149145
150 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:18
146 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:17
151147 msgid "Show the personal folder in the desktop."
152148 msgstr "Wyświetla katalog domowy na pulpicie."
153149
154 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
150 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:21
155151 msgid "Show trash icon"
156152 msgstr "Kosz"
157153
158 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:23
154 #: schemas/org.gnome.shell.extensions.desktop-icons.gschema.xml:22
159155 msgid "Show the trash icon in the desktop."
160156 msgstr "Wyświetla kosz na pulpicie."
3131 const SCHEMA_GTK = 'org.gtk.Settings.FileChooser';
3232 const SCHEMA = 'org.gnome.shell.extensions.desktop-icons';
3333
34 const ICON_SIZE = { 'small': 48, 'standard': 64, 'large': 96, 'huge': 128 };
35 const ICON_WIDTH = { 'small': 120, 'standard': 128, 'large': 128, 'huge': 140 };
36 const ICON_HEIGHT = { 'small': 98, 'standard': 114, 'large': 146, 'huge': 178 };
34 const ICON_SIZE = { 'small': 48, 'standard': 64, 'large': 96 };
35 const ICON_WIDTH = { 'small': 120, 'standard': 128, 'large': 128 };
36 const ICON_HEIGHT = { 'small': 98, 'standard': 114, 'large': 146 };
3737
38 var FILE_TYPE = {
38 var FileType = {
3939 NONE: null,
4040 USER_DIRECTORY_HOME: 'show-home',
4141 USER_DIRECTORY_TRASH: 'show-trash',
9898
9999 let frame = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, border_width: 10, spacing: 10 });
100100
101 frame.add(buildSelector('icon-size', _("Size for the desktop icons"), { 'small': _("Small"), 'standard': _("Standard"), 'large': _("Large"), 'huge': _("Huge")}));
101 frame.add(buildSelector('icon-size', _("Size for the desktop icons"), { 'small': _("Small"), 'standard': _("Standard"), 'large': _("Large") }));
102102 frame.add(buildSwitcher('show-home', _("Show the personal folder in the desktop")));
103103 frame.add(buildSwitcher('show-trash', _("Show the trash icon in the desktop")));
104104 frame.show_all();
33 <value value="0" nick="small"/>
44 <value value="1" nick="standard"/>
55 <value value="2" nick="large"/>
6 <value value="3" nick="huge"/>
76 </enum>
87 <schema path="/org/gnome/shell/extensions/desktop-icons/" id="org.gnome.shell.extensions.desktop-icons">
98 <key name="icon-size" enum="org.gnome.shell.extension.desktop-icons.ZoomLevel">
10 <default>'large'</default>
9 <default>'standard'</default>
1110 <summary>Icon size</summary>
1211 <description>Set the size for the desktop icons.</description>
1312 </key>