From 28b3ad99601e78ad122f01370eede4de6f490f56 Mon Sep 17 00:00:00 2001 From: Frank Ploss Date: Fri, 25 Dec 2015 19:52:29 +0100 Subject: [PATCH] Move tor button into its own file --- extension.js | 44 +++---------------------------- tor_control_client.js | 4 +-- ui/tor_button.js | 60 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 43 deletions(-) create mode 100644 ui/tor_button.js diff --git a/extension.js b/extension.js index a2fe214..0a2201d 100644 --- a/extension.js +++ b/extension.js @@ -1,4 +1,4 @@ -// ex: set sw=4 +// ex: set sw=4:ts=4 /* Copyright 2015 Frank Ploss . @@ -7,7 +7,7 @@ This file is part of gnome-shell-extension-tor. gnome-shell-extension-tor is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or -any later version. +(at your option) any later version. gnome-shell-extension-tor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,53 +19,15 @@ along with gnome-shell-extension-tor. If not, see . @@ -7,7 +7,7 @@ This file is part of gnome-shell-extension-tor. gnome-shell-extension-tor is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or -any later version. +(at your option) any later version. gnome-shell-extension-tor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/ui/tor_button.js b/ui/tor_button.js new file mode 100644 index 0000000..3d53b2d --- /dev/null +++ b/ui/tor_button.js @@ -0,0 +1,60 @@ +// ex: set sw=4:ts=4 +/* +Copyright 2015 Frank Ploss . + +This file is part of gnome-shell-extension-tor. + +gnome-shell-extension-tor is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +gnome-shell-extension-tor is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with gnome-shell-extension-tor. If not, see ./ +*/ +'use strict'; + +const Lang = imports.lang; +const Main = imports.ui.main; +const PanelMenu = imports.ui.panelMenu; +const St = imports.gi.St; + +const TorIcon = 'tor'; + +const TorButton = new Lang.Class({ + Name: 'TorButton', + Extends: PanelMenu.Button, + + _init: function(torControlClient) { + this.parent(null, this.Name); + + this._torControlClient = torControlClient; + + this._icon = new St.Icon({ + icon_name: TorIcon, + style_class: 'system-status-icon' + }); + + this.actor.add_child(this._icon); + + this.menu.addAction('Switch Tor Identity', Lang.bind(this, function(event) { + this._switchTorIdentity(); + log('Switched to a new Tor identity!'); + })); + }, + + _switchTorIdentity: function() { + try { + this._torControlClient.switchIdentity(); + Main.notify('Switched to a new Tor identity! EEEEE'); + } catch (e) { + log(e); + Main.notifyError('Could not switch Tor identity: ' + e); + } + } +});