Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

# -*- coding: utf-8 -*- 

# 

# Copyright (C) 2007 Marcos Pinto ('markybob') <markybob@gmail.com> 

# 

# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with 

# the additional special exception to link portions of this program with the OpenSSL library. 

# See LICENSE for more details. 

# 

 

import gtk 

import pygtk 

 

from deluge.common import get_pixmap, get_version, open_url_in_browser 

from deluge.ui.client import client 

from deluge.ui.gtkui.common import get_deluge_icon 

 

pygtk.require('2.0') 

 

 

class AboutDialog: 

    def __init__(self): 

        def url_hook(dialog, url): 

            open_url_in_browser(url) 

        gtk.about_dialog_set_url_hook(url_hook) 

        self.about = gtk.AboutDialog() 

        self.about.set_position(gtk.WIN_POS_CENTER) 

        self.about.set_name("Deluge") 

        self.about.set_program_name(_("Deluge")) 

 

        version = get_version() 

 

        self.about.set_copyright(_('Copyright 2007-2011 Deluge Team')) 

        self.about.set_comments( 

            _("A peer-to-peer file sharing program\nutilizing the BitTorrent protocol.") 

            + "\n\n" + _("Client:") + " %s\n" % version) 

        self.about.set_version(version) 

        self.about.set_authors([ 

            _("Current Developers:"), "Andrew Resch", "Damien Churchill", 

            "John Garland", "Calum Lind", "", "libtorrent (libtorrent.org):", 

            "Arvid Norberg", "", _("Past Developers or Contributors:"), 

            "Zach Tibbitts", "Alon Zakai", "Marcos Pinto", "Alex Dedul", 

            "Sadrul Habib Chowdhury", "Ido Abramovich", "Martijn Voncken" 

        ]) 

        self.about.set_artists(["Andrew Wedderburn", "Andrew Resch"]) 

        self.about.set_translator_credits("\n".join([ 

            "Aaron Wang Shi", "abbigss", "ABCdatos", "Abcx", "Actam", "Adam", 

            "adaminikisi", "adi_oporanu", "Adrian Goll", "afby", "Ahmades", 

            "Ahmad Farghal", "Ahmad Gharbeia أحمد غربية", "akira", "Aki Sivula", 

            "Alan Pepelko", "Alberto", "Alberto Ferrer", "alcatr4z", "AlckO", 

            "Aleksej Korgenkov", "Alessio Treglia", "Alexander Ilyashov", 

            "Alexander Matveev", "Alexander Saltykov", "Alexander Taubenkorb", 

            "Alexander Telenga", "Alexander Yurtsev", "Alexandre Martani", 

            "Alexandre Rosenfeld", "Alexandre Sapata Carbonell", 

            "Alexey Osipov", "Alin Claudiu Radut", "allah", "AlSim", 

            "Alvaro Carrillanca P.", "A.Matveev", "Andras Hipsag", 

            "András Kárász", "Andrea Ratto", "Andreas Johansson", "Andreas Str", 

            "André F. Oliveira", "AndreiF", "andrewh", "Angel Guzman Maeso", 

            "Aníbal Deboni Neto", "animarval", "Antonio Cono", "antoniojreyes", 

            "Anton Shestakov", "Anton Yakutovich", "antou", 

            "Arkadiusz Kalinowski", "Artin", "artir", "Astur", 

            "Athanasios Lefteris", "Athmane MOKRAOUI (ButterflyOfFire)", 

            "Augusta Carla Klug", "Avoledo Marco", "axaard", "AxelRafn", 

            "Axezium", "Ayont", "b3rx", "Bae Taegil", "Bajusz Tamás", 

            "Balaam's Miracle", "Ballestein", "Bent Ole Fosse", "berto89", 

            "bigx", "Bjorn Inge Berg", "blackbird", "Blackeyed", "blackmx", 

            "BlueSky", "Blutheo", "bmhm", "bob00work", "boenki", 

            "Bogdan Bădic-Spătariu", "bonpu", "Boone", "boss01", 

            "Branislav Jovanović", "bronze", "brownie", "Brus46", "bumper", 

            "butely", "BXCracer", "c0nfidencal", "Can Kaya", 

            "Carlos Alexandro Becker", "cassianoleal", "Cédric.h", 

            "César Rubén", "chaoswizard", "Chen Tao", "chicha", 

            "Chien Cheng Wei", "Christian Kopac", "Christian Widell", 

            "Christoffer Brodd-Reijer", "christooss", "CityAceE", "Clopy", 

            "Clusty", "cnu", "Commandant", "Constantinos Koniaris", "Coolmax", 

            "cosmix", "Costin Chirvasuta", "CoVaLiDiTy", "cow_2001", 

            "Crispin Kirchner", "crom", "Cruster", "Cybolic", "Dan Bishop", 

            "Danek", "Dani", "Daniel Demarco", "Daniel Ferreira", 

            "Daniel Frank", "Daniel Holm", "Daniel Høyer Iversen", 

            "Daniel Marynicz", "Daniel Nylander", "Daniel Patriche", 

            "Daniel Schildt", "Daniil Sorokin", "Dante Díaz", "Daria Michalska", 

            "DarkenCZ", "Darren", "Daspah", "David Eurenius", "davidhjelm", 

            "David Machakhelidze", "Dawid Dziurdzia", "Daya Adianto ", "dcruz", 

            "Deady", "Dereck Wonnacott", "Devgru", "Devid Antonio Filoni" 

            "DevilDogTG", "di0rz`", "Dialecti Valsamou", "Diego Medeiros", 

            "Dkzoffy", "Dmitrij D. Czarkoff", "Dmitriy Geels", 

            "Dmitry Olyenyov", "Dominik Kozaczko", "Dominik Lübben", "doomster", 

            "Dorota Król", "Doyen Philippe", "Dread Knight", "DreamSonic", 

            "duan", "Duong Thanh An", "DvoglavaZver", "dwori", "dylansmrjones", 

            "Ebuntor", "Edgar Alejandro Jarquin Flores", "Eetu", "ekerazha", 

            "Elias Julkunen", "elparia", "Emberke", "Emiliano Goday Caneda", 

            "EndelWar", "eng.essam", "enubuntu", "ercangun", "Erdal Ronahi", 

            "ergin üresin", "Eric", "Éric Lassauge", "Erlend Finvåg", "Errdil", 

            "ethan shalev", "Evgeni Spasov", "ezekielnin", "Fabian Ordelmans", 

            "Fabio Mazanatti", "Fábio Nogueira", "FaCuZ", "Felipe Lerena", 

            "Fernando Pereira", "fjetland", "Florian Schäfer", "FoBoS", "Folke", 

            "Force", "fosk", "fragarray", "freddeg", "Frédéric Perrin", 

            "Fredrik Kilegran", "FreeAtMind", "Fulvio Ciucci", "Gabor Kelemen", 

            "Galatsanos Panagiotis", "Gaussian", "gdevitis", "Georg Brzyk", 

            "George Dumitrescu", "Georgi Arabadjiev", "Georg Sieber", 

            "Gerd Radecke", "Germán Heusdens", "Gianni Vialetto", 

            "Gigih Aji Ibrahim", "Giorgio Wicklein", "Giovanni Rapagnani", 

            "Giuseppe", "gl", "glen", "granjerox", "Green Fish", "greentea", 

            "Greyhound", "G. U.", "Guillaume BENOIT", "Guillaume Pelletier", 

            "Gustavo Henrique Klug", "gutocarvalho", "Guybrush88", 

            "Hans Rødtang", "HardDisk", "Hargas Gábor", 

            "Heitor Thury Barreiros Barbosa", "helios91940", "helix84", 

            "Helton Rodrigues", "Hendrik Luup", "Henrique Ferreiro", 

            "Henry Goury-Laffont", "Hezy Amiel", "hidro", "hoball", "hokten", 

            "Holmsss", "hristo.num", "Hubert Życiński", "Hyo", "Iarwain", "ibe", 

            "ibear", "Id2ndR", "Igor Zubarev", "IKON (Ion)", "imen", 

            "Ionuț Jula", "Isabelle STEVANT", "István Nyitrai", "Ivan Petrovic", 

            "Ivan Prignano", "IvaSerge", "jackmc", "Jacks0nxD", "Jack Shen", 

            "Jacky Yeung", "Jacques Stadler", "Janek Thomaschewski", "Jan Kaláb", 

            "Jan Niklas Hasse", "Jasper Groenewegen", "Javi Rodríguez", 

            "Jayasimha (ಜಯಸಿಂಹ)", "jeannich", "Jeff Bailes", "Jesse Zilstorff", 

            "Joan Duran", "João Santos", "Joar Bagge", "Joe Anderson", 

            "Joel Calado", "Johan Linde", "John Garland", "Jojan", "jollyr0ger", 

            "Jonas Bo Grimsgaard", "Jonas Granqvist", "Jonas Slivka", 

            "Jonathan Zeppettini", "Jørgen", "Jørgen Tellnes", "josé", 

            "José Geraldo Gouvêa", "José Iván León Islas", "José Lou C.", 

            "Jose Sun", "Jr.", "Jukka Kauppinen", "Julián Alarcón", 

            "julietgolf", "Jusic", "Justzupi", "Kaarel", "Kai Thomsen", 

            "Kalman Tarnay", "Kamil Páral", "Kane_F", "kaotiks@gmail.com", 

            "Kateikyoushii", "kaxhinaz", "Kazuhiro NISHIYAMA", "Kerberos", 

            "Keresztes Ákos", "kevintyk", "kiersie", "Kimbo^", "Kim Lübbe", 

            "kitzOgen", "Kjetil Rydland", "kluon", "kmikz", "Knedlyk", 

            "koleoptero", "Kőrösi Krisztián", "Kouta", "Krakatos", 

            "Krešo Kunjas", "kripken", "Kristaps", "Kristian Øllegaard", 

            "Kristoffer Egil Bonarjee", "Krzysztof Janowski", 

            "Krzysztof Zawada", "Larry Wei Liu", "laughterwym", "Laur Mõtus", 

            "lazka", "leandrud", "lê bình", "Le Coz Florent", "Leo", "liorda", 

            "LKRaider", "LoLo_SaG", "Long Tran", "Lorenz", "Low Kian Seong", 

            "Luca Andrea Rossi", "Luca Ferretti", "Lucky LIX", "Luis Gomes", 

            "Luis Reis", "Łukasz Wyszyński", "luojie-dune", "maaark", 

            "Maciej Chojnacki", "Maciej Meller", "Mads Peter Rommedahl", 

            "Major Kong", "Malaki", "malde", "Malte Lenz", "Mantas Kriaučiūnas", 

            "Mara Sorella", "Marcin", "Marcin Falkiewicz", "marcobra", 

            "Marco da Silva", "Marco de Moulin", "Marco Rodrigues", "Marcos", 

            "Marcos Escalier", "Marcos Pinto", "Marcus Ekstrom", 

            "Marek Dębowski", "Mário Buči", "Mario Munda", "Marius Andersen", 

            "Marius Hudea", "Marius Mihai", "Mariusz Cielecki", 

            "Mark Krapivner", "marko-markovic", "Markus Brummer", 

            "Markus Sutter", "Martin", "Martin Dybdal", "Martin Iglesias", 

            "Martin Lettner", "Martin Pihl", "Masoud Kalali", "mat02", 

            "Matej Urbančič", "Mathias-K", "Mathieu Arès", 

            "Mathieu D. (MatToufoutu)", "Mathijs", "Matrik", "Matteo Renzulli", 

            "Matteo Settenvini", "Matthew Gadd", "Matthias Benkard", 

            "Matthias Mailänder", "Mattias Ohlsson", "Mauro de Carvalho", 

            "Max Molchanov", "Me", "MercuryCC", "Mert Bozkurt", "Mert Dirik", 

            "MFX", "mhietar", "mibtha", "Michael Budde", "Michael Kaliszka", 

            "Michalis Makaronides", "Michał Tokarczyk", "Miguel Pires da Rosa", 

            "Mihai Capotă", "Miika Metsälä", "Mikael Fernblad", "Mike Sierra", 

            "mikhalek", "Milan Prvulović", "Milo Casagrande", "Mindaugas", 

            "Miroslav Matejaš", "misel", "mithras", "Mitja Pagon", "M.Kitchen", 

            "Mohamed Magdy", "moonkey", "MrBlonde", "muczy", "Münir Ekinci", 

            "Mustafa Temizel", "mvoncken", "Mytonn", "NagyMarton", "neaion", 

            "Neil Lin", "Nemo", "Nerijus Arlauskas", "Nicklas Larsson", 

            "Nicolaj Wyke", "Nicola Piovesan", "Nicolas Sabatier", 

            "Nicolas Velin", "Nightfall", "NiKoB", "Nikolai M. Riabov", 

            "Niko_Thien", "niska", "Nithir", "noisemonkey", "nomemohes", 

            "nosense", "null", "Nuno Estêvão", "Nuno Santos", "nxxs", "nyo", 

            "obo", "Ojan", "Olav Andreas Lindekleiv", "oldbeggar", 

            "Olivier FAURAX", "orphe", "osantana", "Osman Tosun", "OssiR", 

            "otypoks", "ounn", "Oz123", "Özgür BASKIN", "Pablo Carmona A.", 

            "Pablo Ledesma", "Pablo Navarro Castillo", "Paco Molinero", 

            "Pål-Eivind Johnsen", "pano", "Paolo Naldini", "Paracelsus", 

            "Patryk13_03", "Patryk Skorupa", "PattogoTehen", "Paul Lange", 

            "Pavcio", "Paweł Wysocki", "Pedro Brites Moita", 

            "Pedro Clemente Pereira Neto", "Pekka \"PEXI\" Niemistö", "Penegal", 

            "Penzo", "perdido", "Peter Kotrcka", "Peter Skov", 

            "Peter Van den Bosch", "Petter Eklund", "Petter Viklund", 

            "phatsphere", "Phenomen", "Philipi", "Philippides Homer", "phoenix", 

            "pidi", "Pierre Quillery", "Pierre Rudloff", "Pierre Slamich", 

            "Pietrao", "Piotr Strębski", "Piotr Wicijowski", "Pittmann Tamás", 

            "Playmolas", "Prescott", "Prescott_SK", "pronull", 

            "Przemysław Kulczycki", "Pumy", "pushpika", "PY", "qubicllj", 

            "r21vo", "Rafał Barański", "rainofchaos", "Rajbir", "ras0ir", "Rat", 

            "rd1381", "Renato", "Rene Hennig", "Rene Pärts", "Ricardo Duarte", 

            "Richard", "Robert Hrovat", "Roberth Sjonøy", "Robert Lundmark", 

            "Robin Jakobsson", "Robin Kåveland", "Rodrigo Donado", 

            "Roel Groeneveld", "rohmaru", "Rolf Christensen", "Rolf Leggewie", 

            "Roni Kantis", "Ronmi", "Rostislav Raykov", "royto", "RuiAmaro", 

            "Rui Araújo", "Rui Moura", "Rune Svendsen", "Rusna", "Rytis", 

            "Sabirov Mikhail", "salseeg", "Sami Koskinen", "Samir van de Sand", 

            "Samuel Arroyo Acuña", "Samuel R. C. Vale", "Sanel", "Santi", 

            "Santi Martínez Cantelli", "Sardan", "Sargate Kanogan", 

            "Sarmad Jari", "Saša Bodiroža", "sat0shi", "Saulius Pranckevičius", 

            "Savvas Radevic", "Sebastian Krauß", "Sebastián Porta", "Sedir", 

            "Sefa Denizoğlu", "sekolands", "Selim Suerkan", "semsomi", 

            "Sergii Golovatiuk", "setarcos", "Sheki", "Shironeko", "Shlomil", 

            "silfiriel", "Simone Tolotti", "Simone Vendemia", "sirkubador", 

            "Sławomir Więch", "slip", "slyon", "smoke", "Sonja", "spectral", 

            "spin_555", "spitf1r3", "Spiziuz", "Spyros Theodoritsis", "SqUe", 

            "Squigly", "srtck", "Stefan Horning", "Stefano Maggiolo", 

            "Stefano Roberto Soleti", "steinberger", "Stéphane Travostino", 

            "Stephan Klein", "Steven De Winter", "Stevie", "Stian24", "stylius", 

            "Sukarn Maini", "Sunjae Park", "Susana Pereira", "szymon siglowy", 

            "takercena", "TAS", "Taygeto", "temy4", "texxxxxx", "thamood", 

            "Thanos Chatziathanassiou", "Tharawut Paripaiboon", "Theodoor", 

            "Théophane Anestis", "Thor Marius K. Høgås", "Tiago Silva", 

            "Tiago Sousa", "Tikkel", "tim__b", "Tim Bordemann", "Tim Fuchs", 

            "Tim Kornhammar", "Timo", "Timo Jyrinki", "Timothy Babych", 

            "TitkosRejtozo", "Tom", "Tomas Gustavsson", "Tomas Valentukevičius", 

            "Tomasz Dominikowski", "Tomislav Plavčić", "Tom Mannerhagen", 

            "Tommy Mikkelsen", "Tom Verdaat", "Tony Manco", 

            "Tor Erling H. Opsahl", "Toudi", "tqm_z", "Trapanator", "Tribaal", 

            "Triton", "TuniX12", "Tuomo Sipola", "turbojugend_gr", "Turtle.net", 

            "twilight", "tymmej", "Ulrik", "Umarzuki Mochlis", "unikob", 

            "Vadim Gusev", "Vagi", "Valentin Bora", "Valmantas Palikša", 

            "VASKITTU", "Vassilis Skoullis", "vetal17", "vicedo", "viki", 

            "villads hamann", "Vincent Garibal", "Vincent Ortalda", "vinchi007", 

            "Vinícius de Figueiredo Silva", "Vinzenz Vietzke", "virtoo", 

            "virtual_spirit", "Vitor Caike", "Vitor Lamas Gatti", 

            "Vladimir Lazic", "Vladimir Sharshov", "Wanderlust", "Wander Nauta", 

            "Ward De Ridder", "WebCrusader", "webdr", "Wentao Tang", "wilana", 

            "Wilfredo Ernesto Guerrero Campos", "Wim Champagne", "World Sucks", 

            "Xabi Ezpeleta", "Xavi de Moner", "XavierToo", "XChesser", 

            "Xiaodong Xu", "xyb", "Yaron", "Yasen Pramatarov", "YesPoX", 

            "Yuren Ju", "Yves MATHIEU", "zekopeko", "zhuqin", "Zissan", 

            "Γιάννης Κατσαμπίρης", "Артём Попов", "Миша", "Шаймарданов Максим", 

            "蔡查理" 

        ])) 

        self.about.set_wrap_license(True) 

        self.about.set_license(_( 

            "This program 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. \n\n" 

            "This program " 

            "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. \n\n" 

            "You should have received " 

            "a copy of the GNU General Public License along with this program; " 

            "if not, see <http://www.gnu.org/licenses>. \n\n" 

            "In addition, as a " 

            "special exception, the copyright holders give permission to link " 

            "the code of portions of this program with the OpenSSL library. " 

            "You must obey the GNU General Public License in all respects for " 

            "all of the code used other than OpenSSL. \n\n" 

            "If you modify file(s) " 

            "with this exception, you may extend this exception to your " 

            "version of the file(s), but you are not obligated to do so. If " 

            "you do not wish to do so, delete this exception statement from " 

            "your version. If you delete this exception statement from all " 

            "source files in the program, then also delete it here." 

        )) 

        self.about.set_website("http://deluge-torrent.org") 

        self.about.set_website_label("deluge-torrent.org") 

 

        self.about.set_icon(get_deluge_icon()) 

        self.about.set_logo(gtk.gdk.pixbuf_new_from_file(get_pixmap("deluge-about.png"))) 

 

        if client.connected(): 

            if not client.is_classicmode(): 

                self.about.set_comments( 

                    self.about.get_comments() + _("Server:") + " %coreversion%\n") 

 

            self.about.set_comments( 

                self.about.get_comments() + "\n" + _("libtorrent:") + " %ltversion%\n") 

 

            def on_lt_version(result): 

                c = self.about.get_comments() 

                c = c.replace("%ltversion%", result) 

                self.about.set_comments(c) 

 

            def on_info(result): 

                c = self.about.get_comments() 

                c = c.replace("%coreversion%", result) 

                self.about.set_comments(c) 

                client.core.get_libtorrent_version().addCallback(on_lt_version) 

 

            if not client.is_classicmode(): 

                client.daemon.info().addCallback(on_info) 

            else: 

                client.core.get_libtorrent_version().addCallback(on_lt_version) 

 

    def run(self): 

        self.about.show_all() 

        self.about.run() 

        self.about.destroy()