debian/0000755000000000000000000000000011407603544007172 5ustar debian/rules0000755000000000000000000000112711407164556010260 0ustar #!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 XP=xsltproc --nonet \ --param man.charmap.use.subset "0" \ --param make.year.ranges "1" \ --param make.single.year.ranges "1" \ -o debian/ manpages: xpn.1 xpn.1: debian/xpn.1.xml $(XP) $< override_dh_install: dh_install install -m 644 $(CURDIR)/debian/xpn-wrapper.sh $(CURDIR)/debian/xpn/usr/bin/xpn chmod a+x $(CURDIR)/debian/xpn/usr/bin/xpn find $(CURDIR)/debian/xpn/ -name "xpn.pot" -delete find $(CURDIR)/debian/xpn/usr/share/xpn/ -type f -exec chmod 644 {} \; %: dh $@ debian/links0000644000000000000000000000010011141316442010215 0ustar /usr/share/xpn/pixmaps/xpn-icon.png /usr/share/pixmaps/xpn.png debian/install0000644000000000000000000000027611141316442010561 0ustar lang/* /usr/share/locale/ pixmaps/ /usr/share/xpn/ xpn.py /usr/share/xpn/ xpn_src/ /usr/share/xpn/ debian/xpn-icon.xpm /usr/share/xpn/pixmaps/ debian/xpn.desktop /usr/share/applications/ debian/menu0000644000000000000000000000027211141316443010054 0ustar ?package(xpn): \ needs="X11" \ section="Applications/Network/Communication" \ title="X Python Newsreader" \ command="/usr/bin/xpn" \ icon="/usr/share/xpn/pixmaps/xpn-icon.xpm" debian/dirs0000644000000000000000000000010111141316442010037 0ustar usr/bin usr/share/locale/ usr/share/xpn/ usr/share/applications/ debian/xpn-icon.xpm0000644000000000000000000001152211141316443011446 0ustar /* XPM */ static char *xpn-icon[] = { /* columns rows colors chars-per-pixel */ "32 31 124 2", " c #005200410000", ". c #099707140000", "X c #0C6E09E40000", "o c #11E20D480000", "O c #15C112B30000", "+ c #1B0413AE0000", "@ c #25EB1B8F0000", "# c #2C8A1F800000", "$ c #2629216F0000", "% c #2CAA21CD0000", "& c #32D623020000", "* c #34442C130000", "= c #3BCD25B80000", "- c #3BAC2C040000", "; c #3D4E336B0000", ": c #458A2C3D0000", "> c #493D2F5D0000", ", c #44F433470000", "< c #4E113A3E0000", "1 c #5170379B0000", "2 c #56333F490000", "3 c #4CDC455B0000", "4 c #4CEF49940000", "5 c #535344170000", "6 c #5C66428C0000", "7 c #5E1B4E270000", "8 c #57B253E00000", "9 c #5B7653650000", "0 c #5EF55A300000", "q c #63D442840000", "w c #61304C230000", "e c #6A904D930000", "r c #683257590000", "t c #6D5354A30000", "y c #6F075FF40000", "u c #7AFB4FA80000", "i c #73E851B40000", "p c #7B9B5B4A0000", "a c #805E63000000", "s c #7CE06FDF0000", "d c #8172591D0000", "f c #888564380000", "g c #86356A820000", "h c #8C1563A20000", "j c #944C65950000", "k c #996C63260000", "l c #9EE86F520000", "z c #96ED756C0000", "x c #9C0972D40000", "c c #9CF77B160000", "v c #A75777E40000", "b c #A12E7FB70000", "n c #AA5C76F60000", "m c #A9477D980000", "M c #B50575F60000", "N c #C5757E730000", "B c #CB107F4B0000", "V c #9BDB848A0000", "C c #9D4697820000", "Z c #A1F388B60000", "A c #AE4984B30000", "S c #AE6789F10000", "D c #AB879EF30000", "F c #B6C2851D0000", "G c #BC63865E0000", "H c #BAB18F510000", "J c #B6F1925B0000", "K c #AA8AA32D0000", "L c #BA59A5D90000", "P c #C36485EE0000", "I c #CA918CBE0000", "U c #C41A96350000", "Y c #C8489BA90000", "T c #CA6694B30000", "R c #DAA3900F0000", "E c #D44F95070000", "W c #D709A0360000", "Q c #DFB19ABC0000", "! c #C70BAE0A0000", "~ c #CD4AA5800000", "^ c #D03CAC7D0000", "/ c #C2B9B2470000", "( c #C521BDEE0000", ") c #D6F1B05E0000", "_ c #DE0DA7050000", "` c #DEC9AB1F0000", "' c #DDBAB6870000", "] c #E84E94560000", "[ c #E3389D680000", "{ c #F43B9C7C0000", "} c #FCC9A04B0000", "| c #E543AC330000", " . c #ED93A34C0000", ".. c #EC17AB5C0000", "X. c #E5CDB5230000", "o. c #E109B9580000", "O. c #EC92B4370000", "+. c #EB02BDFC0000", "@. c #F5BAA4E10000", "#. c #F629ADE40000", "$. c #FF3AA5B70000", "%. c #FE23AD7C0000", "&. c #F354B4C70000", "*. c #F4AEB9EC0000", "=. c #FE12B4400000", "-. c #FDAABBB30000", ";. c #D77FCB1E0000", ":. c #E358C3E70000", ">. c #E8AECF3E0000", ",. c #E488DBC90000", "<. c #F654C7A40000", "1. c #F200CDF40000", "2. c #FD1DC6650000", "3. c #FDFECCAF0000", "4. c #F6A6D4450000", "5. c #F67EDC0A0000", "6. c #FEC8D4940000", "7. c #FF4FDC270000", "8. c #F02FE7DF0000", "9. c #F75AE4690000", "0. c #F79AED010000", "q. c #FEF5E4E30000", "w. c #FB88EEC90000", "e. c #FFFFF54B0000", /* pixels */ "O 4 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 8 9 7 9 7 7 8 7 4 O ", "4 ,.0.0.w.w.w.0.0.0.9.5.5.5.4.5.4.4.4.1.4.4.1.3.3.1.2.3.2.<.o.4 ", "0 0.( K K K K K D / q.q.q.7.7.7.7.7.6.6.6.) S S S S S A H &.2.9 ", "0 0.C O X X X X X $ L w.q.7.7.7.7.6.6.6.' , X X X X X o t *.2.9 ", "8 w.0.0 ; :.7.7.7.6.6.6.6.<.t & _ -.<.9 ", "8 0.e.;.* y 4.7.6.6.6.6.3.b o O A -.-.<.7 ", "0 0.w.w.K O X Z 6.6.6.3.6.~ @ p -.-.-.-.7 ", "8 0.w.w.0.s . % ^ 6.6.3.+.5 < ..-.-.=.<.7 ", "0 0.w.q.q.>.< 5 :.3.2.g . @ T -.-.=.=.-.9 ", "0 0.q.q.q.q.! $ . g 3.J O X x -.-.-.-.=.-.9 ", "0 9.q.q.q.7.7.V X + z ; e &.-.=.-.=.=.-.7 ", "0 5.q.7.7.7.7.1.r X = _ -.-.=.=.=.%.-.9 ", "8 5.7.7.7.7.6.6.' ; + F -.-.=.=.=.=.=.-.7 ", "8 5.7.7.7.6.6.6.6.J O . h =.-.=.=.=.=.=.%.-.7 ", "0 4.7.7.6.6.6.6.3.2.g X 5 ..=.=.=.=.=.=.=.%.=.7 ", "0 5.6.6.6.6.3.3.3.3.X.% X G -.=.=.=.=.=.%.%.%.=.7 ", "9 5.6.6.6.3.3.3.3.2.c o e #.=.=.=.%.=.%.%.%.=.7 ", "9 4.6.6.3.3.3.3.3.Y @ X l =.=.=.%.%.%.%.$.=.7 ", "9 6.3.3.3.3.2.3.O.< @ I =.=.%.%.%.%.$.=.7 ", "9 4.3.3.3.3.2.<.a . 1 { %.%.$.$.%.$.#.7 ", "9 6.3.3.3.2.2.F O o p & . p @.%.%.$.$.$.%.7 ", "9 1.3.2.2.2._ * i %.v X O M %.$.$.$.$.=.7 ", "0 2.3.2.2.&.w , [ =.%.i . = R $.$.$.$.%.7 ", "7 3.2.2.2.z . + G -.=.=.[ , q { $.$.$.#.7 ", "9 <.3.2.U @ . h =.=.=.=.%.P + . k $.$.} %.7 ", "9 2.2.| , 6 ..=.%.=.%.%.%.j X @ N $.} %.7 ", "9 2.-.p & E =.=.%.%.%.%.%.@.q > ] $.#.7 ", "9 2.m X o n =.=.%.%.%.%.%.$.%.R & u { %.7 ", "9 X.6 @ % # # @ # d %.=.%.%.%.%.%.%.$.$.$.M = # & & & & : B %.7 ", "4 o.` _ ` ` _ | _ ..-.&.=.&.=.%.%.%.#.%.%.%.[ Q [ R Q [ Q .| 5 ", "O 4 7 r 7 7 7 7 7 7 7 7 7 7 7 7 7 6 7 7 7 6 7 w w w w w w 7 3 O " }; debian/xpn.1.xml0000644000000000000000000002247011141316443010657 0ustar .
will be generated. You may view the manual page with: nroff -man .
| less'. A typical entry in a Makefile or Makefile.am is: DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0" manpage.1: manpage.xml $(XP) $(DB2MAN) $< The xsltproc binary is found in the xsltproc package. The XSL files are in docbook-xsl. A description of the parameters you can use can be found in the docbook-xsl-doc-* packages. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include xsltproc and docbook-xsl in your Build-Depends control field. Alternatively use the xmlto command/package. That will also automatically pull in xsltproc and docbook-xsl. Notes for using docbook2x: docbook2x-man does not automatically create the AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as ... . To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be found in the docbook-xsl-doc-html package. Validation can be done using: `xmllint -''-noout -''-valid manpage.xml` General documentation about man-pages and man-page-formatting: man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/ --> ]> &dhtitle; &dhpackage; Antonio Caputo Upstream author.
nemesis2001@gmx.it
Batista Facundo Contributed some code.
facundo@taniquetil.com.ar
&dhfirstname; &dhsurname; Wrote this manpage for the Debian system.
&dhemail;
Emmanuele Bassi Contributed some code.
emmanuele.bassi@infinito.it
Guillame Bedot French translator and contributed some code.
guillaume.bedot@wanadoo.fr
Marek Macioschek German translator.
Marek.M@gmx.net
Patrick Lamaiziere French translator.
patrick.softs@lamaiziere.net
Rene Fischer German translator.
rene.fischer@gaehn.org
Valentino Volonghi Contributed some code.
dialton3@virgilio.it
2008 &dhusername; This manual page was written for the Debian system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 or (at your option) any later version published by the Free Software Foundation. On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.
&dhucpackage; &dhsection; &dhpackage; graphical newsreader written in Python with the GTK+ toolkit &dhpackage; &dhpackage; directory &dhpackage; DESCRIPTION This manual page documents briefly the &dhpackage; command. This manual page was written for the Debian distribution because the original program does not have a manual page. Instead, it has documentation in the GNU info 1 format; see below. &dhpackage; is a graphical newsreader written in Python with the GTK+ toolkit. With XPN you can read/write articles on the Usenet with a good MIME support. XPN can operate with all the most diffuse charset starting from US-ASCII to UTF-8. When you edit an article XPN automatically chooses the best charset, however is always possible to override this choice. There also other useful features like scoring, filtered views, random tag-lines, external editor support, one-key navigation, ROT13, spoiler char, ... OPTIONS use the home directory to store config files and articles (default). specify an existing directory where to store config files and articles. show summary of options. FILES ${HOME}/.xpn/ Default directory where &dhpackage; stores its configuration and articles.
debian/pyversions0000644000000000000000000000000511407164613011330 0ustar 2.5- debian/watch0000644000000000000000000000006011141316443010211 0ustar version=3 http://sf.net/xpn/xpn-(.*)\.tar\.gz debian/manpages0000644000000000000000000000001511301201176010670 0ustar debian/xpn.1 debian/compat0000644000000000000000000000000211141321561010357 0ustar 7 debian/xpn.10000644000000000000000000000637511141316443010066 0ustar .\" Title: XPN .\" Author: Antonio Caputo .\" Generator: DocBook XSL Stylesheets v1.73.2 .\" Date: 02/09/2008 .\" Manual: xpn User Manual .\" Source: xpn .\" .TH "XPN" "1" "02/09/2008" "xpn" "xpn User Manual" .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .SH "NAME" xpn - graphical newsreader written in Python with the GTK+ toolkit .SH "SYNOPSIS" .HP 4 \fBxpn\fR [\fB\-d\fR\ |\ \fB\-\-home_dir\fR] .HP 4 \fBxpn\fR [\fB\-c\fR\ |\ \fB\-\-custom_dir=\fR\ {\fIdirectory\fR}] .HP 4 \fBxpn\fR [\fB\-h\fR | \fB\-\-help\fR] .SH "DESCRIPTION" .PP This manual page documents briefly the \fBxpn\fR command\. .PP This manual page was written for the Debian distribution because the original program does not have a manual page\. Instead, it has documentation in the GNU \fBinfo\fR(1) format; see below\. .PP \fBxpn\fR is a graphical newsreader written in Python with the GTK+ toolkit\. .PP With XPN you can read/write articles on the Usenet with a good MIME support\. XPN can operate with all the most diffuse charset starting from US\-ASCII to UTF\-8\. When you edit an article XPN automatically chooses the best charset, however is always possible to override this choice\. .PP There also other useful features like scoring, filtered views, random tag\-lines, external editor support, one\-key navigation, ROT13, spoiler char, \.\.\. .SH "OPTIONS" .PP \fB\-d\fR, \fB\-\-home_dir\fR .RS 4 use the home directory to store config files and articles (default)\. .RE .PP \fB\-c \fR\fB\fIdirectory\fR\fR, \fB\-\-custom_dir=\fR\fB\fIdirectory\fR\fR .RS 4 specify an existing \fIdirectory\fR where to store config files and articles\. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 show summary of options\. .RE .SH "FILES" .PP \fI${HOME}/\.xpn/\fR .RS 4 Default directory where xpn stores its configuration and articles\. .RE .SH "AUTHORS" .PP \fBAntonio Caputo\fR <\&nemesis2001@gmx\.it\&> .sp -1n .IP "" 4 Upstream author\. .PP \fBBatista Facundo\fR <\&facundo@taniquetil\.com\.ar\&> .sp -1n .IP "" 4 Contributed some code\. .PP \fBDavid Paleino\fR <\&d\.paleino@gmail\.com\&> .sp -1n .IP "" 4 Wrote this manpage for the Debian system\. .PP \fBEmmanuele Bassi\fR <\&emmanuele\.bassi@infinito\.it\&> .sp -1n .IP "" 4 Contributed some code\. .PP \fBGuillame Bedot\fR <\&guillaume\.bedot@wanadoo\.fr\&> .sp -1n .IP "" 4 French translator and contributed some code\. .PP \fBMarek Macioschek\fR <\&Marek\.M@gmx\.net\&> .sp -1n .IP "" 4 German translator\. .PP \fBPatrick Lamaiziere\fR <\&patrick\.softs@lamaiziere\.net\&> .sp -1n .IP "" 4 French translator\. .PP \fBRene Fischer\fR <\&rene\.fischer@gaehn\.org\&> .sp -1n .IP "" 4 German translator\. .PP \fBValentino Volonghi\fR <\&dialton3@virgilio\.it\&> .sp -1n .IP "" 4 Contributed some code\. .SH "COPYRIGHT" Copyright \(co 2008 David Paleino .br .PP This manual page was written for the Debian system (but may be used by others)\. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 or (at your option) any later version published by the Free Software Foundation\. .PP On Debian systems, the complete text of the GNU General Public License can be found in \fI/usr/share/common\-licenses/GPL\fR\. .sp debian/control0000644000000000000000000000170711407164653010605 0ustar Source: xpn Section: news Priority: optional Maintainer: David Paleino Build-Depends: debhelper (>= 7.0.50~) , python-support (>= 0.90.0) Standards-Version: 3.8.4 Homepage: http://xpn.altervista.org/index-en.html Vcs-Git: git://git.debian.org/git/collab-maint/xpn.git Vcs-Browser: http://git.debian.org/?p=collab-maint/xpn.git Package: xpn Architecture: all Depends: ${python:Depends} , ${misc:Depends} , python-gtk2 (>= 2.8) Description: graphical newsreader written in Python and GTK+ toolkit With XPN you can read/write articles on the Usenet with a good MIME support. XPN can operate with all the most widespread charsets, starting from US-ASCII to UTF-8. When you edit an article XPN automatically chooses the best charset, however is always possible to override this choice. . There also other useful features like scoring, filtered views, random tag-lines, external editor support, one-key navigation, ROT13, spoiler char, ... debian/copyright0000644000000000000000000000153711326556133011134 0ustar Source: http://sourceforge.net/projects/xpn Files: debian/* Copyright: © 2008, David Paleino License: GPL-3+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Files: * Copyright: © 2003-2008, Antonio Caputo License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. On Debian systems, the complete text of the licenses con be found in: GPL-3 - `/usr/share/common-licenses/GPL' GPL-2 - `/usr/share/common-licenses/GPL-2' debian/changelog0000644000000000000000000000576011407603173011052 0ustar xpn (1.2.6-5) unstable; urgency=low * debian/patches/04-add_tray_icon.patch: improved behaviour. Now it only blinks if the window isn't focused, and, upon click, it raises it if it's open, rather than minimizing it. -- David Paleino Mon, 21 Jun 2010 08:28:10 +0200 xpn (1.2.6-4) unstable; urgency=low * debian/patches/03-fix_deprecations.patch fixed, complete gtk.Tooltips() transition * debian/control: - bump Standards-Version to 3.8.4 - use ${python:Depends} instead of hardcoding python dependency * debian/source/format: use 3.0 (quilt) * debian/pyversions added (2.5-) -- David Paleino Sat, 19 Jun 2010 18:01:23 +0200 xpn (1.2.6-3) unstable; urgency=low * debian/patches/: - 03-fix_deprecations.patch added, fix deprecated GTK widgets/calls (gtk.Tooltips() and set_use_markup()) - 04-add_tray_icon.patch added (Closes: #563811) * debian/xpn-wrapper.sh updated to use exec rather than directly running python * debian/control: removed dependency on python-pysqlite2, since python2.5 already has sqlite3 it in the standards modules -- David Paleino Sat, 16 Jan 2010 17:33:15 +0100 xpn (1.2.6-2) unstable; urgency=low * debian/control: - updated my email address - DMUA removed - Build-Dependencies versions bumped to use dh7 - Standards-Version bumped to 3.8.3, no changes needed * debian/manpages added * debian/rules rewritten using dh7: - remove xpn.pot from locales directory (Closes: #556994) * debian/README.source added -- David Paleino Thu, 19 Nov 2009 10:20:56 +0100 xpn (1.2.6-1) unstable; urgency=low * New upstream release * debian/control: - Vcs-* fields updated to reflect packaging moved to git - added ${misc:Depends} to dependencies - DM-Upload-Allowed set * debian/patches/: - 02-fix_localedir.patch refreshed to cleanly apply * debian/rules, debian/control, debian/compat: - switched to dh7-style -- David Paleino Sun, 01 Feb 2009 14:34:07 +0100 xpn (1.2.5-1) unstable; urgency=low * New upstream release * debian/control: - Standards-Version 3.8.0 (no changes needed) - added dependency on python-pysqlite2 - Python dependency bumped to >= 2.5 -- David Paleino Sat, 27 Sep 2008 14:27:33 +0200 xpn (1.0.0-3) unstable; urgency=low * debian/patches/02-fix_localedir.patch added (Closes: #477537) -- David Paleino Fri, 02 May 2008 10:19:20 +0200 xpn (1.0.0-2) unstable; urgency=low * Adding menu entry for GNOME-like menu systems (Closes: #474521) - debian/xpn.desktop added (thanks to Franklin Piat) - debian/dirs, debian/install and debian/rules edited accordingly - debian/links added -- David Paleino Sun, 06 Apr 2008 13:30:15 +0200 xpn (1.0.0-1) unstable; urgency=low * Initial release (Closes: #439107) -- David Paleino Sat, 09 Feb 2008 18:03:46 +0100 debian/source/0000755000000000000000000000000011407163277010476 5ustar debian/source/format0000644000000000000000000000001411407163277011704 0ustar 3.0 (quilt) debian/xpn.desktop0000644000000000000000000000502611141316443011367 0ustar [Desktop Entry] Name=Xpn Newsreader Name[az]=Xpn Xəbərlər Oxuyucusu Name[bg]=Четец на новини (Xpn) Name[ca]=Lector de notícies Xpn Name[cs]=Program pro čtení diskusních skupin Xpn Name[da]=Xpn - nyhedsgruppelæser Name[de]=Newsreader Xpn Name[el]=Xpn Ανάγνωση συζητήσεων Name[en_CA]=Xpn Newsreader Name[en_GB]=Xpn Newsreader Name[es]=Lector de noticias Xpn Name[et]=Uudiseriider Xpn Name[fi]=Xpn-keskusteluryhmäohjelma Name[fr]=Lecteur de nouvelles Xpn Name[hr]=Xpn program za čitanje novosti Name[it]=Xpn Lettore di News Name[ja]=ニュースリーダ Xpn Name[lv]=Xpn Jaunumlasītājs Name[ms]=Pembaca berita Xpn Name[nb]=Xpn newsleser Name[nl]=Xpn nieuwslezer Name[pl]=Xpn Name[pt]=Leitor de Notícias Xpn Name[pt_BR]=Leitor de Notícias Xpn Name[ro]=Cititorul de ştiri Xpn Name[sk]=Xpn - Program pre prácu s diskusnými skupinami Name[sq]=Xpn - Lexuesi i Lajmeve Name[sr@Latn]=Xpn klijent za diskusione grupe Name[sv]=Diskussionsgruppsläsaren Xpn Name[tr]=Xpn Haber Okuyucusu Name[uk]=Переглядач новин "Xpn" Name[vi]=Bộ đọc tin tức Xpn Name[zh_TW]=Xpn 新聞閱讀器 Comment=Read News from Usenet Comment[bg]=Четене на новини от Usenet Comment[ca]=Llegiu notícies de Usenet Comment[cs]=Čtení zpráv diskusních skupin ze sítě Usenet Comment[da]=Læs nyhedsgrupper fra Usenet Comment[de]=Diskussionsgruppen im Usenet lesen Comment[el]=Ανάγνωση συζητήσεων από το Usenet Comment[en_CA]=Read News from Usenet Comment[en_GB]=Read News from Usenet Comment[es]=Lea las noticias de Usenet Comment[et]=Loe Usenetist uudiseid Comment[fi]=Lue Usenetin keskusteluryhmiä Comment[fr]=Lit les nouvelles de Usenet Comment[hr]=Čitaj Novosti sa Useneta Comment[it]=Leggi News da Usenet Comment[ja]=Usenet のニュースを読みます Comment[lv]=Lasīt Jaunumus no Usenet Comment[ms]=Membaca Berita dari Usenet Comment[nb]=Les nyheter fra Usenet Comment[nl]=Nieuws van Usenet lezen Comment[pl]=Odczytuje nowiny z Usenetu Comment[pt]=Leia Notícias da Usenet Comment[pt_BR]=Ler notícias da Usenet Comment[ro]=Citeşte articole de pe Usenet Comment[sk]=Prečítať správy z Usenetu Comment[sq]=Lexon lajmet nga Usenet Comment[sr@Latn]=Čitajte diskusione grupe Comment[sv]=Läs diskussionsgrupper från Usenet Comment[tr]=Habeleri Usenet'ten Oku Comment[uk]=Читання новин Usenet Comment[vi]=Đọc tin tức từ Usenet Comment[zh_TW]=從 Usenet 讀取新聞 Exec=xpn Icon=xpn Terminal=false Type=Application Categories=GTK;Application;Network;News StartupNotify=false debian/patches/0000755000000000000000000000000011407602651010617 5ustar debian/patches/series0000644000000000000000000000013511320660426012031 0ustar 01-fix_shbangs.patch 02-fix_localedir.patch 03-fix_deprecations.patch 04-add_tray_icon.patch debian/patches/03-fix_deprecations.patch0000644000000000000000000021023611326575044015417 0ustar From: David Paleino Subject: fix deprecated usage of gtk.Tooltips() and gtk.Label.set_use_markup() --- xpn.py | 9 -- xpn_src/Article_Pane.py | 18 ++--- xpn_src/Charset_List.py | 14 +--- xpn_src/Config_Win.py | 158 +++++++++++++++++++++-------------------------- xpn_src/Dialogs.py | 40 +++++------ xpn_src/Edit_Mail_Win.py | 23 +++--- xpn_src/Edit_Win.py | 59 ++++++++--------- xpn_src/Find_Win.py | 56 ++++++++-------- xpn_src/Groups_Vs_ID.py | 36 +++++----- xpn_src/Groups_Win.py | 20 ++--- xpn_src/Headers_List.py | 11 +-- xpn_src/ID_Win.py | 44 +++++-------- xpn_src/Score.py | 62 ++++++++---------- xpn_src/Server_Win.py | 10 +- xpn_src/Show_Logs.py | 4 - xpn_src/add_tag.py | 4 - 16 files changed, 263 insertions(+), 305 deletions(-) --- xpn.orig/xpn.py +++ xpn/xpn.py @@ -2780,12 +2780,9 @@ When you try to import a newsrc file XPN self.zoom_article_button.connect("clicked",self.zoom_article) self.zoom_threads_button.connect("clicked",self.zoom_threads) self.zoom_groups_button.connect("clicked",self.zoom_groups) - zoom_article_tip=gtk.Tooltips() - zoom_threads_tip=gtk.Tooltips() - zoom_groups_tip=gtk.Tooltips() - zoom_article_tip.set_tip(self.zoom_article_button,_("Zoom Article Pane")) - zoom_threads_tip.set_tip(self.zoom_threads_button,_("Zoom Headers Pane")) - zoom_groups_tip.set_tip(self.zoom_groups_button,_("Zoom Groups Pane")) + self.zoom_article_button.set_tooltip_text(_("Zoom Article Pane")) + self.zoom_threads_button.set_tooltip_text(_("Zoom Headers Pane")) + self.zoom_groups_button.set_tooltip_text(_("Zoom Groups Pane")) hbox_bottom.pack_start(self.zoom_article_button,False,False,0) hbox_bottom.pack_start(self.zoom_threads_button,False,False,0) hbox_bottom.pack_start(self.zoom_groups_button,False,False,0) --- xpn.orig/xpn_src/Article_Pane.py +++ xpn/xpn_src/Article_Pane.py @@ -33,11 +33,11 @@ class Article_Pane: def show_hide_headers(self,button,signal): if not self.frame_shown: - self.expander_tooltip.set_tip(self.expander,_("Hide Headers")) + self.expander.set_tooltip_text(_("Hide Headers")) self.expander.get_label_widget().set_label("") self.frame_shown=True else: - self.expander_tooltip.set_tip(self.expander,_("Expand Headers Row")) + self.expander.set_tooltip_text(_("Expand Headers Row")) self.frame_shown=False self.update_expander_label() @@ -380,8 +380,8 @@ class Article_Pane: self.headers_table.remove(child) i=0 for header in hlist: - label=gtk.Label(""+header+":"+"") - label.set_use_markup(True) + label=gtk.Label() + label.set_markup(""+header+":"+"") label.set_alignment(1,0.5) value=gtk.Label("") value.set_alignment(0,0.5) @@ -407,18 +407,16 @@ class Article_Pane: self.evbox.show_all() self.vbox.pack_start(self.evbox,False,True,0) - self.expander_tooltip=gtk.Tooltips() + exp_label=gtk.Label() if show_headers==True: self.expander.set_expanded(True) - self.expander_tooltip.set_tip(self.expander,_("Hide Headers")) - exp_label=gtk.Label("") + self.expander.set_tooltip_text(_("Hide Headers")) self.frame_shown=True else: self.expander.set_expanded(False) - self.expander_tooltip.set_tip(self.expander,_("Expand Headers Row")) - exp_label=gtk.Label(""+_("Expand Headers Row")+"") + self.expander.set_tooltip_text(_("Expand Headers Row")) + exp_label.set_markup(""+_("Expand Headers Row")+"") self.frame_shown=False - exp_label.set_use_markup(True) exp_label.show() self.expander.set_label_widget(exp_label) self.expander.connect("notify::expanded",self.show_hide_headers) --- xpn.orig/xpn_src/Groups_Win.py +++ xpn/xpn_src/Groups_Win.py @@ -331,10 +331,9 @@ class Groups_Win: #search_button self.search_button=gtk.Button(_("Search Group")) + self.search_button.set_tooltip_text(_("Start searching")) self.search_button.connect("clicked",self.search_group) self.hbox_list.pack_start(self.search_button,False,True,2) - self.search_button_tooltip=gtk.Tooltips() - self.search_button_tooltip.set_tip(self.search_button,_("Start searching")) #live search check_button self.live_search_checkbutton=gtk.CheckButton(_("Perform Live Search")) @@ -377,10 +376,9 @@ class Groups_Win: #Server Button self.server_button=gtk.Button(_("Get Newsgroups List")) + self.server_button.set_tooltip_text(_("This could take several minutes")) self.server_button.connect("clicked",self.get_list) self.server_hbox.pack_start(self.server_button,False,True,5) - self.server_button_tooltip=gtk.Tooltips() - self.server_button_tooltip.set_tip(self.server_button,_("This could take several minutes")) #Server Label self.server_combo= gtk.combo_box_new_text() @@ -397,9 +395,8 @@ class Groups_Win: self.right_hbox.pack_start(self.articles_frame,False,True,0) #Articles SpinButton - self.articles_spinbutton =gtk.SpinButton(gtk.Adjustment(value=500,lower=0,upper=10000,step_incr=1,page_incr=50)) - self.articles_spinbutton_tooltip=gtk.Tooltips() - self.articles_spinbutton_tooltip.set_tip(self.articles_spinbutton,_("Download this number of articles (headers only)")) + self.articles_spinbutton = gtk.SpinButton(gtk.Adjustment(value=500,lower=0,upper=10000,step_incr=1,page_incr=50)) + self.articles_spinbutton.set_tooltip_text(_("Download this number of articles (headers only)")) self.articles_frame.add(self.articles_spinbutton) #Subscribed Frame @@ -419,22 +416,20 @@ class Groups_Win: #button_subscribe self.button_subscribe=gtk.Button() self.button_subscribe.connect("clicked",self.subscribe_selected_groups) + self.button_subscribe.set_tooltip_text(_("Subscribe selected groups")) button_subscribe_image=gtk.Image() button_subscribe_image.set_from_stock(gtk.STOCK_GO_FORWARD,gtk.ICON_SIZE_MENU) self.button_subscribe.add(button_subscribe_image) self.vbutton_box.pack_start(self.button_subscribe,False,False,0) - self.subscribe_button_tooltip=gtk.Tooltips() - self.subscribe_button_tooltip.set_tip(self.button_subscribe,_("Subscribe selected groups")) #button_unsubscribe self.button_unsubscribe=gtk.Button() self.button_unsubscribe.connect("clicked",self.unsubscribe_selected_groups) + self.button_unsubscribe.set_tooltip_text(_("UnSubscribe selected groups")) button_unsubscribe_image=gtk.Image() button_unsubscribe_image.set_from_stock(gtk.STOCK_GO_BACK,gtk.ICON_SIZE_MENU) self.button_unsubscribe.add(button_unsubscribe_image) self.vbutton_box.pack_start(self.button_unsubscribe,False,False,0) - self.unsubscribe_button_tooltip=gtk.Tooltips() - self.unsubscribe_button_tooltip.set_tip(self.button_unsubscribe,_("UnSubscribe selected groups")) #subscribed_groups self.subscribed_list=Groups_Pane(_("NewsGroups"),_("Articles"),False,self.configs) @@ -459,10 +454,9 @@ class Groups_Win: #button_close self.button_close= gtk.Button(None,gtk.STOCK_OK) + self.button_close.set_tooltip_text(_("Close this window")) self.vbox1.pack_start(self.button_close,False,True,4) self.button_close.connect("clicked",self.destroy) - self.button_close_tooltip=gtk.Tooltips() - self.button_close_tooltip.set_tip(self.button_close,_("Close this window")) #hbox_bottom self.hbox_bottom=gtk.HBox() --- xpn.orig/xpn_src/Dialogs.py +++ xpn/xpn_src/Dialogs.py @@ -26,8 +26,8 @@ class About_Dialog: self.image.set_from_file("pixmaps/xpn-logo-small.png") self.dialog.vbox.pack_start(self.image,True,True) string="X Python Newsreader %s\nItalian Style\n\nWritten by Antonio 'Nemesis' Caputo\nxpn@altervista.org\n\nhttp://xpn.altervista.org" % (NUMBER,) - self.label=gtk.Label(string) - self.label.set_use_markup(True) + self.label=gtk.Label() + self.label.set_markup(string) self.label.set_justify(gtk.JUSTIFY_CENTER) self.dialog.vbox.pack_start(self.label,True,True,8) @@ -38,10 +38,10 @@ class Dialog_YES_NO: def __init__(self,message): self.resp="" - self.dialog=gtk.MessageDialog(None,0,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO,message) + self.dialog=gtk.MessageDialog(None,0,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO) self.dialog.connect("delete_event",self.delete_event) self.dialog.set_position(gtk.WIN_POS_CENTER) - self.dialog.label.set_use_markup(True) + self.dialog.label.set_markup(message) resp=self.dialog.run() if resp==gtk.RESPONSE_YES: self.resp=True @@ -56,18 +56,18 @@ class Dialog_OK: def __init__(self,message): self.resp="" - self.dialog=gtk.MessageDialog(None,0,gtk.MESSAGE_INFO,gtk.BUTTONS_OK,message) + self.dialog=gtk.MessageDialog(None,0,gtk.MESSAGE_INFO,gtk.BUTTONS_OK) self.dialog.connect("delete_event",self.delete_event) self.dialog.set_position(gtk.WIN_POS_CENTER) - self.dialog.label.set_use_markup(True) + self.dialog.label.set_markup(message) self.resp=self.dialog.run() self.dialog.destroy() class Dialog_Import_Newsrc(gtk.Dialog): def __init__(self,message,server_name): gtk.Dialog.__init__(self,_("Choose the Server"),None,0,(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OK,gtk.RESPONSE_OK)) - self.label=gtk.Label(message) - self.label.set_use_markup(True) + self.label=gtk.Label() + self.label.set_markup(message) self.set_position(gtk.WIN_POS_CENTER) self.server_combo=gtk.combo_box_new_text() cp=ConfigParser.ConfigParser() @@ -126,10 +126,10 @@ class Error_Dialog(gtk.Dialog): self.scrolled_win_log.set_shadow_type(gtk.SHADOW_ETCHED_IN) self.scrolled_win_log.add(self.view_log) self.notebook=gtk.Notebook() - self.label_error=gtk.Label(""+_("Last Error")+"") - self.label_error.set_use_markup(True) - self.label_error_log=gtk.Label(""+_("Errors Log")+"") - self.label_error_log.set_use_markup(True) + self.label_error=gtk.Label() + self.label_error.set_markup(""+_("Last Error")+"") + self.label_error_log=gtk.Label() + self.label_error_log.set_markup(""+_("Errors Log")+"") self.notebook.append_page(self.scrolled_win,self.label_error) self.notebook.append_page(self.scrolled_win_log,self.label_error_log) self.notebook.show_all() @@ -140,8 +140,8 @@ class MidDialog(gtk.Dialog): def __init__(self,mid): gtk.Dialog.__init__(self,_("Message-ID Search Dialog"),None,0,(gtk.STOCK_CLOSE,gtk.RESPONSE_CLOSE,gtk.STOCK_OK,gtk.RESPONSE_OK)) - self.label=gtk.Label(""+_("Message-ID to search")+"") - self.label.set_use_markup(True) + self.label=gtk.Label() + self.label.set_markup(""+_("Message-ID to search")+"") self.entry=gtk.Entry() self.entry.set_text(mid) self.entry.show() @@ -185,10 +185,10 @@ class Shortcut_Dialog(gtk.Dialog): def __init__(self): gtk.Dialog.__init__(self,_("Shortcut Dialog"),None,0,(gtk.STOCK_OK,gtk.RESPONSE_OK,gtk.STOCK_CLOSE,gtk.RESPONSE_CLOSE)) - self.label1=gtk.Label(""+_("Type your Shortcut")+"") - self.label1.set_use_markup(True) - self.label2=gtk.Label(""+_("Press OK to confirm it")+"") - self.label2.set_use_markup(True) + self.label1=gtk.Label() + self.label1.set_markup(""+_("Type your Shortcut")+"") + self.label2=gtk.Label() + self.label2.set_markup(""+_("Press OK to confirm it")+"") self.entry=gtk.Entry() self.entry.set_sensitive(False) self.entry.show() @@ -208,10 +208,10 @@ class Shortcut_Error_Warning_Dialog(gtk. type=gtk.MESSAGE_WARNING else: type=gtk.MESSAGE_ERROR - gtk.MessageDialog.__init__(self,None,0,type,gtk.BUTTONS_OK,message) + gtk.MessageDialog.__init__(self,None,0,type,gtk.BUTTONS_OK) self.set_size_request(500,400) self.set_resizable(True) - self.label.set_use_markup(True) + self.label.set_markup(message) scrolledwin=gtk.ScrolledWindow() self.treeview=gtk.TreeView() self.treeview.set_border_width(4) --- xpn.orig/xpn_src/Edit_Mail_Win.py +++ xpn/xpn_src/Edit_Mail_Win.py @@ -746,9 +746,9 @@ class Edit_Mail_Win: toolbar.set_style(gtk.SHADOW_NONE) - id_label=gtk.Label(""+_("Identity")+"") + id_label=gtk.Label() + id_label.set_markup(""+_("Identity")+"") id_label.set_alignment(0,0.5) - id_label.set_use_markup(True) id_hbox=gtk.HBox() self.id_combo=gtk.combo_box_new_text() self.cp_id=ConfigParser.ConfigParser() @@ -773,17 +773,17 @@ class Edit_Mail_Win: self.headers_table=gtk.Table(3,2,False) self.headers_table.set_border_width(2) - self.to_name_label=gtk.Label(""+_("To : ")+"") - self.to_name_label.set_use_markup(True) + self.to_name_label=gtk.Label() + self.to_name_label.set_markup(""+_("To : ")+"") self.to_name_label.set_alignment(1,0.5) - self.from_label=gtk.Label(""+_("From : ")+"") - self.from_label.set_use_markup(True) + self.from_label=gtk.Label() + self.from_label.set_markup(""+_("From : ")+"") self.from_label.set_alignment(1,0.5) - self.subj_label=gtk.Label(""+_("Subject : ")+"") - self.subj_label.set_use_markup(True) + self.subj_label=gtk.Label() + self.subj_label.set_markup(""+_("Subject : ")+"") self.subj_label.set_alignment(1,0.5) - self.charset_label=gtk.Label(""+_("Charset : ")+"") - self.charset_label.set_use_markup(True) + self.charset_label=gtk.Label() + self.charset_label.set_markup(""+_("Charset : ")+"") self.charset_label.set_alignment(1,0.5) self.to_name_entry=gtk.Entry() @@ -792,8 +792,7 @@ class Edit_Mail_Win: self.charset_combo=gtk.combo_box_entry_new_text() for encoding in encodings_list: self.charset_combo.append_text(encoding) - self.charset_tooltip=gtk.Tooltips() - self.charset_tooltip.set_tip(self.charset_combo.child,encodings_tip) + self.charset_combo.child.set_tooltip_text(encodings_tip) self.charset_combo.child.set_editable(False) --- xpn.orig/xpn_src/Charset_List.py +++ xpn/xpn_src/Charset_List.py @@ -196,10 +196,10 @@ class CharsetList: self.window.set_size_request(400,400) self.table=gtk.Table(3,2,False) self.table.set_border_width(4) - label_left=gtk.Label(""+_("Available Charsets")+"") - label_left.set_use_markup(True) - label_right=gtk.Label(""+_("Ordered Charsets")+"") - label_right.set_use_markup(True) + label_left=gtk.Label() + label_left.set_markup(""+_("Available Charsets")+"") + label_right=gtk.Label() + label_right.set_markup(""+_("Ordered Charsets")+"") self.left_scrolledwin=gtk.ScrolledWindow() self.left_scrolledwin.set_border_width(4) self.left_scrolledwin.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC) @@ -218,8 +218,7 @@ class CharsetList: #self.left_list.enable_model_drag_dest([("Delete",gtk.TARGET_SAME_APP,2)],gtk.gdk.ACTION_MOVE) #self.left_list.connect("drag-data-get",self.data_get) #self.left_list.connect("drag-data-received",self.data_received_left) - self.left_list_tooltip=gtk.Tooltips() - self.left_list_tooltip.set_tip(self.left_list,encodings_tip) + self.left_list.set_tooltip_text(encodings_tip) self.left_list.get_selection().set_mode(gtk.SELECTION_MULTIPLE) @@ -243,8 +242,7 @@ class CharsetList: #self.right_list.enable_model_drag_source(False,[("Ord",gtk.TARGET_SAME_WIDGET,1),("Delete",gtk.TARGET_SAME_APP,2)],gtk.gdk.ACTION_MOVE) #self.right_list.connect("drag-data-received",self.data_received_right) #self.right_list.connect("drag-data-get",self.data_get) - self.right_list_tooltip=gtk.Tooltips() - self.right_list_tooltip.set_tip(self.right_list,_("XPN will try to encode your articles with these charsets in this order")) + self.right_list.set_tooltip-text(_("XPN will try to encode your articles with these charsets in this order")) self.right_list.set_reorderable(True) self.right_list.get_selection().set_mode(gtk.SELECTION_MULTIPLE) --- xpn.orig/xpn_src/Config_Win.py +++ xpn/xpn_src/Config_Win.py @@ -463,9 +463,9 @@ class Config_Win: def insert_rb(self,name,icon_name,shortname,tooltip,group=None): icon=gtk.Image() icon.set_from_file("pixmaps/"+icon_name) - label=gtk.Label(""+name+"") - label.set_use_markup(True) + label=gtk.Label() + label.set_markup(""+name+"") radiobutton=gtk.RadioButton(group) radiobutton.set_mode(False) radiobutton.set_relief( gtk.RELIEF_NONE ) @@ -506,15 +506,15 @@ class Config_Win: def build_server_page(self): notebook=gtk.Notebook() - label_server=gtk.Label(""+_("Servers")+"") - label_server.set_use_markup(True) + label_server=gtk.Label() + label_server.set_markup(""+_("Servers")+"") server_profile_vbox=gtk.VBox() - server_label=gtk.Label(""+_("NNTP Servers")+"") + server_label=gtk.Label() + server_label.set_markup(""+_("NNTP Servers")+"") server_label.set_alignment(0,0.5) - server_label.set_use_markup(True) server_vbox=gtk.VBox() server_vbox.set_border_width(4) server_table=gtk.Table(5,2,False) @@ -550,20 +550,17 @@ class Config_Win: add_edit_server(edit_button) add_button=gtk.Button(None,gtk.STOCK_ADD) - add_button_tooltip=gtk.Tooltips() - add_button_tooltip.set_tip(add_button,_("Add a Server")) + add_button.set_tooltip_text(_("Add a Server")) add_button.connect("clicked",add_edit_server) add_button.set_border_width(5) edit_button=gtk.Button(None,gtk.STOCK_EDIT) - edit_button_tooltip=gtk.Tooltips() - edit_button_tooltip.set_tip(edit_button,_("Edit Selected Server")) + edit_button.set_tooltip_text(_("Edit Selected Server")) edit_button.connect("clicked",add_edit_server) edit_button.set_border_width(5) remove_button=gtk.Button(None,gtk.STOCK_REMOVE) - remove_button_tooltip=gtk.Tooltips() - remove_button_tooltip.set_tip(remove_button,_("Remove Selected Server")) + remove_button.set_tooltip_text(_("Remove Selected Server")) remove_button.connect("clicked",remove_server) remove_button.set_border_width(5) @@ -591,9 +588,9 @@ class Config_Win: server_profile_vbox.pack_start(server_vbox,True,True) - mail_server_label=gtk.Label(""+_("SMTP Server")+"") + mail_server_label=gtk.Label() + mail_server_label.set_markup(""+_("SMTP Server")+"") mail_server_label.set_alignment(0,0.5) - mail_server_label.set_use_markup(True) mail_server_vbox=gtk.VBox() mail_server_vbox.set_border_width(4) mail_server_vbox.pack_start(mail_server_label,False,True) @@ -644,8 +641,8 @@ class Config_Win: def build_user_page(self): notebook=gtk.Notebook() - label_user=gtk.Label(""+_("User Profile")+"") - label_user.set_use_markup(True) + label_user=gtk.Label() + label_user.set_markup(""+_("User Profile")+"") @@ -678,20 +675,17 @@ class Config_Win: add_edit_id(edit_button) add_button=gtk.Button(None,gtk.STOCK_ADD) - add_button_tooltip=gtk.Tooltips() - add_button_tooltip.set_tip(add_button,_("Add an Identity")) + add_button.set_tooltip_text(_("Add an Identity")) add_button.connect("clicked",add_edit_id) add_button.set_border_width(5) edit_button=gtk.Button(None,gtk.STOCK_EDIT) - edit_button_tooltip=gtk.Tooltips() - edit_button_tooltip.set_tip(edit_button,_("Edit Selected Identity")) + edit_button.set_tooltip_text(_("Edit Selected Identity")) edit_button.connect("clicked",add_edit_id) edit_button.set_border_width(5) remove_button=gtk.Button(None,gtk.STOCK_REMOVE) - remove_button_tooltip=gtk.Tooltips() - remove_button_tooltip.set_tip(remove_button,_("Remove Selected Identity")) + remove_button.set_tooltip_text(_("Remove Selected Identity")) remove_button.connect("clicked",remove_id) remove_button.set_border_width(5) @@ -730,8 +724,8 @@ class Config_Win: def build_display_page(self): notebook=gtk.Notebook() - label_display_profile=gtk.Label(""+_("Fonts and Colors")+"") - label_display_profile.set_use_markup(True) + label_display_profile=gtk.Label() + label_display_profile.set_markup(""+_("Fonts and Colors")+"") display_profile_vbox=gtk.VBox() @@ -739,9 +733,9 @@ class Config_Win: font_vbox=gtk.VBox() - font_label=gtk.Label(""+_("Fonts")+"") + font_label=gtk.Label() + font_label.set_markup(""+_("Fonts")+"") font_label.set_alignment(0,0.5) - font_label.set_use_markup(True) font_vbox.pack_start(font_label,False,False,4) font_vbox.set_border_width(4) self.font_article_hbox=gtk.HBox() @@ -790,9 +784,9 @@ class Config_Win: colors_vbox=gtk.VBox() - colors_label=gtk.Label(""+_("Colors")+"") + colors_label=gtk.Label() + colors_label.set_markup(""+_("Colors")+"") colors_label.set_alignment(0,0.5) - colors_label.set_use_markup(True) colors_vbox.pack_start(colors_label) colors_vbox.set_border_width(4) @@ -885,9 +879,9 @@ class Config_Win: headers_colors_vbox=gtk.VBox() - headers_colors_label=gtk.Label(""+_("Headers Colors")+"") + headers_colors_label=gtk.Label() + headers_colors_label.set_markup(""+_("Headers Colors")+"") headers_colors_label.set_alignment(0,0.5) - headers_colors_label.set_use_markup(True) self.headers2_bg_color_label=gtk.Label() headers_colors_vbox.pack_start(headers_colors_label) @@ -922,12 +916,12 @@ class Config_Win: colors_vbox.pack_start(colors_table,False,False) headers_colors_vbox.pack_start(headers_colors_table,False,False) - label_display_profile_2=gtk.Label(""+_("Layout")+"") - label_display_profile_2.set_use_markup(True) + label_display_profile_2=gtk.Label() + label_display_profile_2.set_markup(""+_("Layout")+"") - layout_label=gtk.Label(""+_("Layout")+"") + layout_label=gtk.Label() + layout_label.set_markup(""+_("Layout")+"") layout_label.set_alignment(0,0.5) - layout_label.set_use_markup(True) layout_main_vbox=gtk.VBox() layout_main_vbox.set_border_width(4) layout_main_vbox.pack_start(layout_label,False,False,4) @@ -956,9 +950,9 @@ class Config_Win: art_pane_vbox=gtk.VBox() art_pane_vbox.set_border_width(4) - art_pane_label=gtk.Label(""+_("Article Pane")+"") + art_pane_label=gtk.Label() + art_pane_label.set_markup(""+_("Article Pane")+"") art_pane_label.set_alignment(0,0.5) - art_pane_label.set_use_markup(True) art_pane_table=gtk.Table(1,1,False) art_pane_table.set_border_width(4) art_pane_vbox.pack_start(art_pane_label,False,False,4) @@ -966,8 +960,7 @@ class Config_Win: self.headers_checkbutton=gtk.CheckButton(_("Display Headers in the Article Pane")) self.headers_conf_button=gtk.Button(_("Headers List")) - headers_conf_button_tooltip=gtk.Tooltips() - headers_conf_button_tooltip.set_tip(self.headers_conf_button,_("XPN will show these headers on the top of the Article Pane")) + self.headers_conf_button.set_tooltip_text(_("XPN will show these headers on the top of the Article Pane")) headers_conf_label=gtk.Label(_("Headers Shown on the Article Pane")) self.headers_conf_button.connect("clicked",self.open_headers_list_win) art_pane_table.attach(self.headers_checkbutton,0,1,0,1,gtk.EXPAND|gtk.FILL,gtk.FILL,16,2) @@ -979,9 +972,9 @@ class Config_Win: thread_pane_vbox=gtk.VBox() thread_pane_vbox.set_border_width(4) - thread_pane_label=gtk.Label(""+_("Threads Pane")+"") + thread_pane_label=gtk.Label() + thread_pane_label.set_markup(""+_("Threads Pane")+"") thread_pane_label.set_alignment(0,0.5) - thread_pane_label.set_use_markup(True) thread_pane_table=gtk.Table(1,1,False) thread_pane_table.set_border_width(4) thread_pane_vbox.pack_start(thread_pane_label,False,False,4) @@ -1010,12 +1003,12 @@ class Config_Win: def build_groups_page(self): notebook=gtk.Notebook() - label_groups_download=gtk.Label(""+_("Download")+"") - label_groups_download.set_use_markup(True) - label_groups_view=gtk.Label(""+_("Visualization")+"") - label_groups_view.set_use_markup(True) - label_groups_nav=gtk.Label(""+_("Navigation")+"") - label_groups_nav.set_use_markup(True) + label_groups_download=gtk.Label() + label_groups_download.set_markup(""+_("Download")+"") + label_groups_view=gtk.Label() + label_groups_view.set_markup(""+_("Visualization")+"") + label_groups_nav=gtk.Label() + label_groups_nav.set_markup(""+_("Navigation")+"") groups_download_vbox=gtk.VBox() groups_view_vbox=gtk.VBox() @@ -1024,20 +1017,18 @@ class Config_Win: purge_main_vbox=gtk.VBox() purge_main_vbox.set_border_width(4) - purge_main_label=gtk.Label(""+_("Purge Options")+"") + purge_main_label=gtk.Label() + purge_main_label.set_markup(""+_("Purge Options")+"") purge_main_label.set_alignment(0,0.5) - purge_main_label.set_use_markup(True) purge_main_vbox.pack_start(purge_main_label,False,False,4) purge_table=gtk.Table(2,2,False) purge_table.set_border_width(4) self.purge_read_spinbutton=gtk.SpinButton(gtk.Adjustment(value=5,lower=0,upper=1000,step_incr=1,page_incr=10)) - purge_read_tooltip=gtk.Tooltips() - purge_read_tooltip.set_tip(self.purge_read_spinbutton,_("Number of days. '0' means never purge read articles")) + self.purge_read_spinbutton.set_tooltip_text(_("Number of days. '0' means never purge read articles")) purge_read_label=gtk.Label(_("Purge read articles after (days)")) purge_read_label.set_alignment(0,0.5) self.purge_unread_spinbutton=gtk.SpinButton(gtk.Adjustment(value=10,lower=0,upper=1000,step_incr=1,page_incr=10)) - purge_unread_tooltip=gtk.Tooltips() - purge_unread_tooltip.set_tip(self.purge_unread_spinbutton,_("Number of days. '0' means never purge unread articles")) + self.purge_unread_spinbutton.set_tooltip_text(_("Number of days. '0' means never purge unread articles")) purge_unread_label=gtk.Label(_("Purge unread articles after (days)")) purge_unread_label.set_alignment(0,0.5) @@ -1054,9 +1045,9 @@ class Config_Win: articles_vbox=gtk.VBox() articles_vbox.set_border_width(4) - articles_label=gtk.Label(""+_("Articles")+"") + articles_label=gtk.Label() + articles_label.set_markup(""+_("Articles")+"") articles_label.set_alignment(0,0.5) - articles_label.set_use_markup(True) articles_vbox.pack_start(articles_label,False,False,4) articles_table=gtk.Table(1,1,False) self.download_bodies_checkbutton=gtk.CheckButton(_("Retrieve Bodies for all new articles")) @@ -1075,9 +1066,9 @@ class Config_Win: auto_download_vbox=gtk.VBox() auto_download_vbox.set_border_width(4) - auto_download_label=gtk.Label(""+_("Automatic Header Download")+"") + auto_download_label=gtk.Label() + auto_download_label.set_markup(""+_("Automatic Header Download")+"") auto_download_label.set_alignment(0,0.5) - auto_download_label.set_use_markup(True) auto_download_vbox.pack_start(auto_download_label,False,False,4) auto_download_table=gtk.Table(1,1,False) self.auto_download_checkbutton=gtk.CheckButton(_("Download Headers automatically")) @@ -1098,9 +1089,9 @@ class Config_Win: sort_main_vbox=gtk.VBox() sort_main_vbox.set_border_width(4) - sort_main_label=gtk.Label(""+_("Sorting Options")+"") + sort_main_label=gtk.Label() + sort_main_label.set_markup(""+_("Sorting Options")+"") sort_main_label.set_alignment(0,0.5) - sort_main_label.set_use_markup(True) sort_main_vbox.pack_start(sort_main_label,False,False,4) sort_table=gtk.Table(2,2,False) sort_table.set_border_width(4) @@ -1127,9 +1118,9 @@ class Config_Win: charset_vbox=gtk.VBox() charset_vbox.set_border_width(4) - charset_label=gtk.Label(""+_("Charsets")+"") + charset_label=gtk.Label() + charset_label.set_markup(""+_("Charsets")+"") charset_label.set_alignment(0,0.5) - charset_label.set_use_markup(True) charset_vbox.pack_start(charset_label,False,False,4) charset_table=gtk.Table(2,2,False) charset_table.set_border_width(4) @@ -1140,16 +1131,14 @@ class Config_Win: self.fallback_charset_combo.set_size_request(130,-1) for encoding in encodings_list: self.fallback_charset_combo.append_text(encoding) - fallback_charset_tooltip=gtk.Tooltips() - fallback_charset_tooltip.set_tip(self.fallback_charset_combo.child,encodings_tip) + self.fallback_charset_combo.child.set_tooltip_text(encodings_tip) self.fallback_charset_combo.child.set_editable(False) self.charset_list_button=gtk.Button(_("Charsets List")) self.charset_list_button.connect("clicked",self.open_charset_list_win) self.charset_list_button.set_size_request(130,-1) - charset_list_tooltip=gtk.Tooltips() - charset_list_tooltip.set_tip(self.charset_list_button,_("XPN will try to use the charsets in this order")) + self.charset_list_button.set_tooltip_text(_("XPN will try to use the charsets in this order")) charset_list_label=gtk.Label(_("Ordered List (Writing)")) charset_list_label.set_alignment(0,0.5) @@ -1163,9 +1152,9 @@ class Config_Win: threading_vbox=gtk.VBox() threading_vbox.set_border_width(4) - threading_label=gtk.Label(""+_("Threading Method")+"") + threading_label=gtk.Label() + threading_label.set_markup(""+_("Threading Method")+"") threading_label.set_alignment(0,0.5) - threading_label.set_use_markup(True) threading_vbox.pack_start(threading_label,False,False,4) threading_table=gtk.Table(1,1,False) threading_table.set_border_width(4) @@ -1179,9 +1168,9 @@ class Config_Win: main_nav_vbox=gtk.VBox() main_nav_vbox.set_border_width(4) - misc_main_label=gtk.Label(""+_("Miscellaneous")+"") + misc_main_label=gtk.Label() + misc_main_label.set_markup(""+_("Miscellaneous")+"") misc_main_label.set_alignment(0,0.5) - misc_main_label.set_use_markup(True) main_nav_vbox.pack_start(misc_main_label,False,False,4) misc_table=gtk.Table(5,2,False) misc_table.set_border_width(4) @@ -1215,11 +1204,11 @@ class Config_Win: def build_misc_page(self): notebook=gtk.Notebook() - label_misc=gtk.Label(""+_("External Apps")+"") - label_misc.set_use_markup(True) + label_misc=gtk.Label() + label_misc.set_markup(""+_("External Apps")+"") - label_misc_2=gtk.Label(""+_("Miscellaneous")+"") - label_misc_2.set_use_markup(True) + label_misc_2=gtk.Label() + label_misc_2.set_markup(""+_("Miscellaneous")+"") miscellaneous_vbox=gtk.VBox() miscellaneous_vbox_2=gtk.VBox() @@ -1228,16 +1217,15 @@ class Config_Win: browser_table.set_border_width(4) browser_main_vbox=gtk.VBox() browser_main_vbox.set_border_width(4) - browser_main_label=gtk.Label(""+_("Web Browser")+"") + browser_main_label=gtk.Label() + browser_main_label.set_markup(""+_("Web Browser")+"") browser_main_label.set_alignment(0,0.5) - browser_main_label.set_use_markup(True) browser_main_vbox.pack_start(browser_main_label,False,False,4) self.browser_checkbutton=gtk.CheckButton(_("Use Custom Web Browser Launcher")) self.browser_checkbutton.connect("clicked",self.change_browser_status) self.browser_entry=gtk.Entry() - browser_tooltip=gtk.Tooltips() - browser_tooltip.set_tip(self.browser_entry,_("Type your custom command, %s represents the url.\nExamples:\n\nmozilla %s &\nxterm -e links %s")) + self.browser_entry.set_tooltip_text(_("Type your custom command, %s represents the url.\nExamples:\n\nmozilla %s &\nxterm -e links %s")) self.browser_label=gtk.Label(_("Web Browser Launcher")) self.browser_label.set_alignment(0,0.5) @@ -1254,14 +1242,13 @@ class Config_Win: editor_table.set_border_width(4) editor_main_vbox=gtk.VBox() editor_main_vbox.set_border_width(4) - editor_main_label=gtk.Label(""+_("External Editor")+"") + editor_main_label=gtk.Label() + editor_main_label.set_markup(""+_("External Editor")+"") editor_main_label.set_alignment(0,0.5) - editor_main_label.set_use_markup(True) editor_main_vbox.pack_start(editor_main_label,False,False,4) self.editor_checkbutton=gtk.CheckButton(_("Always Use External Editor")) self.editor_entry=gtk.Entry() - editor_tooltip=gtk.Tooltips() - editor_tooltip.set_tip(self.editor_entry,_("""Type the editor launcher, %s represents the filename.\nExamples:\n\nxterm -e vim %s\ngvim -f %s\nnotepad.exe %s\n"C:\Program Files\Notepad++\Notepad++.exe" %s -nosession\n\nNOTE: This feature works only with *Nix and Windows systems""")) + self.editor_entry.set_tooltip_text(_("""Type the editor launcher, %s represents the filename.\nExamples:\n\nxterm -e vim %s\ngvim -f %s\nnotepad.exe %s\n"C:\Program Files\Notepad++\Notepad++.exe" %s -nosession\n\nNOTE: This feature works only with *Nix and Windows systems""")) editor_label=gtk.Label(_("External Editor Command")) editor_label.set_alignment(0,0.5) @@ -1277,9 +1264,9 @@ class Config_Win: lang_vbox=gtk.VBox() lang_vbox.set_border_width(4) - lang_vbox_label=gtk.Label(""+_("Language")+"") + lang_vbox_label=gtk.Label() + lang_vbox_label.set_markup(""+_("Language")+"") lang_vbox_label.set_alignment(0,0.5) - lang_vbox_label.set_use_markup(True) lang_vbox.pack_start(lang_vbox_label,False,False,4) lang_hbox=gtk.HBox() langs_vbox=gtk.VBox() @@ -1348,7 +1335,6 @@ class Config_Win: self.win.set_icon(gtk.gdk.pixbuf_new_from_file("pixmaps/conf.xpm")) self.win.set_default_size(470,400) self.win.set_position(gtk.WIN_POS_CENTER) - self.tips=gtk.Tooltips() #main_vbox self.main_vbox=gtk.VBox() @@ -1393,15 +1379,13 @@ class Config_Win: #cancel_button self.cancel_button=gtk.Button(None,gtk.STOCK_CANCEL) - self.cancel_button_tooltip=gtk.Tooltips() - self.cancel_button_tooltip.set_tip(self.cancel_button,_("Close window. Discard changes")) + self.cancel_button.set_tooltip_text(_("Close window. Discard changes")) self.cancel_button.connect("clicked",self.destroy) self.buttons_hbox.pack_start(self.cancel_button,True,True,0) #ok_button self.ok_button=gtk.Button(None,gtk.STOCK_OK) self.ok_button.connect("clicked",self.save_configs,conf) - self.ok_button_tooltip=gtk.Tooltips() - self.ok_button_tooltip.set_tip(self.ok_button,_("Close window and save settings")) + self.ok_button.set_tooltip_text(_("Close window and save settings")) self.buttons_hbox.pack_start(self.ok_button,True,True,0) self.ok_button.set_border_width(5) self.cancel_button.set_border_width(5) --- xpn.orig/xpn_src/Edit_Win.py +++ xpn/xpn_src/Edit_Win.py @@ -831,9 +831,9 @@ class Edit_Win: toolbar.set_style(gtk.TOOLBAR_ICONS) toolbar.set_style(gtk.SHADOW_NONE) - id_label=gtk.Label(""+_("Identity")+"") + id_label=gtk.Label() + id_label.set_markup(""+_("Identity")+"") id_label.set_alignment(0,0.5) - id_label.set_use_markup(True) id_hbox=gtk.HBox() self.id_combo=gtk.combo_box_new_text() self.cp_id=ConfigParser.ConfigParser() @@ -852,9 +852,9 @@ class Edit_Win: id_sep=gtk.VSeparator() - server_label=gtk.Label(""+_("Server")+"") + server_label=gtk.Label() + server_label.set_markup(""+_("Server")+"") server_label.set_alignment(0,0.5) - server_label.set_use_markup(True) self.server_combo=gtk.combo_box_new_text() cp=ConfigParser.ConfigParser() cp.read(os.path.join(get_wdir(),"dats","servers.txt")) @@ -893,14 +893,14 @@ class Edit_Win: self.headers_table=gtk.Table(3,2,False) self.headers_table.set_border_width(2) - self.newsgroups_label=gtk.Label(""+_("Newsgroups : ")+"") - self.newsgroups_label.set_use_markup(True) + self.newsgroups_label=gtk.Label() + self.newsgroups_label.set_markup(""+_("Newsgroups : ")+"") self.newsgroups_label.set_alignment(1,0.5) - self.from_label=gtk.Label(""+_("From : ")+"") - self.from_label.set_use_markup(True) + self.from_label=gtk.Label() + self.from_label.set_markup(""+_("From : ")+"") self.from_label.set_alignment(1,0.5) - self.subj_label=gtk.Label(""+_("Subject : ")+"") - self.subj_label.set_use_markup(True) + self.subj_label=gtk.Label() + self.subj_label.set_markup(""+_("Subject : ")+"") self.subj_label.set_alignment(1,0.5) #self.newsgroups_entry=gtk.Entry() self.newsgroups_entry=gtk.combo_box_entry_new_text() @@ -953,32 +953,32 @@ class Edit_Win: self.custom_headers_table=gtk.Table(8,2,False) self.custom_headers_table.set_border_width(4) - self.reply_to_label=gtk.Label(""+_("Reply-To : ")+"") - self.reply_to_label.set_use_markup(True) + self.reply_to_label=gtk.Label() + self.reply_to_label.set_markup(""+_("Reply-To : ")+"") self.reply_to_label.set_alignment(1,0.5) - self.sender_label=gtk.Label(""+_("Sender : ")+"") - self.sender_label.set_use_markup(True) + self.sender_label=gtk.Label() + self.sender_label.set_markup(""+_("Sender : ")+"") self.sender_label.set_alignment(1,0.5) - self.organization_label=gtk.Label(""+_("Organization : ")+"") - self.organization_label.set_use_markup(True) + self.organization_label=gtk.Label() + self.organization_label.set_markup(""+_("Organization : ")+"") self.organization_label.set_alignment(1,0.5) - self.followup_to_label=gtk.Label(""+_("Followup-To : ")+"") - self.followup_to_label.set_use_markup(True) + self.followup_to_label=gtk.Label() + self.followup_to_label.set_markup(""+_("Followup-To : ")+"") self.followup_to_label.set_alignment(1,0.5) - self.mail_copies_to_label=gtk.Label(""+_("Mail-Copies-To : ")+"") - self.mail_copies_to_label.set_use_markup(True) + self.mail_copies_to_label=gtk.Label() + self.mail_copies_to_label.set_markup(""+_("Mail-Copies-To : ")+"") self.mail_copies_to_label.set_alignment(1,0.5) - self.archive_label=gtk.Label(""+_("Archive : ")+"") - self.archive_label.set_use_markup(True) + self.archive_label=gtk.Label() + self.archive_label.set_markup(""+_("Archive : ")+"") self.archive_label.set_alignment(1,0.5) - self.supersedes_label=gtk.Label(""+_("Supersedes : ")+"") - self.supersedes_label.set_use_markup(True) + self.supersedes_label=gtk.Label() + self.supersedes_label.set_markup(""+_("Supersedes : ")+"") self.supersedes_label.set_alignment(1,0.5) - self.approved_label=gtk.Label(""+_("Approved : ")+"") - self.approved_label.set_use_markup(True) + self.approved_label=gtk.Label() + self.approved_label.set_markup(""+_("Approved : ")+"") self.approved_label.set_alignment(1,0.5) - self.charset_label=gtk.Label(""+_("Charset : ")+"") - self.charset_label.set_use_markup(True) + self.charset_label=gtk.Label() + self.charset_label.set_markup(""+_("Charset : ")+"") self.charset_label.set_alignment(1,0.5) self.reply_to_entry=gtk.Entry() @@ -993,8 +993,7 @@ class Edit_Win: self.charset_combo=gtk.combo_box_entry_new_text() for encoding in encodings_list: self.charset_combo.append_text(encoding) - self.charset_tooltip=gtk.Tooltips() - self.charset_tooltip.set_tip(self.charset_combo.child,encodings_tip) + self.charset_combo.child.set_tooltip_text(encodings_tip) self.charset_combo.child.set_editable(False) self.custom_headers_table.attach(self.reply_to_label,0,1,0,1,gtk.FILL,gtk.FILL) --- xpn.orig/xpn_src/Find_Win.py +++ xpn/xpn_src/Find_Win.py @@ -157,29 +157,29 @@ class Find_Win: vbox=gtk.VBox() vbox.set_border_width(8) - label_from=gtk.Label(_("From")) - label_from.set_use_markup(True) + label_from=gtk.Label() + label_from.set_markup(_("From")) label_from.set_alignment(0,0.5) - label_subject=gtk.Label(_("Subject")) - label_subject.set_use_markup(True) + label_subject=gtk.Label() + label_subject.set_markup(_("Subject")) label_subject.set_alignment(0,0.5) - label_msgid=gtk.Label(_("Message-ID")) - label_msgid.set_use_markup(True) + label_msgid=gtk.Label() + label_msgid.set_markup(_("Message-ID")) label_msgid.set_alignment(0,0.5) - label_ref=gtk.Label(_("References")) - label_ref.set_use_markup(True) + label_ref=gtk.Label() + label_ref.set_markup(_("References")) label_ref.set_alignment(0,0.5) - label_body=gtk.Label(_("Body")) - label_body.set_use_markup(True) + label_body=gtk.Label() + label_body.set_markup(_("Body")) label_body.set_alignment(0,0.5) self.entry_from=gtk.Entry() self.entry_subject=gtk.Entry() self.entry_msgid=gtk.Entry() self.entry_ref=gtk.Entry() self.entry_body=gtk.Entry() - fields_label=gtk.Label(""+_("Fields")+"") + fields_label=gtk.Label() + fields_label.set_markup(""+_("Fields")+"") fields_label.set_alignment(0,0.5) - fields_label.set_use_markup(True) fields_vbox=gtk.VBox() fields_vbox.set_border_width(4) fields_vbox.pack_start(fields_label,False,False,4) @@ -219,9 +219,9 @@ class Find_Win: hbox.pack_start(self.opt_menu,False,True,2) hbox.pack_start(label,False,True) rule_table.attach(hbox,0,1,3,4,gtk.EXPAND|gtk.FILL,gtk.FILL,16,4) - rule_label=gtk.Label(""+_("Rules")+"") + rule_label=gtk.Label() + rule_label.set_markup(""+_("Rules")+"") rule_label.set_alignment(0,0.5) - rule_label.set_use_markup(True) rule_vbox=gtk.VBox() rule_vbox.pack_start(rule_label,False,False,4) rule_vbox.set_border_width(4) @@ -503,29 +503,29 @@ class GlobalSearch: vbox=gtk.VBox() vbox.set_border_width(8) - label_from=gtk.Label(_("From")) - label_from.set_use_markup(True) + label_from=gtk.Label() + label_from.set_markup(_("From")) label_from.set_alignment(0,0.5) - label_subject=gtk.Label(_("Subject")) - label_subject.set_use_markup(True) + label_subject=gtk.Label() + label_subject.set_markup(_("Subject")) label_subject.set_alignment(0,0.5) - label_msgid=gtk.Label(_("Message-ID")) - label_msgid.set_use_markup(True) + label_msgid=gtk.Label() + label_msgid.set_markup(_("Message-ID")) label_msgid.set_alignment(0,0.5) - label_ref=gtk.Label(_("References")) - label_ref.set_use_markup(True) + label_ref=gtk.Label() + label_ref.set_markup(_("References")) label_ref.set_alignment(0,0.5) - label_body=gtk.Label(_("Body")) - label_body.set_use_markup(True) + label_body=gtk.Label() + label_body.set_markup(_("Body")) label_body.set_alignment(0,0.5) self.entry_from=gtk.Entry() self.entry_subject=gtk.Entry() self.entry_msgid=gtk.Entry() self.entry_ref=gtk.Entry() self.entry_body=gtk.Entry() - fields_label=gtk.Label(""+_("Fields")+"") + fields_label=gtk.Label() + fields_label.set_markup(""+_("Fields")+"") fields_label.set_alignment(0,0.5) - fields_label.set_use_markup(True) fields_vbox=gtk.VBox() fields_vbox.set_border_width(4) fields_vbox.pack_start(fields_label,False,False,4) @@ -564,9 +564,9 @@ class GlobalSearch: hbox.pack_start(self.opt_menu,False,True,2) hbox.pack_start(label,False,True) rule_table.attach(hbox,0,1,2,3,gtk.EXPAND|gtk.FILL,gtk.FILL,16,4) - rule_label=gtk.Label(""+_("Rules")+"") + rule_label=gtk.Label() + rule_label.set_markup(""+_("Rules")+"") rule_label.set_alignment(0,0.5) - rule_label.set_use_markup(True) rule_vbox=gtk.VBox() rule_vbox.pack_start(rule_label,False,False,4) rule_vbox.set_border_width(4) --- xpn.orig/xpn_src/Headers_List.py +++ xpn/xpn_src/Headers_List.py @@ -122,10 +122,10 @@ class HeadersList: self.window.set_size_request(500,400) self.table=gtk.Table(3,2,False) self.table.set_border_width(4) - label_left=gtk.Label(""+_("Standard Headers")+"") - label_left.set_use_markup(True) - label_right=gtk.Label(""+_("Shown Headers")+"") - label_right.set_use_markup(True) + label_left=gtk.Label() + label_left.set_markup(""+_("Standard Headers")+"") + label_right=gtk.Label() + label_right.set_markup(""+_("Shown Headers")+"") self.left_scrolledwin=gtk.ScrolledWindow() self.left_scrolledwin.set_border_width(4) self.left_scrolledwin.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC) @@ -161,8 +161,7 @@ class HeadersList: self.right_list.append_column(self.right_column) self.right_list.set_rules_hint(True) self.right_list.set_headers_visible(False) - self.right_list_tooltip=gtk.Tooltips() - self.right_list_tooltip.set_tip(self.right_list,_("XPN will show these headers on the top of the Article Pane")) + self.right_list.set_tooltip_text(_("XPN will show these headers on the top of the Article Pane")) self.right_list.set_reorderable(True) self.right_list.get_selection().set_mode(gtk.SELECTION_MULTIPLE) --- xpn.orig/xpn_src/ID_Win.py +++ xpn/xpn_src/ID_Win.py @@ -168,9 +168,9 @@ class ID_Win: notebook=gtk.Notebook() - id_page_label=gtk.Label(""+_("Personal Informations")+"") + id_page_label=gtk.Label() + id_page_label.set_markup(""+_("Personal Informations")+"") id_page_label.set_alignment(0,0.5) - id_page_label.set_use_markup(True) id_vbox=gtk.VBox() id_vbox.set_border_width(4) @@ -225,20 +225,20 @@ class ID_Win: - label_posting_profile=gtk.Label(""+_("Body")+"") - label_posting_profile.set_use_markup(True) + label_posting_profile=gtk.Label() + label_posting_profile.set_markup(""+_("Body")+"") posting_profile_vbox=gtk.VBox() - label_posting_profile_2=gtk.Label(""+_("Headers")+"") - label_posting_profile_2.set_use_markup(True) + label_posting_profile_2=gtk.Label() + label_posting_profile_2.set_markup(""+_("Headers")+"") posting_profile_vbox_2=gtk.VBox() compose_vbox=gtk.VBox() - compose_label=gtk.Label(""+_("Compose")+"") + compose_label=gtk.Label() + compose_label.set_markup(""+_("Compose")+"") compose_label.set_alignment(0,0.5) - compose_label.set_use_markup(True) compose_vbox.set_border_width(4) compose_vbox.pack_start(compose_label,False,False,4) @@ -254,8 +254,7 @@ class ID_Win: attribution_label.set_alignment(0,0.5) self.attribution_entry=gtk.Entry() attribution_label.set_size_request(230,-1) - attribution_tooltip=gtk.Tooltips() - attribution_tooltip.set_tip(self.attribution_entry,_("%s = Subject\n%g = Newsgroups\n%f = From\n%n = Nick\n%e = Email\n%d = Date")) + self.attribution_entry.set_tooltip_text(_("%s = Subject\n%g = Newsgroups\n%f = From\n%n = Nick\n%e = Email\n%d = Date")) compose_table.attach(wrap_fake_hbox,0,1,0,1,gtk.EXPAND|gtk.FILL,gtk.SHRINK,16) compose_table.attach(self.attribution_entry,0,1,1,2,gtk.EXPAND|gtk.FILL,gtk.SHRINK,16) @@ -266,9 +265,9 @@ class ID_Win: posting_profile_vbox.pack_start(compose_vbox,False,True) sign_vbox=gtk.VBox() - sign_label=gtk.Label(""+_("Signature")+"") + sign_label=gtk.Label() + sign_label.set_markup(""+_("Signature")+"") sign_label.set_alignment(0,0.5) - sign_label.set_use_markup(True) sign_vbox.set_border_width(4) sign_table=gtk.Table(2,2,False) sign_table.set_border_width(4) @@ -294,9 +293,9 @@ class ID_Win: #optional headers frame opt_headers_vbox=gtk.VBox() - opt_headers_label=gtk.Label(""+_("Optional Headers")+"") + opt_headers_label=gtk.Label() + opt_headers_label.set_markup(""+_("Optional Headers")+"") opt_headers_label.set_alignment(0,0.5) - opt_headers_label.set_use_markup(True) opt_headers_vbox.pack_start(opt_headers_label,False,False,4) opt_headers_vbox.set_border_width(4) @@ -328,17 +327,16 @@ class ID_Win: message_id_vbox=gtk.VBox() message_id_vbox.set_border_width(4) - message_id_label=gtk.Label(""+_("Message-ID")+"") + message_id_label=gtk.Label() + message_id_label.set_markup(""+_("Message-ID")+"") message_id_label.set_alignment(0,0.5) - message_id_label.set_use_markup(True) message_id_vbox.pack_start(message_id_label,False,False,4) message_id_table=gtk.Table(2,2,False) message_id_table.set_border_width(4) self.generate_mid_checkbutton=gtk.CheckButton(_("Generate Message-ID")) self.generate_mid_checkbutton.connect("clicked",self.change_mid_status) self.fqdn_entry=gtk.Entry() - fqdn_tooltip=gtk.Tooltips() - fqdn_tooltip.set_tip(self.fqdn_entry,_("You can write here a FQDN (Fully Qualified Domain Name) that will be used to compose the Message-ID.\nOtherwise if you leave this field blank XPN will use your Host Name.")) + self.fqdn_entry.set_tooltip_text(_("You can write here a FQDN (Fully Qualified Domain Name) that will be used to compose the Message-ID.\nOtherwise if you leave this field blank XPN will use your Host Name.")) self.fqdn_label=gtk.Label(_("Fully Qualified Domain Name")) self.fqdn_label.set_alignment(0,0.5) @@ -351,9 +349,9 @@ class ID_Win: custom_headers_vbox=gtk.VBox() custom_headers_vbox.set_border_width(4) - custom_headers_label=gtk.Label(""+_("Custom Headers (X-Headers)")+"") + custom_headers_label=gtk.Label() + custom_headers_label.set_markup(""+_("Custom Headers (X-Headers)")+"") custom_headers_label.set_alignment(0,0.5) - custom_headers_label.set_use_markup(True) custom_headers_vbox.pack_start(custom_headers_label,False,False,4) custom_headers_scrolledwin=gtk.ScrolledWindow() custom_headers_scrolledwin.set_border_width(4) @@ -377,15 +375,13 @@ class ID_Win: #cancel_button self.cancel_button=gtk.Button(None,gtk.STOCK_CANCEL) - self.cancel_button_tooltip=gtk.Tooltips() - self.cancel_button_tooltip.set_tip(self.cancel_button,_("Close window. Discard changes")) + self.cancel_button.set_tooltip_text(_("Close window. Discard changes")) self.cancel_button.connect("clicked",self.destroy) buttons_hbox.pack_start(self.cancel_button,True,True,0) #ok_button self.ok_button=gtk.Button(None,gtk.STOCK_OK) self.ok_button.connect("clicked",self.save_configs) - self.ok_button_tooltip=gtk.Tooltips() - self.ok_button_tooltip.set_tip(self.ok_button,_("Close window and save settings")) + self.ok_button.set_tooltip_text(_("Close window and save settings")) buttons_hbox.pack_start(self.ok_button,True,True,0) self.ok_button.set_border_width(5) self.cancel_button.set_border_width(5) --- xpn.orig/xpn_src/Score.py +++ xpn/xpn_src/Score.py @@ -689,9 +689,9 @@ class Score_Win: vpaned=gtk.VPaned() vpaned.set_border_width(4) rules_vbox=gtk.VBox() - rules_vbox_label=gtk.Label(""+_("Correct Rules")+"") + rules_vbox_label=gtk.Label() + rules_vbox_label.set_markup(""+_("Correct Rules")+"") rules_vbox_label.set_alignment(0,0.5) - rules_vbox_label.set_use_markup(True) rules_vbox.pack_start(rules_vbox_label,False,False,4) self.rules_tree=Rules_Tree() rules_table=gtk.Table(1,1,False) @@ -699,9 +699,9 @@ class Score_Win: rules_vbox.pack_start(rules_table,True,True) file_vbox=gtk.VBox() - file_vbox_label=gtk.Label(""+_("Score File Editor")+"") + file_vbox_label=gtk.Label() + file_vbox_label.set_markup(""+_("Score File Editor")+"") file_vbox_label.set_alignment(0,0.5) - file_vbox_label.set_use_markup(True) file_vbox.pack_start(file_vbox_label,False,False,4) file_table=gtk.Table(3,2,False) file_scrolledwin=gtk.ScrolledWindow() @@ -731,8 +731,8 @@ class Score_Win: file_vbox.pack_start(file_table,True,True) vpaned.add(file_vbox) vpaned.add(rules_vbox) - rules_label=gtk.Label(""+_("Rules")+"") - rules_label.set_use_markup(True) + rules_label=gtk.Label() + rules_label.set_markup(""+_("Rules")+"") self.notebook.append_page(vpaned,rules_label) @@ -743,9 +743,9 @@ class Score_Win: scope_vbox=gtk.VBox() scope_vbox.set_border_width(4) - scope_label=gtk.Label(""+_("Groups Scope")+"") + scope_label=gtk.Label() + scope_label.set_markup(""+_("Groups Scope")+"") scope_label.set_alignment(0,0.5) - scope_label.set_use_markup(True) scope_vbox.pack_start(scope_label,False,False,4) self.scope_combo=gtk.combo_box_entry_new_text() @@ -765,9 +765,9 @@ class Score_Win: scope_vbox.add(scope_hbox) condition_main_vbox=gtk.VBox() - condition_label=gtk.Label(""+_("Condition")+"") + condition_label=gtk.Label() + condition_label.set_markup(""+_("Condition")+"") condition_label.set_alignment(0,0.5) - condition_label.set_use_markup(True) condition_main_vbox.pack_start(condition_label,False,False,4) condition_table=gtk.Table(3,1,False) condition_hbox=gtk.HBox() @@ -802,8 +802,8 @@ class Score_Win: condition_main_vbox.pack_start(condition_table,True,True) score_mod_vbox=gtk.VBox() - score_mod_label=gtk.Label(""+_("Score")+"") - score_mod_label.set_use_markup(True) + score_mod_label=gtk.Label() + score_mod_label.set_markup(""+_("Score")+"") score_mod_label.set_alignment(0,0.5) score_mod_vbox.pack_start(score_mod_label,False,False,4) score_mod_table=gtk.Table(1,1,False) @@ -829,8 +829,8 @@ class Score_Win: new_rule_vbox.pack_start(condition_main_vbox,True,True,2) new_rule_vbox.pack_start(score_mod_vbox,True,True,2) new_rule_vbox.pack_start(self.add_rule_button,True,False,2) - new_rule_label=gtk.Label(""+_("New Scoring Rule")+"") - new_rule_label.set_use_markup(True) + new_rule_label=gtk.Label() + new_rule_label.set_markup(""+_("New Scoring Rule")+"") self.notebook.append_page(new_rule_vbox,new_rule_label) @@ -841,8 +841,8 @@ class Score_Win: action_scope_vbox=gtk.VBox() action_scope_vbox.set_border_width(4) - action_scope_label=gtk.Label(""+_("Groups Scope")+"") - action_scope_label.set_use_markup(True) + action_scope_label=gtk.Label() + action_scope_label.set_markup(""+_("Groups Scope")+"") action_scope_label.set_alignment(0,0.5) action_scope_vbox.pack_start(action_scope_label,False,False,4) self.action_scope_combo=gtk.combo_box_entry_new_text() @@ -862,9 +862,9 @@ class Score_Win: action_scope_vbox.add(action_scope_hbox) action_condition_main_vbox=gtk.VBox() - action_condition_label=gtk.Label(""+_("Condition")+"") + action_condition_label=gtk.Label() + action_condition_label.set_markup(""+_("Condition")+"") action_condition_label.set_alignment(0,0.5) - action_condition_label.set_use_markup(True) action_condition_main_vbox.pack_start(action_condition_label,False,False,4) action_condition_table=gtk.Table(3,1,False) action_condition_hbox=gtk.HBox() @@ -900,8 +900,8 @@ class Score_Win: action_vbox=gtk.VBox() - action_label=gtk.Label(""+_("Action")+"") - action_label.set_use_markup(True) + action_label=gtk.Label() + action_label.set_markup(""+_("Action")+"") action_label.set_alignment(0,0.5) action_vbox.pack_start(action_label,False,False,4) action_table=gtk.Table(1,1,False) @@ -943,8 +943,8 @@ class Score_Win: new_action_rule_vbox.pack_start(action_condition_main_vbox,True,True,2) new_action_rule_vbox.pack_start(action_vbox,True,True,2) new_action_rule_vbox.pack_start(self.add_action_rule_button,True,False,2) - new_action_rule_label=gtk.Label(""+_("New Action Rule")+"") - new_action_rule_label.set_use_markup(True) + new_action_rule_label=gtk.Label() + new_action_rule_label.set_markup(""+_("New Action Rule")+"") self.notebook.append_page(new_action_rule_vbox,new_action_rule_label) @@ -954,8 +954,8 @@ class Score_Win: re_tester_vbox.set_border_width(4) re_vbox=gtk.VBox() - re_label=gtk.Label(""+_("Regular Expression")+"") - re_label.set_use_markup(True) + re_label=gtk.Label() + re_label.set_markup(""+_("Regular Expression")+"") re_label.set_alignment(0,0.5) re_vbox.pack_start(re_label,False,False,4) re_table=gtk.Table(1,1,False) @@ -971,9 +971,9 @@ class Score_Win: re_tester_vbox.pack_start(re_vbox,False,True,2) text_vbox=gtk.VBox() - text_label=gtk.Label(""+_("Test Text")+"") + text_label=gtk.Label() + text_label.set_markup(""+_("Test Text")+"") text_label.set_alignment(0,0.5) - text_label.set_use_markup(True) text_vbox.pack_start(text_label,False,False,4) text_table=gtk.Table(1,1,False) text_scrolledwin=gtk.ScrolledWindow() @@ -988,8 +988,8 @@ class Score_Win: text_vbox.pack_start(text_table,True,True) re_tester_vbox.pack_start(text_vbox,True,True,2) - re_tester_label=gtk.Label(""+_("RE Tester")+"") - re_tester_label.set_use_markup(True) + re_tester_label=gtk.Label() + re_tester_label.set_markup(""+_("RE Tester")+"") self.notebook.append_page(re_tester_vbox,re_tester_label) #OK CANCEL buttons @@ -997,13 +997,11 @@ class Score_Win: main_buttons_hbox.set_border_width(4) cancel_button=gtk.Button(None,gtk.STOCK_CANCEL) - cancel_button_tooltip=gtk.Tooltips() - cancel_button_tooltip.set_tip(cancel_button,_("Close window. Discard changes")) + cancel_button.set_tooltip_text(_("Close window. Discard changes")) cancel_button.connect("clicked",self.destroy) main_buttons_hbox.pack_start(cancel_button,True,True,0) ok_button=gtk.Button(None,gtk.STOCK_OK) - ok_button_tooltip=gtk.Tooltips() - ok_button_tooltip.set_tip(ok_button,_("Close window. Save Changes")) + ok_button.set_tooltip_text(_("Close window. Save Changes")) ok_button.connect("clicked",self.close_window) main_buttons_hbox.pack_start(ok_button,True,True,2) --- xpn.orig/xpn_src/Server_Win.py +++ xpn/xpn_src/Server_Win.py @@ -82,9 +82,9 @@ class NNTPServer_Win: self.win.set_icon(gtk.gdk.pixbuf_new_from_file("pixmaps/conf.xpm")) self.win.set_position(gtk.WIN_POS_CENTER) - server_label=gtk.Label(""+_("NNTP Server")+"") + server_label=gtk.Label() + server_label.set_markup(""+_("NNTP Server")+"") server_label.set_alignment(0,0.5) - server_label.set_use_markup(True) server_vbox=gtk.VBox() server_vbox.set_border_width(4) server_vbox.pack_start(server_label,False,True,4) @@ -132,15 +132,13 @@ class NNTPServer_Win: #cancel_button self.cancel_button=gtk.Button(None,gtk.STOCK_CANCEL) - self.cancel_button_tooltip=gtk.Tooltips() - self.cancel_button_tooltip.set_tip(self.cancel_button,_("Close window. Discard changes")) + self.cancel_button.set_tooltip_text(_("Close window. Discard changes")) self.cancel_button.connect("clicked",self.destroy) buttons_hbox.pack_start(self.cancel_button,True,True,0) #ok_button self.ok_button=gtk.Button(None,gtk.STOCK_OK) self.ok_button.connect("clicked",self.save_configs) - self.ok_button_tooltip=gtk.Tooltips() - self.ok_button_tooltip.set_tip(self.ok_button,_("Close window and save settings")) + self.ok_button.set_tooltip_text(_("Close window and save settings")) buttons_hbox.pack_start(self.ok_button,True,True,0) self.ok_button.set_border_width(5) self.cancel_button.set_border_width(5) --- xpn.orig/xpn_src/Show_Logs.py +++ xpn/xpn_src/Show_Logs.py @@ -51,8 +51,8 @@ class Logs_Window: self.window.set_transient_for(main_win) vbox=gtk.VBox(False,0) vbox.set_border_width(2) - label=gtk.Label("\n"+_("Server Logs")+"\n") - label.set_use_markup(True) + label=gtk.Label() + label.set_markup("\n"+_("Server Logs")+"\n") vbox.pack_start(label,False,True,0) self.buffer=gtk.TextBuffer() scrolledwin=gtk.ScrolledWindow() --- xpn.orig/xpn_src/add_tag.py +++ xpn/xpn_src/add_tag.py @@ -50,8 +50,8 @@ class Tags_Window: self.window.set_position(gtk.WIN_POS_CENTER) vbox=gtk.VBox(False,0) vbox.set_border_width(2) - label=gtk.Label(_("\nInsert here a tagline\n")) - label.set_use_markup(True) + label=gtk.Label() + label.set_markup(_("\nInsert here a tagline\n")) vbox.pack_start(label,True,True,0) self.entry=gtk.Entry() self.entry.connect("changed",self.show_length) --- xpn.orig/xpn_src/Groups_Vs_ID.py +++ xpn/xpn_src/Groups_Vs_ID.py @@ -1,5 +1,5 @@ import gtk -import cPickle +import cPickle import os import ConfigParser from xpn_src.UserDir import get_wdir @@ -8,7 +8,7 @@ from xpn_src.UserDir import get_wdir class Groups_Vs_ID: def show(self): self.win.show_all() - + def delete_event(self,widget,event,data=None): return False @@ -25,10 +25,10 @@ class Groups_Vs_ID: new_group=[group[0] ,group[1], group[2], id_name] subscribed_groups.append([group[0], group[2], id_name]) new_list.append(new_group) - + self.art_db.updateSubscribed(new_list) self.main_win.subscribed_groups=subscribed_groups[:] - self.win.destroy() + self.win.destroy() def __init__(self,subscribed_groups,main_win): self.main_win=main_win @@ -39,18 +39,18 @@ class Groups_Vs_ID: self.win.set_title(_("Assign Identities to Groups")) self.win.set_icon(gtk.gdk.pixbuf_new_from_file("pixmaps/conf.xpm")) self.win.set_position(gtk.WIN_POS_CENTER) - + main_vbox=gtk.VBox() main_vbox.set_border_width(4) - - group_label=gtk.Label(""+_("Group")+"") + + group_label=gtk.Label() + group_label.set_markup(""+_("Group")+"") group_label.set_alignment(0,0) - group_label.set_use_markup(True) - - id_label=gtk.Label(""+_("Identity")+"") + + id_label=gtk.Label() + id_label.set_markup(""+_("Identity")+"") id_label.set_alignment(0,0) - id_label.set_use_markup(True) - + groups_table=gtk.Table(n_rows,2,False) groups_table.set_border_width(8) @@ -63,7 +63,7 @@ class Groups_Vs_ID: ids=cp_id.sections() j=0 positions=dict() - for id in ids: + for id in ids: positions[id.decode("utf-8")]=j j=j+1 i=0 @@ -81,7 +81,7 @@ class Groups_Vs_ID: self.entries.append(entry) self.combos.append(combo) i=i+1 - + viewport=gtk.Viewport() viewport.set_shadow_type(gtk.SHADOW_ETCHED_IN) @@ -94,19 +94,17 @@ class Groups_Vs_ID: #cancel_button self.cancel_button=gtk.Button(None,gtk.STOCK_CANCEL) - self.cancel_button_tooltip=gtk.Tooltips() - self.cancel_button_tooltip.set_tip(self.cancel_button,_("Close window. Discard changes")) + self.cancel_button.set_tooltip_text(_("Close window. Discard changes")) self.cancel_button.connect("clicked",self.destroy) buttons_hbox.pack_start(self.cancel_button,True,True,0) #ok_button self.ok_button=gtk.Button(None,gtk.STOCK_OK) + self.ok_button.set_tooltip_text(_("Close window and save settings")) self.ok_button.connect("clicked",self.save_configs) - self.ok_button_tooltip=gtk.Tooltips() - self.ok_button_tooltip.set_tip(self.ok_button,_("Close window and save settings")) buttons_hbox.pack_start(self.ok_button,True,True,0) self.ok_button.set_border_width(5) self.cancel_button.set_border_width(5) - + viewport.add(groups_table) scrolledwin.add(viewport) main_vbox.pack_start(scrolledwin,True,True,4) debian/patches/02-fix_localedir.patch0000644000000000000000000000234411141320414014653 0ustar Don't use a "local" directory, use system-wide one. --- xpn.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- xpn.orig/xpn.py +++ xpn/xpn.py @@ -2368,21 +2368,21 @@ When you try to import a newsrc file XPN def load_languages(self): #loading translation if self.configs["lang"]=="it": - it=gettext.translation("xpn","lang",["it"]) + it=gettext.translation("xpn","/usr/share/locale",["it"]) it.install() try: #trying to force GTK translation locale.setlocale(locale.LC_MESSAGES,"it_IT") except: pass elif self.configs["lang"]=="fr": - fr=gettext.translation("xpn","lang",["fr"]) + fr=gettext.translation("xpn","/usr/share/locale",["fr"]) fr.install() try: #trying to force GTK translation locale.setlocale(locale.LC_MESSAGES,"fr_FR") except: pass elif self.configs["lang"]=="de": - de=gettext.translation("xpn","lang",["de"]) + de=gettext.translation("xpn","/usr/share/locale",["de"]) de.install() try: #trying to force GTK translation debian/patches/04-add_tray_icon.patch0000644000000000000000000000673211407602751014671 0ustar From: David Paleino Subject: implement a trayicon, with a context menu, and blinking on new posts. --- xpn.py | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) --- xpn.orig/xpn.py +++ xpn/xpn.py @@ -328,7 +328,6 @@ class MainWin: self.win_outbox=Outbox_Manager(self,VERSION) self.win_outbox.show() - def open_edit_win(self,object,is_followup=False): group="" id_name="" @@ -395,7 +394,6 @@ class MainWin: self.win4=Edit_Win(self.configs,group,None,None,self.subscribed_groups,server_name=self.current_server,id_name=id_name) #self.win4.show() - def open_edit_mail_win(self,object): to_name="" id_name="" @@ -578,6 +576,31 @@ class MainWin: except: pass gtk.main_quit() + def tray_activated(self, widget): + if self.window.get_property("is-active"): + self.window.iconify() + self.window.hide() + else: + self.window.present() + self.window.deiconify() + widget.set_blinking(False) + + def tray_popuped(self, widget, button, timestamp): + menu = gtk.Menu() + menuitem = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES) + menuitem.connect("activate", self.open_configure_win) + menu.append(menuitem) + menu.append(gtk.SeparatorMenuItem()) + menuitem = gtk.ImageMenuItem(gtk.STOCK_ABOUT) + menuitem.connect('activate', self.open_about_dialog) + menu.append(menuitem) + menuitem = gtk.ImageMenuItem(gtk.STOCK_QUIT) + menuitem.connect('activate', self.destroy) + menu.append(menuitem) + + menu.show_all() + menu.popup(None, None, None, button, timestamp) + def save_sorting_type(self,obj=None): for n in range(1,5): col=self.threads_pane.threads_tree.get_column(n) @@ -591,9 +614,7 @@ class MainWin: self.configs["ascend_order"]=ascend_order self.configs["sort_col"]=col_name self.conf.write_configs() - - - + def show_subscribed(self): model,path_list,iter_list=self.groups_pane.get_selected_rows() @@ -1587,6 +1608,8 @@ class MainWin: self.statusbar.push(1,message) if total_headers: self.progressbar.set_text(_("Building Articles")) + if not self.window.get_property("is-active"): + self.trayicon.set_blinking(True) else: self.progressbar.set_text(_("No New Headers")) self.progressbar.set_fraction(2/float(2)) @@ -2599,8 +2622,6 @@ When you try to import a newsrc file XPN article.has_body=False self.art_db.insertArticle(group[0],article) - - def __init__(self,use_home,custom_dir): Edit_Win.VERSION=VERSION Edit_Mail_Win.VERSION=VERSION @@ -2614,6 +2635,13 @@ When you try to import a newsrc file XPN if ret>0 :sys.exit(ret) self.wdir=userdir.dir + # handle the trayicon + self.trayicon = gtk.StatusIcon() + self.trayicon.set_tooltip_text(_("XPN Newsreader")) + self.trayicon.set_from_file("/usr/share/pixmaps/xpn.png") + self.trayicon.connect("activate", self.tray_activated) + self.trayicon.connect("popup-menu", self.tray_popuped) + self.conf=Config_File() self.configs=self.conf.get_configs() debian/patches/01-fix_shbangs.patch0000644000000000000000000000136111141320365014344 0ustar Remove shbangs from imported or otherwise called scripts --- xpn-1.0.0.orig/xpn.py +++ xpn-1.0.0/xpn.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python import os,shutil #os.environ['PATH'] += ';'+os.path.join('gtk/lib')+';'+os.path.join('gtk/bin') #OLD #os.environ['PATH'] = os.path.join('gtk/lib')+';'+os.path.join('gtk/bin')+';'+os.path.join('gtk\\lib')+';'+os.path.join('gtk\\bin')+';'+os.environ['PATH'] #NEW --- xpn-1.0.0.orig/xpn_src/Show_Logs.py +++ xpn-1.0.0/xpn_src/Show_Logs.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python import gtk import os from xpn_src.UserDir import get_wdir --- xpn-1.0.0.orig/xpn_src/add_tag.py +++ xpn-1.0.0/xpn_src/add_tag.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python import gtk import os from locale import getdefaultlocale debian/docs0000644000000000000000000000003511141316442010034 0ustar AUTHORS README TODO xpn.html debian/README.source0000644000000000000000000000057011301206003011331 0ustar xpn for Debian -------------- This package uses quilt to manage all modifications to the upstream source. Changes are stored in the source package as diffs in debian/patches and applied during the build. Please read how to use quilt in the provided documentation: /usr/share/doc/quilt/README.source -- David Paleino Thu, 19 Nov 2009 10:12:30 +0100 debian/xpn-wrapper.sh0000644000000000000000000000006311320672776012017 0ustar #!/bin/sh exec python /usr/share/xpn/xpn.py -d $@