Merge lp:~linuxdcpp-team/linuxdcpp/linuxdcpp-i18n into lp:linuxdcpp

Proposed by Steven Sheehy
Status: Merged
Approved by: Steven Sheehy
Approved revision: 416
Merged at revision: 406
Proposed branch: lp:~linuxdcpp-team/linuxdcpp/linuxdcpp-i18n
Merge into: lp:linuxdcpp
Diff against target: 7135 lines (+1998/-2251)
48 files modified
.bzrignore (+1/-0)
Readme.txt (+1/-1)
SConstruct (+75/-36)
dcpp/DCPlusPlus.cpp (+5/-7)
dcpp/SConscript (+4/-4)
dcpp/Util.cpp (+10/-5)
dcpp/Util.h (+2/-1)
glade/SConscript (+10/-0)
glade/favoritehubs.glade (+10/-1)
glade/favoriteusers.glade (+5/-4)
glade/hash.glade (+1/-1)
glade/hub.glade (+2/-3)
glade/mainwindow.glade (+31/-68)
glade/publichubs.glade (+1/-1)
glade/search.glade (+6/-4)
glade/settingsdialog.glade (+1286/-1514)
glade/sharebrowser.glade (+12/-11)
glade/transfers.glade (+1/-1)
linux/IntlUtil.hh (+64/-0)
linux/SConscript (+7/-6)
linux/WulforUtil.cc (+21/-21)
linux/bookentry.cc (+1/-0)
linux/downloadqueue.cc (+25/-24)
linux/downloadqueue.hh (+2/-0)
linux/entry.hh (+1/-1)
linux/favoritehubs.cc (+12/-18)
linux/favoriteusers.cc (+29/-29)
linux/finishedtransfers.cc (+9/-8)
linux/hashdialog.cc (+14/-6)
linux/hub.cc (+31/-27)
linux/hub.hh (+1/-0)
linux/mainwindow.cc (+12/-11)
linux/mainwindow.hh (+2/-0)
linux/privatemessage.cc (+3/-3)
linux/publichubs.cc (+16/-16)
linux/search.cc (+36/-26)
linux/search.hh (+1/-0)
linux/settingsdialog.cc (+86/-224)
linux/settingsdialog.hh (+1/-8)
linux/settingsmanager.hh (+1/-0)
linux/sharebrowser.cc (+24/-29)
linux/sharebrowser.hh (+2/-0)
linux/transfers.cc (+37/-30)
linux/transfers.hh (+2/-0)
linux/treeview.cc (+69/-67)
linux/treeview.hh (+2/-3)
linux/wulfor.cc (+24/-31)
linux/wulformanager.cc (+0/-1)
To merge this branch: bzr merge lp:~linuxdcpp-team/linuxdcpp/linuxdcpp-i18n
Reviewer Review Type Date Requested Status
Razzloss Approve
Review via email: mp+47355@code.launchpad.net

Commit message

Merge i18n branch

To post a comment you must log in.
416. By Steven Sheehy

Fix build order

Revision history for this message
Razzloss (razzloss) wrote :

I don't see any reason not to merge. The few issues discussed via email are not critical and can be left as is or fixed/changed after the merge. And since there's nothing going on in the main branch there's no reason why the work couldn't continue on there (we might even get some user feedback after it gets pushed to the PPA).

--RZ

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2010-03-24 00:41:52 +0000
3+++ .bzrignore 2011-01-25 05:38:26 +0000
4@@ -2,3 +2,4 @@
5 tags
6 core
7 linuxdcpp
8+po
9
10=== modified file 'Readme.txt'
11--- Readme.txt 2010-11-05 13:09:29 +0000
12+++ Readme.txt 2011-01-25 05:38:26 +0000
13@@ -20,7 +20,7 @@
14 scons >= 0.96
15 pkg-config
16 g++ >= 4.1
17-gtk+-2.0 >= 2.10
18+gtk+-2.0 >= 2.12
19 gthread-2.0 >= 2.4
20 libglade-2.0 >= 2.4
21 pthread
22
23=== modified file 'SConstruct'
24--- SConstruct 2011-01-18 15:02:04 +0000
25+++ SConstruct 2011-01-25 05:38:26 +0000
26@@ -12,13 +12,14 @@
27
28 EnsureSConsVersion(0, 98, 1)
29
30-APP_NAME = 'linuxdcpp'
31+PACKAGE = 'linuxdcpp'
32+CORE_PACKAGE = 'libdcpp'
33 BUILD_PATH = '#/build/'
34+BUILD_LOCALE_PATH = BUILD_PATH + 'locale/'
35
36-# todo: remove -fpermissive and fix the errors
37 BUILD_FLAGS = {
38- 'common': ['-I#', '-fpermissive', '-D_GNU_SOURCE', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_REENTRANT'],
39- 'debug': ['-g', '-ggdb', '-Wall', '-D_DEBUG'],
40+ 'common' : ['-I#', '-D_GNU_SOURCE', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_REENTRANT'],
41+ 'debug' : ['-g', '-ggdb', '-Wall', '-D_DEBUG'],
42 'release' : ['-O3', '-fomit-frame-pointer', '-DNDEBUG']
43 }
44
45@@ -67,21 +68,29 @@
46 context.Result(revision)
47 return revision
48
49-# Install app icons to share/icons and all others to share/linuxdcpp/icons
50-def install_icons(env, icons_dir):
51- prefix = env['FAKE_ROOT'] + os.path.join(env['PREFIX'], 'share')
52-
53- for root, dirs, files in os.walk(icons_dir):
54- for file in files:
55- (filename, ext) = file.rsplit('.', 1)
56-
57- if (filename == APP_NAME):
58- target = os.path.join(prefix, root)
59- else:
60- target = os.path.join(prefix, APP_NAME, root)
61-
62- src = os.path.join(root, file)
63- env.Alias('install', env.Install(dir = target, source = src))
64+# Recursively installs all files within the source folder to target. Optionally,
65+# a filter function can be provided to prevent installation of certain files.
66+def recursive_install(env, source, target, filter = None):
67+ nodes = env.Glob(os.path.join(source, '*'))
68+ target = os.path.join(target, os.path.basename(source))
69+
70+ for node in nodes:
71+ if node.isdir():
72+ env.RecursiveInstall(str(node), target, filter)
73+ elif filter == None or filter(node.name):
74+ env.Alias('install', env.Install(target, node))
75+
76+def generate_message_catalogs(env):
77+ mo_path = os.path.join(BUILD_LOCALE_PATH, '%s', 'LC_MESSAGES', env['package'] + '.mo')
78+ po_files = env.Glob('po/*.po', strings = True)
79+
80+ for po_file in po_files:
81+ basename = os.path.basename(po_file)
82+ lang = os.path.splitext(basename)[0]
83+ mo_file = mo_path % lang
84+ env.MoBuild(source = po_file, target = mo_file)
85+
86+ return None
87
88
89 # ----------------------------------------------------------------------
90@@ -107,7 +116,7 @@
91 # Initialization
92 # ----------------------------------------------------------------------
93
94-env = Environment(ENV = os.environ, options = vars)
95+env = Environment(ENV = os.environ, variables = vars, package = PACKAGE)
96
97 env['mode'] = 'debug' if env.get('debug') else 'release'
98 env['build_path'] = BUILD_PATH + env['mode'] + '/'
99@@ -136,7 +145,26 @@
100 vars.Save('build/sconf/scache.conf', env)
101 Help(vars.GenerateHelpText(env))
102
103-env.AddMethod(install_icons, 'InstallIcons')
104+pot_args = ['xgettext', '--default-domain=$PACKAGE', '--package-name=$PACKAGE',
105+ '--msgid-bugs-address=https://translations.launchpad.net/linuxdcpp',
106+ '--copyright-holder=LinuxDC++ Team', '--add-comments=TRANSLATORS',
107+ '--keyword=_', '--keyword=N_', '--keyword=C_:1c,2', '--keyword=F_',
108+ '--keyword=P_:1,2', '--from-code=UTF-8', '--foreign-user',
109+ '--no-wrap', '--boost', '--sort-output', '--language=$LANGUAGE',
110+ '--output=$TARGET', '$SOURCES']
111+pot_build = Builder(action = Action([pot_args], 'Extracting messages to $TARGET from $SOURCES'))
112+env.Append(BUILDERS = {'PotBuild' : pot_build})
113+
114+merge_pot_args = ['msgcat', '$SOURCES', '--output-file=$TARGET']
115+merge_pot_builder = Builder(action = Action([merge_pot_args], 'Merging pot files $SOURCES to $TARGET'))
116+env.Append(BUILDERS = {'MergePotFiles' : merge_pot_builder})
117+
118+mo_args = ['msgfmt', '-c', '-o', '$TARGET', '$SOURCE']
119+mo_build = Builder(action = Action([mo_args], 'Compiling message catalog $TARGET from $SOURCES'))
120+env.Append(BUILDERS = {'MoBuild' : mo_build})
121+
122+env.AddMethod(generate_message_catalogs, 'GenerateMessageCatalogs')
123+env.AddMethod(recursive_install, 'RecursiveInstall')
124
125 conf = env.Configure(
126 custom_tests =
127@@ -164,8 +192,8 @@
128 print '\tpkg-config not found.'
129 Exit(1)
130
131- if not conf.CheckPKG('gtk+-2.0 >= 2.10'):
132- print '\tgtk+ >= 2.10 not found.'
133+ if not conf.CheckPKG('gtk+-2.0 >= 2.12'):
134+ print '\tgtk+ >= 2.12 not found.'
135 print '\tNote: You might have the lib but not the headers'
136 Exit(1)
137
138@@ -255,7 +283,7 @@
139 env.ParseConfig('pkg-config --libs libglade-2.0')
140 env.ParseConfig('pkg-config --libs gthread-2.0')
141
142- env.Append(LIBPATH = env['build_path'] + 'dcpp')
143+ env.Append(LIBPATH = env['build_path'] + CORE_PACKAGE)
144 env.Prepend(LIBS = 'dcpp')
145
146 if os.sys.platform == 'linux2':
147@@ -281,17 +309,23 @@
148 # Build
149 # ----------------------------------------------------------------------
150
151- Export('env')
152-
153 # Build the dcpp library
154- libdcpp = SConscript(dirs = 'dcpp', variant_dir = env['build_path'] + 'dcpp', duplicate = 0)
155+ dcpp_env = env.Clone(package = CORE_PACKAGE)
156+ libdcpp = SConscript(dirs = 'dcpp', variant_dir = env['build_path'] + CORE_PACKAGE, duplicate = 0, exports = {'env': dcpp_env})
157
158 # Build the GUI
159- obj_files = SConscript(dirs = 'linux', variant_dir = env['build_path'] + 'gui', duplicate = 0)
160+ ui_env = env.Clone()
161+ glade_pot_file = SConscript(dirs = 'glade', variant_dir = env['build_path'] + 'glade', duplicate = 0, exports = {'env': ui_env})
162+
163+ (linux_pot_file, obj_files) = SConscript(dirs = 'linux', variant_dir = env['build_path'] + 'gui', duplicate = 0, exports = {'env': ui_env})
164
165 # Create the executable
166- env.Program(target = APP_NAME, source = [libdcpp, obj_files])
167- Default(APP_NAME)
168+ env.Program(target = PACKAGE, source = [libdcpp, obj_files])
169+
170+ # i18n
171+ env.MergePotFiles(source = [glade_pot_file, linux_pot_file], target = 'po/%s.pot' % PACKAGE)
172+ env.GenerateMessageCatalogs()
173+ Default(PACKAGE)
174
175
176 # ----------------------------------------------------------------------
177@@ -303,11 +337,16 @@
178 glade_files = env.Glob('glade/*.glade')
179 text_files = env.Glob('*.txt')
180 prefix = env['FAKE_ROOT'] + env['PREFIX']
181- desktop_file = os.path.join('data', APP_NAME + '.desktop')
182-
183- env.InstallIcons('icons/hicolor/')
184- env.Alias('install', env.Install(dir = os.path.join(prefix, 'share', APP_NAME, 'glade'), source = glade_files))
185- env.Alias('install', env.Install(dir = os.path.join(prefix, 'share', 'doc', APP_NAME), source = text_files))
186+ desktop_file = os.path.join('data', PACKAGE + '.desktop')
187+ app_icon_filter = lambda icon: os.path.splitext(icon)[0] == PACKAGE
188+ regular_icon_filter = lambda icon: os.path.splitext(icon)[0] != PACKAGE
189+
190+ env.RecursiveInstall('icons/hicolor', os.path.join(prefix, 'share', 'icons'), app_icon_filter)
191+ env.RecursiveInstall('icons/hicolor', os.path.join(prefix, 'share', PACKAGE, 'icons'), regular_icon_filter)
192+ env.RecursiveInstall(BUILD_LOCALE_PATH, os.path.join(prefix, 'share', 'locale'))
193+
194+ env.Alias('install', env.Install(dir = os.path.join(prefix, 'share', PACKAGE, 'glade'), source = glade_files))
195+ env.Alias('install', env.Install(dir = os.path.join(prefix, 'share', 'doc', PACKAGE), source = text_files))
196 env.Alias('install', env.Install(dir = os.path.join(prefix, 'share', 'applications'), source = desktop_file))
197- env.Alias('install', env.Install(dir = os.path.join(prefix, 'bin'), source = APP_NAME))
198+ env.Alias('install', env.Install(dir = os.path.join(prefix, 'bin'), source = PACKAGE))
199
200
201=== modified file 'dcpp/DCPlusPlus.cpp'
202--- dcpp/DCPlusPlus.cpp 2009-08-15 04:40:26 +0000
203+++ dcpp/DCPlusPlus.cpp 2011-01-25 05:38:26 +0000
204@@ -59,9 +59,8 @@
205 WSAStartup(MAKEWORD(2, 2), &wsaData);
206 #endif
207
208- Util::initialize();
209-
210 bindtextdomain(PACKAGE, LOCALEDIR);
211+ bind_textdomain_codeset(PACKAGE, "UTF-8");
212
213 ResourceManager::newInstance();
214 SettingsManager::newInstance();
215@@ -83,16 +82,15 @@
216
217 SettingsManager::getInstance()->load();
218
219+#ifdef _WIN32
220 if(!SETTING(LANGUAGE).empty()) {
221-#ifdef _WIN32
222 string language = "LANGUAGE=" + SETTING(LANGUAGE);
223 putenv(language.c_str());
224-#else
225- setenv("LANGUAGE", SETTING(LANGUAGE).c_str(), true);
226-#endif
227- // Apparently this is supposted to make gettext reload the message catalog...
228+
229+ // Apparently this is supposed to make gettext reload the message catalog...
230 _nl_msg_cat_cntr++;
231 }
232+#endif
233
234 FavoriteManager::getInstance()->load();
235 CryptoManager::getInstance()->loadCertificates();
236
237=== modified file 'dcpp/SConscript'
238--- dcpp/SConscript 2010-10-07 04:32:15 +0000
239+++ dcpp/SConscript 2011-01-25 05:38:26 +0000
240@@ -2,14 +2,14 @@
241
242 Import('env')
243
244-# We don't want to add this CXXFLAG globally so we copy the env
245-env = env.Clone()
246+dcpp_files = env.Glob('*.cpp')
247+
248 env.Append(CPPDEFINES = 'BUILDING_DCPP')
249
250-dcpp_files = env.Glob('*.cpp')
251-
252 # Build the dcpp files and create the library
253 libdcpp = env.StaticLibrary(target = 'dcpp', source = dcpp_files)
254
255+env.GenerateMessageCatalogs()
256+
257 Return('libdcpp')
258
259
260=== modified file 'dcpp/Util.cpp'
261--- dcpp/Util.cpp 2010-04-18 04:11:04 +0000
262+++ dcpp/Util.cpp 2011-01-25 05:38:26 +0000
263@@ -105,7 +105,7 @@
264
265 #endif
266
267-void Util::initialize() {
268+void Util::initialize(PathsMap pathOverrides) {
269 Text::initialize();
270
271 sgenrand((unsigned long)time(NULL));
272@@ -170,10 +170,8 @@
273 }
274
275 paths[PATH_USER_LOCAL] = paths[PATH_USER_CONFIG];
276-
277- // @todo paths[PATH_RESOURCES] = <replace from sconscript?>;
278- // @todo paths[PATH_LOCALE] = <replace from sconscript?>;
279-
280+ paths[PATH_RESOURCES] = "/usr/share/";
281+ paths[PATH_LOCALE] = paths[PATH_RESOURCES] + "locale/";
282 paths[PATH_DOWNLOADS] = home + "/Downloads/";
283 #endif
284
285@@ -181,6 +179,13 @@
286 paths[PATH_HUB_LISTS] = paths[PATH_USER_LOCAL] + "HubLists" PATH_SEPARATOR_STR;
287 paths[PATH_NOTEPAD] = paths[PATH_USER_CONFIG] + "Notepad.txt";
288
289+ // Override core generated paths
290+ for (PathsMap::const_iterator it = pathOverrides.begin(); it != pathOverrides.end(); ++it)
291+ {
292+ if (!it->second.empty())
293+ paths[it->first] = it->second;
294+ }
295+
296 File::ensureDirectory(paths[PATH_USER_CONFIG]);
297 File::ensureDirectory(paths[PATH_USER_LOCAL]);
298
299
300=== modified file 'dcpp/Util.h'
301--- dcpp/Util.h 2009-08-15 04:40:26 +0000
302+++ dcpp/Util.h 2011-01-25 05:38:26 +0000
303@@ -118,7 +118,8 @@
304 PATH_LAST
305 };
306
307- static void initialize();
308+ typedef std::map<Util::Paths, std::string> PathsMap;
309+ static void initialize(PathsMap pathOverrides = PathsMap());
310
311 /** Path of temporary storage */
312 static string getTempPath() {
313
314=== added file 'glade/SConscript'
315--- glade/SConscript 1970-01-01 00:00:00 +0000
316+++ glade/SConscript 2011-01-25 05:38:26 +0000
317@@ -0,0 +1,10 @@
318+# -*- coding: utf-8 -*-
319+
320+Import('env')
321+
322+glade_files = env.Glob('*.glade')
323+
324+pot_file = env.PotBuild(source=glade_files, target='po/glade.pot', LANGUAGE='glade')
325+
326+Return('pot_file')
327+
328
329=== modified file 'glade/favoritehubs.glade'
330--- glade/favoritehubs.glade 2009-10-11 04:40:31 +0000
331+++ glade/favoritehubs.glade 2011-01-25 05:38:26 +0000
332@@ -170,7 +170,7 @@
333 <widget class="GtkLabel" id="labelAddress">
334 <property name="visible">True</property>
335 <property name="xalign">0</property>
336- <property name="label" translatable="yes">_Address:</property>
337+ <property name="label" translatable="yes">_Hub address:</property>
338 <property name="use_underline">True</property>
339 <property name="mnemonic_widget">entryAddress</property>
340 </widget>
341@@ -419,6 +419,15 @@
342 </widget>
343 </child>
344 </widget>
345+ <widget class="GtkMessageDialog" id="confirmDeletionDialog">
346+ <property name="border_width">5</property>
347+ <property name="destroy_with_parent">True</property>
348+ <property name="type_hint">dialog</property>
349+ <property name="skip_taskbar_hint">True</property>
350+ <property name="message_type">warning</property>
351+ <property name="buttons">ok-cancel</property>
352+ <property name="text" translatable="yes">Are you sure you want to delete the selected favorite hub?</property>
353+ </widget>
354 <widget class="GtkMenu" id="menu">
355 <child>
356 <widget class="GtkImageMenuItem" id="addMenuItem">
357
358=== modified file 'glade/favoriteusers.glade'
359--- glade/favoriteusers.glade 2010-05-22 14:23:56 +0000
360+++ glade/favoriteusers.glade 2011-01-25 05:38:26 +0000
361@@ -71,14 +71,14 @@
362 <child>
363 <widget class="GtkMenuItem" id="connectItem">
364 <property name="visible">True</property>
365- <property name="label" translatable="yes">Connect to hub</property>
366+ <property name="label" translatable="yes">_Connect to hub</property>
367 <property name="use_underline">True</property>
368 </widget>
369 </child>
370 <child>
371 <widget class="GtkMenuItem" id="descriptionItem">
372 <property name="visible">True</property>
373- <property name="label" translatable="yes">Description</property>
374+ <property name="label" translatable="yes">_Edit description...</property>
375 <property name="use_underline">True</property>
376 </widget>
377 </child>
378@@ -130,8 +130,9 @@
379 <child>
380 <widget class="GtkLabel" id="label10">
381 <property name="visible">True</property>
382- <property name="label" translatable="yes">&lt;b&gt;Description&lt;/b&gt;</property>
383- <property name="use_markup">True</property>
384+ <property name="label" translatable="yes">_Description:</property>
385+ <property name="use_underline">True</property>
386+ <property name="mnemonic_widget">descriptionEntry</property>
387 </widget>
388 <packing>
389 <property name="type">label_item</property>
390
391=== modified file 'glade/hash.glade'
392--- glade/hash.glade 2008-02-29 04:39:28 +0000
393+++ glade/hash.glade 2011-01-25 05:38:26 +0000
394@@ -94,7 +94,7 @@
395 <widget class="GtkProgressBar" id="progressbar">
396 <property name="visible">True</property>
397 <property name="pulse_step">0.10000000149011612</property>
398- <property name="text" translatable="yes">0%</property>
399+ <property name="text" translatable="no">0%</property>
400 </widget>
401 <packing>
402 <property name="expand">False</property>
403
404=== modified file 'glade/hub.glade'
405--- glade/hub.glade 2010-09-05 00:10:54 +0000
406+++ glade/hub.glade 2011-01-25 05:38:26 +0000
407@@ -106,7 +106,7 @@
408 </child>
409 </widget>
410 <widget class="GtkDialog" id="passwordDialog">
411- <property name="title" translatable="yes">Enter hub password</property>
412+ <property name="title" translatable="yes">Hub Password</property>
413 <property name="resizable">False</property>
414 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
415 <child internal-child="vbox">
416@@ -139,8 +139,7 @@
417 <child>
418 <widget class="GtkLabel" id="label1">
419 <property name="visible">True</property>
420- <property name="label" translatable="yes">&lt;b&gt;Enter your password&lt;/b&gt;</property>
421- <property name="use_markup">True</property>
422+ <property name="label" translatable="yes">Enter your password:</property>
423 </widget>
424 <packing>
425 <property name="type">label_item</property>
426
427=== modified file 'glade/mainwindow.glade'
428--- glade/mainwindow.glade 2010-10-14 03:51:12 +0000
429+++ glade/mainwindow.glade 2011-01-25 05:38:26 +0000
430@@ -65,7 +65,7 @@
431 <child>
432 <widget class="GtkImageMenuItem" id="quickConnectMenuItem">
433 <property name="visible">True</property>
434- <property name="label" translatable="yes">_Quick connect</property>
435+ <property name="label" translatable="yes">_Quick connect...</property>
436 <property name="use_underline">True</property>
437 <accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
438 <child internal-child="image">
439@@ -693,66 +693,19 @@
440 </widget>
441 </child>
442 </widget>
443- <widget class="GtkDialog" id="exitDialog">
444- <property name="title" translatable="yes">Exit LinuxDC++?</property>
445- <property name="resizable">False</property>
446+ <widget class="GtkMessageDialog" id="exitDialog">
447+ <property name="border_width">5</property>
448 <property name="destroy_with_parent">True</property>
449- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
450- <property name="has_separator">False</property>
451- <child internal-child="vbox">
452- <widget class="GtkVBox" id="dialog-vbox1">
453- <property name="visible">True</property>
454- <child>
455- <widget class="GtkLabel" id="label3">
456- <property name="visible">True</property>
457- <property name="label" translatable="yes">Do you really want to exit?</property>
458- </widget>
459- <packing>
460- <property name="expand">False</property>
461- <property name="fill">False</property>
462- <property name="position">1</property>
463- </packing>
464- </child>
465- <child internal-child="action_area">
466- <widget class="GtkHButtonBox" id="dialog-action_area1">
467- <property name="visible">True</property>
468- <property name="layout_style">GTK_BUTTONBOX_END</property>
469- <child>
470- <widget class="GtkButton" id="cancelbutton1">
471- <property name="visible">True</property>
472- <property name="can_focus">True</property>
473- <property name="can_default">True</property>
474- <property name="label">gtk-cancel</property>
475- <property name="use_stock">True</property>
476- <property name="response_id">-6</property>
477- </widget>
478- </child>
479- <child>
480- <widget class="GtkButton" id="okbutton1">
481- <property name="visible">True</property>
482- <property name="can_focus">True</property>
483- <property name="can_default">True</property>
484- <property name="has_default">True</property>
485- <property name="label">gtk-ok</property>
486- <property name="use_stock">True</property>
487- <property name="response_id">-5</property>
488- </widget>
489- <packing>
490- <property name="position">1</property>
491- </packing>
492- </child>
493- </widget>
494- <packing>
495- <property name="expand">False</property>
496- <property name="pack_type">GTK_PACK_END</property>
497- </packing>
498- </child>
499- </widget>
500- </child>
501+ <property name="type_hint">dialog</property>
502+ <property name="skip_taskbar_hint">True</property>
503+ <property name="message_type">warning</property>
504+ <property name="buttons">ok-cancel</property>
505+ <property name="text" translatable="yes">Are you sure you want to exit the application?</property>
506 </widget>
507 <widget class="GtkDialog" id="connectDialog">
508- <property name="title" translatable="yes">Connect to a hub</property>
509+ <property name="title" translatable="yes">Quick Connect</property>
510 <property name="destroy_with_parent">True</property>
511+ <property name="default_width">400</property>
512 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
513 <child internal-child="vbox">
514 <widget class="GtkVBox" id="dialog-vbox2">
515@@ -785,8 +738,9 @@
516 <child>
517 <widget class="GtkLabel" id="label4">
518 <property name="visible">True</property>
519- <property name="label" translatable="yes">&lt;b&gt;Connect to address:&lt;/b&gt;</property>
520- <property name="use_markup">True</property>
521+ <property name="label" translatable="yes">_Hub address:</property>
522+ <property name="use_underline">True</property>
523+ <property name="mnemonic_widget">connectEntry</property>
524 </widget>
525 <packing>
526 <property name="type">label_item</property>
527@@ -839,7 +793,7 @@
528 <property name="logo_icon_name">linuxdcpp</property>
529 <property name="destroy_with_parent">True</property>
530 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
531- <property name="copyright" translatable="yes">Copyright © 2004-2009 Jens Oknelid</property>
532+ <property name="copyright" translatable="yes">Copyright © 2004-2011 Jens Oknelid</property>
533 <property name="comments" translatable="yes">A DC++ port for Linux
534
535 LinuxDC++ version: %s
536@@ -968,7 +922,7 @@
537 </child>
538 </widget>
539 <widget class="GtkDialog" id="ucLineDialog">
540- <property name="title" translatable="yes">Enter line for user command</property>
541+ <property name="title" translatable="yes">User Command Argument</property>
542 <property name="default_width">300</property>
543 <property name="destroy_with_parent">True</property>
544 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
545@@ -1003,7 +957,6 @@
546 <child>
547 <widget class="GtkLabel" id="ucLabel">
548 <property name="visible">True</property>
549- <property name="use_markup">True</property>
550 </widget>
551 <packing>
552 <property name="type">label_item</property>
553@@ -1076,7 +1029,7 @@
554 </child>
555 </widget>
556 <widget class="GtkDialog" id="magnetDialog">
557- <property name="title" translatable="yes">Magnet properties</property>
558+ <property name="title" translatable="yes">Magnet Properties</property>
559 <property name="modal">True</property>
560 <property name="destroy_with_parent">True</property>
561 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
562@@ -1095,7 +1048,9 @@
563 <widget class="GtkLabel" id="label9">
564 <property name="visible">True</property>
565 <property name="xalign">0</property>
566- <property name="label" translatable="yes">Magnet</property>
567+ <property name="label" translatable="yes">_Magnet:</property>
568+ <property name="use_underline">True</property>
569+ <property name="mnemonic_widget">magnetEntry</property>
570 </widget>
571 <packing>
572 <property name="x_options">GTK_FILL</property>
573@@ -1106,7 +1061,9 @@
574 <widget class="GtkLabel" id="label8">
575 <property name="visible">True</property>
576 <property name="xalign">0</property>
577- <property name="label" translatable="yes">File name</property>
578+ <property name="label" translatable="yes">_Filename</property>
579+ <property name="use_underline">True</property>
580+ <property name="mnemonic_widget">magnetNameEntry</property>
581 </widget>
582 <packing>
583 <property name="top_attach">1</property>
584@@ -1119,7 +1076,9 @@
585 <widget class="GtkLabel" id="label5">
586 <property name="visible">True</property>
587 <property name="xalign">0</property>
588- <property name="label" translatable="yes">Size</property>
589+ <property name="label" translatable="yes">_Size:</property>
590+ <property name="use_underline">True</property>
591+ <property name="mnemonic_widget">magnetSizeEntry</property>
592 </widget>
593 <packing>
594 <property name="top_attach">2</property>
595@@ -1132,7 +1091,9 @@
596 <widget class="GtkLabel" id="label7">
597 <property name="visible">True</property>
598 <property name="xalign">0</property>
599- <property name="label" translatable="yes">TTH</property>
600+ <property name="label" translatable="yes">_TTH:</property>
601+ <property name="use_underline">True</property>
602+ <property name="mnemonic_widget">tthEntry</property>
603 </widget>
604 <packing>
605 <property name="top_attach">4</property>
606@@ -1201,7 +1162,9 @@
607 <widget class="GtkLabel" id="label6">
608 <property name="visible">True</property>
609 <property name="xalign">0</property>
610- <property name="label" translatable="yes">Exact size</property>
611+ <property name="label" translatable="yes">_Exact size:</property>
612+ <property name="use_underline">True</property>
613+ <property name="mnemonic_widget">exactSizeEntry</property>
614 </widget>
615 <packing>
616 <property name="top_attach">3</property>
617
618=== modified file 'glade/publichubs.glade'
619--- glade/publichubs.glade 2008-05-27 00:23:19 +0000
620+++ glade/publichubs.glade 2011-01-25 05:38:26 +0000
621@@ -323,7 +323,7 @@
622 <child>
623 <widget class="GtkImageMenuItem" id="favMenuItem">
624 <property name="visible">True</property>
625- <property name="label" translatable="yes">Add to favorites</property>
626+ <property name="label" translatable="yes">_Add to favorites</property>
627 <property name="use_underline">True</property>
628 </widget>
629 </child>
630
631=== modified file 'glade/search.glade'
632--- glade/search.glade 2010-09-05 00:10:54 +0000
633+++ glade/search.glade 2011-01-25 05:38:26 +0000
634@@ -22,7 +22,9 @@
635 <widget class="GtkLabel" id="label1">
636 <property name="visible">True</property>
637 <property name="xalign">0</property>
638- <property name="label" translatable="yes">Search for</property>
639+ <property name="label" translatable="yes">_Search text:</property>
640+ <property name="use_underline">True</property>
641+ <property name="mnemonic_widget">comboboxentrySearch</property>
642 </widget>
643 <packing>
644 <property name="expand">False</property>
645@@ -442,7 +444,7 @@
646 <child>
647 <widget class="GtkMenuItem" id="downloadToItem">
648 <property name="visible">True</property>
649- <property name="label" translatable="yes">Download _to...</property>
650+ <property name="label" translatable="yes">Download _to</property>
651 <property name="use_underline">True</property>
652 <child>
653 <widget class="GtkMenu" id="downloadMenu">
654@@ -453,14 +455,14 @@
655 <child>
656 <widget class="GtkMenuItem" id="downloadWholeDirItem">
657 <property name="visible">True</property>
658- <property name="label" translatable="yes">Download _whole directory</property>
659+ <property name="label" translatable="yes">Do_wnload directory</property>
660 <property name="use_underline">True</property>
661 </widget>
662 </child>
663 <child>
664 <widget class="GtkMenuItem" id="downloadWholeDirToItem">
665 <property name="visible">True</property>
666- <property name="label" translatable="yes">Download whole director_y to...</property>
667+ <property name="label" translatable="yes">Download director_y to</property>
668 <property name="use_underline">True</property>
669 <child>
670 <widget class="GtkMenu" id="downloadDirMenu">
671
672=== modified file 'glade/settingsdialog.glade'
673--- glade/settingsdialog.glade 2010-09-05 00:10:54 +0000
674+++ glade/settingsdialog.glade 2011-01-25 05:38:26 +0000
675@@ -30,13 +30,31 @@
676 <property name="border_width">8</property>
677 <property name="n_rows">5</property>
678 <property name="n_columns">2</property>
679- <property name="column_spacing">4</property>
680+ <property name="column_spacing">10</property>
681 <property name="row_spacing">4</property>
682 <child>
683- <widget class="GtkVBox" id="connectionBox">
684+ <widget class="GtkHBox" id="connectionBox">
685 <property name="visible">True</property>
686 <child>
687- <placeholder/>
688+ <widget class="GtkComboBox" id="speedComboBox">
689+ <property name="visible">True</property>
690+ <property name="items" translatable="no"/>
691+ </widget>
692+ <packing>
693+ <property name="position">0</property>
694+ </packing>
695+ </child>
696+ <child>
697+ <widget class="GtkLabel" id="speedLabel">
698+ <property name="visible">True</property>
699+ <property name="label" translatable="yes">Mb/s</property>
700+ </widget>
701+ <packing>
702+ <property name="expand">False</property>
703+ <property name="fill">False</property>
704+ <property name="padding">5</property>
705+ <property name="position">1</property>
706+ </packing>
707 </child>
708 </widget>
709 <packing>
710@@ -88,8 +106,10 @@
711 <child>
712 <widget class="GtkLabel" id="label12">
713 <property name="visible">True</property>
714- <property name="xalign">1</property>
715- <property name="label" translatable="yes">Max upload speed (MiB/s)</property>
716+ <property name="xalign">0</property>
717+ <property name="label" translatable="yes">Max upload _speed:</property>
718+ <property name="use-underline">True</property>
719+ <property name="mnemonic_widget">speedComboBox</property>
720 </widget>
721 <packing>
722 <property name="top_attach">3</property>
723@@ -101,8 +121,10 @@
724 <child>
725 <widget class="GtkLabel" id="label11">
726 <property name="visible">True</property>
727- <property name="xalign">1</property>
728- <property name="label" translatable="yes">Description</property>
729+ <property name="xalign">0</property>
730+ <property name="label" translatable="yes">_Description:</property>
731+ <property name="use-underline">True</property>
732+ <property name="mnemonic_widget">descriptionEntry</property>
733 </widget>
734 <packing>
735 <property name="top_attach">2</property>
736@@ -114,8 +136,10 @@
737 <child>
738 <widget class="GtkLabel" id="label10">
739 <property name="visible">True</property>
740- <property name="xalign">1</property>
741- <property name="label" translatable="yes">E-Mail</property>
742+ <property name="xalign">0</property>
743+ <property name="label" translatable="yes">_Email:</property>
744+ <property name="use-underline">True</property>
745+ <property name="mnemonic_widget">emailEntry</property>
746 </widget>
747 <packing>
748 <property name="top_attach">1</property>
749@@ -127,8 +151,10 @@
750 <child>
751 <widget class="GtkLabel" id="label9">
752 <property name="visible">True</property>
753- <property name="xalign">1</property>
754- <property name="label" translatable="yes">Username</property>
755+ <property name="xalign">0</property>
756+ <property name="label" translatable="yes">_Username:</property>
757+ <property name="use-underline">True</property>
758+ <property name="mnemonic_widget">nickEntry</property>
759 </widget>
760 <packing>
761 <property name="x_options">GTK_FILL</property>
762@@ -138,8 +164,10 @@
763 <child>
764 <widget class="GtkLabel" id="label15">
765 <property name="visible">True</property>
766- <property name="xalign">1</property>
767- <property name="label" translatable="yes">Default hub encoding</property>
768+ <property name="xalign">0</property>
769+ <property name="label" translatable="yes">Default _hub encoding:</property>
770+ <property name="use-underline">True</property>
771+ <property name="mnemonic_widget">comboboxCharset</property>
772 </widget>
773 <packing>
774 <property name="top_attach">4</property>
775@@ -272,8 +300,10 @@
776 <child>
777 <widget class="GtkLabel" id="tlsLabel">
778 <property name="visible">True</property>
779- <property name="xalign">1</property>
780- <property name="label" translatable="yes">TLS</property>
781+ <property name="xalign">0</property>
782+ <property name="label" translatable="yes">T_LS:</property>
783+ <property name="use_underline">True</property>
784+ <property name="mnemonic_widget">tlsEntry</property>
785 </widget>
786 <packing>
787 <property name="left_attach">2</property>
788@@ -352,8 +382,10 @@
789 <child>
790 <widget class="GtkLabel" id="udpLabel">
791 <property name="visible">True</property>
792- <property name="xalign">1</property>
793- <property name="label" translatable="yes">UDP</property>
794+ <property name="xalign">0</property>
795+ <property name="label" translatable="yes">_UDP:</property>
796+ <property name="use_underline">True</property>
797+ <property name="mnemonic_widget">udpEntry</property>
798 </widget>
799 <packing>
800 <property name="left_attach">2</property>
801@@ -367,9 +399,10 @@
802 <child>
803 <widget class="GtkLabel" id="tcpLabel">
804 <property name="visible">True</property>
805- <property name="xalign">1</property>
806- <property name="label" translatable="yes">TCP</property>
807- <property name="justify">GTK_JUSTIFY_RIGHT</property>
808+ <property name="xalign">0</property>
809+ <property name="label" translatable="yes">_TCP:</property>
810+ <property name="use_underline">True</property>
811+ <property name="mnemonic_widget">tcpEntry</property>
812 </widget>
813 <packing>
814 <property name="left_attach">2</property>
815@@ -384,7 +417,8 @@
816 <widget class="GtkLabel" id="label149">
817 <property name="visible">True</property>
818 <property name="xalign">0</property>
819- <property name="label" translatable="yes">Ports</property>
820+ <property name="label" translatable="yes">&lt;b&gt;Ports&lt;/b&gt;</property>
821+ <property name="use_markup">True</property>
822 </widget>
823 <packing>
824 <property name="left_attach">3</property>
825@@ -397,7 +431,7 @@
826 <widget class="GtkRadioButton" id="activeRadioButton">
827 <property name="visible">True</property>
828 <property name="can_focus">True</property>
829- <property name="label" translatable="yes">Active</property>
830+ <property name="label" translatable="yes">_Active</property>
831 <property name="use_underline">True</property>
832 <property name="response_id">0</property>
833 <property name="draw_indicator">True</property>
834@@ -412,7 +446,7 @@
835 <widget class="GtkRadioButton" id="passiveRadioButton">
836 <property name="visible">True</property>
837 <property name="can_focus">True</property>
838- <property name="label" translatable="yes">Firewall (passive, last resort)</property>
839+ <property name="label" translatable="yes">_Passive</property>
840 <property name="use_underline">True</property>
841 <property name="response_id">0</property>
842 <property name="draw_indicator">True</property>
843@@ -428,8 +462,10 @@
844 <child>
845 <widget class="GtkLabel" id="ipLabel">
846 <property name="visible">True</property>
847- <property name="xalign">1</property>
848- <property name="label" translatable="yes">External / WAN IP</property>
849+ <property name="xalign">0</property>
850+ <property name="label" translatable="yes">Public _IP Address:</property>
851+ <property name="use_underline">True</property>
852+ <property name="mnemonic_widget">ipComboboxEntry</property>
853 </widget>
854 <packing>
855 <property name="left_attach">1</property>
856@@ -444,7 +480,7 @@
857 <widget class="GtkCheckButton" id="forceIPCheckButton">
858 <property name="visible">True</property>
859 <property name="can_focus">True</property>
860- <property name="label" translatable="yes">Don't allow hub/UPnP to override</property>
861+ <property name="label" translatable="yes">Don't allow hu_b / UPnP to override</property>
862 <property name="use_underline">True</property>
863 <property name="response_id">0</property>
864 <property name="draw_indicator">True</property>
865@@ -462,7 +498,7 @@
866 <widget class="GtkRadioButton" id="portForwardRadioButton">
867 <property name="visible">True</property>
868 <property name="can_focus">True</property>
869- <property name="label" translatable="yes">Firewall with manual port forward</property>
870+ <property name="label" translatable="yes">_Manual port forwarding</property>
871 <property name="use_underline">True</property>
872 <property name="response_id">0</property>
873 <property name="draw_indicator">True</property>
874@@ -479,7 +515,7 @@
875 <child>
876 <widget class="GtkLabel" id="label139">
877 <property name="visible">True</property>
878- <property name="label" translatable="yes">&lt;b&gt;Incoming connection settings&lt;/b&gt;</property>
879+ <property name="label" translatable="yes">&lt;b&gt;Incoming Connection Settings&lt;/b&gt;</property>
880 <property name="use_markup">True</property>
881 </widget>
882 <packing>
883@@ -569,7 +605,9 @@
884 <widget class="GtkLabel" id="socksUserLabel">
885 <property name="visible">True</property>
886 <property name="xalign">0</property>
887- <property name="label" translatable="yes">Username</property>
888+ <property name="label" translatable="yes">User_name:</property>
889+ <property name="use_underline">True</property>
890+ <property name="mnemonic_widget">socksUserEntry</property>
891 </widget>
892 <packing>
893 <property name="left_attach">1</property>
894@@ -584,7 +622,7 @@
895 <widget class="GtkCheckButton" id="socksCheckButton">
896 <property name="visible">True</property>
897 <property name="can_focus">True</property>
898- <property name="label" translatable="yes">Use SOCKS5 server to resolve hostnames</property>
899+ <property name="label" translatable="yes">Use SOCKS5 server to resolve _hostnames</property>
900 <property name="use_underline">True</property>
901 <property name="response_id">0</property>
902 <property name="draw_indicator">True</property>
903@@ -616,7 +654,9 @@
904 <widget class="GtkLabel" id="socksPassLabel">
905 <property name="visible">True</property>
906 <property name="xalign">0</property>
907- <property name="label" translatable="yes">Password</property>
908+ <property name="label" translatable="yes">Pass_word:</property>
909+ <property name="use_underline">True</property>
910+ <property name="mnemonic_widget">socksPassEntry</property>
911 </widget>
912 <packing>
913 <property name="left_attach">2</property>
914@@ -645,7 +685,9 @@
915 <widget class="GtkLabel" id="socksPortLabel">
916 <property name="visible">True</property>
917 <property name="xalign">0</property>
918- <property name="label" translatable="yes">Port</property>
919+ <property name="label" translatable="yes">Po_rt:</property>
920+ <property name="use_underline">True</property>
921+ <property name="mnemonic_widget">socksPortEntry</property>
922 </widget>
923 <packing>
924 <property name="left_attach">2</property>
925@@ -660,7 +702,9 @@
926 <widget class="GtkLabel" id="socksIPLabel">
927 <property name="visible">True</property>
928 <property name="xalign">0</property>
929- <property name="label" translatable="yes">Socks IP</property>
930+ <property name="label" translatable="yes">Soc_ks IP</property>
931+ <property name="use_underline">True</property>
932+ <property name="mnemonic_widget">socksIPEntry</property>
933 </widget>
934 <packing>
935 <property name="left_attach">1</property>
936@@ -675,7 +719,7 @@
937 <widget class="GtkRadioButton" id="socksRadioButton">
938 <property name="visible">True</property>
939 <property name="can_focus">True</property>
940- <property name="label" translatable="yes">SOCKS5</property>
941+ <property name="label" translatable="yes">_SOCKS5</property>
942 <property name="use_underline">True</property>
943 <property name="response_id">0</property>
944 <property name="draw_indicator">True</property>
945@@ -692,7 +736,7 @@
946 <widget class="GtkRadioButton" id="outDirectRadioButton">
947 <property name="visible">True</property>
948 <property name="can_focus">True</property>
949- <property name="label" translatable="yes">Direct connection</property>
950+ <property name="label" translatable="yes">_Direct connection</property>
951 <property name="use_underline">True</property>
952 <property name="response_id">0</property>
953 <property name="draw_indicator">True</property>
954@@ -712,7 +756,7 @@
955 <child>
956 <widget class="GtkLabel" id="label8">
957 <property name="visible">True</property>
958- <property name="label" translatable="yes">&lt;b&gt;Outgoing connection settings&lt;/b&gt;</property>
959+ <property name="label" translatable="yes">&lt;b&gt;Outgoing Connection Settings&lt;/b&gt;</property>
960 <property name="use_markup">True</property>
961 </widget>
962 <packing>
963@@ -756,90 +800,64 @@
964 <property name="visible">True</property>
965 <property name="label_xalign">0</property>
966 <child>
967- <widget class="GtkVBox" id="vbox5">
968+ <widget class="GtkTable" id="table3">
969 <property name="visible">True</property>
970- <property name="border_width">8</property>
971- <child>
972- <widget class="GtkLabel" id="label21">
973- <property name="visible">True</property>
974- <property name="xalign">0</property>
975- <property name="label" translatable="yes">Default download directory</property>
976- </widget>
977- <packing>
978- <property name="expand">False</property>
979- <property name="fill">False</property>
980- </packing>
981- </child>
982- <child>
983- <widget class="GtkHBox" id="hbox1">
984- <property name="visible">True</property>
985- <property name="spacing">4</property>
986- <child>
987- <widget class="GtkEntry" id="finishedDownloadsEntry">
988- <property name="visible">True</property>
989- <property name="can_focus">True</property>
990- </widget>
991- </child>
992- <child>
993- <widget class="GtkButton" id="finishedDownloadsButton">
994- <property name="visible">True</property>
995- <property name="can_focus">True</property>
996- <property name="label" translatable="yes">Browse...</property>
997- <property name="use_underline">True</property>
998- <property name="response_id">0</property>
999- </widget>
1000- <packing>
1001- <property name="expand">False</property>
1002- <property name="fill">False</property>
1003- <property name="position">1</property>
1004- </packing>
1005- </child>
1006- </widget>
1007- <packing>
1008- <property name="expand">False</property>
1009- <property name="position">1</property>
1010- </packing>
1011- </child>
1012- <child>
1013- <widget class="GtkLabel" id="label22">
1014- <property name="visible">True</property>
1015- <property name="xalign">0</property>
1016- <property name="label" translatable="yes">Unfinished downloads directory</property>
1017- </widget>
1018- <packing>
1019- <property name="expand">False</property>
1020- <property name="fill">False</property>
1021- <property name="position">2</property>
1022- </packing>
1023- </child>
1024- <child>
1025- <widget class="GtkHBox" id="hbox2">
1026- <property name="visible">True</property>
1027- <property name="spacing">4</property>
1028- <child>
1029- <widget class="GtkEntry" id="unfinishedDownloadsEntry">
1030- <property name="visible">True</property>
1031- <property name="can_focus">True</property>
1032- </widget>
1033- </child>
1034- <child>
1035- <widget class="GtkButton" id="unfinishedDownloadsButton">
1036- <property name="visible">True</property>
1037- <property name="can_focus">True</property>
1038- <property name="label" translatable="yes">Browse...</property>
1039- <property name="use_underline">True</property>
1040- <property name="response_id">0</property>
1041- </widget>
1042- <packing>
1043- <property name="expand">False</property>
1044- <property name="fill">False</property>
1045- <property name="position">1</property>
1046- </packing>
1047- </child>
1048- </widget>
1049- <packing>
1050- <property name="expand">False</property>
1051- <property name="position">3</property>
1052+ <property name="n_rows">2</property>
1053+ <property name="n_columns">2</property>
1054+ <property name="column_spacing">15</property>
1055+ <property name="row_spacing">4</property>
1056+ <child>
1057+ <widget class="GtkLabel" id="finishedDownloadsLabel">
1058+ <property name="visible">True</property>
1059+ <property name="xalign">0</property>
1060+ <property name="xpad">8</property>
1061+ <property name="label" translatable="yes">_Finished downloads:</property>
1062+ <property name="use_underline">True</property>
1063+ <property name="mnemonic_widget">finishedDownloadsFileChooserButton</property>
1064+ </widget>
1065+ <packing>
1066+ <property name="x_options">GTK_FILL</property>
1067+ </packing>
1068+ </child>
1069+ <child>
1070+ <widget class="GtkLabel" id="unfinishedDownloadsLabel">
1071+ <property name="visible">True</property>
1072+ <property name="xalign">0</property>
1073+ <property name="xpad">8</property>
1074+ <property name="label" translatable="yes">Unfin_ished downloads:</property>
1075+ <property name="use_underline">True</property>
1076+ <property name="mnemonic_widget">unfinishedDownloadsFileChooserButton</property>
1077+ </widget>
1078+ <packing>
1079+ <property name="top_attach">1</property>
1080+ <property name="bottom_attach">2</property>
1081+ <property name="x_options">GTK_FILL</property>
1082+ </packing>
1083+ </child>
1084+ <child>
1085+ <widget class="GtkFileChooserButton" id="unfinishedDownloadsFileChooserButton">
1086+ <property name="visible">True</property>
1087+ <property name="local_only">False</property>
1088+ <property name="action">select-folder</property>
1089+ <property name="title" translatable="yes">Select a Folder</property>
1090+ </widget>
1091+ <packing>
1092+ <property name="left_attach">1</property>
1093+ <property name="right_attach">2</property>
1094+ <property name="top_attach">1</property>
1095+ <property name="bottom_attach">2</property>
1096+ </packing>
1097+ </child>
1098+ <child>
1099+ <widget class="GtkFileChooserButton" id="finishedDownloadsFileChooserButton">
1100+ <property name="visible">True</property>
1101+ <property name="local_only">False</property>
1102+ <property name="action">select-folder</property>
1103+ <property name="title" translatable="yes">Select a Folder</property>
1104+ </widget>
1105+ <packing>
1106+ <property name="left_attach">1</property>
1107+ <property name="right_attach">2</property>
1108 </packing>
1109 </child>
1110 </widget>
1111@@ -864,86 +882,87 @@
1112 <property name="visible">True</property>
1113 <property name="label_xalign">0</property>
1114 <child>
1115- <widget class="GtkVBox" id="vbox6">
1116+ <widget class="GtkTable" id="table5">
1117 <property name="visible">True</property>
1118- <property name="border_width">8</property>
1119- <property name="spacing">2</property>
1120- <child>
1121- <widget class="GtkTable" id="table5">
1122- <property name="visible">True</property>
1123- <property name="n_rows">2</property>
1124- <property name="n_columns">2</property>
1125- <property name="column_spacing">4</property>
1126- <property name="row_spacing">4</property>
1127- <child>
1128- <widget class="GtkLabel" id="label25">
1129- <property name="visible">True</property>
1130- <property name="xalign">0</property>
1131- <property name="label" translatable="yes">No new downloads if speed exceeds (KiB/s, 0 = disable)</property>
1132- </widget>
1133- <packing>
1134- <property name="left_attach">1</property>
1135- <property name="right_attach">2</property>
1136- <property name="top_attach">1</property>
1137- <property name="bottom_attach">2</property>
1138- <property name="x_options">GTK_FILL</property>
1139- <property name="y_options"></property>
1140- </packing>
1141- </child>
1142- <child>
1143- <widget class="GtkLabel" id="label24">
1144- <property name="visible">True</property>
1145- <property name="xalign">0</property>
1146- <property name="label" translatable="yes">Maximum simultaneous downloads (0 = infinite)</property>
1147- </widget>
1148- <packing>
1149- <property name="left_attach">1</property>
1150- <property name="right_attach">2</property>
1151- <property name="x_options">GTK_FILL</property>
1152- <property name="y_options"></property>
1153- </packing>
1154- </child>
1155- <child>
1156- <widget class="GtkSpinButton" id="newDownloadsSpinButton">
1157- <property name="visible">True</property>
1158- <property name="can_focus">True</property>
1159- <property name="adjustment">1 0 10000 1 10 0</property>
1160- <property name="climb_rate">1</property>
1161- </widget>
1162- <packing>
1163- <property name="top_attach">1</property>
1164- <property name="bottom_attach">2</property>
1165- <property name="x_options">GTK_FILL</property>
1166- <property name="y_options"></property>
1167- </packing>
1168- </child>
1169- <child>
1170- <widget class="GtkSpinButton" id="maxDownloadsSpinButton">
1171- <property name="visible">True</property>
1172- <property name="can_focus">True</property>
1173- <property name="adjustment">0 0 100 1 10 0</property>
1174- <property name="climb_rate">1</property>
1175- </widget>
1176- <packing>
1177- <property name="x_options">GTK_FILL</property>
1178- <property name="y_options"></property>
1179- </packing>
1180- </child>
1181- </widget>
1182- <packing>
1183- <property name="expand">False</property>
1184- </packing>
1185- </child>
1186- <child>
1187- <widget class="GtkLabel" id="label26">
1188- <property name="visible">True</property>
1189- <property name="xalign">0</property>
1190- <property name="label" translatable="yes">Note; because of changing download speeds, this is not 100% accurate...</property>
1191- </widget>
1192- <packing>
1193- <property name="expand">False</property>
1194- <property name="fill">False</property>
1195- <property name="position">1</property>
1196+ <property name="n_rows">2</property>
1197+ <property name="n_columns">3</property>
1198+ <property name="column_spacing">10</property>
1199+ <property name="row_spacing">4</property>
1200+ <child>
1201+ <widget class="GtkLabel" id="label25">
1202+ <property name="visible">True</property>
1203+ <property name="xalign">0</property>
1204+ <property name="xpad">8</property>
1205+ <property name="label" translatable="yes">_No new downloads if speed exceeds:</property>
1206+ <property name="use_underline">True</property>
1207+ <property name="mnemonic_widget">newDownloadsSpinButton</property>
1208+ </widget>
1209+ <packing>
1210+ <property name="top_attach">1</property>
1211+ <property name="bottom_attach">2</property>
1212+ <property name="x_options">GTK_FILL</property>
1213+ <property name="y_options"></property>
1214+ </packing>
1215+ </child>
1216+ <child>
1217+ <widget class="GtkLabel" id="label24">
1218+ <property name="visible">True</property>
1219+ <property name="xalign">0</property>
1220+ <property name="xpad">8</property>
1221+ <property name="label" translatable="yes">_Maximum simultaneous downloads:</property>
1222+ <property name="use_underline">True</property>
1223+ <property name="mnemonic_widget">maxDownloadsSpinButton</property>
1224+ </widget>
1225+ <packing>
1226+ <property name="x_options">GTK_FILL</property>
1227+ <property name="y_options"></property>
1228+ </packing>
1229+ </child>
1230+ <child>
1231+ <widget class="GtkSpinButton" id="newDownloadsSpinButton">
1232+ <property name="visible">True</property>
1233+ <property name="can_focus">True</property>
1234+ <property name="adjustment">0 0 10000 1 10 0</property>
1235+ <property name="climb_rate">1</property>
1236+ <property name="tooltip_text" translatable="yes">A value of '0' will disable this option</property>
1237+ </widget>
1238+ <packing>
1239+ <property name="left_attach">1</property>
1240+ <property name="right_attach">2</property>
1241+ <property name="top_attach">1</property>
1242+ <property name="bottom_attach">2</property>
1243+ <property name="x_options">GTK_FILL</property>
1244+ <property name="y_options"></property>
1245+ </packing>
1246+ </child>
1247+ <child>
1248+ <widget class="GtkSpinButton" id="maxDownloadsSpinButton">
1249+ <property name="visible">True</property>
1250+ <property name="can_focus">True</property>
1251+ <property name="adjustment">0 0 100 1 10 0</property>
1252+ <property name="climb_rate">1</property>
1253+ <property name="tooltip_text" translatable="yes">A value of '0' will disable this option</property>
1254+ </widget>
1255+ <packing>
1256+ <property name="left_attach">1</property>
1257+ <property name="right_attach">2</property>
1258+ <property name="x_options">GTK_FILL</property>
1259+ <property name="y_options"></property>
1260+ </packing>
1261+ </child>
1262+ <child>
1263+ <widget class="GtkLabel" id="kiBpsLabel">
1264+ <property name="visible">True</property>
1265+ <property name="xalign">0</property>
1266+ <property name="label" translatable="yes">KiB/s</property>
1267+ </widget>
1268+ <packing>
1269+ <property name="left_attach">2</property>
1270+ <property name="right_attach">3</property>
1271+ <property name="top_attach">1</property>
1272+ <property name="bottom_attach">2</property>
1273+ <property name="x_options">GTK_FILL</property>
1274+ <property name="y_options"></property>
1275 </packing>
1276 </child>
1277 </widget>
1278@@ -974,58 +993,92 @@
1279 <property name="border_width">8</property>
1280 <property name="spacing">4</property>
1281 <child>
1282- <widget class="GtkVBox" id="vbox8">
1283+ <widget class="GtkHBox" id="hbox5">
1284 <property name="visible">True</property>
1285+ <property name="spacing">4</property>
1286 <child>
1287- <widget class="GtkLabel" id="label28">
1288+ <widget class="GtkTreeView" id="publicHubsTreeView">
1289 <property name="visible">True</property>
1290- <property name="xalign">0</property>
1291- <property name="label" translatable="yes">Public Hubs list URL</property>
1292+ <property name="can_focus">True</property>
1293 </widget>
1294- <packing>
1295- <property name="expand">False</property>
1296- <property name="fill">False</property>
1297- </packing>
1298 </child>
1299 <child>
1300- <widget class="GtkHBox" id="hbox3">
1301+ <widget class="GtkVBox" id="vbox6">
1302 <property name="visible">True</property>
1303- <child>
1304- <widget class="GtkButton" id="publicHubsButton">
1305- <property name="visible">True</property>
1306- <property name="can_focus">True</property>
1307- <property name="label" translatable="yes">Configure Public Hub Lists</property>
1308- <property name="use_underline">True</property>
1309- <property name="response_id">0</property>
1310- </widget>
1311- <packing>
1312- <property name="expand">False</property>
1313- <property name="fill">False</property>
1314- </packing>
1315- </child>
1316- <child>
1317- <placeholder/>
1318+ <property name="spacing">0</property>
1319+ <child>
1320+ <widget class="GtkButton" id="publicHubsAddButton">
1321+ <property name="visible">True</property>
1322+ <property name="can_focus">True</property>
1323+ <property name="label">gtk-add</property>
1324+ <property name="use_stock">True</property>
1325+ <property name="response_id">0</property>
1326+ </widget>
1327+ <packing>
1328+ <property name="expand">False</property>
1329+ <property name="fill">False</property>
1330+ </packing>
1331+ </child>
1332+ <child>
1333+ <widget class="GtkButton" id="publicHubsUpButton">
1334+ <property name="visible">True</property>
1335+ <property name="can_focus">True</property>
1336+ <property name="label">gtk-go-up</property>
1337+ <property name="use_stock">True</property>
1338+ <property name="response_id">0</property>
1339+ </widget>
1340+ <packing>
1341+ <property name="expand">False</property>
1342+ <property name="fill">False</property>
1343+ <property name="position">1</property>
1344+ </packing>
1345+ </child>
1346+ <child>
1347+ <widget class="GtkButton" id="publicHubsDownButton">
1348+ <property name="visible">True</property>
1349+ <property name="can_focus">True</property>
1350+ <property name="label">gtk-go-down</property>
1351+ <property name="use_stock">True</property>
1352+ <property name="response_id">0</property>
1353+ </widget>
1354+ <packing>
1355+ <property name="expand">False</property>
1356+ <property name="fill">False</property>
1357+ <property name="position">2</property>
1358+ </packing>
1359+ </child>
1360+ <child>
1361+ <widget class="GtkButton" id="publicHubsRemoveButton">
1362+ <property name="visible">True</property>
1363+ <property name="can_focus">True</property>
1364+ <property name="label">gtk-remove</property>
1365+ <property name="use_stock">True</property>
1366+ <property name="response_id">0</property>
1367+ </widget>
1368+ <packing>
1369+ <property name="expand">False</property>
1370+ <property name="fill">False</property>
1371+ <property name="position">3</property>
1372+ </packing>
1373 </child>
1374 </widget>
1375 <packing>
1376 <property name="expand">False</property>
1377- <property name="fill">False</property>
1378 <property name="position">1</property>
1379 </packing>
1380 </child>
1381 </widget>
1382- <packing>
1383- <property name="expand">False</property>
1384- </packing>
1385 </child>
1386 <child>
1387- <widget class="GtkVBox" id="vbox9">
1388+ <widget class="GtkHBox" id="httpProxyHBox">
1389 <property name="visible">True</property>
1390 <child>
1391 <widget class="GtkLabel" id="label29">
1392 <property name="visible">True</property>
1393 <property name="xalign">0</property>
1394- <property name="label" translatable="yes">HTTP Proxy (for hublist only)</property>
1395+ <property name="label" translatable="yes">_HTTP proxy:</property>
1396+ <property name="use_underline">True</property>
1397+ <property name="mnemonic_widget">proxyEntry</property>
1398 </widget>
1399 <packing>
1400 <property name="expand">False</property>
1401@@ -1038,9 +1091,10 @@
1402 <property name="can_focus">True</property>
1403 </widget>
1404 <packing>
1405- <property name="expand">False</property>
1406- <property name="fill">False</property>
1407+ <property name="expand">True</property>
1408+ <property name="fill">True</property>
1409 <property name="position">1</property>
1410+ <property name="padding">15</property>
1411 </packing>
1412 </child>
1413 </widget>
1414@@ -1053,7 +1107,7 @@
1415 <child>
1416 <widget class="GtkLabel" id="label27">
1417 <property name="visible">True</property>
1418- <property name="label" translatable="yes">&lt;b&gt;Public Hubs list&lt;/b&gt;</property>
1419+ <property name="label" translatable="yes">&lt;b&gt;Public Hubs List&lt;/b&gt;</property>
1420 <property name="use_markup">True</property>
1421 </widget>
1422 <packing>
1423@@ -1159,8 +1213,10 @@
1424 <child>
1425 <widget class="GtkLabel" id="label32">
1426 <property name="visible">True</property>
1427- <property name="label" translatable="yes">&lt;b&gt;Favorite download to directories&lt;/b&gt;</property>
1428+ <property name="label" translatable="yes">&lt;b&gt;_Favorite Download Directories&lt;/b&gt;</property>
1429 <property name="use_markup">True</property>
1430+ <property name="use_underline">True</property>
1431+ <property name="mnemonic_widget">favoriteTreeView</property>
1432 </widget>
1433 <packing>
1434 <property name="type">label_item</property>
1435@@ -1174,7 +1230,7 @@
1436 <child>
1437 <widget class="GtkLabel" id="label30">
1438 <property name="visible">True</property>
1439- <property name="label" translatable="yes">Download to</property>
1440+ <property name="label" translatable="yes">Favorite Downloads</property>
1441 </widget>
1442 <packing>
1443 <property name="type">tab</property>
1444@@ -1195,16 +1251,10 @@
1445 <property name="visible">True</property>
1446 <property name="border_width">4</property>
1447 <property name="n_rows">2</property>
1448- <property name="n_columns">7</property>
1449- <property name="column_spacing">4</property>
1450+ <property name="n_columns">6</property>
1451+ <property name="column_spacing">10</property>
1452 <property name="row_spacing">4</property>
1453 <child>
1454- <placeholder/>
1455- </child>
1456- <child>
1457- <placeholder/>
1458- </child>
1459- <child>
1460 <widget class="GtkSpinButton" id="priorityHighestSpinButton">
1461 <property name="visible">True</property>
1462 <property name="can_focus">True</property>
1463@@ -1226,8 +1276,8 @@
1464 <property name="climb_rate">1</property>
1465 </widget>
1466 <packing>
1467- <property name="left_attach">5</property>
1468- <property name="right_attach">6</property>
1469+ <property name="left_attach">4</property>
1470+ <property name="right_attach">5</property>
1471 <property name="top_attach">1</property>
1472 <property name="bottom_attach">2</property>
1473 <property name="x_options"></property>
1474@@ -1242,8 +1292,8 @@
1475 <property name="climb_rate">1</property>
1476 </widget>
1477 <packing>
1478- <property name="left_attach">5</property>
1479- <property name="right_attach">6</property>
1480+ <property name="left_attach">4</property>
1481+ <property name="right_attach">5</property>
1482 <property name="x_options"></property>
1483 <property name="y_options"></property>
1484 </packing>
1485@@ -1252,11 +1302,13 @@
1486 <widget class="GtkLabel" id="label183">
1487 <property name="visible">True</property>
1488 <property name="xalign">0</property>
1489- <property name="label" translatable="yes">High priority max size</property>
1490+ <property name="label" translatable="yes">_High priority max size:</property>
1491+ <property name="use_underline">True</property>
1492+ <property name="mnemonic_widget">priorityHighSpinButton</property>
1493 </widget>
1494 <packing>
1495- <property name="left_attach">4</property>
1496- <property name="right_attach">5</property>
1497+ <property name="left_attach">3</property>
1498+ <property name="right_attach">4</property>
1499 <property name="x_options">GTK_FILL</property>
1500 <property name="y_options"></property>
1501 </packing>
1502@@ -1265,11 +1317,13 @@
1503 <widget class="GtkLabel" id="label184">
1504 <property name="visible">True</property>
1505 <property name="xalign">0</property>
1506- <property name="label" translatable="yes">Low priority size</property>
1507+ <property name="label" translatable="yes">_Low priority max size:</property>
1508+ <property name="use_underline">True</property>
1509+ <property name="mnemonic_widget">priorityLowSpinButton</property>
1510 </widget>
1511 <packing>
1512- <property name="left_attach">4</property>
1513- <property name="right_attach">5</property>
1514+ <property name="left_attach">3</property>
1515+ <property name="right_attach">4</property>
1516 <property name="top_attach">1</property>
1517 <property name="bottom_attach">2</property>
1518 <property name="x_options">GTK_FILL</property>
1519@@ -1283,8 +1337,8 @@
1520 <property name="label" translatable="yes">KiB</property>
1521 </widget>
1522 <packing>
1523- <property name="left_attach">6</property>
1524- <property name="right_attach">7</property>
1525+ <property name="left_attach">5</property>
1526+ <property name="right_attach">6</property>
1527 <property name="top_attach">1</property>
1528 <property name="bottom_attach">2</property>
1529 <property name="x_options">GTK_FILL</property>
1530@@ -1298,8 +1352,8 @@
1531 <property name="label" translatable="yes">KiB</property>
1532 </widget>
1533 <packing>
1534- <property name="left_attach">6</property>
1535- <property name="right_attach">7</property>
1536+ <property name="left_attach">5</property>
1537+ <property name="right_attach">6</property>
1538 <property name="x_options">GTK_FILL</property>
1539 <property name="y_options"></property>
1540 </packing>
1541@@ -1352,7 +1406,9 @@
1542 <widget class="GtkLabel" id="label177">
1543 <property name="visible">True</property>
1544 <property name="xalign">0</property>
1545- <property name="label" translatable="yes">Normal priority max size</property>
1546+ <property name="label" translatable="yes">_Normal priority max size:</property>
1547+ <property name="use_underline">True</property>
1548+ <property name="mnemonic_widget">priorityNormalSpinButton</property>
1549 </widget>
1550 <packing>
1551 <property name="top_attach">1</property>
1552@@ -1365,7 +1421,9 @@
1553 <widget class="GtkLabel" id="label176">
1554 <property name="visible">True</property>
1555 <property name="xalign">0</property>
1556- <property name="label" translatable="yes">Highest priority max size</property>
1557+ <property name="label" translatable="yes">Highes_t priority max size:</property>
1558+ <property name="use_underline">True</property>
1559+ <property name="mnemonic_widget">priorityHighestSpinButton</property>
1560 </widget>
1561 <packing>
1562 <property name="x_options">GTK_FILL</property>
1563@@ -1377,7 +1435,7 @@
1564 <child>
1565 <widget class="GtkLabel" id="label173">
1566 <property name="visible">True</property>
1567- <property name="label" translatable="yes">&lt;b&gt;Auto-priority settings&lt;/b&gt;</property>
1568+ <property name="label" translatable="yes">&lt;b&gt;Auto-Priority&lt;/b&gt;</property>
1569 <property name="use_markup">True</property>
1570 </widget>
1571 <packing>
1572@@ -1399,22 +1457,10 @@
1573 <property name="visible">True</property>
1574 <property name="border_width">4</property>
1575 <property name="n_rows">3</property>
1576- <property name="n_columns">7</property>
1577- <property name="column_spacing">4</property>
1578+ <property name="n_columns">6</property>
1579+ <property name="column_spacing">10</property>
1580 <property name="row_spacing">4</property>
1581 <child>
1582- <placeholder/>
1583- </child>
1584- <child>
1585- <placeholder/>
1586- </child>
1587- <child>
1588- <placeholder/>
1589- </child>
1590- <child>
1591- <placeholder/>
1592- </child>
1593- <child>
1594 <widget class="GtkSpinButton" id="dropMinSourcesSpinButton">
1595 <property name="visible">True</property>
1596 <property name="can_focus">True</property>
1597@@ -1454,8 +1500,8 @@
1598 <property name="climb_rate">1</property>
1599 </widget>
1600 <packing>
1601- <property name="left_attach">5</property>
1602- <property name="right_attach">6</property>
1603+ <property name="left_attach">4</property>
1604+ <property name="right_attach">5</property>
1605 <property name="x_options"></property>
1606 <property name="y_options"></property>
1607 </packing>
1608@@ -1468,8 +1514,8 @@
1609 <property name="climb_rate">1</property>
1610 </widget>
1611 <packing>
1612- <property name="left_attach">5</property>
1613- <property name="right_attach">6</property>
1614+ <property name="left_attach">4</property>
1615+ <property name="right_attach">5</property>
1616 <property name="top_attach">2</property>
1617 <property name="bottom_attach">3</property>
1618 <property name="x_options"></property>
1619@@ -1484,8 +1530,8 @@
1620 <property name="climb_rate">1</property>
1621 </widget>
1622 <packing>
1623- <property name="left_attach">5</property>
1624- <property name="right_attach">6</property>
1625+ <property name="left_attach">4</property>
1626+ <property name="right_attach">5</property>
1627 <property name="top_attach">1</property>
1628 <property name="bottom_attach">2</property>
1629 <property name="x_options"></property>
1630@@ -1496,11 +1542,13 @@
1631 <widget class="GtkLabel" id="label194">
1632 <property name="visible">True</property>
1633 <property name="xalign">0</property>
1634- <property name="label" translatable="yes">Min filesize</property>
1635+ <property name="label" translatable="yes">Min _file size:</property>
1636+ <property name="use_underline">True</property>
1637+ <property name="mnemonic_widget">dropSizeSpinButton</property>
1638 </widget>
1639 <packing>
1640- <property name="left_attach">4</property>
1641- <property name="right_attach">5</property>
1642+ <property name="left_attach">3</property>
1643+ <property name="right_attach">4</property>
1644 <property name="top_attach">2</property>
1645 <property name="bottom_attach">3</property>
1646 <property name="x_options">GTK_FILL</property>
1647@@ -1511,11 +1559,13 @@
1648 <widget class="GtkLabel" id="label193">
1649 <property name="visible">True</property>
1650 <property name="xalign">0</property>
1651- <property name="label" translatable="yes">Max inactivity</property>
1652+ <property name="label" translatable="yes">Max _inactivity:</property>
1653+ <property name="use_underline">True</property>
1654+ <property name="mnemonic_widget">dropInactiveSpinButton</property>
1655 </widget>
1656 <packing>
1657- <property name="left_attach">4</property>
1658- <property name="right_attach">5</property>
1659+ <property name="left_attach">3</property>
1660+ <property name="right_attach">4</property>
1661 <property name="top_attach">1</property>
1662 <property name="bottom_attach">2</property>
1663 <property name="x_options">GTK_FILL</property>
1664@@ -1526,11 +1576,13 @@
1665 <widget class="GtkLabel" id="label192">
1666 <property name="visible">True</property>
1667 <property name="xalign">0</property>
1668- <property name="label" translatable="yes">Check every</property>
1669+ <property name="label" translatable="yes">Chec_k every:</property>
1670+ <property name="use_underline">True</property>
1671+ <property name="mnemonic_widget">dropCheckSpinButton</property>
1672 </widget>
1673 <packing>
1674- <property name="left_attach">4</property>
1675- <property name="right_attach">5</property>
1676+ <property name="left_attach">3</property>
1677+ <property name="right_attach">4</property>
1678 <property name="x_options">GTK_FILL</property>
1679 <property name="y_options"></property>
1680 </packing>
1681@@ -1542,8 +1594,8 @@
1682 <property name="label" translatable="yes">KiB</property>
1683 </widget>
1684 <packing>
1685- <property name="left_attach">6</property>
1686- <property name="right_attach">7</property>
1687+ <property name="left_attach">5</property>
1688+ <property name="right_attach">6</property>
1689 <property name="top_attach">2</property>
1690 <property name="bottom_attach">3</property>
1691 <property name="x_options">GTK_FILL</property>
1692@@ -1557,8 +1609,8 @@
1693 <property name="label" translatable="yes">s</property>
1694 </widget>
1695 <packing>
1696- <property name="left_attach">6</property>
1697- <property name="right_attach">7</property>
1698+ <property name="left_attach">5</property>
1699+ <property name="right_attach">6</property>
1700 <property name="top_attach">1</property>
1701 <property name="bottom_attach">2</property>
1702 <property name="x_options">GTK_FILL</property>
1703@@ -1572,8 +1624,8 @@
1704 <property name="label" translatable="yes">s</property>
1705 </widget>
1706 <packing>
1707- <property name="left_attach">6</property>
1708- <property name="right_attach">7</property>
1709+ <property name="left_attach">5</property>
1710+ <property name="right_attach">6</property>
1711 <property name="x_options">GTK_FILL</property>
1712 <property name="y_options"></property>
1713 </packing>
1714@@ -1624,7 +1676,9 @@
1715 <widget class="GtkLabel" id="label180">
1716 <property name="visible">True</property>
1717 <property name="xalign">0</property>
1718- <property name="label" translatable="yes">Min sources online</property>
1719+ <property name="label" translatable="yes">Min _sources online:</property>
1720+ <property name="use_underline">True</property>
1721+ <property name="mnemonic_widget">dropMinSourcesSpinButton</property>
1722 </widget>
1723 <packing>
1724 <property name="top_attach">2</property>
1725@@ -1637,7 +1691,9 @@
1726 <widget class="GtkLabel" id="label179">
1727 <property name="visible">True</property>
1728 <property name="xalign">0</property>
1729- <property name="label" translatable="yes">Min elapsed</property>
1730+ <property name="label" translatable="yes">Min _elapsed:</property>
1731+ <property name="use_underline">True</property>
1732+ <property name="mnemonic_widget">dropElapsedSpinButton</property>
1733 </widget>
1734 <packing>
1735 <property name="top_attach">1</property>
1736@@ -1650,7 +1706,9 @@
1737 <widget class="GtkLabel" id="label178">
1738 <property name="visible">True</property>
1739 <property name="xalign">0</property>
1740- <property name="label" translatable="yes">Drop sources below</property>
1741+ <property name="label" translatable="yes">_Drop sources below:</property>
1742+ <property name="use_underline">True</property>
1743+ <property name="mnemonic_widget">dropSpeedSpinButton</property>
1744 </widget>
1745 <packing>
1746 <property name="x_options">GTK_FILL</property>
1747@@ -1662,7 +1720,7 @@
1748 <child>
1749 <widget class="GtkLabel" id="label174">
1750 <property name="visible">True</property>
1751- <property name="label" translatable="yes">&lt;b&gt;Auto-drop settings&lt;/b&gt;</property>
1752+ <property name="label" translatable="yes">&lt;b&gt;Auto-Drop&lt;/b&gt;</property>
1753 <property name="use_markup">True</property>
1754 </widget>
1755 <packing>
1756@@ -1700,8 +1758,10 @@
1757 <child>
1758 <widget class="GtkLabel" id="label175">
1759 <property name="visible">True</property>
1760- <property name="label" translatable="yes">&lt;b&gt;Other queue options&lt;/b&gt;</property>
1761+ <property name="label" translatable="yes">&lt;b&gt;O_ptions&lt;/b&gt;</property>
1762 <property name="use_markup">True</property>
1763+ <property name="use_underline">True</property>
1764+ <property name="mnemonic_widget">queueOtherTreeView</property>
1765 </widget>
1766 <packing>
1767 <property name="type">label_item</property>
1768@@ -1775,91 +1835,53 @@
1769 </widget>
1770 </child>
1771 <child>
1772- <widget class="GtkLabel" id="label34">
1773- <property name="visible">True</property>
1774- <property name="xalign">0</property>
1775- <property name="label" translatable="yes">Note: New files are added to the share only once they've been hashed!</property>
1776- </widget>
1777- <packing>
1778- <property name="expand">False</property>
1779- <property name="fill">False</property>
1780- <property name="position">1</property>
1781- </packing>
1782- </child>
1783- <child>
1784 <widget class="GtkHBox" id="hbox5">
1785 <property name="visible">True</property>
1786 <child>
1787 <widget class="GtkLabel" id="sharedSizeLabel">
1788 <property name="visible">True</property>
1789 <property name="xalign">0</property>
1790- <property name="label" translatable="yes">Total size: 0 B</property>
1791+ <property name="label" translatable="yes">Total size: %1%</property>
1792 </widget>
1793+ <packing>
1794+ <property name="expand">True</property>
1795+ <property name="fill">True</property>
1796+ <property name="position">0</property>
1797+ </packing>
1798 </child>
1799 <child>
1800- <widget class="GtkHBox" id="hbox6">
1801+ <widget class="GtkButton" id="sharedAddButton">
1802 <property name="visible">True</property>
1803- <property name="spacing">4</property>
1804- <child>
1805- <widget class="GtkCheckButton" id="shareHiddenCheckButton">
1806- <property name="visible">True</property>
1807- <property name="can_focus">True</property>
1808- <property name="label" translatable="yes">Share hidden files</property>
1809- <property name="use_underline">True</property>
1810- <property name="response_id">0</property>
1811- <property name="draw_indicator">True</property>
1812- </widget>
1813- </child>
1814- <child>
1815- <widget class="GtkCheckButton" id="followLinksCheckButton">
1816- <property name="visible">True</property>
1817- <property name="can_focus">True</property>
1818- <property name="label" translatable="yes">Follow Links</property>
1819- <property name="use_underline">True</property>
1820- <property name="response_id">0</property>
1821- <property name="draw_indicator">True</property>
1822- </widget>
1823- <packing>
1824- <property name="position">1</property>
1825- </packing>
1826- </child>
1827- <child>
1828- <widget class="GtkButton" id="sharedAddButton">
1829- <property name="visible">True</property>
1830- <property name="can_focus">True</property>
1831- <property name="label">gtk-add</property>
1832- <property name="use_stock">True</property>
1833- <property name="response_id">0</property>
1834- </widget>
1835- <packing>
1836- <property name="expand">False</property>
1837- <property name="fill">False</property>
1838- <property name="position">2</property>
1839- </packing>
1840- </child>
1841- <child>
1842- <widget class="GtkButton" id="sharedRemoveButton">
1843- <property name="visible">True</property>
1844- <property name="can_focus">True</property>
1845- <property name="label">gtk-remove</property>
1846- <property name="use_stock">True</property>
1847- <property name="response_id">0</property>
1848- </widget>
1849- <packing>
1850- <property name="expand">False</property>
1851- <property name="fill">False</property>
1852- <property name="position">3</property>
1853- </packing>
1854- </child>
1855+ <property name="can_focus">True</property>
1856+ <property name="label">gtk-add</property>
1857+ <property name="use_stock">True</property>
1858+ <property name="response_id">0</property>
1859 </widget>
1860 <packing>
1861+ <property name="expand">False</property>
1862+ <property name="fill">False</property>
1863 <property name="position">1</property>
1864 </packing>
1865 </child>
1866+ <child>
1867+ <widget class="GtkButton" id="sharedRemoveButton">
1868+ <property name="visible">True</property>
1869+ <property name="can_focus">True</property>
1870+ <property name="label">gtk-remove</property>
1871+ <property name="use_stock">True</property>
1872+ <property name="response_id">0</property>
1873+ </widget>
1874+ <packing>
1875+ <property name="expand">False</property>
1876+ <property name="fill">False</property>
1877+ <property name="position">2</property>
1878+ </packing>
1879+ </child>
1880 </widget>
1881 <packing>
1882 <property name="expand">False</property>
1883- <property name="position">2</property>
1884+ <property name="fill">False</property>
1885+ <property name="position">1</property>
1886 </packing>
1887 </child>
1888 </widget>
1889@@ -1867,7 +1889,7 @@
1890 <child>
1891 <widget class="GtkLabel" id="label33">
1892 <property name="visible">True</property>
1893- <property name="label" translatable="yes">&lt;b&gt;Shared directories&lt;/b&gt;</property>
1894+ <property name="label" translatable="yes">&lt;b&gt;Shared Directories&lt;/b&gt;</property>
1895 <property name="use_markup">True</property>
1896 </widget>
1897 <packing>
1898@@ -1879,12 +1901,39 @@
1899 <child>
1900 <widget class="GtkTable" id="table6">
1901 <property name="visible">True</property>
1902- <property name="n_rows">2</property>
1903+ <property name="n_rows">4</property>
1904 <property name="n_columns">3</property>
1905- <property name="column_spacing">4</property>
1906+ <property name="column_spacing">10</property>
1907 <property name="row_spacing">4</property>
1908 <child>
1909- <placeholder/>
1910+ <widget class="GtkCheckButton" id="followLinksCheckButton">
1911+ <property name="visible">True</property>
1912+ <property name="can_focus">True</property>
1913+ <property name="label" translatable="yes">_Follow links</property>
1914+ <property name="use_underline">True</property>
1915+ <property name="response_id">0</property>
1916+ <property name="draw_indicator">True</property>
1917+ </widget>
1918+ <packing>
1919+ <property name="x_options">GTK_FILL</property>
1920+ <property name="y_options"></property>
1921+ </packing>
1922+ </child>
1923+ <child>
1924+ <widget class="GtkCheckButton" id="shareHiddenCheckButton">
1925+ <property name="visible">True</property>
1926+ <property name="can_focus">True</property>
1927+ <property name="label" translatable="yes">_Share hidden files</property>
1928+ <property name="use_underline">True</property>
1929+ <property name="response_id">0</property>
1930+ <property name="draw_indicator">True</property>
1931+ </widget>
1932+ <packing>
1933+ <property name="top_attach">1</property>
1934+ <property name="bottom_attach">2</property>
1935+ <property name="x_options">GTK_FILL</property>
1936+ <property name="y_options"></property>
1937+ </packing>
1938 </child>
1939 <child>
1940 <widget class="GtkSpinButton" id="sharedUploadSlotsSpinButton">
1941@@ -1896,8 +1945,8 @@
1942 <packing>
1943 <property name="left_attach">1</property>
1944 <property name="right_attach">2</property>
1945- <property name="top_attach">1</property>
1946- <property name="bottom_attach">2</property>
1947+ <property name="top_attach">3</property>
1948+ <property name="bottom_attach">4</property>
1949 <property name="x_options">GTK_FILL</property>
1950 <property name="y_options"></property>
1951 </packing>
1952@@ -1905,12 +1954,14 @@
1953 <child>
1954 <widget class="GtkLabel" id="label38">
1955 <property name="visible">True</property>
1956- <property name="xalign">1</property>
1957- <property name="label" translatable="yes">Upload slots</property>
1958+ <property name="xalign">0</property>
1959+ <property name="label" translatable="yes">_Upload slots:</property>
1960+ <property name="use_underline">True</property>
1961+ <property name="mnemonic_widget">sharedUploadSlotsSpinButton</property>
1962 </widget>
1963 <packing>
1964- <property name="top_attach">1</property>
1965- <property name="bottom_attach">2</property>
1966+ <property name="top_attach">3</property>
1967+ <property name="bottom_attach">4</property>
1968 <property name="x_options">GTK_FILL</property>
1969 <property name="y_options"></property>
1970 </packing>
1971@@ -1922,6 +1973,8 @@
1972 <property name="label" translatable="yes">KiB/s</property>
1973 </widget>
1974 <packing>
1975+ <property name="top_attach">2</property>
1976+ <property name="bottom_attach">3</property>
1977 <property name="left_attach">2</property>
1978 <property name="right_attach">3</property>
1979 <property name="x_options">GTK_FILL</property>
1980@@ -1934,8 +1987,11 @@
1981 <property name="can_focus">True</property>
1982 <property name="adjustment">0 0 10000 1 10 0</property>
1983 <property name="climb_rate">1</property>
1984+ <property name="tooltip_text" translatable="yes">A value of '0' will disable this option</property>
1985 </widget>
1986 <packing>
1987+ <property name="top_attach">2</property>
1988+ <property name="bottom_attach">3</property>
1989 <property name="left_attach">1</property>
1990 <property name="right_attach">2</property>
1991 <property name="x_options">GTK_FILL</property>
1992@@ -1945,10 +2001,15 @@
1993 <child>
1994 <widget class="GtkLabel" id="label36">
1995 <property name="visible">True</property>
1996- <property name="xalign">1</property>
1997- <property name="label" translatable="yes">Automatically open extra slot if speed is below (0 = disable)</property>
1998+ <property name="xalign">0</property>
1999+ <property name="label" translatable="yes">Automatically open _extra slot if speed is below:</property>
2000+ <property name="use_underline">True</property>
2001+ <property name="mnemonic_widget">sharedExtraSlotSpinButton</property>
2002 </widget>
2003 <packing>
2004+ <property name="top_attach">2</property>
2005+ <property name="bottom_attach">3</property>
2006+ <property name="x_options">GTK_FILL</property>
2007 <property name="y_options"></property>
2008 </packing>
2009 </child>
2010@@ -2011,8 +2072,10 @@
2011 <child>
2012 <widget class="GtkLabel" id="label200">
2013 <property name="visible">True</property>
2014- <property name="label" translatable="yes">&lt;b&gt;Options&lt;/b&gt;</property>
2015+ <property name="label" translatable="yes">&lt;b&gt;O_ptions&lt;/b&gt;</property>
2016 <property name="use_markup">True</property>
2017+ <property name="use_underline">True</property>
2018+ <property name="mnemonic_widget">appearanceOptionsTreeView</property>
2019 </widget>
2020 <packing>
2021 <property name="type">label_item</property>
2022@@ -2023,184 +2086,151 @@
2023 </widget>
2024 </child>
2025 <child>
2026- <widget class="GtkHBox" id="hbox4">
2027+ <widget class="GtkTable" id="table4">
2028 <property name="visible">True</property>
2029- <child>
2030- <widget class="GtkFrame" id="frame9">
2031- <property name="visible">True</property>
2032- <property name="label_xalign">0</property>
2033- <child>
2034- <widget class="GtkAlignment" id="alignment6">
2035- <property name="visible">True</property>
2036- <property name="bottom_padding">5</property>
2037- <property name="left_padding">12</property>
2038- <child>
2039- <widget class="GtkHBox" id="tabPositionHBox">
2040- <property name="visible">True</property>
2041- <child>
2042- <widget class="GtkComboBox" id="tabPositionComboBox">
2043- <property name="visible">True</property>
2044- <property name="items" translatable="yes">Top
2045-Left
2046-Right
2047-Bottom</property>
2048- </widget>
2049- <packing>
2050- <property name="expand">False</property>
2051- <property name="fill">False</property>
2052- </packing>
2053- </child>
2054- </widget>
2055- </child>
2056- </widget>
2057- </child>
2058- <child>
2059- <widget class="GtkLabel" id="label16">
2060- <property name="visible">True</property>
2061- <property name="label" translatable="yes">&lt;b&gt;Tab Position&lt;/b&gt;</property>
2062- <property name="use_markup">True</property>
2063- </widget>
2064- <packing>
2065- <property name="type">label_item</property>
2066- </packing>
2067- </child>
2068- </widget>
2069- </child>
2070- <child>
2071- <widget class="GtkFrame" id="frame10">
2072- <property name="visible">True</property>
2073- <property name="label_xalign">0</property>
2074- <child>
2075- <widget class="GtkAlignment" id="alignment7">
2076- <property name="visible">True</property>
2077- <property name="bottom_padding">5</property>
2078- <property name="left_padding">12</property>
2079- <child>
2080- <widget class="GtkHBox" id="toolbarStyleHBox">
2081- <property name="visible">True</property>
2082- <child>
2083- <widget class="GtkComboBox" id="toolbarStyleComboBox">
2084- <property name="visible">True</property>
2085- <property name="items" translatable="yes">Icons
2086+ <property name="n_rows">4</property>
2087+ <property name="n_columns">2</property>
2088+ <property name="column_spacing">15</property>
2089+ <property name="row_spacing">4</property>
2090+ <child>
2091+ <widget class="GtkLabel" id="label43">
2092+ <property name="visible">True</property>
2093+ <property name="xalign">0</property>
2094+ <property name="label" translatable="yes">_Default away message:</property>
2095+ <property name="use_underline">True</property>
2096+ <property name="mnemonic_widget">awayMessageEntry</property>
2097+ </widget>
2098+ <packing>
2099+ <property name="top_attach">3</property>
2100+ <property name="bottom_attach">4</property>
2101+ <property name="x_options">GTK_FILL</property>
2102+ <property name="y_options"></property>
2103+ </packing>
2104+ </child>
2105+ <child>
2106+ <widget class="GtkEntry" id="awayMessageEntry">
2107+ <property name="visible">True</property>
2108+ <property name="can_focus">True</property>
2109+ <property name="invisible_char">&#x25CF;</property>
2110+ </widget>
2111+ <packing>
2112+ <property name="left_attach">1</property>
2113+ <property name="right_attach">2</property>
2114+ <property name="top_attach">3</property>
2115+ <property name="bottom_attach">4</property>
2116+ <property name="y_options"></property>
2117+ </packing>
2118+ </child>
2119+ <child>
2120+ <widget class="GtkLabel" id="label44">
2121+ <property name="visible">True</property>
2122+ <property name="xalign">0</property>
2123+ <property name="label" translatable="yes">Timestamp _format:</property>
2124+ <property name="use_underline">True</property>
2125+ <property name="mnemonic_widget">timestampEntry</property>
2126+ </widget>
2127+ <packing>
2128+ <property name="top_attach">2</property>
2129+ <property name="bottom_attach">3</property>
2130+ <property name="x_options">GTK_FILL</property>
2131+ <property name="y_options"></property>
2132+ </packing>
2133+ </child>
2134+ <child>
2135+ <widget class="GtkEntry" id="timestampEntry">
2136+ <property name="visible">True</property>
2137+ <property name="can_focus">True</property>
2138+ <property name="invisible_char">&#x25CF;</property>
2139+ </widget>
2140+ <packing>
2141+ <property name="left_attach">1</property>
2142+ <property name="right_attach">2</property>
2143+ <property name="top_attach">2</property>
2144+ <property name="bottom_attach">3</property>
2145+ <property name="y_options"></property>
2146+ </packing>
2147+ </child>
2148+ <child>
2149+ <widget class="GtkLabel" id="label17">
2150+ <property name="visible">True</property>
2151+ <property name="xalign">0</property>
2152+ <property name="label" translatable="yes">_Main toolbar style:</property>
2153+ <property name="mnemonic_widget">toolbarStyleComboBox</property>
2154+ <property name="use_underline">True</property>
2155+ </widget>
2156+ <packing>
2157+ <property name="top_attach">1</property>
2158+ <property name="bottom_attach">2</property>
2159+ <property name="x_options">GTK_FILL</property>
2160+ <property name="y_options"></property>
2161+ </packing>
2162+ </child>
2163+ <child>
2164+ <widget class="GtkLabel" id="label16">
2165+ <property name="visible">True</property>
2166+ <property name="xalign">0</property>
2167+ <property name="label" translatable="yes">_Tab position:</property>
2168+ <property name="mnemonic_widget">tabPositionComboBox</property>
2169+ <property name="use_underline">True</property>
2170+ </widget>
2171+ <packing>
2172+ <property name="x_options">GTK_FILL</property>
2173+ <property name="y_options"></property>
2174+ </packing>
2175+ </child>
2176+ <child>
2177+ <widget class="GtkAspectFrame" id="aspectframe2">
2178+ <property name="visible">True</property>
2179+ <property name="label_xalign">0</property>
2180+ <property name="shadow_type">none</property>
2181+ <property name="xalign">0</property>
2182+ <child>
2183+ <widget class="GtkComboBox" id="toolbarStyleComboBox">
2184+ <property name="visible">True</property>
2185+ <property name="items" translatable="yes">Icons
2186 Text
2187 Both
2188 Both horizontal
2189 Hidden
2190 System default</property>
2191- </widget>
2192- <packing>
2193- <property name="expand">False</property>
2194- <property name="fill">False</property>
2195- </packing>
2196- </child>
2197- </widget>
2198- </child>
2199 </widget>
2200 </child>
2201+ </widget>
2202+ <packing>
2203+ <property name="left_attach">1</property>
2204+ <property name="right_attach">2</property>
2205+ <property name="top_attach">1</property>
2206+ <property name="bottom_attach">2</property>
2207+ <property name="y_options">GTK_FILL</property>
2208+ </packing>
2209+ </child>
2210+ <child>
2211+ <widget class="GtkAspectFrame" id="aspectframe1">
2212+ <property name="visible">True</property>
2213+ <property name="label_xalign">0</property>
2214+ <property name="shadow_type">none</property>
2215+ <property name="xalign">0</property>
2216 <child>
2217- <widget class="GtkLabel" id="label17">
2218+ <widget class="GtkComboBox" id="tabPositionComboBox">
2219 <property name="visible">True</property>
2220- <property name="label" translatable="yes">&lt;b&gt;Main Toolbar Style&lt;/b&gt;</property>
2221- <property name="use_markup">True</property>
2222+ <property name="items" translatable="yes">Top
2223+Left
2224+Right
2225+Bottom</property>
2226 </widget>
2227- <packing>
2228- <property name="type">label_item</property>
2229- </packing>
2230 </child>
2231 </widget>
2232 <packing>
2233- <property name="position">1</property>
2234+ <property name="left_attach">1</property>
2235+ <property name="right_attach">2</property>
2236+ <property name="y_options">GTK_FILL</property>
2237 </packing>
2238 </child>
2239 </widget>
2240 <packing>
2241- <property name="expand">False</property>
2242- <property name="fill">False</property>
2243 <property name="position">1</property>
2244 </packing>
2245 </child>
2246- <child>
2247- <widget class="GtkHBox" id="hbox18">
2248- <property name="visible">True</property>
2249- <child>
2250- <widget class="GtkFrame" id="frame12">
2251- <property name="visible">True</property>
2252- <property name="label_xalign">0</property>
2253- <child>
2254- <widget class="GtkHBox" id="hbox8">
2255- <property name="visible">True</property>
2256- <property name="border_width">8</property>
2257- <child>
2258- <widget class="GtkEntry" id="awayMessageEntry">
2259- <property name="visible">True</property>
2260- <property name="can_focus">True</property>
2261- </widget>
2262- </child>
2263- </widget>
2264- </child>
2265- <child>
2266- <widget class="GtkLabel" id="label43">
2267- <property name="visible">True</property>
2268- <property name="label" translatable="yes">&lt;b&gt;Default away message&lt;/b&gt;</property>
2269- <property name="use_markup">True</property>
2270- </widget>
2271- <packing>
2272- <property name="type">label_item</property>
2273- </packing>
2274- </child>
2275- </widget>
2276- </child>
2277- <child>
2278- <widget class="GtkFrame" id="frame13">
2279- <property name="visible">True</property>
2280- <property name="label_xalign">0</property>
2281- <child>
2282- <widget class="GtkHBox" id="hbox9">
2283- <property name="visible">True</property>
2284- <property name="border_width">8</property>
2285- <child>
2286- <widget class="GtkEntry" id="timestampEntry">
2287- <property name="visible">True</property>
2288- <property name="can_focus">True</property>
2289- </widget>
2290- </child>
2291- </widget>
2292- </child>
2293- <child>
2294- <widget class="GtkLabel" id="label44">
2295- <property name="visible">True</property>
2296- <property name="label" translatable="yes">&lt;b&gt;Timestamps&lt;/b&gt;</property>
2297- <property name="use_markup">True</property>
2298- </widget>
2299- <packing>
2300- <property name="type">label_item</property>
2301- </packing>
2302- </child>
2303- </widget>
2304- <packing>
2305- <property name="position">1</property>
2306- </packing>
2307- </child>
2308- </widget>
2309- <packing>
2310- <property name="expand">False</property>
2311- <property name="fill">False</property>
2312- <property name="position">2</property>
2313- </packing>
2314- </child>
2315- <child>
2316- <widget class="GtkLabel" id="label45">
2317- <property name="visible">True</property>
2318- <property name="xalign">0</property>
2319- <property name="yalign">0</property>
2320- <property name="label" translatable="yes">Note: Most of these options require that you restart the application</property>
2321- </widget>
2322- <packing>
2323- <property name="expand">False</property>
2324- <property name="fill">False</property>
2325- <property name="position">3</property>
2326- </packing>
2327- </child>
2328 </widget>
2329 </child>
2330 <child>
2331@@ -2220,6 +2250,7 @@
2332 <child>
2333 <widget class="GtkFrame" id="frame45">
2334 <property name="visible">True</property>
2335+ <property name="sensitive">False</property>
2336 <property name="label_xalign">0</property>
2337 <child>
2338 <widget class="GtkTable" id="table23">
2339@@ -2233,7 +2264,7 @@
2340 <widget class="GtkButton" id="upColor">
2341 <property name="visible">True</property>
2342 <property name="can_focus">True</property>
2343- <property name="label" translatable="yes">Uploads</property>
2344+ <property name="label" translatable="yes">_Uploads</property>
2345 <property name="use_underline">True</property>
2346 <property name="response_id">0</property>
2347 </widget>
2348@@ -2248,7 +2279,7 @@
2349 <widget class="GtkButton" id="downColor">
2350 <property name="visible">True</property>
2351 <property name="can_focus">True</property>
2352- <property name="label" translatable="yes">Downloads</property>
2353+ <property name="label" translatable="yes">_Downloads</property>
2354 <property name="use_underline">True</property>
2355 <property name="response_id">0</property>
2356 </widget>
2357@@ -2265,7 +2296,7 @@
2358 <widget class="GtkButton" id="textStyle">
2359 <property name="visible">True</property>
2360 <property name="can_focus">True</property>
2361- <property name="label" translatable="yes">Select text style</property>
2362+ <property name="label" translatable="yes">Select _text style</property>
2363 <property name="use_underline">True</property>
2364 <property name="response_id">0</property>
2365 </widget>
2366@@ -2280,7 +2311,7 @@
2367 <widget class="GtkButton" id="appearanceColor">
2368 <property name="visible">True</property>
2369 <property name="can_focus">True</property>
2370- <property name="label" translatable="yes">Select window color</property>
2371+ <property name="label" translatable="yes">Select window _color</property>
2372 <property name="use_underline">True</property>
2373 <property name="response_id">0</property>
2374 </widget>
2375@@ -2310,6 +2341,7 @@
2376 <child>
2377 <widget class="GtkFrame" id="frame46">
2378 <property name="visible">True</property>
2379+ <property name="sensitive">False</property>
2380 <property name="label_xalign">0</property>
2381 <child>
2382 <widget class="GtkVBox" id="vbox21">
2383@@ -2320,7 +2352,7 @@
2384 <widget class="GtkCheckButton" id="soundPMReceivedCheckButton">
2385 <property name="visible">True</property>
2386 <property name="can_focus">True</property>
2387- <property name="label" translatable="yes">Beep every time a private message is received</property>
2388+ <property name="label" translatable="yes">_Beep every time a private message is received</property>
2389 <property name="use_underline">True</property>
2390 <property name="response_id">0</property>
2391 <property name="draw_indicator">True</property>
2392@@ -2334,7 +2366,7 @@
2393 <widget class="GtkCheckButton" id="soundPMWindowCheckButton">
2394 <property name="visible">True</property>
2395 <property name="can_focus">True</property>
2396- <property name="label" translatable="yes">Beep when a private message window is opened</property>
2397+ <property name="label" translatable="yes">B_eep when a private message window is opened</property>
2398 <property name="use_underline">True</property>
2399 <property name="response_id">0</property>
2400 <property name="draw_indicator">True</property>
2401@@ -2387,8 +2419,10 @@
2402 <child>
2403 <widget class="GtkLabel" id="label206">
2404 <property name="visible">True</property>
2405- <property name="label" translatable="yes">&lt;b&gt;Tab bolding on content change&lt;/b&gt;</property>
2406+ <property name="label" translatable="yes">&lt;b&gt;_Notifications&lt;/b&gt;</property>
2407 <property name="use_markup">True</property>
2408+ <property name="use_underline">True</property>
2409+ <property name="mnemonic_widget">tabBoldingTreeView</property>
2410 </widget>
2411 <packing>
2412 <property name="type">label_item</property>
2413@@ -2399,19 +2433,6 @@
2414 <property name="position">2</property>
2415 </packing>
2416 </child>
2417- <child>
2418- <widget class="GtkLabel" id="label207">
2419- <property name="visible">True</property>
2420- <property name="xalign">0</property>
2421- <property name="yalign">0</property>
2422- <property name="label" translatable="yes">Note: Most of these options require that you restart the application</property>
2423- </widget>
2424- <packing>
2425- <property name="expand">False</property>
2426- <property name="fill">False</property>
2427- <property name="position">3</property>
2428- </packing>
2429- </child>
2430 </widget>
2431 <packing>
2432 <property name="position">1</property>
2433@@ -2461,8 +2482,10 @@
2434 <child>
2435 <widget class="GtkLabel" id="label201">
2436 <property name="visible">True</property>
2437- <property name="label" translatable="yes">&lt;b&gt;Auto-open on startup&lt;/b&gt;</property>
2438+ <property name="label" translatable="yes">&lt;b&gt;_Auto-Open on Startup&lt;/b&gt;</property>
2439 <property name="use_markup">True</property>
2440+ <property name="use_underline">True</property>
2441+ <property name="mnemonic_widget">windowsAutoOpenTreeView</property>
2442 </widget>
2443 <packing>
2444 <property name="type">label_item</property>
2445@@ -2499,8 +2522,10 @@
2446 <child>
2447 <widget class="GtkLabel" id="label202">
2448 <property name="visible">True</property>
2449- <property name="label" translatable="yes">&lt;b&gt;Window Options&lt;/b&gt;</property>
2450+ <property name="label" translatable="yes">&lt;b&gt;_Window Behavior&lt;/b&gt;</property>
2451 <property name="use_markup">True</property>
2452+ <property name="use_underline">True</property>
2453+ <property name="mnemonic_widget">windowsOptionsTreeView</property>
2454 </widget>
2455 <packing>
2456 <property name="type">label_item</property>
2457@@ -2540,8 +2565,10 @@
2458 <child>
2459 <widget class="GtkLabel" id="label203">
2460 <property name="visible">True</property>
2461- <property name="label" translatable="yes">&lt;b&gt;Confirmation Dialog Options&lt;/b&gt;</property>
2462+ <property name="label" translatable="yes">&lt;b&gt;Confirmation _Dialog&lt;/b&gt;</property>
2463 <property name="use_markup">True</property>
2464+ <property name="use_underline">True</property>
2465+ <property name="mnemonic_widget">windowsConfirmTreeView</property>
2466 </widget>
2467 <packing>
2468 <property name="type">label_item</property>
2469@@ -2560,7 +2587,7 @@
2470 <child>
2471 <widget class="GtkLabel" id="label198">
2472 <property name="visible">True</property>
2473- <property name="label" translatable="yes">Tabs</property>
2474+ <property name="label" translatable="yes">Window</property>
2475 </widget>
2476 <packing>
2477 <property name="type">tab</property>
2478@@ -2594,267 +2621,224 @@
2479 <property name="visible">True</property>
2480 <property name="label_xalign">0</property>
2481 <child>
2482- <widget class="GtkVBox" id="vbox20">
2483+ <widget class="GtkTable" id="logTable">
2484 <property name="visible">True</property>
2485- <property name="border_width">8</property>
2486- <property name="spacing">4</property>
2487- <child>
2488- <widget class="GtkHBox" id="hbox10">
2489- <property name="visible">True</property>
2490- <property name="spacing">4</property>
2491- <child>
2492- <widget class="GtkLabel" id="label47">
2493- <property name="visible">True</property>
2494- <property name="xalign">1</property>
2495- <property name="label" translatable="yes">Directory</property>
2496- </widget>
2497- </child>
2498- <child>
2499- <widget class="GtkEntry" id="logDirectoryEntry">
2500- <property name="width_request">226</property>
2501- <property name="visible">True</property>
2502- <property name="can_focus">True</property>
2503- </widget>
2504- <packing>
2505- <property name="position">1</property>
2506- </packing>
2507- </child>
2508- <child>
2509- <widget class="GtkButton" id="logBrowseButton">
2510- <property name="visible">True</property>
2511- <property name="can_focus">True</property>
2512- <property name="label" translatable="yes">Browse...</property>
2513- <property name="use_underline">True</property>
2514- <property name="response_id">0</property>
2515- </widget>
2516- <packing>
2517- <property name="expand">False</property>
2518- <property name="fill">False</property>
2519- <property name="position">2</property>
2520- </packing>
2521- </child>
2522- </widget>
2523- <packing>
2524- <property name="expand">False</property>
2525+ <property name="n_rows">8</property>
2526+ <property name="n_columns">2</property>
2527+ <property name="column_spacing">15</property>
2528+ <property name="row_spacing">20</property>
2529+ <child>
2530+ <widget class="GtkLabel" id="outputDirectoryLabel">
2531+ <property name="visible">True</property>
2532+ <property name="xalign">0</property>
2533+ <property name="label" translatable="yes">Ou_tput directory:</property>
2534+ <property name="use_underline">True</property>
2535+ <property name="mnemonic_widget">logDirectoryFileChooserButton</property>
2536+ </widget>
2537+ <packing>
2538+ <property name="x_options">GTK_FILL</property>
2539+ <property name="y_options">GTK_FILL</property>
2540+ </packing>
2541+ </child>
2542+ <child>
2543+ <widget class="GtkFileChooserButton" id="logDirectoryFileChooserButton">
2544+ <property name="visible">True</property>
2545+ <property name="show_hidden">True</property>
2546+ <property name="local_only">False</property>
2547+ <property name="action">select-folder</property>
2548+ <property name="title" translatable="yes">Select a Folder</property>
2549+ </widget>
2550+ <packing>
2551+ <property name="left_attach">1</property>
2552+ <property name="right_attach">2</property>
2553+ <property name="y_options">GTK_FILL</property>
2554 </packing>
2555 </child>
2556 <child>
2557 <widget class="GtkCheckButton" id="logMainCheckButton">
2558+ <property name="label" translatable="yes">_Main chat format:</property>
2559 <property name="visible">True</property>
2560 <property name="can_focus">True</property>
2561- <property name="label" translatable="yes">Log main chat</property>
2562+ <property name="receives_default">False</property>
2563 <property name="use_underline">True</property>
2564- <property name="response_id">0</property>
2565 <property name="draw_indicator">True</property>
2566 </widget>
2567 <packing>
2568- <property name="expand">False</property>
2569- <property name="fill">False</property>
2570- <property name="position">1</property>
2571+ <property name="top_attach">1</property>
2572+ <property name="bottom_attach">2</property>
2573+ <property name="x_options">GTK_FILL</property>
2574+ <property name="y_options">GTK_FILL</property>
2575 </packing>
2576 </child>
2577 <child>
2578- <widget class="GtkHBox" id="hbox11">
2579+ <widget class="GtkEntry" id="logMainEntry">
2580+ <property name="width_request">270</property>
2581 <property name="visible">True</property>
2582- <property name="spacing">4</property>
2583- <child>
2584- <widget class="GtkLabel" id="logMainLabel">
2585- <property name="visible">True</property>
2586- <property name="sensitive">False</property>
2587- <property name="xalign">1</property>
2588- <property name="label" translatable="yes">Format</property>
2589- </widget>
2590- </child>
2591- <child>
2592- <widget class="GtkEntry" id="logMainEntry">
2593- <property name="width_request">270</property>
2594- <property name="visible">True</property>
2595- <property name="sensitive">False</property>
2596- <property name="can_focus">True</property>
2597- </widget>
2598- <packing>
2599- <property name="position">1</property>
2600- </packing>
2601- </child>
2602+ <property name="sensitive">False</property>
2603+ <property name="can_focus">True</property>
2604+ <property name="invisible_char">&#x25CF;</property>
2605 </widget>
2606 <packing>
2607- <property name="position">2</property>
2608+ <property name="left_attach">1</property>
2609+ <property name="right_attach">2</property>
2610+ <property name="top_attach">1</property>
2611+ <property name="bottom_attach">2</property>
2612+ <property name="y_options">GTK_FILL</property>
2613 </packing>
2614 </child>
2615 <child>
2616 <widget class="GtkCheckButton" id="logPrivateCheckButton">
2617+ <property name="label" translatable="yes">_Private chat format:</property>
2618 <property name="visible">True</property>
2619 <property name="can_focus">True</property>
2620- <property name="label" translatable="yes">Log private chat</property>
2621+ <property name="receives_default">False</property>
2622 <property name="use_underline">True</property>
2623- <property name="response_id">0</property>
2624 <property name="draw_indicator">True</property>
2625 </widget>
2626 <packing>
2627- <property name="expand">False</property>
2628- <property name="fill">False</property>
2629- <property name="position">3</property>
2630+ <property name="top_attach">2</property>
2631+ <property name="bottom_attach">3</property>
2632+ <property name="x_options">GTK_FILL</property>
2633+ <property name="y_options">GTK_FILL</property>
2634 </packing>
2635 </child>
2636 <child>
2637- <widget class="GtkHBox" id="hbox12">
2638+ <widget class="GtkEntry" id="logPrivateEntry">
2639+ <property name="width_request">270</property>
2640 <property name="visible">True</property>
2641- <property name="spacing">4</property>
2642- <child>
2643- <widget class="GtkLabel" id="logPrivateLabel">
2644- <property name="visible">True</property>
2645- <property name="sensitive">False</property>
2646- <property name="xalign">1</property>
2647- <property name="label" translatable="yes">Format</property>
2648- </widget>
2649- </child>
2650- <child>
2651- <widget class="GtkEntry" id="logPrivateEntry">
2652- <property name="width_request">270</property>
2653- <property name="visible">True</property>
2654- <property name="sensitive">False</property>
2655- <property name="can_focus">True</property>
2656- </widget>
2657- <packing>
2658- <property name="position">1</property>
2659- </packing>
2660- </child>
2661+ <property name="sensitive">False</property>
2662+ <property name="can_focus">True</property>
2663+ <property name="invisible_char">&#x25CF;</property>
2664 </widget>
2665 <packing>
2666- <property name="position">4</property>
2667+ <property name="left_attach">1</property>
2668+ <property name="right_attach">2</property>
2669+ <property name="top_attach">2</property>
2670+ <property name="bottom_attach">3</property>
2671+ <property name="y_options">GTK_FILL</property>
2672 </packing>
2673 </child>
2674 <child>
2675 <widget class="GtkCheckButton" id="logDownloadsCheckButton">
2676+ <property name="label" translatable="yes">_Download format:</property>
2677 <property name="visible">True</property>
2678 <property name="can_focus">True</property>
2679- <property name="label" translatable="yes">Log downloads</property>
2680+ <property name="receives_default">False</property>
2681 <property name="use_underline">True</property>
2682- <property name="response_id">0</property>
2683 <property name="draw_indicator">True</property>
2684 </widget>
2685 <packing>
2686- <property name="expand">False</property>
2687- <property name="fill">False</property>
2688- <property name="position">5</property>
2689+ <property name="top_attach">3</property>
2690+ <property name="bottom_attach">4</property>
2691+ <property name="x_options">GTK_FILL</property>
2692+ <property name="y_options">GTK_FILL</property>
2693 </packing>
2694 </child>
2695 <child>
2696- <widget class="GtkHBox" id="hbox13">
2697+ <widget class="GtkEntry" id="logDownloadsEntry">
2698+ <property name="width_request">270</property>
2699 <property name="visible">True</property>
2700- <property name="spacing">4</property>
2701- <child>
2702- <widget class="GtkLabel" id="logDownloadsLabel">
2703- <property name="visible">True</property>
2704- <property name="sensitive">False</property>
2705- <property name="xalign">1</property>
2706- <property name="label" translatable="yes">Format</property>
2707- </widget>
2708- </child>
2709- <child>
2710- <widget class="GtkEntry" id="logDownloadsEntry">
2711- <property name="width_request">270</property>
2712- <property name="visible">True</property>
2713- <property name="sensitive">False</property>
2714- <property name="can_focus">True</property>
2715- </widget>
2716- <packing>
2717- <property name="position">1</property>
2718- </packing>
2719- </child>
2720+ <property name="sensitive">False</property>
2721+ <property name="can_focus">True</property>
2722+ <property name="invisible_char">&#x25CF;</property>
2723 </widget>
2724 <packing>
2725- <property name="position">6</property>
2726+ <property name="left_attach">1</property>
2727+ <property name="right_attach">2</property>
2728+ <property name="top_attach">3</property>
2729+ <property name="bottom_attach">4</property>
2730+ <property name="y_options">GTK_FILL</property>
2731 </packing>
2732 </child>
2733 <child>
2734 <widget class="GtkCheckButton" id="logUploadsCheckButton">
2735+ <property name="label" translatable="yes">_Upload format:</property>
2736 <property name="visible">True</property>
2737 <property name="can_focus">True</property>
2738- <property name="label" translatable="yes">Log uploads</property>
2739+ <property name="receives_default">False</property>
2740 <property name="use_underline">True</property>
2741- <property name="response_id">0</property>
2742 <property name="draw_indicator">True</property>
2743 </widget>
2744 <packing>
2745- <property name="expand">False</property>
2746- <property name="fill">False</property>
2747- <property name="position">7</property>
2748+ <property name="top_attach">4</property>
2749+ <property name="bottom_attach">5</property>
2750+ <property name="x_options">GTK_FILL</property>
2751+ <property name="y_options">GTK_FILL</property>
2752 </packing>
2753 </child>
2754 <child>
2755- <widget class="GtkHBox" id="hbox14">
2756+ <widget class="GtkEntry" id="logUploadsEntry">
2757+ <property name="width_request">270</property>
2758 <property name="visible">True</property>
2759- <property name="spacing">4</property>
2760- <child>
2761- <widget class="GtkLabel" id="logUploadsLabel">
2762- <property name="visible">True</property>
2763- <property name="sensitive">False</property>
2764- <property name="xalign">1</property>
2765- <property name="label" translatable="yes">Format</property>
2766- </widget>
2767- </child>
2768- <child>
2769- <widget class="GtkEntry" id="logUploadsEntry">
2770- <property name="width_request">270</property>
2771- <property name="visible">True</property>
2772- <property name="sensitive">False</property>
2773- <property name="can_focus">True</property>
2774- </widget>
2775- <packing>
2776- <property name="position">1</property>
2777- </packing>
2778- </child>
2779+ <property name="sensitive">False</property>
2780+ <property name="can_focus">True</property>
2781+ <property name="invisible_char">&#x25CF;</property>
2782 </widget>
2783 <packing>
2784- <property name="position">8</property>
2785+ <property name="left_attach">1</property>
2786+ <property name="right_attach">2</property>
2787+ <property name="top_attach">4</property>
2788+ <property name="bottom_attach">5</property>
2789+ <property name="y_options">GTK_FILL</property>
2790 </packing>
2791 </child>
2792 <child>
2793 <widget class="GtkCheckButton" id="logSystemCheckButton">
2794+ <property name="label" translatable="yes">_System messages</property>
2795 <property name="visible">True</property>
2796 <property name="can_focus">True</property>
2797- <property name="label" translatable="yes">Log system messages</property>
2798+ <property name="receives_default">False</property>
2799 <property name="use_underline">True</property>
2800- <property name="response_id">0</property>
2801 <property name="draw_indicator">True</property>
2802 </widget>
2803 <packing>
2804- <property name="expand">False</property>
2805- <property name="fill">False</property>
2806- <property name="position">9</property>
2807+ <property name="top_attach">5</property>
2808+ <property name="bottom_attach">6</property>
2809+ <property name="x_options">GTK_FILL</property>
2810+ <property name="y_options">GTK_FILL</property>
2811 </packing>
2812 </child>
2813 <child>
2814 <widget class="GtkCheckButton" id="logStatusCheckButton">
2815+ <property name="label" translatable="yes">St_atus messages</property>
2816 <property name="visible">True</property>
2817 <property name="can_focus">True</property>
2818- <property name="label" translatable="yes">Log status messages</property>
2819+ <property name="receives_default">False</property>
2820 <property name="use_underline">True</property>
2821- <property name="response_id">0</property>
2822 <property name="draw_indicator">True</property>
2823 </widget>
2824 <packing>
2825- <property name="expand">False</property>
2826- <property name="fill">False</property>
2827- <property name="position">10</property>
2828+ <property name="top_attach">6</property>
2829+ <property name="bottom_attach">7</property>
2830+ <property name="x_options">GTK_FILL</property>
2831+ <property name="y_options">GTK_FILL</property>
2832 </packing>
2833 </child>
2834 <child>
2835 <widget class="GtkCheckButton" id="logFilelistTransfersCheckButton">
2836+ <property name="label" translatable="yes">_File list transfers</property>
2837 <property name="visible">True</property>
2838 <property name="can_focus">True</property>
2839- <property name="label" translatable="yes">Log filelist transfers</property>
2840+ <property name="receives_default">False</property>
2841 <property name="use_underline">True</property>
2842- <property name="response_id">0</property>
2843 <property name="draw_indicator">True</property>
2844 </widget>
2845 <packing>
2846- <property name="expand">False</property>
2847- <property name="fill">False</property>
2848- <property name="position">11</property>
2849+ <property name="top_attach">7</property>
2850+ <property name="bottom_attach">8</property>
2851+ <property name="x_options">GTK_FILL</property>
2852+ <property name="y_options">GTK_FILL</property>
2853 </packing>
2854 </child>
2855+ <child>
2856+ <placeholder/>
2857+ </child>
2858+ <child>
2859+ <placeholder/>
2860+ </child>
2861+ <child>
2862+ <placeholder/>
2863+ </child>
2864 </widget>
2865 </child>
2866 <child>
2867@@ -2877,7 +2861,7 @@
2868 <child>
2869 <widget class="GtkLabel" id="label5">
2870 <property name="visible">True</property>
2871- <property name="label" translatable="yes">Logs</property>
2872+ <property name="label" translatable="yes">Logging</property>
2873 </widget>
2874 <packing>
2875 <property name="type">tab</property>
2876@@ -3039,480 +3023,445 @@
2877 </packing>
2878 </child>
2879 <child>
2880- <widget class="GtkVBox" id="vbox56">
2881+ <widget class="GtkTable" id="expertsOnlyTable">
2882 <property name="visible">True</property>
2883- <property name="border_width">8</property>
2884- <property name="spacing">4</property>
2885- <child>
2886- <widget class="GtkHBox" id="hbox19">
2887- <property name="visible">True</property>
2888- <property name="spacing">4</property>
2889- <child>
2890- <widget class="GtkVBox" id="vbox61">
2891- <property name="visible">True</property>
2892- <property name="spacing">4</property>
2893- <property name="homogeneous">True</property>
2894- <child>
2895- <widget class="GtkLabel" id="label157">
2896- <property name="visible">True</property>
2897- <property name="xalign">1</property>
2898- <property name="label" translatable="yes">Max hash speed</property>
2899- </widget>
2900- <packing>
2901- <property name="expand">False</property>
2902- <property name="fill">False</property>
2903- <property name="position">1</property>
2904- </packing>
2905- </child>
2906- <child>
2907- <widget class="GtkLabel" id="label158">
2908- <property name="visible">True</property>
2909- <property name="xalign">1</property>
2910- <property name="label" translatable="yes">PM history</property>
2911- </widget>
2912- <packing>
2913- <property name="expand">False</property>
2914- <property name="fill">False</property>
2915- <property name="position">2</property>
2916- </packing>
2917- </child>
2918- <child>
2919- <widget class="GtkLabel" id="label159">
2920- <property name="visible">True</property>
2921- <property name="xalign">1</property>
2922- <property name="label" translatable="yes">Mini slot size</property>
2923- </widget>
2924- <packing>
2925- <property name="expand">False</property>
2926- <property name="fill">False</property>
2927- <property name="position">3</property>
2928- </packing>
2929- </child>
2930- <child>
2931- <widget class="GtkLabel" id="label160">
2932- <property name="visible">True</property>
2933- <property name="xalign">1</property>
2934- <property name="label" translatable="yes">Max filelist size</property>
2935- </widget>
2936- <packing>
2937- <property name="expand">False</property>
2938- <property name="fill">False</property>
2939- <property name="position">4</property>
2940- </packing>
2941- </child>
2942- <child>
2943- <widget class="GtkLabel" id="label161">
2944- <property name="visible">True</property>
2945- <property name="xalign">1</property>
2946- <property name="label" translatable="yes">CID</property>
2947- </widget>
2948- <packing>
2949- <property name="expand">False</property>
2950- <property name="fill">False</property>
2951- <property name="position">5</property>
2952- </packing>
2953- </child>
2954- </widget>
2955- <packing>
2956- <property name="expand">False</property>
2957- <property name="fill">False</property>
2958- </packing>
2959- </child>
2960- <child>
2961- <widget class="GtkVBox" id="vbox62">
2962- <property name="visible">True</property>
2963- <property name="spacing">4</property>
2964- <property name="homogeneous">True</property>
2965- <child>
2966- <widget class="GtkSpinButton" id="hashSpeedSpinButton">
2967- <property name="visible">True</property>
2968- <property name="can_focus">True</property>
2969- <property name="adjustment">0 0 102400 1 64 0</property>
2970- <property name="climb_rate">1</property>
2971- <property name="numeric">True</property>
2972- </widget>
2973- <packing>
2974- <property name="expand">False</property>
2975- <property name="fill">False</property>
2976- <property name="position">1</property>
2977- </packing>
2978- </child>
2979- <child>
2980- <widget class="GtkSpinButton" id="pmHistorySpinButton">
2981- <property name="visible">True</property>
2982- <property name="can_focus">True</property>
2983- <property name="adjustment">10 0 100 1 10 0</property>
2984- <property name="climb_rate">1</property>
2985- <property name="numeric">True</property>
2986- </widget>
2987- <packing>
2988- <property name="expand">False</property>
2989- <property name="fill">False</property>
2990- <property name="position">2</property>
2991- </packing>
2992- </child>
2993- <child>
2994- <widget class="GtkSpinButton" id="slotSizeSpinButton">
2995- <property name="visible">True</property>
2996- <property name="can_focus">True</property>
2997- <property name="adjustment">64 0 10240 1 10 0</property>
2998- <property name="climb_rate">1</property>
2999- <property name="numeric">True</property>
3000- </widget>
3001- <packing>
3002- <property name="expand">False</property>
3003- <property name="fill">False</property>
3004- <property name="position">3</property>
3005- </packing>
3006- </child>
3007- <child>
3008- <widget class="GtkSpinButton" id="maxListSizeSpinButton">
3009- <property name="visible">True</property>
3010- <property name="can_focus">True</property>
3011- <property name="adjustment">0 0 1000 1 10 0</property>
3012- <property name="climb_rate">1</property>
3013- <property name="numeric">True</property>
3014- </widget>
3015- <packing>
3016- <property name="expand">False</property>
3017- <property name="fill">False</property>
3018- <property name="position">4</property>
3019- </packing>
3020- </child>
3021- <child>
3022- <widget class="GtkEntry" id="CIDEntry">
3023- <property name="visible">True</property>
3024- <property name="can_focus">True</property>
3025- </widget>
3026- <packing>
3027- <property name="expand">False</property>
3028- <property name="fill">False</property>
3029- <property name="position">5</property>
3030- </packing>
3031- </child>
3032- </widget>
3033- <packing>
3034- <property name="expand">False</property>
3035- <property name="fill">False</property>
3036- <property name="position">1</property>
3037- </packing>
3038- </child>
3039- <child>
3040- <widget class="GtkVBox" id="vbox63">
3041- <property name="visible">True</property>
3042- <property name="spacing">4</property>
3043- <property name="homogeneous">True</property>
3044- <child>
3045- <widget class="GtkLabel" id="label154">
3046- <property name="visible">True</property>
3047- <property name="xalign">0</property>
3048- <property name="label" translatable="yes">MiB/s</property>
3049- </widget>
3050- <packing>
3051- <property name="expand">False</property>
3052- <property name="fill">False</property>
3053- <property name="position">1</property>
3054- </packing>
3055- </child>
3056- <child>
3057- <widget class="GtkLabel" id="label208">
3058- <property name="visible">True</property>
3059- </widget>
3060- <packing>
3061- <property name="expand">False</property>
3062- <property name="fill">False</property>
3063- <property name="position">2</property>
3064- </packing>
3065- </child>
3066- <child>
3067- <widget class="GtkLabel" id="label168">
3068- <property name="visible">True</property>
3069- <property name="xalign">0</property>
3070- <property name="label" translatable="yes">KiB</property>
3071- </widget>
3072- <packing>
3073- <property name="expand">False</property>
3074- <property name="fill">False</property>
3075- <property name="position">3</property>
3076- </packing>
3077- </child>
3078- <child>
3079- <widget class="GtkLabel" id="label169">
3080- <property name="visible">True</property>
3081- <property name="xalign">0</property>
3082- <property name="label" translatable="yes">MiB</property>
3083- </widget>
3084- <packing>
3085- <property name="expand">False</property>
3086- <property name="fill">False</property>
3087- <property name="position">4</property>
3088- </packing>
3089- </child>
3090- <child>
3091- <widget class="GtkLabel" id="label209">
3092- <property name="visible">True</property>
3093- </widget>
3094- <packing>
3095- <property name="expand">False</property>
3096- <property name="fill">False</property>
3097- <property name="position">5</property>
3098- </packing>
3099- </child>
3100- </widget>
3101- <packing>
3102- <property name="position">2</property>
3103- </packing>
3104- </child>
3105- <child>
3106- <widget class="GtkVBox" id="vbox64">
3107- <property name="visible">True</property>
3108- <property name="spacing">4</property>
3109- <property name="homogeneous">True</property>
3110- <child>
3111- <widget class="GtkLabel" id="label156">
3112- <property name="visible">True</property>
3113- <property name="xalign">1</property>
3114- <property name="label" translatable="yes">Write buffer size</property>
3115- </widget>
3116- <packing>
3117- <property name="expand">False</property>
3118- <property name="fill">False</property>
3119- </packing>
3120- </child>
3121- <child>
3122- <widget class="GtkLabel" id="label166">
3123- <property name="visible">True</property>
3124- <property name="xalign">1</property>
3125- <property name="label" translatable="yes">Search history</property>
3126- </widget>
3127- <packing>
3128- <property name="expand">False</property>
3129- <property name="fill">False</property>
3130- <property name="position">1</property>
3131- </packing>
3132- </child>
3133- <child>
3134- <widget class="GtkLabel" id="label165">
3135- <property name="visible">True</property>
3136- <property name="xalign">1</property>
3137- <property name="label" translatable="yes">Bind address</property>
3138- </widget>
3139- <packing>
3140- <property name="expand">False</property>
3141- <property name="fill">False</property>
3142- <property name="position">2</property>
3143- </packing>
3144- </child>
3145- <child>
3146- <widget class="GtkLabel" id="label164">
3147- <property name="visible">True</property>
3148- <property name="xalign">1</property>
3149- <property name="label" translatable="yes">Socket read buffer</property>
3150- </widget>
3151- <packing>
3152- <property name="expand">False</property>
3153- <property name="fill">False</property>
3154- <property name="position">3</property>
3155- </packing>
3156- </child>
3157- <child>
3158- <widget class="GtkLabel" id="label163">
3159- <property name="visible">True</property>
3160- <property name="xalign">1</property>
3161- <property name="label" translatable="yes">Socket write buffer</property>
3162- </widget>
3163- <packing>
3164- <property name="expand">False</property>
3165- <property name="fill">False</property>
3166- <property name="position">4</property>
3167- </packing>
3168- </child>
3169- <child>
3170- <widget class="GtkLabel" id="label162">
3171- <property name="visible">True</property>
3172- <property name="xalign">1</property>
3173- <property name="label" translatable="yes">Auto refresh time</property>
3174- </widget>
3175- <packing>
3176- <property name="expand">False</property>
3177- <property name="fill">False</property>
3178- <property name="position">5</property>
3179- </packing>
3180- </child>
3181- </widget>
3182- <packing>
3183- <property name="position">3</property>
3184- </packing>
3185- </child>
3186- <child>
3187- <widget class="GtkVBox" id="vbox65">
3188- <property name="visible">True</property>
3189- <property name="spacing">4</property>
3190- <property name="homogeneous">True</property>
3191- <child>
3192- <widget class="GtkSpinButton" id="writeBufferSpinButton">
3193- <property name="visible">True</property>
3194- <property name="can_focus">True</property>
3195- <property name="adjustment">0 0 1024 64 10 0</property>
3196- <property name="climb_rate">1</property>
3197- <property name="numeric">True</property>
3198- </widget>
3199- <packing>
3200- <property name="expand">False</property>
3201- <property name="fill">False</property>
3202- </packing>
3203- </child>
3204- <child>
3205- <widget class="GtkSpinButton" id="searchHistorySpinButton">
3206- <property name="visible">True</property>
3207- <property name="can_focus">True</property>
3208- <property name="adjustment">10 0 100 1 10 0</property>
3209- <property name="climb_rate">1</property>
3210- <property name="numeric">True</property>
3211- </widget>
3212- <packing>
3213- <property name="expand">False</property>
3214- <property name="fill">False</property>
3215- <property name="position">1</property>
3216- </packing>
3217- </child>
3218- <child>
3219- <widget class="GtkEntry" id="bindAddressEntry">
3220- <property name="visible">True</property>
3221- <property name="can_focus">True</property>
3222- </widget>
3223- <packing>
3224- <property name="expand">False</property>
3225- <property name="fill">False</property>
3226- <property name="position">2</property>
3227- </packing>
3228- </child>
3229- <child>
3230- <widget class="GtkSpinButton" id="socketReadSpinButton">
3231- <property name="visible">True</property>
3232- <property name="can_focus">True</property>
3233- <property name="adjustment">0 0 102400 1 64 0</property>
3234- <property name="climb_rate">1</property>
3235- <property name="numeric">True</property>
3236- </widget>
3237- <packing>
3238- <property name="expand">False</property>
3239- <property name="fill">False</property>
3240- <property name="position">3</property>
3241- </packing>
3242- </child>
3243- <child>
3244- <widget class="GtkSpinButton" id="socketWriteSpinButton">
3245- <property name="visible">True</property>
3246- <property name="can_focus">True</property>
3247- <property name="adjustment">0 0 102400 1 64 0</property>
3248- <property name="climb_rate">1</property>
3249- <property name="numeric">True</property>
3250- </widget>
3251- <packing>
3252- <property name="expand">False</property>
3253- <property name="fill">False</property>
3254- <property name="position">4</property>
3255- </packing>
3256- </child>
3257- <child>
3258- <widget class="GtkSpinButton" id="autoRefreshSpinButton">
3259- <property name="visible">True</property>
3260- <property name="can_focus">True</property>
3261- <property name="adjustment">1 0 100 1 10 0</property>
3262- <property name="climb_rate">1</property>
3263- <property name="numeric">True</property>
3264- </widget>
3265- <packing>
3266- <property name="expand">False</property>
3267- <property name="fill">False</property>
3268- <property name="position">5</property>
3269- </packing>
3270- </child>
3271- </widget>
3272- <packing>
3273- <property name="expand">False</property>
3274- <property name="fill">False</property>
3275- <property name="position">4</property>
3276- </packing>
3277- </child>
3278- <child>
3279- <widget class="GtkVBox" id="vbox66">
3280- <property name="visible">True</property>
3281- <property name="spacing">4</property>
3282- <property name="homogeneous">True</property>
3283- <child>
3284- <widget class="GtkLabel" id="label155">
3285- <property name="visible">True</property>
3286- <property name="xalign">0</property>
3287- <property name="label" translatable="yes">KiB</property>
3288- </widget>
3289- <packing>
3290- <property name="expand">False</property>
3291- <property name="fill">False</property>
3292- </packing>
3293- </child>
3294- <child>
3295- <widget class="GtkLabel" id="label14">
3296- <property name="visible">True</property>
3297- </widget>
3298- <packing>
3299- <property name="position">1</property>
3300- </packing>
3301- </child>
3302- <child>
3303- <widget class="GtkLabel" id="label213">
3304- <property name="visible">True</property>
3305- </widget>
3306- <packing>
3307- <property name="expand">False</property>
3308- <property name="fill">False</property>
3309- <property name="position">2</property>
3310- </packing>
3311- </child>
3312- <child>
3313- <widget class="GtkLabel" id="label170">
3314- <property name="visible">True</property>
3315- <property name="xalign">0</property>
3316- <property name="label" translatable="yes">B</property>
3317- </widget>
3318- <packing>
3319- <property name="expand">False</property>
3320- <property name="fill">False</property>
3321- <property name="position">3</property>
3322- </packing>
3323- </child>
3324- <child>
3325- <widget class="GtkLabel" id="label171">
3326- <property name="visible">True</property>
3327- <property name="xalign">0</property>
3328- <property name="label" translatable="yes">B</property>
3329- </widget>
3330- <packing>
3331- <property name="expand">False</property>
3332- <property name="fill">False</property>
3333- <property name="position">4</property>
3334- </packing>
3335- </child>
3336- <child>
3337- <widget class="GtkLabel" id="label210">
3338- <property name="visible">True</property>
3339- </widget>
3340- <packing>
3341- <property name="expand">False</property>
3342- <property name="fill">False</property>
3343- <property name="position">5</property>
3344- </packing>
3345- </child>
3346- </widget>
3347- <packing>
3348- <property name="position">5</property>
3349- </packing>
3350- </child>
3351- </widget>
3352- <packing>
3353- <property name="expand">False</property>
3354- </packing>
3355+ <property name="n_rows">11</property>
3356+ <property name="n_columns">3</property>
3357+ <property name="column_spacing">10</property>
3358+ <child>
3359+ <widget class="GtkLabel" id="autoRefreshLabel">
3360+ <property name="visible">True</property>
3361+ <property name="xalign">0</property>
3362+ <property name="label" translatable="yes">Auto refresh _time:</property>
3363+ <property name="use_underline">True</property>
3364+ <property name="mnemonic_widget">autoRefreshSpinButton</property>
3365+ </widget>
3366+ <packing>
3367+ <property name="x_options">GTK_FILL</property>
3368+ </packing>
3369+ </child>
3370+ <child>
3371+ <widget class="GtkSpinButton" id="autoRefreshSpinButton">
3372+ <property name="visible">True</property>
3373+ <property name="can_focus">True</property>
3374+ <property name="invisible_char">&#x25CF;</property>
3375+ <property name="adjustment">1 0 100 1 10 0</property>
3376+ <property name="climb_rate">1</property>
3377+ <property name="numeric">True</property>
3378+ </widget>
3379+ <packing>
3380+ <property name="left_attach">1</property>
3381+ <property name="right_attach">2</property>
3382+ <property name="x_options">GTK_FILL</property>
3383+ </packing>
3384+ </child>
3385+ <child>
3386+ <widget class="GtkLabel" id="label167">
3387+ <property name="visible">True</property>
3388+ <property name="xalign">0</property>
3389+ <property name="label" translatable="yes">s</property>
3390+ </widget>
3391+ <packing>
3392+ <property name="left_attach">2</property>
3393+ <property name="right_attach">3</property>
3394+ </packing>
3395+ </child>
3396+ <child>
3397+ <widget class="GtkLabel" id="bindAddressLabel">
3398+ <property name="visible">True</property>
3399+ <property name="xalign">0</property>
3400+ <property name="label" translatable="yes">_Bind address:</property>
3401+ <property name="use_underline">True</property>
3402+ <property name="mnemonic_widget">bindAddressEntry</property>
3403+ </widget>
3404+ <packing>
3405+ <property name="top_attach">1</property>
3406+ <property name="bottom_attach">2</property>
3407+ <property name="x_options">GTK_FILL</property>
3408+ </packing>
3409+ </child>
3410+ <child>
3411+ <widget class="GtkEntry" id="bindAddressEntry">
3412+ <property name="visible">True</property>
3413+ <property name="can_focus">True</property>
3414+ <property name="invisible_char">&#x25CF;</property>
3415+ </widget>
3416+ <packing>
3417+ <property name="left_attach">1</property>
3418+ <property name="right_attach">2</property>
3419+ <property name="top_attach">1</property>
3420+ <property name="bottom_attach">2</property>
3421+ <property name="x_options">GTK_FILL</property>
3422+ </packing>
3423+ </child>
3424+ <child>
3425+ <widget class="GtkLabel" id="cidLabel">
3426+ <property name="visible">True</property>
3427+ <property name="xalign">0</property>
3428+ <property name="label" translatable="yes">CI_D:</property>
3429+ <property name="use_underline">True</property>
3430+ <property name="mnemonic_widget">CIDEntry</property>
3431+ </widget>
3432+ <packing>
3433+ <property name="top_attach">2</property>
3434+ <property name="bottom_attach">3</property>
3435+ <property name="x_options">GTK_FILL</property>
3436+ </packing>
3437+ </child>
3438+ <child>
3439+ <widget class="GtkEntry" id="CIDEntry">
3440+ <property name="visible">True</property>
3441+ <property name="can_focus">True</property>
3442+ <property name="invisible_char">&#x25CF;</property>
3443+ </widget>
3444+ <packing>
3445+ <property name="left_attach">1</property>
3446+ <property name="right_attach">2</property>
3447+ <property name="top_attach">2</property>
3448+ <property name="bottom_attach">3</property>
3449+ <property name="x_options">GTK_FILL</property>
3450+ </packing>
3451+ </child>
3452+ <child>
3453+ <widget class="GtkLabel" id="maxListSizeLabel">
3454+ <property name="visible">True</property>
3455+ <property name="xalign">0</property>
3456+ <property name="label" translatable="yes">Maximum _file list size:</property>
3457+ <property name="use_underline">True</property>
3458+ <property name="mnemonic_widget">maxListSizeSpinButton</property>
3459+ </widget>
3460+ <packing>
3461+ <property name="top_attach">3</property>
3462+ <property name="bottom_attach">4</property>
3463+ <property name="x_options">GTK_FILL</property>
3464+ </packing>
3465+ </child>
3466+ <child>
3467+ <widget class="GtkSpinButton" id="maxListSizeSpinButton">
3468+ <property name="visible">True</property>
3469+ <property name="can_focus">True</property>
3470+ <property name="invisible_char">&#x25CF;</property>
3471+ <property name="adjustment">0 0 1000 1 10 0</property>
3472+ <property name="climb_rate">1</property>
3473+ <property name="numeric">True</property>
3474+ </widget>
3475+ <packing>
3476+ <property name="left_attach">1</property>
3477+ <property name="right_attach">2</property>
3478+ <property name="top_attach">3</property>
3479+ <property name="bottom_attach">4</property>
3480+ <property name="x_options">GTK_FILL</property>
3481+ </packing>
3482+ </child>
3483+ <child>
3484+ <widget class="GtkLabel" id="label169">
3485+ <property name="visible">True</property>
3486+ <property name="xalign">0</property>
3487+ <property name="label" translatable="yes">MiB</property>
3488+ </widget>
3489+ <packing>
3490+ <property name="left_attach">2</property>
3491+ <property name="right_attach">3</property>
3492+ <property name="top_attach">3</property>
3493+ <property name="bottom_attach">4</property>
3494+ </packing>
3495+ </child>
3496+ <child>
3497+ <widget class="GtkLabel" id="hashSpeedLabel">
3498+ <property name="visible">True</property>
3499+ <property name="xalign">0</property>
3500+ <property name="label" translatable="yes">Maximum _hash speed:</property>
3501+ <property name="use_underline">True</property>
3502+ <property name="mnemonic_widget">hashSpeedSpinButton</property>
3503+ </widget>
3504+ <packing>
3505+ <property name="top_attach">4</property>
3506+ <property name="bottom_attach">5</property>
3507+ <property name="x_options">GTK_FILL</property>
3508+ </packing>
3509+ </child>
3510+ <child>
3511+ <widget class="GtkSpinButton" id="hashSpeedSpinButton">
3512+ <property name="visible">True</property>
3513+ <property name="can_focus">True</property>
3514+ <property name="invisible_char">&#x25CF;</property>
3515+ <property name="adjustment">0 0 102400 1 64 0</property>
3516+ <property name="climb_rate">1</property>
3517+ <property name="numeric">True</property>
3518+ </widget>
3519+ <packing>
3520+ <property name="left_attach">1</property>
3521+ <property name="right_attach">2</property>
3522+ <property name="top_attach">4</property>
3523+ <property name="bottom_attach">5</property>
3524+ <property name="x_options">GTK_FILL</property>
3525+ </packing>
3526+ </child>
3527+ <child>
3528+ <widget class="GtkLabel" id="label154">
3529+ <property name="visible">True</property>
3530+ <property name="xalign">0</property>
3531+ <property name="label" translatable="yes">MiB/s</property>
3532+ </widget>
3533+ <packing>
3534+ <property name="left_attach">2</property>
3535+ <property name="right_attach">3</property>
3536+ <property name="top_attach">4</property>
3537+ <property name="bottom_attach">5</property>
3538+ </packing>
3539+ </child>
3540+ <child>
3541+ <widget class="GtkLabel" id="slotSizeLabel">
3542+ <property name="visible">True</property>
3543+ <property name="xalign">0</property>
3544+ <property name="label" translatable="yes">_Mini slot size:</property>
3545+ <property name="use_underline">True</property>
3546+ <property name="mnemonic_widget">slotSizeSpinButton</property>
3547+ </widget>
3548+ <packing>
3549+ <property name="top_attach">5</property>
3550+ <property name="bottom_attach">6</property>
3551+ <property name="x_options">GTK_FILL</property>
3552+ </packing>
3553+ </child>
3554+ <child>
3555+ <widget class="GtkSpinButton" id="slotSizeSpinButton">
3556+ <property name="visible">True</property>
3557+ <property name="can_focus">True</property>
3558+ <property name="invisible_char">&#x25CF;</property>
3559+ <property name="adjustment">64 0 10240 1 10 0</property>
3560+ <property name="climb_rate">1</property>
3561+ <property name="numeric">True</property>
3562+ </widget>
3563+ <packing>
3564+ <property name="left_attach">1</property>
3565+ <property name="right_attach">2</property>
3566+ <property name="top_attach">5</property>
3567+ <property name="bottom_attach">6</property>
3568+ <property name="x_options">GTK_FILL</property>
3569+ </packing>
3570+ </child>
3571+ <child>
3572+ <widget class="GtkLabel" id="label168">
3573+ <property name="visible">True</property>
3574+ <property name="xalign">0</property>
3575+ <property name="label" translatable="yes">KiB</property>
3576+ </widget>
3577+ <packing>
3578+ <property name="left_attach">2</property>
3579+ <property name="right_attach">3</property>
3580+ <property name="top_attach">5</property>
3581+ <property name="bottom_attach">6</property>
3582+ </packing>
3583+ </child>
3584+ <child>
3585+ <widget class="GtkLabel" id="pmHistoryLabel">
3586+ <property name="visible">True</property>
3587+ <property name="xalign">0</property>
3588+ <property name="label" translatable="yes">_Private message history:</property>
3589+ <property name="use_underline">True</property>
3590+ <property name="mnemonic_widget">pmHistorySpinButton</property>
3591+ </widget>
3592+ <packing>
3593+ <property name="top_attach">6</property>
3594+ <property name="bottom_attach">7</property>
3595+ <property name="x_options">GTK_FILL</property>
3596+ </packing>
3597+ </child>
3598+ <child>
3599+ <widget class="GtkSpinButton" id="pmHistorySpinButton">
3600+ <property name="visible">True</property>
3601+ <property name="can_focus">True</property>
3602+ <property name="invisible_char">&#x25CF;</property>
3603+ <property name="adjustment">10 0 100 1 10 0</property>
3604+ <property name="climb_rate">1</property>
3605+ <property name="numeric">True</property>
3606+ </widget>
3607+ <packing>
3608+ <property name="left_attach">1</property>
3609+ <property name="right_attach">2</property>
3610+ <property name="top_attach">6</property>
3611+ <property name="bottom_attach">7</property>
3612+ <property name="x_options">GTK_FILL</property>
3613+ </packing>
3614+ </child>
3615+ <child>
3616+ <widget class="GtkLabel" id="searchHistoryLabel">
3617+ <property name="visible">True</property>
3618+ <property name="xalign">0</property>
3619+ <property name="label" translatable="yes">_Search history:</property>
3620+ <property name="use_underline">True</property>
3621+ <property name="mnemonic_widget">searchHistorySpinButton</property>
3622+ </widget>
3623+ <packing>
3624+ <property name="top_attach">7</property>
3625+ <property name="bottom_attach">8</property>
3626+ <property name="x_options">GTK_FILL</property>
3627+ </packing>
3628+ </child>
3629+ <child>
3630+ <widget class="GtkSpinButton" id="searchHistorySpinButton">
3631+ <property name="visible">True</property>
3632+ <property name="can_focus">True</property>
3633+ <property name="invisible_char">&#x25CF;</property>
3634+ <property name="adjustment">10 0 100 1 10 0</property>
3635+ <property name="climb_rate">1</property>
3636+ <property name="numeric">True</property>
3637+ </widget>
3638+ <packing>
3639+ <property name="left_attach">1</property>
3640+ <property name="right_attach">2</property>
3641+ <property name="top_attach">7</property>
3642+ <property name="bottom_attach">8</property>
3643+ <property name="x_options">GTK_FILL</property>
3644+ </packing>
3645+ </child>
3646+ <child>
3647+ <widget class="GtkLabel" id="socketReadLabel">
3648+ <property name="visible">True</property>
3649+ <property name="xalign">0</property>
3650+ <property name="label" translatable="yes">Socket _read buffer:</property>
3651+ <property name="use_underline">True</property>
3652+ <property name="mnemonic_widget">socketReadSpinButton</property>
3653+ </widget>
3654+ <packing>
3655+ <property name="top_attach">8</property>
3656+ <property name="bottom_attach">9</property>
3657+ <property name="x_options">GTK_FILL</property>
3658+ </packing>
3659+ </child>
3660+ <child>
3661+ <widget class="GtkSpinButton" id="socketReadSpinButton">
3662+ <property name="visible">True</property>
3663+ <property name="can_focus">True</property>
3664+ <property name="invisible_char">&#x25CF;</property>
3665+ <property name="adjustment">0 0 102400 1 64 0</property>
3666+ <property name="climb_rate">1</property>
3667+ <property name="numeric">True</property>
3668+ </widget>
3669+ <packing>
3670+ <property name="left_attach">1</property>
3671+ <property name="right_attach">2</property>
3672+ <property name="top_attach">8</property>
3673+ <property name="bottom_attach">9</property>
3674+ <property name="x_options">GTK_FILL</property>
3675+ </packing>
3676+ </child>
3677+ <child>
3678+ <widget class="GtkLabel" id="label170">
3679+ <property name="visible">True</property>
3680+ <property name="xalign">0</property>
3681+ <property name="label" translatable="yes">B</property>
3682+ </widget>
3683+ <packing>
3684+ <property name="left_attach">2</property>
3685+ <property name="right_attach">3</property>
3686+ <property name="top_attach">8</property>
3687+ <property name="bottom_attach">9</property>
3688+ </packing>
3689+ </child>
3690+ <child>
3691+ <widget class="GtkLabel" id="socketWriteLabel">
3692+ <property name="visible">True</property>
3693+ <property name="xalign">0</property>
3694+ <property name="label" translatable="yes">Socket _write buffer:</property>
3695+ <property name="use_underline">True</property>
3696+ <property name="mnemonic_widget">socketWriteSpinButton</property>
3697+ </widget>
3698+ <packing>
3699+ <property name="top_attach">9</property>
3700+ <property name="bottom_attach">10</property>
3701+ <property name="x_options">GTK_FILL</property>
3702+ </packing>
3703+ </child>
3704+ <child>
3705+ <widget class="GtkSpinButton" id="socketWriteSpinButton">
3706+ <property name="visible">True</property>
3707+ <property name="can_focus">True</property>
3708+ <property name="invisible_char">&#x25CF;</property>
3709+ <property name="adjustment">0 0 102400 1 64 0</property>
3710+ <property name="climb_rate">1</property>
3711+ <property name="numeric">True</property>
3712+ </widget>
3713+ <packing>
3714+ <property name="left_attach">1</property>
3715+ <property name="right_attach">2</property>
3716+ <property name="top_attach">9</property>
3717+ <property name="bottom_attach">10</property>
3718+ <property name="x_options">GTK_FILL</property>
3719+ </packing>
3720+ </child>
3721+ <child>
3722+ <widget class="GtkLabel" id="label171">
3723+ <property name="visible">True</property>
3724+ <property name="xalign">0</property>
3725+ <property name="label" translatable="yes">B</property>
3726+ </widget>
3727+ <packing>
3728+ <property name="left_attach">2</property>
3729+ <property name="right_attach">3</property>
3730+ <property name="top_attach">9</property>
3731+ <property name="bottom_attach">10</property>
3732+ </packing>
3733+ </child>
3734+ <child>
3735+ <widget class="GtkLabel" id="writeBufferLabel">
3736+ <property name="visible">True</property>
3737+ <property name="xalign">0</property>
3738+ <property name="label" translatable="yes">Wr_ite buffer size:</property>
3739+ <property name="use_underline">True</property>
3740+ <property name="mnemonic_widget">writeBufferSpinButton</property>
3741+ </widget>
3742+ <packing>
3743+ <property name="top_attach">10</property>
3744+ <property name="bottom_attach">11</property>
3745+ <property name="x_options">GTK_FILL</property>
3746+ </packing>
3747+ </child>
3748+ <child>
3749+ <widget class="GtkSpinButton" id="writeBufferSpinButton">
3750+ <property name="visible">True</property>
3751+ <property name="can_focus">True</property>
3752+ <property name="invisible_char">&#x25CF;</property>
3753+ <property name="adjustment">0 0 1024 64 10 0</property>
3754+ <property name="climb_rate">1</property>
3755+ <property name="numeric">True</property>
3756+ </widget>
3757+ <packing>
3758+ <property name="left_attach">1</property>
3759+ <property name="right_attach">2</property>
3760+ <property name="top_attach">10</property>
3761+ <property name="bottom_attach">11</property>
3762+ <property name="x_options">GTK_FILL</property>
3763+ </packing>
3764+ </child>
3765+ <child>
3766+ <widget class="GtkLabel" id="label155">
3767+ <property name="visible">True</property>
3768+ <property name="xalign">0</property>
3769+ <property name="label" translatable="yes">KiB</property>
3770+ </widget>
3771+ <packing>
3772+ <property name="left_attach">2</property>
3773+ <property name="right_attach">3</property>
3774+ <property name="top_attach">10</property>
3775+ <property name="bottom_attach">11</property>
3776+ </packing>
3777+ </child>
3778+ <child>
3779+ <placeholder/>
3780+ </child>
3781+ <child>
3782+ <placeholder/>
3783+ </child>
3784+ <child>
3785+ <placeholder/>
3786+ </child>
3787+ <child>
3788+ <placeholder/>
3789+ </child>
3790+ <child>
3791+ <placeholder/>
3792 </child>
3793 </widget>
3794 <packing>
3795@@ -3540,124 +3489,100 @@
3796 <child>
3797 <widget class="GtkAlignment" id="alignment4">
3798 <property name="visible">True</property>
3799- <property name="left_padding">12</property>
3800+ <property name="left_padding">8</property>
3801 <child>
3802 <widget class="GtkTable" id="table2">
3803 <property name="visible">True</property>
3804 <property name="n_rows">3</property>
3805- <property name="n_columns">3</property>
3806- <child>
3807- <widget class="GtkButton" id="trustedCertificatesPathButton">
3808- <property name="visible">True</property>
3809- <property name="label" translatable="yes">Browse...</property>
3810- <property name="response_id">0</property>
3811- </widget>
3812- <packing>
3813- <property name="left_attach">2</property>
3814- <property name="right_attach">3</property>
3815- <property name="top_attach">2</property>
3816- <property name="bottom_attach">3</property>
3817- <property name="x_options"></property>
3818- <property name="y_options"></property>
3819- </packing>
3820- </child>
3821- <child>
3822- <widget class="GtkButton" id="certificateFileButton">
3823- <property name="visible">True</property>
3824- <property name="label" translatable="yes">Browse...</property>
3825- <property name="response_id">0</property>
3826- </widget>
3827- <packing>
3828- <property name="left_attach">2</property>
3829- <property name="right_attach">3</property>
3830- <property name="top_attach">1</property>
3831- <property name="bottom_attach">2</property>
3832- <property name="x_options"></property>
3833- <property name="y_options"></property>
3834- </packing>
3835- </child>
3836- <child>
3837- <widget class="GtkButton" id="privateKeyButton">
3838- <property name="visible">True</property>
3839- <property name="label" translatable="yes">Browse...</property>
3840- <property name="response_id">0</property>
3841- </widget>
3842- <packing>
3843- <property name="left_attach">2</property>
3844- <property name="right_attach">3</property>
3845- <property name="x_options"></property>
3846- <property name="y_options"></property>
3847- </packing>
3848- </child>
3849- <child>
3850- <widget class="GtkEntry" id="trustedCertificatesPathEntry">
3851- <property name="visible">True</property>
3852- </widget>
3853- <packing>
3854- <property name="left_attach">1</property>
3855- <property name="right_attach">2</property>
3856- <property name="top_attach">2</property>
3857- <property name="bottom_attach">3</property>
3858- </packing>
3859- </child>
3860- <child>
3861- <widget class="GtkEntry" id="certificateFileEntry">
3862- <property name="visible">True</property>
3863- </widget>
3864- <packing>
3865- <property name="left_attach">1</property>
3866- <property name="right_attach">2</property>
3867- <property name="top_attach">1</property>
3868- <property name="bottom_attach">2</property>
3869- </packing>
3870- </child>
3871- <child>
3872- <widget class="GtkEntry" id="privateKeyEntry">
3873- <property name="visible">True</property>
3874- </widget>
3875- <packing>
3876- <property name="left_attach">1</property>
3877- <property name="right_attach">2</property>
3878+ <property name="n_columns">2</property>
3879+ <property name="column_spacing">15</property>
3880+ <property name="row_spacing">5</property>
3881+ <child>
3882+ <widget class="GtkLabel" id="privateKeyLabel">
3883+ <property name="visible">True</property>
3884+ <property name="xalign">0</property>
3885+ <property name="label" translatable="yes">_Private key file:</property>
3886+ <property name="use_underline">True</property>
3887+ <property name="mnemonic_widget">privateKeyFileChooserButton</property>
3888+ </widget>
3889+ <packing>
3890+ <property name="x_options">GTK_FILL</property>
3891+ <property name="y_options"></property>
3892+ </packing>
3893+ </child>
3894+ <child>
3895+ <widget class="GtkFileChooserButton" id="privateKeyFileChooserButton">
3896+ <property name="visible">True</property>
3897+ <property name="local_only">False</property>
3898+ <property name="action">open</property>
3899+ <property name="title" translatable="yes">Select a File</property>
3900+ </widget>
3901+ <packing>
3902+ <property name="left_attach">1</property>
3903+ <property name="right_attach">2</property>
3904+ <property name="x_options">GTK_FILL|GTK_EXPAND</property>
3905+ <property name="y_options"></property>
3906+ </packing>
3907+ </child>
3908+ <child>
3909+ <widget class="GtkLabel" id="certificateFileLabel">
3910+ <property name="visible">True</property>
3911+ <property name="xalign">0</property>
3912+ <property name="label" translatable="yes">C_ertificate file:</property>
3913+ <property name="mnemonic_widget">certificateFileChooserButton</property>
3914+ <property name="use_underline">True</property>
3915+ </widget>
3916+ <packing>
3917+ <property name="top_attach">1</property>
3918+ <property name="bottom_attach">2</property>
3919+ <property name="x_options">GTK_FILL</property>
3920+ <property name="y_options"></property>
3921+ </packing>
3922+ </child>
3923+ <child>
3924+ <widget class="GtkFileChooserButton" id="certificateFileChooserButton">
3925+ <property name="visible">True</property>
3926+ <property name="local_only">False</property>
3927+ <property name="action">open</property>
3928+ <property name="title" translatable="yes">Select a File</property>
3929+ </widget>
3930+ <packing>
3931+ <property name="left_attach">1</property>
3932+ <property name="right_attach">2</property>
3933+ <property name="top_attach">1</property>
3934+ <property name="bottom_attach">2</property>
3935+ <property name="x_options">GTK_FILL|GTK_EXPAND</property>
3936+ <property name="y_options"></property>
3937 </packing>
3938 </child>
3939 <child>
3940 <widget class="GtkLabel" id="trustedCertificatesPathLabel">
3941 <property name="visible">True</property>
3942- <property name="xalign">1</property>
3943- <property name="label" translatable="yes">Trusted certificates path</property>
3944- <property name="single_line_mode">True</property>
3945- </widget>
3946- <packing>
3947- <property name="top_attach">2</property>
3948- <property name="bottom_attach">3</property>
3949- <property name="x_options">GTK_FILL</property>
3950- <property name="y_options"></property>
3951- </packing>
3952- </child>
3953- <child>
3954- <widget class="GtkLabel" id="certificateFileLabel">
3955- <property name="visible">True</property>
3956- <property name="xalign">1</property>
3957- <property name="label" translatable="yes">Certificate file</property>
3958- <property name="single_line_mode">True</property>
3959- </widget>
3960- <packing>
3961- <property name="top_attach">1</property>
3962- <property name="bottom_attach">2</property>
3963- <property name="x_options">GTK_FILL</property>
3964- <property name="y_options"></property>
3965- </packing>
3966- </child>
3967- <child>
3968- <widget class="GtkLabel" id="privateKeyLabel">
3969- <property name="visible">True</property>
3970- <property name="xalign">1</property>
3971- <property name="label" translatable="yes">Private key file</property>
3972- <property name="justify">GTK_JUSTIFY_RIGHT</property>
3973- <property name="single_line_mode">True</property>
3974- </widget>
3975- <packing>
3976- <property name="x_options">GTK_FILL</property>
3977+ <property name="xalign">0</property>
3978+ <property name="label" translatable="yes">_Trusted certificates path:</property>
3979+ <property name="use_underline">True</property>
3980+ <property name="mnemonic_widget">trustedCertificatesPathFileChooserButton</property>
3981+ </widget>
3982+ <packing>
3983+ <property name="top_attach">2</property>
3984+ <property name="bottom_attach">3</property>
3985+ <property name="x_options">GTK_FILL</property>
3986+ <property name="y_options"></property>
3987+ </packing>
3988+ </child>
3989+ <child>
3990+ <widget class="GtkFileChooserButton" id="trustedCertificatesPathFileChooserButton">
3991+ <property name="visible">True</property>
3992+ <property name="local_only">False</property>
3993+ <property name="action">select-folder</property>
3994+ <property name="title" translatable="yes">Select a Folder</property>
3995+ </widget>
3996+ <packing>
3997+ <property name="left_attach">1</property>
3998+ <property name="right_attach">2</property>
3999+ <property name="top_attach">2</property>
4000+ <property name="bottom_attach">3</property>
4001+ <property name="x_options">GTK_FILL|GTK_EXPAND</property>
4002 <property name="y_options"></property>
4003 </packing>
4004 </child>
4005@@ -3704,8 +3629,10 @@
4006 <child>
4007 <widget class="GtkLabel" id="otherOptionsLabel">
4008 <property name="visible">True</property>
4009- <property name="label" translatable="yes">&lt;b&gt;Other Security Options&lt;/b&gt;</property>
4010+ <property name="label" translatable="yes">&lt;b&gt;_Security Options&lt;/b&gt;</property>
4011 <property name="use_markup">True</property>
4012+ <property name="use_underline">True</property>
4013+ <property name="mnemonic_widget">certificatesTreeView</property>
4014 </widget>
4015 <packing>
4016 <property name="type">label_item</property>
4017@@ -3722,9 +3649,10 @@
4018 <child>
4019 <widget class="GtkButton" id="generateCertificatesButton">
4020 <property name="visible">True</property>
4021- <property name="label" translatable="yes">Generate certificates</property>
4022+ <property name="label" translatable="yes">_Generate certificates</property>
4023 <property name="xalign">1</property>
4024 <property name="response_id">0</property>
4025+ <property name="use_underline">True</property>
4026 </widget>
4027 <packing>
4028 <property name="expand">False</property>
4029@@ -3749,7 +3677,7 @@
4030 <child>
4031 <widget class="GtkLabel" id="certificates">
4032 <property name="visible">True</property>
4033- <property name="label" translatable="yes">Security Certificates</property>
4034+ <property name="label" translatable="yes">Security</property>
4035 </widget>
4036 <packing>
4037 <property name="type">tab</property>
4038@@ -3815,139 +3743,8 @@
4039 </widget>
4040 </child>
4041 </widget>
4042- <widget class="GtkDialog" id="publicHubsDialog">
4043- <property name="width_request">500</property>
4044- <property name="height_request">250</property>
4045- <property name="title" translatable="yes">Configure hub lists</property>
4046- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4047- <child internal-child="vbox">
4048- <widget class="GtkVBox" id="dialog-vbox1">
4049- <property name="visible">True</property>
4050- <child>
4051- <widget class="GtkVBox" id="vbox8">
4052- <property name="visible">True</property>
4053- <property name="border_width">8</property>
4054- <property name="spacing">4</property>
4055- <child>
4056- <widget class="GtkHBox" id="hbox5">
4057- <property name="visible">True</property>
4058- <property name="spacing">4</property>
4059- <child>
4060- <widget class="GtkTreeView" id="publicHubsDialogTreeView">
4061- <property name="visible">True</property>
4062- <property name="can_focus">True</property>
4063- </widget>
4064- </child>
4065- <child>
4066- <widget class="GtkVBox" id="vbox6">
4067- <property name="visible">True</property>
4068- <property name="spacing">4</property>
4069- <child>
4070- <widget class="GtkButton" id="publicHubsDialogAddButton">
4071- <property name="visible">True</property>
4072- <property name="can_focus">True</property>
4073- <property name="label">gtk-add</property>
4074- <property name="use_stock">True</property>
4075- <property name="response_id">0</property>
4076- </widget>
4077- <packing>
4078- <property name="expand">False</property>
4079- <property name="fill">False</property>
4080- </packing>
4081- </child>
4082- <child>
4083- <widget class="GtkButton" id="publicHubsDialogUpButton">
4084- <property name="visible">True</property>
4085- <property name="can_focus">True</property>
4086- <property name="label">gtk-go-up</property>
4087- <property name="use_stock">True</property>
4088- <property name="response_id">0</property>
4089- </widget>
4090- <packing>
4091- <property name="expand">False</property>
4092- <property name="fill">False</property>
4093- <property name="position">1</property>
4094- </packing>
4095- </child>
4096- <child>
4097- <widget class="GtkButton" id="publicHubsDialogDownButton">
4098- <property name="visible">True</property>
4099- <property name="can_focus">True</property>
4100- <property name="label">gtk-go-down</property>
4101- <property name="use_stock">True</property>
4102- <property name="response_id">0</property>
4103- </widget>
4104- <packing>
4105- <property name="expand">False</property>
4106- <property name="fill">False</property>
4107- <property name="position">2</property>
4108- </packing>
4109- </child>
4110- <child>
4111- <widget class="GtkButton" id="publicHubsDialogRemoveButton">
4112- <property name="visible">True</property>
4113- <property name="can_focus">True</property>
4114- <property name="label">gtk-remove</property>
4115- <property name="use_stock">True</property>
4116- <property name="response_id">0</property>
4117- </widget>
4118- <packing>
4119- <property name="expand">False</property>
4120- <property name="fill">False</property>
4121- <property name="position">3</property>
4122- </packing>
4123- </child>
4124- </widget>
4125- <packing>
4126- <property name="expand">False</property>
4127- <property name="position">1</property>
4128- </packing>
4129- </child>
4130- </widget>
4131- </child>
4132- <child>
4133- <widget class="GtkLabel" id="label3">
4134- <property name="visible">True</property>
4135- <property name="label" translatable="yes">&lt;b&gt;Note:&lt;/b&gt; Edit urls in the list by clicking them once when selected</property>
4136- <property name="use_markup">True</property>
4137- </widget>
4138- <packing>
4139- <property name="expand">False</property>
4140- <property name="fill">False</property>
4141- <property name="position">1</property>
4142- </packing>
4143- </child>
4144- </widget>
4145- <packing>
4146- <property name="position">2</property>
4147- </packing>
4148- </child>
4149- <child internal-child="action_area">
4150- <widget class="GtkHButtonBox" id="dialog-action_area1">
4151- <property name="visible">True</property>
4152- <property name="layout_style">GTK_BUTTONBOX_END</property>
4153- <child>
4154- <widget class="GtkButton" id="okbutton1">
4155- <property name="visible">True</property>
4156- <property name="can_focus">True</property>
4157- <property name="can_default">True</property>
4158- <property name="has_default">True</property>
4159- <property name="label">gtk-ok</property>
4160- <property name="use_stock">True</property>
4161- <property name="response_id">-5</property>
4162- </widget>
4163- </child>
4164- </widget>
4165- <packing>
4166- <property name="expand">False</property>
4167- <property name="pack_type">GTK_PACK_END</property>
4168- </packing>
4169- </child>
4170- </widget>
4171- </child>
4172- </widget>
4173 <widget class="GtkDialog" id="favoriteNameDialog">
4174- <property name="title" translatable="yes">Favorite name</property>
4175+ <property name="title" translatable="yes">Favorite Name</property>
4176 <property name="resizable">False</property>
4177 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4178 <child internal-child="vbox">
4179@@ -3978,8 +3775,9 @@
4180 <child>
4181 <widget class="GtkLabel" id="label63">
4182 <property name="visible">True</property>
4183- <property name="label" translatable="yes">&lt;b&gt;Under what name you see the directory&lt;/b&gt;</property>
4184- <property name="use_markup">True</property>
4185+ <property name="label" translatable="yes">_Alias for the favorite download directory:</property>
4186+ <property name="use_underline">True</property>
4187+ <property name="mnemonic_widget">favoriteNameDialogEntry</property>
4188 </widget>
4189 <packing>
4190 <property name="type">label_item</property>
4191@@ -4029,7 +3827,7 @@
4192 </child>
4193 </widget>
4194 <widget class="GtkDialog" id="virtualNameDialog">
4195- <property name="title" translatable="yes">Virtual name</property>
4196+ <property name="title" translatable="yes">Virtual Name</property>
4197 <property name="resizable">False</property>
4198 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4199 <child internal-child="vbox">
4200@@ -4044,6 +3842,7 @@
4201 <widget class="GtkVBox" id="vbox26">
4202 <property name="visible">True</property>
4203 <property name="border_width">8</property>
4204+ <property name="spacing">10</property>
4205 <child>
4206 <widget class="GtkEntry" id="virtualNameDialogEntry">
4207 <property name="visible">True</property>
4208@@ -4055,14 +3854,27 @@
4209 <property name="fill">False</property>
4210 </packing>
4211 </child>
4212+ <child>
4213+ <widget class="GtkLabel" id="label34">
4214+ <property name="visible">True</property>
4215+ <property name="xalign">0</property>
4216+ <property name="label" translatable="yes">Note: New files are added to the share only once they've been hashed</property>
4217+ </widget>
4218+ <packing>
4219+ <property name="expand">False</property>
4220+ <property name="fill">False</property>
4221+ <property name="position">1</property>
4222+ </packing>
4223+ </child>
4224 </widget>
4225 </child>
4226 <child>
4227 <widget class="GtkLabel" id="label65">
4228 <property name="visible">True</property>
4229 <property name="xalign">0</property>
4230- <property name="label" translatable="yes">&lt;b&gt;Name under which the others see the directory&lt;/b&gt;</property>
4231- <property name="use_markup">True</property>
4232+ <property name="label" translatable="yes">_Alias for the shared directory:</property>
4233+ <property name="use_underline">True</property>
4234+ <property name="mnemonic_widget">virtualNameDialogEntry</property>
4235 </widget>
4236 <packing>
4237 <property name="type">label_item</property>
4238@@ -4111,7 +3923,7 @@
4239 </child>
4240 </widget>
4241 <widget class="GtkFileChooserDialog" id="dirChooserDialog">
4242- <property name="title" translatable="yes">Choose a directory</property>
4243+ <property name="title" translatable="yes">Select a Folder</property>
4244 <property name="modal">True</property>
4245 <property name="local_only">False</property>
4246 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4247@@ -4161,59 +3973,9 @@
4248 </widget>
4249 </child>
4250 </widget>
4251- <widget class="GtkFileChooserDialog" id="fileChooserDialog">
4252- <property name="border_width">5</property>
4253- <property name="title" translatable="yes">Choose a File</property>
4254- <property name="modal">True</property>
4255- <property name="local_only">False</property>
4256- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4257- <property name="has_separator">False</property>
4258- <child internal-child="vbox">
4259- <widget class="GtkVBox" id="dialog-vbox9">
4260- <property name="visible">True</property>
4261- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK</property>
4262- <property name="spacing">2</property>
4263- <child>
4264- <placeholder/>
4265- </child>
4266- <child internal-child="action_area">
4267- <widget class="GtkHButtonBox" id="dialog-action_area9">
4268- <property name="visible">True</property>
4269- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK</property>
4270- <property name="layout_style">GTK_BUTTONBOX_END</property>
4271- <child>
4272- <widget class="GtkButton" id="button4">
4273- <property name="visible">True</property>
4274- <property name="label" translatable="yes">gtk-cancel</property>
4275- <property name="use_stock">True</property>
4276- <property name="response_id">-6</property>
4277- </widget>
4278- </child>
4279- <child>
4280- <widget class="GtkButton" id="button3">
4281- <property name="visible">True</property>
4282- <property name="can_default">True</property>
4283- <property name="has_default">True</property>
4284- <property name="label" translatable="yes">gtk-open</property>
4285- <property name="use_stock">True</property>
4286- <property name="response_id">-5</property>
4287- </widget>
4288- <packing>
4289- <property name="position">1</property>
4290- </packing>
4291- </child>
4292- </widget>
4293- <packing>
4294- <property name="expand">False</property>
4295- <property name="pack_type">GTK_PACK_END</property>
4296- </packing>
4297- </child>
4298- </widget>
4299- </child>
4300- </widget>
4301 <widget class="GtkDialog" id="commandDialog">
4302- <property name="title" translatable="yes">Modify User Command</property>
4303- <property name="resizable">False</property>
4304+ <property name="title" translatable="yes">Edit User Command</property>
4305+ <property name="default_width">500</property>
4306 <property name="modal">True</property>
4307 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4308 <child internal-child="vbox">
4309@@ -4238,7 +4000,7 @@
4310 <widget class="GtkRadioButton" id="commandDialogRaw">
4311 <property name="visible">True</property>
4312 <property name="can_focus">True</property>
4313- <property name="label" translatable="yes">Raw</property>
4314+ <property name="label" translatable="yes">_Raw</property>
4315 <property name="use_underline">True</property>
4316 <property name="response_id">0</property>
4317 <property name="draw_indicator">True</property>
4318@@ -4254,7 +4016,7 @@
4319 <widget class="GtkRadioButton" id="commandDialogPM">
4320 <property name="visible">True</property>
4321 <property name="can_focus">True</property>
4322- <property name="label" translatable="yes">PM</property>
4323+ <property name="label" translatable="yes">_Private Message</property>
4324 <property name="use_underline">True</property>
4325 <property name="response_id">0</property>
4326 <property name="draw_indicator">True</property>
4327@@ -4272,7 +4034,7 @@
4328 <widget class="GtkRadioButton" id="commandDialogChat">
4329 <property name="visible">True</property>
4330 <property name="can_focus">True</property>
4331- <property name="label" translatable="yes">Chat</property>
4332+ <property name="label" translatable="yes">Ch_at</property>
4333 <property name="use_underline">True</property>
4334 <property name="response_id">0</property>
4335 <property name="draw_indicator">True</property>
4336@@ -4288,7 +4050,7 @@
4337 <widget class="GtkRadioButton" id="commandDialogSeparator">
4338 <property name="visible">True</property>
4339 <property name="can_focus">True</property>
4340- <property name="label" translatable="yes">Separator</property>
4341+ <property name="label" translatable="yes">_Separator</property>
4342 <property name="use_underline">True</property>
4343 <property name="response_id">0</property>
4344 <property name="draw_indicator">True</property>
4345@@ -4325,7 +4087,7 @@
4346 <widget class="GtkCheckButton" id="commandDialogSearchMenu">
4347 <property name="visible">True</property>
4348 <property name="can_focus">True</property>
4349- <property name="label" translatable="yes">Search Menu</property>
4350+ <property name="label" translatable="yes">S_earch</property>
4351 <property name="use_underline">True</property>
4352 <property name="response_id">0</property>
4353 <property name="draw_indicator">True</property>
4354@@ -4340,7 +4102,7 @@
4355 <widget class="GtkCheckButton" id="commandDialogUserMenu">
4356 <property name="visible">True</property>
4357 <property name="can_focus">True</property>
4358- <property name="label" translatable="yes">Chat Menu</property>
4359+ <property name="label" translatable="yes">Ch_at</property>
4360 <property name="use_underline">True</property>
4361 <property name="response_id">0</property>
4362 <property name="draw_indicator">True</property>
4363@@ -4355,7 +4117,7 @@
4364 <widget class="GtkCheckButton" id="commandDialogFilelistMenu">
4365 <property name="visible">True</property>
4366 <property name="can_focus">True</property>
4367- <property name="label" translatable="yes">Filelist Menu</property>
4368+ <property name="label" translatable="yes">_File list</property>
4369 <property name="use_underline">True</property>
4370 <property name="response_id">0</property>
4371 <property name="draw_indicator">True</property>
4372@@ -4372,7 +4134,7 @@
4373 <widget class="GtkCheckButton" id="commandDialogHubMenu">
4374 <property name="visible">True</property>
4375 <property name="can_focus">True</property>
4376- <property name="label" translatable="yes">Hub Menu</property>
4377+ <property name="label" translatable="yes">_Hub</property>
4378 <property name="use_underline">True</property>
4379 <property name="response_id">0</property>
4380 <property name="draw_indicator">True</property>
4381@@ -4386,7 +4148,7 @@
4382 <child>
4383 <widget class="GtkLabel" id="label68">
4384 <property name="visible">True</property>
4385- <property name="label" translatable="yes">&lt;b&gt;Context&lt;/b&gt;</property>
4386+ <property name="label" translatable="yes">&lt;b&gt;Menu Context&lt;/b&gt;</property>
4387 <property name="use_markup">True</property>
4388 </widget>
4389 <packing>
4390@@ -4414,7 +4176,9 @@
4391 <widget class="GtkLabel" id="label70">
4392 <property name="visible">True</property>
4393 <property name="xalign">0</property>
4394- <property name="label" translatable="yes">Name</property>
4395+ <property name="label" translatable="yes">_Name:</property>
4396+ <property name="use_underline">True</property>
4397+ <property name="mnemonic_widget">commandDialogName</property>
4398 </widget>
4399 <packing>
4400 <property name="expand">False</property>
4401@@ -4442,7 +4206,9 @@
4402 <widget class="GtkLabel" id="label71">
4403 <property name="visible">True</property>
4404 <property name="xalign">0</property>
4405- <property name="label" translatable="yes">Command</property>
4406+ <property name="label" translatable="yes">Co_mmand:</property>
4407+ <property name="use_underline">True</property>
4408+ <property name="mnemonic_widget">commandDialogCommand</property>
4409 </widget>
4410 <packing>
4411 <property name="expand">False</property>
4412@@ -4473,7 +4239,9 @@
4413 <widget class="GtkLabel" id="label72">
4414 <property name="visible">True</property>
4415 <property name="xalign">0</property>
4416- <property name="label" translatable="yes">Hub IP / DNS (empty = All, 'op' = where operator)</property>
4417+ <property name="label" translatable="yes">_Hub address:</property>
4418+ <property name="use_underline">True</property>
4419+ <property name="mnemonic_widget">commandDialogHub</property>
4420 </widget>
4421 <packing>
4422 <property name="expand">False</property>
4423@@ -4485,6 +4253,7 @@
4424 <property name="visible">True</property>
4425 <property name="can_focus">True</property>
4426 <property name="activates_default">True</property>
4427+ <property name="tooltip_text" translatable="yes">A value of 'op' indicates only hubs in which the user is an operator. Leave empty for all hubs.</property>
4428 </widget>
4429 <packing>
4430 <property name="expand">False</property>
4431@@ -4504,7 +4273,9 @@
4432 <widget class="GtkLabel" id="label73">
4433 <property name="visible">True</property>
4434 <property name="xalign">0</property>
4435- <property name="label" translatable="yes">To (empty for selected user)</property>
4436+ <property name="label" translatable="yes">_Username:</property>
4437+ <property name="use_underline">True</property>
4438+ <property name="mnemonic_widget">commandDialogTo</property>
4439 </widget>
4440 <packing>
4441 <property name="expand">False</property>
4442@@ -4516,6 +4287,7 @@
4443 <property name="visible">True</property>
4444 <property name="can_focus">True</property>
4445 <property name="activates_default">True</property>
4446+ <property name="tooltip_text">Leave empty for selected user</property>
4447 </widget>
4448 <packing>
4449 <property name="expand">False</property>
4450@@ -4532,7 +4304,7 @@
4451 <widget class="GtkCheckButton" id="commandDialogOnce">
4452 <property name="visible">True</property>
4453 <property name="can_focus">True</property>
4454- <property name="label" translatable="yes">Send once per user</property>
4455+ <property name="label" translatable="yes">Sen_d once per user</property>
4456 <property name="use_underline">True</property>
4457 <property name="response_id">0</property>
4458 <property name="draw_indicator">True</property>
4459@@ -4584,7 +4356,7 @@
4460 <child>
4461 <widget class="GtkLabel" id="label74">
4462 <property name="visible">True</property>
4463- <property name="label" translatable="yes">&lt;b&gt;Text sent to hub&lt;/b&gt;</property>
4464+ <property name="label" translatable="yes">&lt;b&gt;Raw Command&lt;/b&gt;</property>
4465 <property name="use_markup">True</property>
4466 </widget>
4467 <packing>
4468
4469=== modified file 'glade/sharebrowser.glade'
4470--- glade/sharebrowser.glade 2009-06-17 03:28:37 +0000
4471+++ glade/sharebrowser.glade 2011-01-25 05:38:26 +0000
4472@@ -80,7 +80,7 @@
4473 </child>
4474 <child>
4475 <widget class="GtkStatusbar" id="filesStatus">
4476- <property name="width_request">120</property>
4477+ <property name="width_request">130</property>
4478 <property name="visible">True</property>
4479 <property name="has_resize_grip">False</property>
4480 </widget>
4481@@ -92,7 +92,7 @@
4482 </child>
4483 <child>
4484 <widget class="GtkStatusbar" id="totalStatus">
4485- <property name="width_request">120</property>
4486+ <property name="width_request">150</property>
4487 <property name="visible">True</property>
4488 <property name="has_resize_grip">False</property>
4489 </widget>
4490@@ -151,7 +151,7 @@
4491 <widget class="GtkDialog" id="findDialog">
4492 <property name="width_request">275</property>
4493 <property name="height_request">125</property>
4494- <property name="title" translatable="yes">Find files</property>
4495+ <property name="title" translatable="yes">Find Files</property>
4496 <property name="modal">True</property>
4497 <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
4498 <child internal-child="vbox">
4499@@ -179,8 +179,9 @@
4500 <child>
4501 <widget class="GtkLabel" id="label1">
4502 <property name="visible">True</property>
4503- <property name="label" translatable="yes">Enter text to search for</property>
4504- <property name="use_markup">True</property>
4505+ <property name="label" translatable="yes">_Search text:</property>
4506+ <property name="use_underline">True</property>
4507+ <property name="mnemonic_widget">findEntry</property>
4508 </widget>
4509 <packing>
4510 <property name="type">label_item</property>
4511@@ -232,14 +233,14 @@
4512 <child>
4513 <widget class="GtkMenuItem" id="dirDownloadItem">
4514 <property name="visible">True</property>
4515- <property name="label" translatable="yes">Download</property>
4516+ <property name="label" translatable="yes">_Download</property>
4517 <property name="use_underline">True</property>
4518 </widget>
4519 </child>
4520 <child>
4521 <widget class="GtkMenuItem" id="dirDownloadToItem">
4522 <property name="visible">True</property>
4523- <property name="label" translatable="yes">Download to...</property>
4524+ <property name="label" translatable="yes">Download _to</property>
4525 <property name="use_underline">True</property>
4526 <child>
4527 <widget class="GtkMenu" id="dirDownloadMenu">
4528@@ -255,7 +256,7 @@
4529 <child>
4530 <widget class="GtkMenuItem" id="dirUserCommandItem">
4531 <property name="visible">True</property>
4532- <property name="label" translatable="yes">User commands</property>
4533+ <property name="label" translatable="yes">_User commands</property>
4534 <property name="use_underline">True</property>
4535 <child>
4536 <widget class="GtkMenu" id="dirUserCommandMenu">
4537@@ -268,14 +269,14 @@
4538 <child>
4539 <widget class="GtkMenuItem" id="fileDownloadItem">
4540 <property name="visible">True</property>
4541- <property name="label" translatable="yes">Download</property>
4542+ <property name="label" translatable="yes">_Download</property>
4543 <property name="use_underline">True</property>
4544 </widget>
4545 </child>
4546 <child>
4547 <widget class="GtkMenuItem" id="fileDownloadToItem">
4548 <property name="visible">True</property>
4549- <property name="label" translatable="yes">Download to...</property>
4550+ <property name="label" translatable="yes">Download _to</property>
4551 <property name="use_underline">True</property>
4552 <child>
4553 <widget class="GtkMenu" id="fileDownloadMenu">
4554@@ -305,7 +306,7 @@
4555 <child>
4556 <widget class="GtkMenuItem" id="fileUserCommandItem">
4557 <property name="visible">True</property>
4558- <property name="label" translatable="yes">User commands</property>
4559+ <property name="label" translatable="yes">_User commands</property>
4560 <property name="use_underline">True</property>
4561 <child>
4562 <widget class="GtkMenu" id="fileUserCommandMenu">
4563
4564=== modified file 'glade/transfers.glade'
4565--- glade/transfers.glade 2009-03-18 00:50:57 +0000
4566+++ glade/transfers.glade 2011-01-25 05:38:26 +0000
4567@@ -70,7 +70,7 @@
4568 <child>
4569 <widget class="GtkMenuItem" id="userCommandItem">
4570 <property name="visible">True</property>
4571- <property name="label" translatable="yes">User commands</property>
4572+ <property name="label" translatable="yes">_User commands</property>
4573 <property name="use_underline">True</property>
4574 <child>
4575 <widget class="GtkMenu" id="userCommandMenu">
4576
4577=== added file 'linux/IntlUtil.hh'
4578--- linux/IntlUtil.hh 1970-01-01 00:00:00 +0000
4579+++ linux/IntlUtil.hh 2011-01-25 05:38:26 +0000
4580@@ -0,0 +1,64 @@
4581+/*
4582+ * Copyright © 2010 Jens Oknelid, paskharen@gmail.com
4583+ *
4584+ * This program is free software; you can redistribute it and/or modify
4585+ * it under the terms of the GNU General Public License as published by
4586+ * the Free Software Foundation; either version 2 of the License, or
4587+ * (at your option) any later version.
4588+ *
4589+ * This program is distributed in the hope that it will be useful,
4590+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4591+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4592+ * GNU General Public License for more details.
4593+ *
4594+ * You should have received a copy of the GNU General Public License
4595+ * along with this program; if not, write to the Free Software
4596+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
4597+ *
4598+ * In addition, as a special exception, compiling, linking, and/or
4599+ * using OpenSSL with this program is allowed.
4600+ */
4601+
4602+#ifndef LINUXDCPP_INTL_UTIL_HH
4603+#define LINUXDCPP_INTL_UTIL_HH
4604+
4605+#include <boost/format.hpp>
4606+#include <string>
4607+#include <exception>
4608+#include <glib/gi18n.h>
4609+#include <errno.h>
4610+
4611+class IntlUtil
4612+{
4613+ public:
4614+ // Initialize i18n support
4615+ static void initialize()
4616+ {
4617+ if (bindtextdomain(PACKAGE, _DATADIR "/locale") == NULL)
4618+ throw std::runtime_error(strerror(errno));
4619+
4620+ if (textdomain(PACKAGE) == NULL)
4621+ throw std::runtime_error(strerror(errno));
4622+
4623+ if (bind_textdomain_codeset(PACKAGE, "UTF-8") == NULL)
4624+ throw std::runtime_error(strerror(errno));
4625+ }
4626+
4627+ static inline boost::format message_format(const char *text)
4628+ {
4629+ boost::format fmt(text);
4630+ fmt.exceptions(boost::io::no_error_bits);
4631+ return fmt;
4632+ }
4633+
4634+ static inline boost::format message_format(const std::string &text)
4635+ {
4636+ return message_format(text.c_str());
4637+ }
4638+};
4639+
4640+#define F_(text, params) (IntlUtil::message_format(_(text)) params).str()
4641+#define P_(text, text_plural, params, n) (IntlUtil::message_format(g_dngettext(NULL, text, text_plural, n)) params).str()
4642+
4643+#endif /* LINUXDCPP_INTL_UTIL_HH */
4644+
4645
4646=== modified file 'linux/SConscript'
4647--- linux/SConscript 2010-10-12 04:50:18 +0000
4648+++ linux/SConscript 2011-01-25 05:38:26 +0000
4649@@ -4,18 +4,19 @@
4650
4651 VERSION_SOURCE = 'version.cc'
4652
4653-# We don't want to add these CFLAGS globally so we copy the env
4654-env = env.Clone()
4655-env.ParseConfig('pkg-config --cflags libglade-2.0')
4656-
4657+header_files = env.Glob('*.hh')
4658 gui_files = env.Glob('*.cc')
4659 gui_files.remove(File(VERSION_SOURCE))
4660 obj_files = []
4661
4662+env.ParseConfig('pkg-config --cflags libglade-2.0')
4663+env.Append(CPPDEFINES='PACKAGE=\'\"%s\"\'' % env['package'])
4664+
4665 # Build the gui_files
4666 obj_files = env.Object(gui_files)
4667 obj_file = env.Object(VERSION_SOURCE, CPPDEFINES = 'BZR_REVISION=\\"%s\\"' % env['BZR_REVISION'])
4668-
4669 obj_files.append(obj_file)
4670
4671-Return('obj_files')
4672+pot_file = env.PotBuild(source=gui_files + header_files, target='po/linux.pot', LANGUAGE='C++')
4673+
4674+Return('pot_file', 'obj_files')
4675
4676=== modified file 'linux/WulforUtil.cc'
4677--- linux/WulforUtil.cc 2010-05-22 14:23:56 +0000
4678+++ linux/WulforUtil.cc 2011-01-25 05:38:26 +0000
4679@@ -20,7 +20,7 @@
4680 */
4681
4682 #include "WulforUtil.hh"
4683-#include <glib/gi18n.h>
4684+#include "IntlUtil.hh"
4685 #include <glib/gstdio.h>
4686 #include <glib.h>
4687 #include <dcpp/ClientManager.h>
4688@@ -38,7 +38,7 @@
4689 using namespace std;
4690 using namespace dcpp;
4691
4692-const string WulforUtil::ENCODING_LOCALE = _("System default");
4693+const string WulforUtil::ENCODING_LOCALE = C_("Character encoding", "System default");
4694 std::vector<std::string> WulforUtil::charsets;
4695 const std::string WulforUtil::magnetSignature = "magnet:?xt=urn:tree:tiger:";
4696 GtkIconFactory* WulforUtil::iconFactory = NULL;
4697@@ -154,7 +154,7 @@
4698 {
4699 StringList hubs = ClientManager::getInstance()->getHubNames(cid);
4700 if (hubs.empty())
4701- return _("Offline");
4702+ return C_("User", "Offline");
4703 else
4704 return Util::toString(hubs);
4705 }
4706@@ -190,22 +190,22 @@
4707 if (charsets.size() == 0)
4708 {
4709 charsets.push_back(ENCODING_LOCALE);
4710- charsets.push_back(_("UTF-8 (Unicode)"));
4711- charsets.push_back(_("CP1252 (Western Europe)"));
4712- charsets.push_back(_("CP1250 (Central Europe)"));
4713- charsets.push_back(_("ISO-8859-2 (Central Europe)"));
4714- charsets.push_back(_("ISO-8859-7 (Greek)"));
4715- charsets.push_back(_("ISO-8859-8 (Hebrew)"));
4716- charsets.push_back(_("ISO-8859-9 (Turkish)"));
4717- charsets.push_back(_("ISO-2022-JP (Japanese)"));
4718- charsets.push_back(_("SJIS (Japanese)"));
4719- charsets.push_back(_("CP949 (Korean)"));
4720- charsets.push_back(_("KOI8-R (Cyrillic)"));
4721- charsets.push_back(_("CP1251 (Cyrillic)"));
4722- charsets.push_back(_("CP1256 (Arabic)"));
4723- charsets.push_back(_("CP1257 (Baltic)"));
4724- charsets.push_back(_("GB18030 (Chinese)"));
4725- charsets.push_back(_("TIS-620 (Thai)"));
4726+ charsets.push_back(C_("Character encoding", "UTF-8 (Unicode)"));
4727+ charsets.push_back(C_("Character encoding", "CP1252 (Western Europe)"));
4728+ charsets.push_back(C_("Character encoding", "CP1250 (Central Europe)"));
4729+ charsets.push_back(C_("Character encoding", "ISO-8859-2 (Central Europe)"));
4730+ charsets.push_back(C_("Character encoding", "ISO-8859-7 (Greek)"));
4731+ charsets.push_back(C_("Character encoding", "ISO-8859-8 (Hebrew)"));
4732+ charsets.push_back(C_("Character encoding", "ISO-8859-9 (Turkish)"));
4733+ charsets.push_back(C_("Character encoding", "ISO-2022-JP (Japanese)"));
4734+ charsets.push_back(C_("Character encoding", "SJIS (Japanese)"));
4735+ charsets.push_back(C_("Character encoding", "CP949 (Korean)"));
4736+ charsets.push_back(C_("Character encoding", "KOI8-R (Cyrillic)"));
4737+ charsets.push_back(C_("Character encoding", "CP1251 (Cyrillic)"));
4738+ charsets.push_back(C_("Character encoding", "CP1256 (Arabic)"));
4739+ charsets.push_back(C_("Character encoding", "CP1257 (Baltic)"));
4740+ charsets.push_back(C_("Character encoding", "GB18030 (Chinese)"));
4741+ charsets.push_back(C_("Character encoding", "TIS-620 (Thai)"));
4742 }
4743 return charsets;
4744 }
4745@@ -248,9 +248,9 @@
4746
4747 bool WulforUtil::splitMagnet(const string &magnet, string &name, int64_t &size, string &tth)
4748 {
4749- name = _("Unknown");
4750+ name = C_("Magnet", "Unknown");
4751 size = 0;
4752- tth = _("Unknown");
4753+ tth = C_("Magnet", "Unknown");
4754
4755 if (!isMagnet(magnet.c_str()) || magnet.size() <= magnetSignature.length())
4756 return FALSE;
4757
4758=== modified file 'linux/bookentry.cc'
4759--- linux/bookentry.cc 2011-01-07 16:04:03 +0000
4760+++ linux/bookentry.cc 2011-01-25 05:38:26 +0000
4761@@ -101,6 +101,7 @@
4762 if (len > labelSize)
4763 {
4764 gchar truncatedText[text.size()];
4765+ // TRANSLATORS: Tab label ellipsis to indicate text is longer than tab width
4766 const string clipText = _("...");
4767 len = labelSize - g_utf8_strlen(clipText.c_str(), -1);
4768 g_utf8_strncpy(truncatedText, text.c_str(), len);
4769
4770=== modified file 'linux/downloadqueue.cc'
4771--- linux/downloadqueue.cc 2009-08-15 04:40:26 +0000
4772+++ linux/downloadqueue.cc 2011-01-25 05:38:26 +0000
4773@@ -57,17 +57,17 @@
4774
4775 // Initialize file treeview
4776 fileView.setView(GTK_TREE_VIEW(getWidget("fileView")), TRUE, "downloadqueue");
4777- fileView.insertColumn("Filename", G_TYPE_STRING, TreeView::STRING, 200);
4778- fileView.insertColumn("Status", G_TYPE_STRING, TreeView::STRING, 100);
4779- fileView.insertColumn("Size", G_TYPE_STRING, TreeView::STRING, 100);
4780- fileView.insertColumn("Downloaded", G_TYPE_STRING, TreeView::STRING, 150);
4781- fileView.insertColumn("Priority", G_TYPE_STRING, TreeView::STRING, 75);
4782- fileView.insertColumn("Users", G_TYPE_STRING, TreeView::STRING, 200);
4783- fileView.insertColumn("Path", G_TYPE_STRING, TreeView::STRING, 200);
4784- fileView.insertColumn("Exact Size", G_TYPE_STRING, TreeView::STRING, 100);
4785- fileView.insertColumn("Errors", G_TYPE_STRING, TreeView::STRING, 200);
4786- fileView.insertColumn("Added", G_TYPE_STRING, TreeView::STRING, 120);
4787- fileView.insertColumn("TTH", G_TYPE_STRING, TreeView::STRING, 125);
4788+ fileView.insertColumn(N_("Filename"), G_TYPE_STRING, TreeView::STRING, 200);
4789+ fileView.insertColumn(N_("Status"), G_TYPE_STRING, TreeView::STRING, 100);
4790+ fileView.insertColumn(N_("Size"), G_TYPE_STRING, TreeView::STRING, 100);
4791+ fileView.insertColumn(N_("Downloaded"), G_TYPE_STRING, TreeView::STRING, 150);
4792+ fileView.insertColumn(N_("Priority"), G_TYPE_STRING, TreeView::STRING, 75);
4793+ fileView.insertColumn(N_("Users"), G_TYPE_STRING, TreeView::STRING, 200);
4794+ fileView.insertColumn(N_("Path"), G_TYPE_STRING, TreeView::STRING, 200);
4795+ fileView.insertColumn(N_("Exact Size"), G_TYPE_STRING, TreeView::STRING, 100);
4796+ fileView.insertColumn(N_("Errors"), G_TYPE_STRING, TreeView::STRING, 200);
4797+ fileView.insertColumn(N_("Added"), G_TYPE_STRING, TreeView::STRING, 120);
4798+ fileView.insertColumn(N_("TTH"), G_TYPE_STRING, TreeView::STRING, 125);
4799 fileView.insertHiddenColumn("Size Sort", G_TYPE_INT64);
4800 fileView.insertHiddenColumn("Downloaded Sort", G_TYPE_INT64);
4801 fileView.insertHiddenColumn("Target", G_TYPE_STRING);
4802@@ -225,10 +225,10 @@
4803
4804 void DownloadQueue::updateStatus_gui()
4805 {
4806- setStatus_gui(_("Items: ") + Util::toString(currentItems), "statusItems");
4807- setStatus_gui(_("Size: ") + Util::formatBytes(currentSize), "statusFileSize");
4808- setStatus_gui(_("Files: ") + Util::toString(totalItems), "statusFiles");
4809- setStatus_gui(_("Size: ") + Util::formatBytes(totalSize), "statusTotalSize");
4810+ setStatus_gui(F_("Items: %1%", % currentItems), "statusItems");
4811+ setStatus_gui(F_("Size: %1%", % Util::formatBytes(currentSize)), "statusFileSize");
4812+ setStatus_gui(F_("Files: %1%", % totalItems), "statusFiles");
4813+ setStatus_gui(F_("Size: %1%", % Util::formatBytes(totalSize)), "statusTotalSize");
4814 }
4815
4816 void DownloadQueue::addFiles_gui(vector<StringMap> files, bool firstUpdate)
4817@@ -1237,6 +1237,7 @@
4818 string nick;
4819 map<string, string> source;
4820 int online = 0;
4821+ int totalSources = item->getSources().size();
4822
4823 params["Filename"] = item->getTargetFileName();
4824 params["Path"] = Util::getFilePath(item->getTarget());
4825@@ -1261,7 +1262,7 @@
4826
4827 // Status
4828 if (item->isWaiting())
4829- params["Status"] = Util::toString(online) + _(" of ") + Util::toString(item->getSources().size()) + _(" user(s) online");
4830+ params["Status"] = P_("%1% of %2% user online", "%1% of %2% users online", % online % totalSources, totalSources);
4831 else
4832 params["Status"] = _("Running...");
4833
4834@@ -1269,8 +1270,8 @@
4835 params["Size Sort"] = Util::toString(item->getSize());
4836 if (item->getSize() < 0)
4837 {
4838- params["Size"] = _("Unknown");
4839- params["Exact Size"] = _("Unknown");
4840+ params["Size"] = C_("Size", "Unknown");
4841+ params["Exact Size"] = C_("Size", "Unknown");
4842 }
4843 else
4844 {
4845@@ -1294,22 +1295,22 @@
4846 switch (item->getPriority())
4847 {
4848 case QueueItem::PAUSED:
4849- params["Priority"] = _("Paused");
4850+ params["Priority"] = C_("Priority", "Paused");
4851 break;
4852 case QueueItem::LOWEST:
4853- params["Priority"] = _("Lowest");
4854+ params["Priority"] = C_("Priority", "Lowest");
4855 break;
4856 case QueueItem::LOW:
4857- params["Priority"] = _("Low");
4858+ params["Priority"] = C_("Priority", "Low");
4859 break;
4860 case QueueItem::HIGH:
4861- params["Priority"] = _("High");
4862+ params["Priority"] = C_("Priority", "High");
4863 break;
4864 case QueueItem::HIGHEST:
4865- params["Priority"] = _("Highest");
4866+ params["Priority"] = C_("Priority", "Highest");
4867 break;
4868 default:
4869- params["Priority"] = _("Normal");
4870+ params["Priority"] = C_("Priority", "Normal");
4871 }
4872
4873 // Error
4874
4875=== modified file 'linux/downloadqueue.hh'
4876--- linux/downloadqueue.hh 2009-03-12 05:47:55 +0000
4877+++ linux/downloadqueue.hh 2011-01-25 05:38:26 +0000
4878@@ -22,6 +22,8 @@
4879 #ifndef WULFOR_DOWNLOAD_QUEUE_HH
4880 #define WULFOR_DOWNLOAD_QUEUE_HH
4881
4882+#include "IntlUtil.hh"
4883+
4884 #include <dcpp/stdinc.h>
4885 #include <dcpp/DCPlusPlus.h>
4886 #include <dcpp/QueueManager.h>
4887
4888=== modified file 'linux/entry.hh'
4889--- linux/entry.hh 2010-09-08 02:51:30 +0000
4890+++ linux/entry.hh 2011-01-25 05:38:26 +0000
4891@@ -25,7 +25,7 @@
4892 #include <gtk/gtk.h>
4893 #include <glade/glade.h>
4894 #include <gdk/gdkkeysyms.h>
4895-#include <glib/gi18n.h>
4896+#include "IntlUtil.hh"
4897 #include <string>
4898 #include <map>
4899
4900
4901=== modified file 'linux/favoritehubs.cc'
4902--- linux/favoritehubs.cc 2010-09-05 00:10:54 +0000
4903+++ linux/favoritehubs.cc 2011-01-25 05:38:26 +0000
4904@@ -43,14 +43,14 @@
4905
4906 // Initialize favorite hub list treeview
4907 favoriteView.setView(GTK_TREE_VIEW(getWidget("favoriteView")), TRUE, "favoritehubs");
4908- favoriteView.insertColumn("Auto Connect", G_TYPE_BOOLEAN, TreeView::BOOL, 100);
4909- favoriteView.insertColumn("Name", G_TYPE_STRING, TreeView::STRING, 150);
4910- favoriteView.insertColumn("Description", G_TYPE_STRING, TreeView::STRING, 250);
4911- favoriteView.insertColumn("Address", G_TYPE_STRING, TreeView::STRING, 175);
4912- favoriteView.insertColumn("Username", G_TYPE_STRING, TreeView::STRING, 100);
4913- favoriteView.insertColumn("Password", G_TYPE_STRING, TreeView::STRING, 100);
4914- favoriteView.insertColumn("User Description", G_TYPE_STRING, TreeView::STRING, 125);
4915- favoriteView.insertColumn("Encoding", G_TYPE_STRING, TreeView::STRING, 125);
4916+ favoriteView.insertColumn(N_("Auto Connect"), G_TYPE_BOOLEAN, TreeView::BOOL, 100);
4917+ favoriteView.insertColumn(N_("Name"), G_TYPE_STRING, TreeView::STRING, 150);
4918+ favoriteView.insertColumn(N_("Description"), G_TYPE_STRING, TreeView::STRING, 250);
4919+ favoriteView.insertColumn(N_("Address"), G_TYPE_STRING, TreeView::STRING, 175);
4920+ favoriteView.insertColumn(N_("Username"), G_TYPE_STRING, TreeView::STRING, 100);
4921+ favoriteView.insertColumn(N_("Password"), G_TYPE_STRING, TreeView::STRING, 100);
4922+ favoriteView.insertColumn(N_("User Description"), G_TYPE_STRING, TreeView::STRING, 125);
4923+ favoriteView.insertColumn(N_("Encoding"), G_TYPE_STRING, TreeView::STRING, 125);
4924 favoriteView.insertHiddenColumn("Hidden Password", G_TYPE_STRING);
4925 favoriteView.finalize();
4926 favoriteStore = gtk_list_store_newv(favoriteView.getColCount(), favoriteView.getGTypes());
4927@@ -375,17 +375,11 @@
4928 {
4929 if (BOOLSETTING(CONFIRM_HUB_REMOVAL))
4930 {
4931- string name = fh->favoriteView.getString(&iter, "Name").c_str();
4932- GtkWindow* parent = GTK_WINDOW(WulforManager::get()->getMainWindow()->getContainer());
4933- GtkWidget* dialog = gtk_message_dialog_new(parent,
4934- GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
4935- _("Are you sure you want to delete favorite hub \"%s\"?"), name.c_str());
4936- gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_REMOVE, GTK_RESPONSE_YES, NULL);
4937- gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), GTK_RESPONSE_YES, GTK_RESPONSE_CANCEL, -1);
4938- gint response = gtk_dialog_run(GTK_DIALOG(dialog));
4939- gtk_widget_destroy(dialog);
4940+ GtkWidget *confirmDeletionDialog = fh->getWidget("confirmDeletionDialog");
4941+ gint response = gtk_dialog_run(GTK_DIALOG(confirmDeletionDialog));
4942+ gtk_widget_hide(fh->getWidget("confirmDeletionDialog"));
4943
4944- if (response != GTK_RESPONSE_YES)
4945+ if (response != GTK_RESPONSE_OK)
4946 return;
4947 }
4948
4949
4950=== modified file 'linux/favoriteusers.cc'
4951--- linux/favoriteusers.cc 2010-09-05 00:10:54 +0000
4952+++ linux/favoriteusers.cc 2011-01-25 05:38:26 +0000
4953@@ -38,12 +38,12 @@
4954
4955 // Initialize favorite users list treeview
4956 favoriteUserView.setView(GTK_TREE_VIEW(getWidget("favoriteUserView")), TRUE, "favoriteusers");
4957- favoriteUserView.insertColumn(_("Auto Grant Slot"), G_TYPE_BOOLEAN, TreeView::BOOL, 120);
4958- favoriteUserView.insertColumn(_("User"), G_TYPE_STRING, TreeView::ICON_STRING, 100, "Icon");
4959- favoriteUserView.insertColumn(_("Most Recent Hub"), G_TYPE_STRING, TreeView::STRING, 200);
4960- favoriteUserView.insertColumn(_("Time Last Seen"), G_TYPE_STRING, TreeView::STRING, 120);
4961- favoriteUserView.insertColumn(_("Description"), G_TYPE_STRING, TreeView::STRING, 150);
4962- favoriteUserView.insertColumn("CID", G_TYPE_STRING, TreeView::STRING, 350);
4963+ favoriteUserView.insertColumn(N_("Auto Grant Slot"), G_TYPE_BOOLEAN, TreeView::BOOL, 120);
4964+ favoriteUserView.insertColumn(N_("User"), G_TYPE_STRING, TreeView::ICON_STRING, 100, "Icon");
4965+ favoriteUserView.insertColumn(N_("Most Recent Hub"), G_TYPE_STRING, TreeView::STRING, 200);
4966+ favoriteUserView.insertColumn(N_("Time Last Seen"), G_TYPE_STRING, TreeView::STRING, 120);
4967+ favoriteUserView.insertColumn(N_("Description"), G_TYPE_STRING, TreeView::STRING, 150);
4968+ favoriteUserView.insertColumn(N_("CID"), G_TYPE_STRING, TreeView::STRING, 350);
4969 favoriteUserView.insertHiddenColumn("URL", G_TYPE_STRING);
4970 favoriteUserView.insertHiddenColumn("Icon", G_TYPE_STRING);
4971 favoriteUserView.finalize();
4972@@ -54,12 +54,12 @@
4973
4974 favoriteUserSelection = gtk_tree_view_get_selection(favoriteUserView.get());
4975 gtk_tree_selection_set_mode(favoriteUserSelection, GTK_SELECTION_MULTIPLE);
4976- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(favoriteUserStore), favoriteUserView.col(_("User")), GTK_SORT_ASCENDING);
4977- gtk_tree_view_column_set_sort_indicator(gtk_tree_view_get_column(favoriteUserView.get(), favoriteUserView.col(_("User"))), TRUE);
4978+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(favoriteUserStore), favoriteUserView.col("User"), GTK_SORT_ASCENDING);
4979+ gtk_tree_view_column_set_sort_indicator(gtk_tree_view_get_column(favoriteUserView.get(), favoriteUserView.col("User")), TRUE);
4980 gtk_tree_view_set_fixed_height_mode(favoriteUserView.get(), TRUE);
4981
4982 GList *list = gtk_tree_view_column_get_cell_renderers(gtk_tree_view_get_column(favoriteUserView.get(),
4983- favoriteUserView.col(_("Auto Grant Slot"))));
4984+ favoriteUserView.col("Auto Grant Slot")));
4985 GObject *renderer = (GObject *)g_list_nth_data(list, 0);
4986 g_signal_connect(renderer, "toggled", G_CALLBACK(onAutoGrantSlotToggled_gui), (gpointer)this);
4987 g_list_free(list);
4988@@ -96,16 +96,16 @@
4989 const FavoriteUser &user = it->second;
4990 bool online = user.getUser()->isOnline();
4991 string hub = online ? WulforUtil::getHubNames(user.getUser()) : user.getUrl();
4992- string seen = online ? _("Online") : Util::formatTime("%Y-%m-%d %H:%M", user.getLastSeen());
4993+ string seen = online ? C_("User", "Online") : Util::formatTime("%Y-%m-%d %H:%M", user.getLastSeen());
4994 string cid = user.getUser()->getCID().toBase32();
4995
4996 gtk_list_store_append(favoriteUserStore, &iter);
4997 gtk_list_store_set(favoriteUserStore, &iter,
4998- favoriteUserView.col(_("Auto Grant Slot")), user.isSet(FavoriteUser::FLAG_GRANTSLOT) ? TRUE : FALSE,
4999- favoriteUserView.col(_("User")), user.getNick().c_str(),
5000- favoriteUserView.col(_("Most Recent Hub")), hub.c_str(),
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: