ImageCellRenderer has now better name, gajim.py --> gajim.sh [needs fix to makefile to make it work, padding and xalign trying to clean up (don't work yet). added a fixme in new message dialog about focus problems..

This commit is contained in:
Nikos Kouremenos 2005-03-31 23:26:05 +00:00
parent ce6f724620
commit 610bc35b22
14 changed files with 168 additions and 165 deletions

View file

@ -1,10 +1,10 @@
VERSION ?= 0.6
VERSION ?= 0.6.1
MODULES = common plugins/gtkgui
PREFIX = /usr
DESTDIR = /
FIND = find -regex '.*\.\(\(glade\)\|\(py\)\|\(xpm\)\|\(gif\)\|\(png\)\|\(mo\)\|\(wav\)\)'
FIND = find -regex '.*\.\(\(glade\)\|\(py\)\|\(sh\)\|\(xpm\)\|\(gif\)\|\(png\)\|\(mo\)\|\(wav\)\)'
FILES = `$(FIND)`
DIRS = `$(FIND) -exec dirname {} \; | sort -u`
FIND_LIB = find -regex '.*\.\(so\)'
@ -37,7 +37,7 @@ dist:
-rm -rf gajim-$(VERSION)
mkdir gajim-$(VERSION)
cp -r plugins scripts common Core doc Messages sounds gajim-$(VERSION)/
cp setup_win32.py gajim.iss AUTHORS gajim.1 gajim.xpm gajim.ico COPYING Makefile Changelog README gajim.py gajim-$(VERSION)
cp setup_win32.py gajim.iss AUTHORS gajim.1 gajim.xpm gajim.ico COPYING Makefile Changelog README gajim.sh gajim-$(VERSION)
-find gajim-$(VERSION) -name '.svn' -exec rm -rf {} \; 2> /dev/null
find gajim-$(VERSION) -name '*.pyc' -exec rm {} \;
find gajim-$(VERSION) -name '*.pyo' -exec rm {} \;

View file

@ -9,10 +9,22 @@ url="http://www.gajim.org"
license="GPL"
depends=(pygtk)
source=($url/downloads/$pkgname-$pkgver.tar.bz2)
md5sums=(8175a3ccf93093f23865baebe4fa82f8)
#md5sums=(8175a3ccf93093f23865baebe4fa82f8)
build() {
cd $startdir/src/$pkgname-$pkgver
make || return 1
echo "making trayicon..."
make trayicon || return 1 #remove this if you have gnome-python-extras
echo "done."
echo "making idle detection..."
make idle || return 1
echo "done."
echo "making translations..."
make translation || return 1
echo "done."
make DESTDIR=$startdir/pkg install
}

5
README
View file

@ -21,8 +21,8 @@ make install # as superuser
RUN GAJIM
gajim
or if you don't 'make install' you can also run from gajim folder with
./gajim.py
or if you didn't 'make install' you can also run from gajim folder with
./gajim.sh
TROUBLESHOOTING
If you have python2.3 please manually edit plugins/gtkgui/Makefile and in
@ -40,4 +40,3 @@ http://gajim.org
PS.
sounds & emoticons taken from Psi
gossip iconstyle taken from Imendio Gossip
thanks to Alex Podaras for various code contributions

6
debian/rules vendored
View file

@ -28,9 +28,9 @@ install-stamp: build-stamp
cd debian/tmp && install -d `cat ../dirs`
make install PREFIX=/usr DESTDIR=`pwd`/debian/tmp
cp gajim.xpm debian/tmp/usr/share/pixmaps
chmod -x debian/tmp/usr/share/gajim/gajim.py
sed -ne '1d;w debian/tmp/gajim.py.tmp' debian/tmp/usr/share/gajim/gajim.py
mv debian/tmp/gajim.py.tmp debian/tmp/usr/share/gajim/gajim.py
chmod -x debian/tmp/usr/share/gajim/gajim.sh
sed -ne '1d;w debian/tmp/gajim.sh.tmp' debian/tmp/usr/share/gajim/gajim.sh
mv debian/tmp/gajim.sh.tmp debian/tmp/usr/share/gajim/gajim.sh
binary-indep: checkroot build
$(checkdir)

View file

@ -1,38 +1,38 @@
; -- Example1.iss --
; Demonstrates copying 3 files and creating an icon.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES!
[Setup]
AppName=Gajim
AppVerName=Gajim version 0.6
DefaultDirName={pf}\Gajim
DefaultGroupName=Gajim
UninstallDisplayIcon={app}\Gajim.exe
Compression=lzma
SolidCompression=yes
[Components]
Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
[Tasks]
Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: main
[Files]
Source: "dist\*.pyd"; DestDir: "{app}"
Source: "dist\*.dll"; DestDir: "{app}"
Source: "dist\*.zip"; DestDir: "{app}"
Source: "dist\gajim.exe"; DestDir: "{app}"; components: main
Source: "*.ico"; DestDir: "{app}"
Source: "dist\plugins\gtkgui\*.glade"; DestDir: "{app}\plugins\gtkgui"
Source: "dist\plugins\gtkgui\icons\sun\*"; DestDir: "{app}\plugins\gtkgui\icons\sun"
Source: "dist\plugins\gtkgui\emoticons\*"; DestDir: "{app}\plugins\gtkgui\emoticons"
Source: "dist\plugins\gtkgui\pixmaps\*"; DestDir: "{app}\plugins\gtkgui\pixmaps"
Source: "dist\sounds\*"; DestDir: "{app}\sounds"
[Icons]
Name: "{group}\Gajim"; Filename: "{app}\Gajim.exe"; WorkingDir: "{app}"; IconFilename: "{app}\gajim.ico"
Name: "{userdesktop}\Gajim"; Filename: "{app}\gajim.exe"; WorkingDir: "{app}"; IconFilename: "{app}\gajim.ico"; Components: main; Tasks: desktopicon
[Run]
Filename: "{app}\gajim.exe"; Description: "Launch application"; Flags: postinstall nowait skipifsilent
; -- Example1.iss --
; Demonstrates copying 3 files and creating an icon.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES!
[Setup]
AppName=Gajim
AppVerName=Gajim version 0.6.1
DefaultDirName={pf}\Gajim
DefaultGroupName=Gajim
UninstallDisplayIcon={app}\Gajim.exe
Compression=lzma
SolidCompression=yes
[Components]
Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
[Tasks]
Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: main
[Files]
Source: "dist\*.pyd"; DestDir: "{app}"
Source: "dist\*.dll"; DestDir: "{app}"
Source: "dist\*.zip"; DestDir: "{app}"
Source: "dist\gajim.exe"; DestDir: "{app}"; components: main
Source: "*.ico"; DestDir: "{app}"
Source: "dist\plugins\gtkgui\*.glade"; DestDir: "{app}\plugins\gtkgui"
Source: "dist\plugins\gtkgui\icons\sun\*"; DestDir: "{app}\plugins\gtkgui\icons\sun"
Source: "dist\plugins\gtkgui\emoticons\*"; DestDir: "{app}\plugins\gtkgui\emoticons"
Source: "dist\plugins\gtkgui\pixmaps\*"; DestDir: "{app}\plugins\gtkgui\pixmaps"
Source: "dist\sounds\*"; DestDir: "{app}\sounds"
[Icons]
Name: "{group}\Gajim"; Filename: "{app}\Gajim.exe"; WorkingDir: "{app}"; IconFilename: "{app}\gajim.ico"
Name: "{userdesktop}\Gajim"; Filename: "{app}\gajim.exe"; WorkingDir: "{app}"; IconFilename: "{app}\gajim.ico"; Components: main; Tasks: desktopicon
[Run]
Filename: "{app}\gajim.exe"; Description: "Launch application"; Flags: postinstall nowait skipifsilent

View file

@ -1,5 +1,7 @@
#!/usr/bin/python -tt
## gajim.py
#!/bin/sh
''':'
exec python -OOtt "$0" ${1+"$@"}
' '''
##
## Gajim Team:
## - Yann Le Boulanger <asterix@lagaule.org>
@ -55,3 +57,5 @@ signal.signal(signal.SIGINT, signal.SIG_DFL)
Core.core.start(mode)
print _("Core Stopped")

View file

@ -622,11 +622,6 @@ class Preferences_window:
if event.keyval == gtk.keysyms.Delete:
self.on_button_remove_emoticon_clicked(widget)
def sound_is_ok(self, sound):
if not os.path.exists(sound):
return 0
return 1
def sound_toggled_cb(self, cell, path):
model = self.sound_tree.get_model()
model[path][1] = not model[path][1]
@ -685,7 +680,7 @@ class Preferences_window:
response = dialog.run()
if response == gtk.RESPONSE_OK:
file = dialog.get_filename()
if self.sound_is_ok(file):
if os.path.exists(file):
ok = 1
else:
ok = 1
@ -836,7 +831,7 @@ class Preferences_window:
col = gtk.TreeViewColumn(_('Image'))
self.emot_tree.append_column(col)
renderer = gtkgui.ImageCellRenderer()
renderer = gtkgui.CellRendererImage()
col.pack_start(renderer, expand = False)
col.add_attribute(renderer, 'image', 2)

View file

@ -541,7 +541,7 @@ class About_dialog:
dlg.set_comments(_('A GTK jabber client'))
dlg.set_website('http://www.gajim.org')
authors = ['Yann Le Boulanger <asterix@lagaule.org>', 'Vincent Hanquez <tab@snarc.org>', 'Nikos Kouremenos <kourem@gmail.com>']
authors = ['Yann Le Boulanger <asterix@lagaule.org>', 'Vincent Hanquez <tab@snarc.org>', 'Nikos Kouremenos <kourem@gmail.com>', 'Alex Podaras <bigpod@gmail.com>']
dlg.set_authors(authors)
dlg.set_logo(gtk.gdk.pixbuf_new_from_file('plugins/gtkgui/pixmaps/logo.png'))
dlg.set_translator_credits(_('translator_credits'))
@ -689,6 +689,7 @@ class New_message_dialog:
self.plugin.roster.new_chat(user, self.account)
self.plugin.windows[self.account]['chats'][jid].active_tab(jid)
self.plugin.windows[self.account]['chats'][jid].window.present()
#FIXME: PROBLEM WITH FOCUS
widget.get_toplevel().destroy()

View file

@ -25,7 +25,7 @@ import time
from dialogs import *
from chat import *
from gtkgui import ImageCellRenderer
from gtkgui import CellRendererImage
from common import i18n
@ -449,7 +449,7 @@ class Groupchat_window(Chat):
#status_image, nickname, real_jid, status
store = gtk.TreeStore(gtk.Image, str, str, str)
column = gtk.TreeViewColumn('contacts')
render_text = ImageCellRenderer()
render_text = CellRendererImage()
column.pack_start(render_text, expand = False)
column.add_attribute(render_text, 'image', 0)
render_text = gtk.CellRendererText()

View file

@ -2623,7 +2623,6 @@
<widget class="GtkButton" id="close_button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-close</property>
<property name="use_stock">True</property>

View file

@ -57,7 +57,7 @@ import Queue
import sre
import common.sleepy
class ImageCellRenderer(gtk.GenericCellRenderer):
class CellRendererImage(gtk.GenericCellRenderer):
__gproperties__ = {
"image": (gobject.TYPE_OBJECT, "Image",
@ -149,7 +149,7 @@ class ImageCellRenderer(gtk.GenericCellRenderer):
calc_height - self.get_property("ypad"))
return x_offset, y_offset, calc_width, calc_height
gobject.type_register(ImageCellRenderer)
gobject.type_register(CellRendererImage)
class User:
"""Information concerning each users"""
@ -806,8 +806,8 @@ class plugin:
'ask_online_status':0,\
'ask_offline_status':0,\
'last_msg':'',\
'msg0_name':'Online',\
'msg0':'Yep I\'m online.',\
'msg0_name':'Nap',\
'msg0':'I\'m taking a nap.',\
'msg1_name':'Brb',\
'msg1':'Back in some minutes.',\
'msg2_name':'Eating',\
@ -816,10 +816,6 @@ class plugin:
'msg3':'I\'m watching a movie.',\
'msg4_name':'Working',\
'msg4':'I\'m working.',\
'msg5_name':'Nap',\
'msg5':'I\'m taking a nap.',\
'msg6_name':'Offline',\
'msg6':'I\'m offline.',\
'trayicon':1,\
'iconset':'sun',\
'inmsgcolor':'#ff0000',\

View file

@ -28,7 +28,7 @@ import common.sleepy
from tabbed_chat_window import *
from groupchat_window import *
from history_window import *
from gtkgui import ImageCellRenderer, User
from gtkgui import CellRendererImage, User
from dialogs import *
from config import *
@ -651,9 +651,10 @@ class Roster_window:
iter = model.get_iter(path)
type = model.get_value(iter, 2)
if (type == 'group' or type == 'account'):
# The integer 30 is the width of the first CellRenderer (see
# iconCellDataFunc function)
if x <= 30:
print self.tree.get_columns()
print column
#self.tree.get_column(0)
if column == self.tree.get_column(0): # if first column (the one that has \/
if (self.tree.row_expanded(path)):
self.tree.collapse_row(path)
else:
@ -693,7 +694,7 @@ class Roster_window:
model.set_value(accountIter, 0, self.pixbufs['offline'])
self.plugin.connected[account] = 0
self.plugin.systray.set_status('offline')
self.set_cb()
self.update_status_comboxbox()
return
self.plugin.send('PASSPHRASE', account, passphrase)
if save:
@ -749,21 +750,21 @@ class Roster_window:
return
self.send_status(account, status, message)
def on_cb_changed(self, widget):
def on_status_combobox_changed(self, widget):
"""When we change our status"""
model = self.cb.get_model()
active = self.cb.get_active()
model = self.status_combobox.get_model()
active = self.status_combobox.get_active()
if active < 0:
return
accounts = self.plugin.accounts.keys()
if len(accounts) == 0:
Error_dialog(_("You must setup an account before connecting to jabber network."))
self.set_cb()
Error_dialog(_('You must create an account before connecting to jabber network.'))
self.update_status_comboxbox()
return
status = model[active][2]
message = self.get_status_message(status)
if message == -1:
self.set_cb()
self.update_status_comboxbox()
return
for acct in accounts:
if self.plugin.accounts[acct].has_key('sync_with_global_status'):
@ -771,7 +772,7 @@ class Roster_window:
continue
self.send_status(acct, status, message)
def set_cb(self):
def update_status_comboxbox(self):
#table to change index in plugin.connected to index in combobox
table = {0:5, 1:5, 2:0, 3:1, 4:2, 5:3, 6:4}
maxi = 0
@ -779,9 +780,9 @@ class Roster_window:
maxi = max(self.plugin.connected.values())
#temporarily block signal in order not to send status that we show
#in the combobox
self.cb.handler_block(self.id_signal_cb)
self.cb.set_active(table[maxi])
self.cb.handler_unblock(self.id_signal_cb)
self.status_combobox.handler_block(self.id_signal_cb)
self.status_combobox.set_active(table[maxi])
self.status_combobox.handler_unblock(self.id_signal_cb)
statuss = ['offline', 'connecting', 'online', 'away', 'xa', 'dnd',\
'invisible']
if self.plugin.systray_enabled:
@ -812,7 +813,7 @@ class Roster_window:
for user in luser_copy:
self.chg_user_status(user, 'offline', 'Disconnected', account)
self.plugin.connected[account] = statuss.index(status)
self.set_cb()
self.update_status_comboxbox()
def new_chat(self, user, account):
if self.plugin.config['usetabbedchat']:
@ -1040,7 +1041,7 @@ class Roster_window:
self.hidden_lines.append(account)
def on_editing_canceled (self, cell):
"""editing have been canceled"""
"""editing has been canceled"""
#TODO: get iter
#model.set_value(iter, 5, False)
pass
@ -1112,7 +1113,7 @@ class Roster_window:
# Update the roster
self.draw_roster()
# Update the status combobox
model = self.cb.get_model()
model = self.status_combobox.get_model()
iter = model.get_iter_root()
while iter:
model.set_value(iter, 1, self.pixbufs[model.get_value(iter, 2)])
@ -1130,11 +1131,6 @@ class Roster_window:
if jid != 'tabbed':
self.plugin.windows[account]['gc'][jid].udpate_pixbufs()
def sound_is_ok(self, sound):
if not os.path.exists(sound):
return 0
return 1
def on_show_offline_contacts_menuitem_activate(self, widget):
"""when show offline option is changed:
redraw the treeview"""
@ -1156,7 +1152,6 @@ class Roster_window:
renderer.set_property('cell-background', \
self.plugin.config['userbgcolor'])
renderer.set_property('xalign', 1)
renderer.set_property('width', 30)
def nameCellDataFunc(self, column, renderer, model, iter, data=None):
"""When a row is added, set properties for name renderer"""
@ -1166,21 +1161,20 @@ class Roster_window:
renderer.set_property('cell-background', \
self.plugin.config['accountbgcolor'])
renderer.set_property('font', self.plugin.config['accountfont'])
renderer.set_property('xpad', 0)
elif model.get_value(iter, 2) == 'group':
renderer.set_property('foreground', \
self.plugin.config['grouptextcolor'])
renderer.set_property('cell-background', \
self.plugin.config['groupbgcolor'])
renderer.set_property('font', self.plugin.config['groupfont'])
renderer.set_property('xpad', 8)
else:
renderer.set_property('foreground', \
self.plugin.config['usertextcolor'])
renderer.set_property('cell-background', \
self.plugin.config['userbgcolor'])
renderer.set_property('font', self.plugin.config['userfont'])
renderer.set_property('xpad', 16)
renderer.set_property('xpad', 5)
def compareIters(self, model, iter1, iter2, data = None):
"""Compare two iters to sort them"""
@ -1313,15 +1307,16 @@ class Roster_window:
liststore = gtk.ListStore(gobject.TYPE_STRING, gtk.Image, \
gobject.TYPE_STRING)
self.cb = gtk.ComboBox()
self.xml.get_widget('vbox1').pack_end(self.cb, False)
cell = ImageCellRenderer()
self.cb.pack_start(cell, False)
self.cb.add_attribute(cell, 'image', 1)
self.status_combobox = gtk.ComboBox()
self.xml.get_widget('vbox1').pack_end(self.status_combobox, False)
cell = CellRendererImage()
self.status_combobox.pack_start(cell, False)
self.status_combobox.add_attribute(cell, 'image', 1)
cell = gtk.CellRendererText()
cell.set_property('xpad', 8)
self.cb.pack_start(cell, True)
self.cb.add_attribute(cell, 'text', 0)
cell.set_property('xpad', 5) # padding for status text
self.status_combobox.pack_start(cell, True)
self.status_combobox.add_attribute(cell, 'text', 0)
for status in ['online', 'away', 'xa', 'dnd', 'invisible', 'offline']:
if status == 'dnd':
status_better = 'Busy'
@ -1330,9 +1325,9 @@ class Roster_window:
else:
status_better = status.capitalize()
iter = liststore.append([status_better, self.pixbufs[status], status])
self.cb.show_all()
self.cb.set_model(liststore)
self.cb.set_active(5)
self.status_combobox.show_all()
self.status_combobox.set_model(liststore)
self.status_combobox.set_active(5)
showOffline = self.plugin.config['showoffline']
self.xml.get_widget('show_offline_contacts_menuitem').set_active(showOffline)
@ -1340,7 +1335,7 @@ class Roster_window:
#columns
col = gtk.TreeViewColumn()
self.tree.append_column(col)
render_pixbuf = ImageCellRenderer()
render_pixbuf = CellRendererImage()
col.pack_start(render_pixbuf, expand = False)
col.add_attribute(render_pixbuf, 'image', 0)
col.set_cell_data_func(render_pixbuf, self.iconCellDataFunc, None)
@ -1369,7 +1364,8 @@ class Roster_window:
self.tree.connect("drag_data_get", self.drag_data_get_data)
self.tree.connect("drag_data_received", self.drag_data_received_data)
self.xml.signal_autoconnect(self)
self.id_signal_cb = self.cb.connect('changed', self.on_cb_changed)
self.id_signal_cb = self.status_combobox.connect('changed',\
self.on_status_combobox_changed)
self.hidden_lines = self.plugin.config['hiddenlines'].split('\t')
self.draw_roster()

View file

@ -4,6 +4,7 @@
## Gajim Team:
## - Yann Le Boulanger <asterix@lagaule.org>
## - Vincent Hanquez <tab@snarc.org>
## - Nikos Kouremenos <kourem@gmail.com>
##
## Copyright (C) 2003-2005 Gajim Team
##
@ -23,4 +24,4 @@ fi
cd PREFIX/share/gajim
export PYTHONPATH="$PYTHONPATH:PREFIX/lib/gajim"
python gajim.py
gajim.sh

View file

@ -1,54 +1,54 @@
## setup_win32.py
##
## Gajim Team:
## - Yann Le Boulanger <asterix@lagaule.org>
## - Vincent Hanquez <tab@snarc.org>
##
## Copyright (C) 2003-2005 Gajim Team
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation; version 2 only.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
from distutils.core import setup
import py2exe
import glob
includes = ["encodings",
"encodings.utf-8",]
opts = {
"py2exe": {
"includes": "pango,atk,gobject,plugins,plugins.gtkgui,plugins.logger,encodings,encodings.*",
"dll_excludes": [
"iconv.dll","intl.dll","libatk-1.0-0.dll",
"libgdk_pixbuf-2.0-0.dll","libgdk-win32-2.0-0.dll",
"libglib-2.0-0.dll","libgmodule-2.0-0.dll",
"libgobject-2.0-0.dll","libgthread-2.0-0.dll",
"libgtk-win32-2.0-0.dll","libpango-1.0-0.dll",
"libpangowin32-1.0-0.dll"
],
}
}
setup(
name = "Gajim",
description = "A jabber client",
# console=["gajim.py"],
windows = [{"script": "gajim.py",
"icon_resources": [(1, "gajim.ico")]}],
options=opts,
data_files=[("plugins/gtkgui", glob.glob("plugins/gtkgui/gtkgui.glade")),
("plugins/gtkgui/icons/sun", glob.glob("plugins/gtkgui/icons/sun/*.*")),
("plugins/gtkgui/emoticons", glob.glob("plugins/gtkgui/emoticons/*.*")),
("plugins/gtkgui/pixmaps", glob.glob("plugins/gtkgui/pixmaps/*.*")),
("sounds", glob.glob("sounds/*.*")),
("Messages/fr/LC_MESSAGES", glob.glob("Messages/fr/LC_MESSAGES/*.mo"))
],
)
## setup_win32.py
##
## Gajim Team:
## - Yann Le Boulanger <asterix@lagaule.org>
## - Vincent Hanquez <tab@snarc.org>
## - Nikos Kouremenos <kourem@gmail.com>
## Copyright (C) 2003-2005 Gajim Team
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation; version 2 only.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
from distutils.core import setup
import py2exe
import glob
includes = ["encodings",
"encodings.utf-8",]
opts = {
"py2exe": {
"includes": "pango,atk,gobject,plugins,plugins.gtkgui,plugins.logger,encodings,encodings.*",
"dll_excludes": [
"iconv.dll","intl.dll","libatk-1.0-0.dll",
"libgdk_pixbuf-2.0-0.dll","libgdk-win32-2.0-0.dll",
"libglib-2.0-0.dll","libgmodule-2.0-0.dll",
"libgobject-2.0-0.dll","libgthread-2.0-0.dll",
"libgtk-win32-2.0-0.dll","libpango-1.0-0.dll",
"libpangowin32-1.0-0.dll"
],
}
}
setup(
name = "Gajim",
description = "A jabber client",
# console=["gajim.sh"],
windows = [{"script": "gajim.sh",
"icon_resources": [(1, "gajim.ico")]}],
options=opts,
data_files=[("plugins/gtkgui", glob.glob("plugins/gtkgui/gtkgui.glade")),
("plugins/gtkgui/icons/sun", glob.glob("plugins/gtkgui/icons/sun/*.*")),
("plugins/gtkgui/emoticons", glob.glob("plugins/gtkgui/emoticons/*.*")),
("plugins/gtkgui/pixmaps", glob.glob("plugins/gtkgui/pixmaps/*.*")),
("sounds", glob.glob("sounds/*.*")),
("Messages/fr/LC_MESSAGES", glob.glob("Messages/fr/LC_MESSAGES/*.mo"))
],
)