Changes of Revision 4

psi+-iconsets.changes Changed
x
 
1
@@ -1,4 +1,12 @@
2
 -------------------------------------------------------------------
3
+Sat Apr 23 08:16:42 UTC 2016 - jslaby@suse.cz
4
+
5
+- update to 20160408
6
+  * some icons were pushed to upstream, so we need to carry less of
7
+    them
8
+- _service: put only iconsets into tarballs
9
+
10
+-------------------------------------------------------------------
11
 Wed Mar  9 11:50:54 UTC 2016 - jslaby@suse.cz
12
 
13
 - update to 20160309
14
psi+-iconsets.spec Changed
60
 
1
@@ -16,14 +16,17 @@
2
 #
3
 
4
 
5
+%define version_unconverted 20160408
6
+
7
 Name:           psi+-iconsets
8
 Url:            http://code.google.com/p/psi-dev/
9
-Version:        20160309
10
+Version:        20160408
11
 Release:        0
12
 Summary:        Icons for Psi
13
 License:        GPL-2.0 and CC-BY-ND-3.0
14
 Group:          Productivity/Networking/Talk/Clients
15
-Requires:       psi+
16
+# only for psi+ with icons from upstream (otherwise some will be missing)
17
+Requires:       psi+ >= 20160408
18
 Source0:        psi-plus-main-%{version}.tar.xz
19
 Source1:        psi-plus-resources-1.tar.xz
20
 BuildArch:      noarch
21
@@ -40,7 +43,7 @@
22
 %install
23
 install -d -m 0755 %{buildroot}/%{iconspath}
24
 
25
-for DIR in activities/default affiliations/default clients/default moods/default; do
26
+for DIR in clients/default; do
27
    DEST="%{buildroot}/%{iconspath}/$DIR/"
28
    install -d -m 0755 "$DEST"
29
    install -m 0644 -t "$DEST" iconsets/"$DIR"/icondef.xml
30
@@ -65,14 +68,11 @@
31
 %dir %{_datadir}/psi-plus
32
 %dir %{iconspath}
33
 %dir %{iconspath}/activities
34
-%dir %{iconspath}/activities/default
35
 %dir %{iconspath}/affiliations
36
-%dir %{iconspath}/affiliations/default
37
 %dir %{iconspath}/clients
38
 %dir %{iconspath}/clients/default
39
 %dir %{iconspath}/emoticons
40
 %dir %{iconspath}/moods
41
-%dir %{iconspath}/moods/default
42
 %dir %{iconspath}/roster
43
 %dir %{iconspath}/system
44
 %{iconspath}/activities/*.jisp
45
@@ -82,14 +82,8 @@
46
 %{iconspath}/moods/*.jisp
47
 %{iconspath}/roster/*.jisp
48
 %{iconspath}/system/*.jisp
49
-%{iconspath}/activities/default/icondef.xml
50
-%{iconspath}/affiliations/default/icondef.xml
51
 %{iconspath}/clients/default/icondef.xml
52
-%{iconspath}/moods/default/icondef.xml
53
 %{iconspath}/clients/default/FP_Freeware?License.txt
54
-%{iconspath}/activities/default/*.png
55
-%{iconspath}/affiliations/default/*.png
56
 %{iconspath}/clients/default/*.png
57
-%{iconspath}/moods/default/*.png
58
 
59
 %changelog
60
_service Changed
16
 
1
@@ -3,12 +3,14 @@
2
     <param name="url">git://github.com/psi-plus/main.git</param>
3
     <param name="scm">git</param>
4
     <param name="filename">psi-plus-main</param>
5
+    <param name="include">iconsets</param>
6
     <param name="versionformat">%cd</param>
7
   </service>
8
   <service mode="localonly" name="tar_scm">
9
     <param name="url">git://github.com/psi-plus/resources.git</param>
10
     <param name="scm">git</param>
11
     <param name="filename">psi-plus-resources</param>
12
+    <param name="include">iconsets</param>
13
     <param name="version">1</param>
14
   </service>
15
   <service mode="localonly" name="recompress">
16
psi-plus-main-20160309.tar.xz/README Deleted
5
 
1
@@ -1,3 +0,0 @@
2
-This repository is required to build Psi+.
3
-It contains patches, additional resources,
4
-like images and maybe some sounds.
5
psi-plus-main-20160309.tar.xz/app.ico Deleted
psi-plus-main-20160309.tar.xz/changelog.txt Deleted
201
 
1
@@ -1,6767 +0,0 @@
2
-2014-05-02  zet
3
-v0.16.361
4
-  ! [коммит в upstream] psi: разрешено автозаполнение поля с паролем в форме присоединения
5
-    к конференции
6
-  ! [коммит в upstream] psi: исправлено некорректное поведение при перетаскивании объектов
7
-    в ростере конференции
8
-  ! [коммит в upstream] psi: исправлена работа поиска в ростере (задача 107,
9
-    https://github.com/psi-im/psi/issues/107)
10
-  ! [коммит в upstream] psi: сворачивание/разворачивание групп ростера при одиночном клике на
11
-    иконке группы
12
-  ! [коммит в upstream] psi: более эффективная работа с опциями
13
-  ! [коммит в upstream] psi: некоторые улучшения при перерисовке элементов ростера
14
-  ! [коммит в upstream] psi: небольшие исправления для диалоговых окон с историей переписки
15
-    (задача 109, https://github.com/psi-im/psi/issues/109 и другие)
16
-  ! [коммит в upstream] psi: решена задача 108, https://github.com/psi-im/psi/issues/108
17
-  ! [коммит в upstream] psi: 2014 год в окне "О программе"
18
-  ! [коммит в upstream] psi: попытка исправить некорректное отображение иконки в трее
19
-  ! [коммит в upstream] psi: решена задача 102, https://github.com/psi-im/psi/issues/102
20
-  ! [коммит в upstream] psi: всегда отображать в ростере контакт с непрочитанным сообщением/событием
21
-    (https://github.com/psi-im/psi/issues/42)
22
-  ! [коммит в upstream] psi: исправлена ошибка при смене ника после кика в конференции
23
-  ! [коммит в upstream] psi: сглаживание шрифтов в WebKit-версии
24
-  ! [коммит в upstream] psi: фикс получения имени клиента в случае когда в капсах содержится 'https'
25
-  ! [коммит в upstream] psi: теперь используется внешний qjdns
26
-  ! [коммит в upstream] psi: возможность сделать масштабируемую область видеоокна для видеозвонков
27
-  ! [коммит в upstream] psi: показывать продолжительность вызова в строке состояния
28
-  ! [коммит в upstream] iris: добавлен qcm-модуль для проверки наличия внешнего qjdns. если внешний
29
-    qjdns не найден, то будет использоваться встроенная версия. также встроенная версии qjdns будет
30
-    использоваться в Windows и в Mac OS X без проверки наличия внешнего qjdns
31
-  + добавлен новый патч для решения задачи 524, https://code.google.com/p/psi-dev/issues/detail?id=524
32
-    (psi-fix-selection-behavior-groupchat-dlg.diff)
33
-  + добавлен новый патч для решения задачи 574, https://code.google.com/p/psi-dev/issues/detail?id=574
34
-    (fix-muc-roster-drag-and-drop.diff)
35
-  - убран патч fix-muc-roster-drag-and-drop.diff -> принят в upstream
36
-  + добавлен новый патч для поддержки проверки правописания при использовании нескольких словарей
37
-    в случае когда Psi+ скомпилирован с enchant (psi-enchant-multidicts.diff)
38
-  + добавлен новый патч для решения задачи 575, https://code.google.com/p/psi-dev/issues/detail?id=575
39
-    для работы фичи необходимо опцию "options.ui.muc.allow-highlight-events" установить в положение
40
-    "true" (psi-muc-highlight-events.diff)
41
-  * исправлена утечка памяти при очистке очереди событий. память текла при удалении контакта, если у
42
-    него были непрочитанные сообщения или другие необработанные события (psi-fix-memory-leaks.diff)
43
-  * исправлена ошибка, в результате которой отображалось событие composing для конференций
44
-    (если какой нибудь клиент его отправлял), также теперь используется одинаковая иконка
45
-    для события и для чатов (psi-muc-highlight-events.diff)
46
-  * решена проблема с повреждением открытых вкладок, содержащих приватные чаты конференций,
47
-    при появлении нового события для конференции. ник и заголовок вкладки приватного чата менялись
48
-    на название конференции (psi-muc-highlight-events.diff)
49
-  * теперь события конференции подгружаются при запуске Psi+ (если таковые существуют)
50
-    [psi-muc-highlight-events.diff]
51
-  - убраны патчи psi-more-effective-work-with-options.diff и
52
-    some-improvments-for-contactlist-repaiting.diff -> приняты в upstream
53
-  * попытка исправить патч psi-improve-tray-tooltip.diff
54
-  * обновлён патч psi-hide-any-group.diff
55
-  * решена задача 578, https://code.google.com/p/psi-dev/issues/detail?id=578
56
-    (psi-reasons-for-roles-affiliations.diff)
57
-  + добавлен новый патч psi-disable-messages-correct-behavior.diff: патч меняет поведение опции
58
-    "options.message.enabled". теперь при включённой опции входящие сообщения и другие события
59
-    отображаются в диалоге, события не "зависают". исходящие сообщения запрещены и отключены в меню.
60
-    также решена задача 560, https://code.google.com/p/psi-dev/issues/detail?id=560
61
-  + добавлен новый патч psi-transfer-dlg-improvement.diff: доработка диалогового окна передачи файлов,
62
-    подробнее https://github.com/psi-plus/main/commit/1d5659b572e5a5dae39a245a66b5c71553adfa67#commitcomment-5454136
63
-  + добавлены новые патчи для ОС Haiku (спасибо Diger) [fix-psiplus-build-in-haiku.patch,
64
-    fix-iconselect-buttons-in-haiku.patch, fix-screenshotplugin-build-in-haiku.patch]
65
-  * добавлены новые капсы и ресурсы для Jabber-клиентов из списка отсюда:
66
-    https://code.google.com/p/psi-dev/issues/detail?id=3#c157 (спасибо aon17@mail.ru)
67
-    [psi-client-icons.diff]
68
-  * обновлены наборы иконок Jabber-клиентов "fingerprint.jisp" и "fingerprint-22.jisp"
69
-    (спасибо aon17@mail.ru)
70
-  * добавлена поддержка действия detach при клике средней кнопкой мыши по табу. для неизвестных
71
-    значений настройки теперь используется действие по умолчанию "none" (спасибо Hamper)
72
-    [psi-tab-action-on-mouse-click.diff]
73
-  * исправлена недоработка, в результате которой в консоль выводились предупреждения
74
-    об отсутствующей опции (задача 563, пункт 0) [psi-tunable-chattoolbar.diff]
75
-  * исправлено поведение при выделении элементов в обычных чатах. теперь это происходит таким же
76
-    способом, как и в MUC (https://code.google.com/p/psi-dev/issues/detail?id=524)
77
-    [psi-fix-selection-behavior-chat-dlg.diff]
78
-  * убраны ненужные переменные в патчах psi-modern-roster.diff и psi-options-reset-button.diff
79
-  * добавлена проверка на пустые аватары в патче psi-roster-avatar-frame.diff
80
-  * чистка лишних отладочных сообщений в коде для решения задачи 563,
81
-    https://code.google.com/p/psi-dev/issues/detail?id=563 (psi-extend-plugins-interface.diff)
82
-  * теперь центральная панель инструментов в чатах включена по умолчанию
83
-    (psi-default-application-settings.diff, psi-tunable-chattoolbar.diff)
84
-  * решена проблема, описанная здесь: http://code.google.com/p/psi-dev/issues/detail?id=106#c35.
85
-    теперь в диалоге чата, запущенном по команде из контекстного меню, будет выбран правильный
86
-    ресурс. если ресурс у контакта только один, то режим autojid останется включённым. если
87
-    несколько ресурсов - то даже, если был выбран ресурс с максимальным приоритетом, этот режим
88
-    будет отключён (psi-one-chat-for-many-resources.diff)
89
-  * исправлен двойной вызов vcard из контекстного меню при клике на jid в ростере
90
-    (psi-muc-nickclick-chat.diff)
91
-  * исправлен регистр в названиях ресурсов, т.к. для данного патча в переменной name не может быть
92
-    символов верхнего регистра (psi-client-icons.diff)
93
-  * обновлена ссылка для скачивания свежего инсталлятора Psi+, а также обновлены прямые ссылки на
94
-    changelog и version в патче на автоматическое обнаружение новых версий Psi+
95
-    (psi-dirty-check.diff)
96
-  * обновлён OTR plugin до версии 1.0.2,
97
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/otrplugin/changelog.txt
98
-  * обновлён extended menu plugin до версии 0.1.3,
99
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/extendedmenuplugin/changelog.txt
100
-  * обновлён video status plugin до версии 0.2.5,
101
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/videostatusplugin/changelog.txt
102
-  * обновлён extended options plugin до версии 0.4.0,
103
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/extendedoptionsplugin/changelog.txt
104
-  * обновлён content downloader plugin до версии 0.2.5,
105
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/contentdownloaderplugin/changelog.txt
106
-  ! обновлены библиотеки шифрования OpenSSL до версии 1.0.1g,
107
-    http://www.openssl.org/news/changelog.html
108
-  ! обновлены файлы локализации для поддержки различных языков в Psi+ (версия локализации 0.16.352)
109
-    https://github.com/psi-plus/psi-plus-l10n
110
-  --
111
-  ! [upstream commit] psi: allowed autofill password for muc join dialog
112
-  ! [upstream commit] psi: fixed drag and drop action in the muc roster
113
-  ! [upstream commit] psi: fix search in roster (https://github.com/psi-im/psi/issues/107)
114
-  ! [upstream commit] psi: expand/collapse roster groups on group icon singleclick
115
-  ! [upstream commit] psi: more effenctive work with options
116
-  ! [upstream commit] psi: some improvements for contactlist repainting
117
-  ! [upstream commit] psi: some fixes for history
118
-    (https://github.com/psi-im/psi/issues/109 and other)
119
-  ! [upstream commit] psi: fixed https://github.com/psi-im/psi/issues/108
120
-  ! [upstream commit] psi: 2014 at aboutdlg
121
-  ! [upstream commit] psi: try to fix wrong tray icon
122
-  ! [upstream commit] psi: fix handling + at url (https://github.com/psi-im/psi/issues/102)
123
-  ! [upstream commit] psi: always show contacts with events
124
-    (https://github.com/psi-im/psi/issues/42)
125
-  ! [upstream commit] psi: fix nick changing after kick from muc
126
-  ! [upstream commit] psi: round pixel font size in WebKit
127
-  ! [upstream commit] psi: fixed to obtain the client's name, if the caps node contains https
128
-  ! [upstream commit] psi: use external qjdns
129
-  ! [upstream commit] psi: make scalable video area for video calls
130
-  ! [upstream commit] psi: show call duration in status string
131
-  ! [upstream commit] iris: added qcm module to check for external qjdns. if external qjdns not
132
-    found will be used bundled version. also bundled qjdns will be used on Windows and Mac OS X
133
-    without checking for external qjdns
134
-  + added new psi-fix-selection-behavior-groupchat-dlg.diff patch
135
-  + added new patch for fix issue 574, https://code.google.com/p/psi-dev/issues/detail?id=574
136
-    (fix-muc-roster-drag-and-drop.diff)
137
-  - removed fix-muc-roster-drag-and-drop.diff patch -> went to upstream
138
-  + added new patch for support check spelling with multiple dictionaries when Psi+ compiled with
139
-    enchant (psi-enchant-multidicts.diff)
140
-  + added new patch for fix issue 575, https://code.google.com/p/psi-dev/issues/detail?id=575. for
141
-    enable this feature you need 'options.ui.muc.allow-highlight-events' option switch to 'true'
142
-    position (psi-muc-highlight-events.diff)
143
-  * fixed a memory leak (psi-fix-memory-leaks.diff)
144
-  * updated psi-muc-highlight-events.diff patch
145
-  - removed psi-more-effective-work-with-options.diff and
146
-    some-improvments-for-contactlist-repaiting.diff patches -> went to upstream
147
-  * try to fix psi-improve-tray-tooltip.diff patch
148
-  * updated psi-hide-any-group.diff patch
149
-  * fixed issue 578, https://code.google.com/p/psi-dev/issues/detail?id=578
150
-    (psi-reasons-for-roles-affiliations.diff)
151
-  + added new psi-disable-messages-correct-behavior.diff patch
152
-  + added new psi-transfer-dlg-improvement.diff patch
153
-  + added patches for Haiku (thanks to Diger) [fix-psiplus-build-in-haiku.patch,
154
-    fix-iconselect-buttons-in-haiku.patch, fix-screenshotplugin-build-in-haiku.patch]
155
-  * added new client caps and resources to src/userlist.cpp from
156
-    https://code.google.com/p/psi-dev/issues/detail?id=3#c157 (thanks to aon17@mail.ru)
157
-    [psi-client-icons.diff]
158
-  * updated client iconsets 'fingerprint.jisp' and 'fingerprint-22.jisp' (thanks to aon17@mail.ru)
159
-  * added some actions on the mouse middle button (thanks to Hamper)
160
-    [psi-tab-action-on-mouse-click.diff]
161
-  * updated psi-tunable-chattoolbar.diff patch
162
-  * fixed a selection behavior in the psichatdlg (psi-fix-selection-behavior-chat-dlg.diff)
163
-  * removed unused variables in psi-modern-roster.diff and psi-options-reset-button.diff patches
164
-  * updated psi-roster-avatar-frame.diff patch
165
-  * updated psi-extend-plugins-interface.diff patch for fix issue 563,
166
-    https://code.google.com/p/psi-dev/issues/detail?id=563
167
-  * enable central toolbar by default
168
-    (psi-default-application-settings.diff, psi-tunable-chattoolbar.diff)
169
-  * updated psi-one-chat-for-many-resources.diff patch
170
-  * fixed double vcards from context menu on jid (psi-muc-nickclick-chat.diff)
171
-  * fixed capital letters in comparisions in psi-client-icons.diff patch
172
-  * updated downloads location and changelog/version raw files locations for auto updater
173
-    (psi-dirty-check.diff)
174
-  * updated OTR plugin to v1.0.2,
175
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/otrplugin/changelog.txt
176
-  * updated extended menu plugin to v0.1.3,
177
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/extendedmenuplugin/changelog.txt
178
-  * updated video status plugin to v0.2.5,
179
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/videostatusplugin/changelog.txt
180
-  * updated extended options plugin to v0.4.0,
181
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/extendedoptionsplugin/changelog.txt
182
-  * updated content downloader plugin to v0.2.5,
183
-    https://raw.githubusercontent.com/psi-plus/plugins/master/generic/contentdownloaderplugin/changelog.txt
184
-  ! updated OpenSSL win32 binary files to v1.0.1g, http://www.openssl.org/news/changelog.html
185
-  ! updated translations to v0.16.355 (https://github.com/psi-plus/psi-plus-l10n)
186
-
187
-
188
-2013-11-24  zet
189
-v0.16.261
190
-  ! [коммит в upstream] psi: dbus отключён в MS Windows по умолчанию
191
-  ! [коммит в upstream] psi: теперь не показывается лишняя история сообщений при перезаходе в
192
-    конференцию (спасибо Dmitriy Deshevoy)
193
-  ! [коммит в upstream] psi: исправлен порядок расположения панелей инструментов в настройках
194
-    приложения. Теперь новые панели появляются всегда в конце списка (снизу)
195
-  ! [коммит в upstream] psi: улучшена раскраска ников в чатлоге конференции. Патч от команды Psi+
196
-  ! [коммит в upstream] psi: исправлено падение приложения при вызове AlertManager
197
-  ! [коммит в upstream] psi: улучшено определение версии ОС семейства MS Windows в SystemInfo
198
-  + добавлен новый патч psi-tunable-chattoolbar.diff
199
-  * теперь используется слово "Groupchat" вместо "MUC"  или "Conference"
200
-    (psi-muc-and-user-topic-context-menu.diff)
201
psi-plus-main-20160309.tar.xz/copying-psi.txt Deleted
201
 
1
@@ -1,296 +0,0 @@
2
-
3
-  As a special exception, the copyright holder(s) give permission to link
4
-  this program with the Qt Library (commercial or non-commercial edition),
5
-  and distribute the resulting executable, without including the source
6
-  code for the Qt library in the source distribution.
7
-
8
-  As a special exception, the copyright holder(s) give permission to link
9
-  this program with any other library, and distribute the resulting
10
-  executable, without including the source code for the library in the
11
-  source distribution, provided that the library interfaces with this
12
-  program only via the following plugin interfaces:
13
-
14
-    1. The Qt Plugin APIs, only as authored by Trolltech
15
-    2. The QCA Plugin API, only as authored by Justin Karneges
16
-
17
-
18
-           GNU GENERAL PUBLIC LICENSE
19
-              Version 2, June 1991
20
-
21
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
22
-                          675 Mass Ave, Cambridge, MA 02139, USA
23
- Everyone is permitted to copy and distribute verbatim copies
24
- of this license document, but changing it is not allowed.
25
-
26
-               Preamble
27
-
28
-  The licenses for most software are designed to take away your
29
-freedom to share and change it.  By contrast, the GNU General Public
30
-License is intended to guarantee your freedom to share and change free
31
-software--to make sure the software is free for all its users.  This
32
-General Public License applies to most of the Free Software
33
-Foundation's software and to any other program whose authors commit to
34
-using it.  (Some other Free Software Foundation software is covered by
35
-the GNU Library General Public License instead.)  You can apply it to
36
-your programs, too.
37
-
38
-  When we speak of free software, we are referring to freedom, not
39
-price.  Our General Public Licenses are designed to make sure that you
40
-have the freedom to distribute copies of free software (and charge for
41
-this service if you wish), that you receive source code or can get it
42
-if you want it, that you can change the software or use pieces of it
43
-in new free programs; and that you know you can do these things.
44
-
45
-  To protect your rights, we need to make restrictions that forbid
46
-anyone to deny you these rights or to ask you to surrender the rights.
47
-These restrictions translate to certain responsibilities for you if you
48
-distribute copies of the software, or if you modify it.
49
-
50
-  For example, if you distribute copies of such a program, whether
51
-gratis or for a fee, you must give the recipients all the rights that
52
-you have.  You must make sure that they, too, receive or can get the
53
-source code.  And you must show them these terms so they know their
54
-rights.
55
-
56
-  We protect your rights with two steps: (1) copyright the software, and
57
-(2) offer you this license which gives you legal permission to copy,
58
-distribute and/or modify the software.
59
-
60
-  Also, for each author's protection and ours, we want to make certain
61
-that everyone understands that there is no warranty for this free
62
-software.  If the software is modified by someone else and passed on, we
63
-want its recipients to know that what they have is not the original, so
64
-that any problems introduced by others will not reflect on the original
65
-authors' reputations.
66
-
67
-  Finally, any free program is threatened constantly by software
68
-patents.  We wish to avoid the danger that redistributors of a free
69
-program will individually obtain patent licenses, in effect making the
70
-program proprietary.  To prevent this, we have made it clear that any
71
-patent must be licensed for everyone's free use or not licensed at all.
72
-
73
-  The precise terms and conditions for copying, distribution and
74
-modification follow.
75
-&#xc;
76
-           GNU GENERAL PUBLIC LICENSE
77
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
78
-
79
-  0. This License applies to any program or other work which contains
80
-a notice placed by the copyright holder saying it may be distributed
81
-under the terms of this General Public License.  The "Program", below,
82
-refers to any such program or work, and a "work based on the Program"
83
-means either the Program or any derivative work under copyright law:
84
-that is to say, a work containing the Program or a portion of it,
85
-either verbatim or with modifications and/or translated into another
86
-language.  (Hereinafter, translation is included without limitation in
87
-the term "modification".)  Each licensee is addressed as "you".
88
-
89
-Activities other than copying, distribution and modification are not
90
-covered by this License; they are outside its scope.  The act of
91
-running the Program is not restricted, and the output from the Program
92
-is covered only if its contents constitute a work based on the
93
-Program (independent of having been made by running the Program).
94
-Whether that is true depends on what the Program does.
95
-
96
-  1. You may copy and distribute verbatim copies of the Program's
97
-source code as you receive it, in any medium, provided that you
98
-conspicuously and appropriately publish on each copy an appropriate
99
-copyright notice and disclaimer of warranty; keep intact all the
100
-notices that refer to this License and to the absence of any warranty;
101
-and give any other recipients of the Program a copy of this License
102
-along with the Program.
103
-
104
-You may charge a fee for the physical act of transferring a copy, and
105
-you may at your option offer warranty protection in exchange for a fee.
106
-
107
-  2. You may modify your copy or copies of the Program or any portion
108
-of it, thus forming a work based on the Program, and copy and
109
-distribute such modifications or work under the terms of Section 1
110
-above, provided that you also meet all of these conditions:
111
-
112
-    a) You must cause the modified files to carry prominent notices
113
-    stating that you changed the files and the date of any change.
114
-
115
-    b) You must cause any work that you distribute or publish, that in
116
-    whole or in part contains or is derived from the Program or any
117
-    part thereof, to be licensed as a whole at no charge to all third
118
-    parties under the terms of this License.
119
-
120
-    c) If the modified program normally reads commands interactively
121
-    when run, you must cause it, when started running for such
122
-    interactive use in the most ordinary way, to print or display an
123
-    announcement including an appropriate copyright notice and a
124
-    notice that there is no warranty (or else, saying that you provide
125
-    a warranty) and that users may redistribute the program under
126
-    these conditions, and telling the user how to view a copy of this
127
-    License.  (Exception: if the Program itself is interactive but
128
-    does not normally print such an announcement, your work based on
129
-    the Program is not required to print an announcement.)
130
-&#xc;
131
-These requirements apply to the modified work as a whole.  If
132
-identifiable sections of that work are not derived from the Program,
133
-and can be reasonably considered independent and separate works in
134
-themselves, then this License, and its terms, do not apply to those
135
-sections when you distribute them as separate works.  But when you
136
-distribute the same sections as part of a whole which is a work based
137
-on the Program, the distribution of the whole must be on the terms of
138
-this License, whose permissions for other licensees extend to the
139
-entire whole, and thus to each and every part regardless of who wrote it.
140
-
141
-Thus, it is not the intent of this section to claim rights or contest
142
-your rights to work written entirely by you; rather, the intent is to
143
-exercise the right to control the distribution of derivative or
144
-collective works based on the Program.
145
-
146
-In addition, mere aggregation of another work not based on the Program
147
-with the Program (or with a work based on the Program) on a volume of
148
-a storage or distribution medium does not bring the other work under
149
-the scope of this License.
150
-
151
-  3. You may copy and distribute the Program (or a work based on it,
152
-under Section 2) in object code or executable form under the terms of
153
-Sections 1 and 2 above provided that you also do one of the following:
154
-
155
-    a) Accompany it with the complete corresponding machine-readable
156
-    source code, which must be distributed under the terms of Sections
157
-    1 and 2 above on a medium customarily used for software interchange; or,
158
-
159
-    b) Accompany it with a written offer, valid for at least three
160
-    years, to give any third party, for a charge no more than your
161
-    cost of physically performing source distribution, a complete
162
-    machine-readable copy of the corresponding source code, to be
163
-    distributed under the terms of Sections 1 and 2 above on a medium
164
-    customarily used for software interchange; or,
165
-
166
-    c) Accompany it with the information you received as to the offer
167
-    to distribute corresponding source code.  (This alternative is
168
-    allowed only for noncommercial distribution and only if you
169
-    received the program in object code or executable form with such
170
-    an offer, in accord with Subsection b above.)
171
-
172
-The source code for a work means the preferred form of the work for
173
-making modifications to it.  For an executable work, complete source
174
-code means all the source code for all modules it contains, plus any
175
-associated interface definition files, plus the scripts used to
176
-control compilation and installation of the executable.  However, as a
177
-special exception, the source code distributed need not include
178
-anything that is normally distributed (in either source or binary
179
-form) with the major components (compiler, kernel, and so on) of the
180
-operating system on which the executable runs, unless that component
181
-itself accompanies the executable.
182
-
183
-If distribution of executable or object code is made by offering
184
-access to copy from a designated place, then offering equivalent
185
-access to copy the source code from the same place counts as
186
-distribution of the source code, even though third parties are not
187
-compelled to copy the source along with the object code.
188
-&#xc;
189
-  4. You may not copy, modify, sublicense, or distribute the Program
190
-except as expressly provided under this License.  Any attempt
191
-otherwise to copy, modify, sublicense or distribute the Program is
192
-void, and will automatically terminate your rights under this License.
193
-However, parties who have received copies, or rights, from you under
194
-this License will not have their licenses terminated so long as such
195
-parties remain in full compliance.
196
-
197
-  5. You are not required to accept this License, since you have not
198
-signed it.  However, nothing else grants you permission to modify or
199
-distribute the Program or its derivative works.  These actions are
200
-prohibited by law if you do not accept this License.  Therefore, by
201
psi-plus-main-20160309.tar.xz/copying.txt Deleted
201
 
1
@@ -1,504 +0,0 @@
2
-         GNU LESSER GENERAL PUBLIC LICENSE
3
-              Version 2.1, February 1999
4
-
5
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
6
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
7
- Everyone is permitted to copy and distribute verbatim copies
8
- of this license document, but changing it is not allowed.
9
-
10
-[This is the first released version of the Lesser GPL.  It also counts
11
- as the successor of the GNU Library Public License, version 2, hence
12
- the version number 2.1.]
13
-
14
-               Preamble
15
-
16
-  The licenses for most software are designed to take away your
17
-freedom to share and change it.  By contrast, the GNU General Public
18
-Licenses are intended to guarantee your freedom to share and change
19
-free software--to make sure the software is free for all its users.
20
-
21
-  This license, the Lesser General Public License, applies to some
22
-specially designated software packages--typically libraries--of the
23
-Free Software Foundation and other authors who decide to use it.  You
24
-can use it too, but we suggest you first think carefully about whether
25
-this license or the ordinary General Public License is the better
26
-strategy to use in any particular case, based on the explanations below.
27
-
28
-  When we speak of free software, we are referring to freedom of use,
29
-not price.  Our General Public Licenses are designed to make sure that
30
-you have the freedom to distribute copies of free software (and charge
31
-for this service if you wish); that you receive source code or can get
32
-it if you want it; that you can change the software and use pieces of
33
-it in new free programs; and that you are informed that you can do
34
-these things.
35
-
36
-  To protect your rights, we need to make restrictions that forbid
37
-distributors to deny you these rights or to ask you to surrender these
38
-rights.  These restrictions translate to certain responsibilities for
39
-you if you distribute copies of the library or if you modify it.
40
-
41
-  For example, if you distribute copies of the library, whether gratis
42
-or for a fee, you must give the recipients all the rights that we gave
43
-you.  You must make sure that they, too, receive or can get the source
44
-code.  If you link other code with the library, you must provide
45
-complete object files to the recipients, so that they can relink them
46
-with the library after making changes to the library and recompiling
47
-it.  And you must show them these terms so they know their rights.
48
-
49
-  We protect your rights with a two-step method: (1) we copyright the
50
-library, and (2) we offer you this license, which gives you legal
51
-permission to copy, distribute and/or modify the library.
52
-
53
-  To protect each distributor, we want to make it very clear that
54
-there is no warranty for the free library.  Also, if the library is
55
-modified by someone else and passed on, the recipients should know
56
-that what they have is not the original version, so that the original
57
-author's reputation will not be affected by problems that might be
58
-introduced by others.
59
-&#xc;
60
-  Finally, software patents pose a constant threat to the existence of
61
-any free program.  We wish to make sure that a company cannot
62
-effectively restrict the users of a free program by obtaining a
63
-restrictive license from a patent holder.  Therefore, we insist that
64
-any patent license obtained for a version of the library must be
65
-consistent with the full freedom of use specified in this license.
66
-
67
-  Most GNU software, including some libraries, is covered by the
68
-ordinary GNU General Public License.  This license, the GNU Lesser
69
-General Public License, applies to certain designated libraries, and
70
-is quite different from the ordinary General Public License.  We use
71
-this license for certain libraries in order to permit linking those
72
-libraries into non-free programs.
73
-
74
-  When a program is linked with a library, whether statically or using
75
-a shared library, the combination of the two is legally speaking a
76
-combined work, a derivative of the original library.  The ordinary
77
-General Public License therefore permits such linking only if the
78
-entire combination fits its criteria of freedom.  The Lesser General
79
-Public License permits more lax criteria for linking other code with
80
-the library.
81
-
82
-  We call this license the "Lesser" General Public License because it
83
-does Less to protect the user's freedom than the ordinary General
84
-Public License.  It also provides other free software developers Less
85
-of an advantage over competing non-free programs.  These disadvantages
86
-are the reason we use the ordinary General Public License for many
87
-libraries.  However, the Lesser license provides advantages in certain
88
-special circumstances.
89
-
90
-  For example, on rare occasions, there may be a special need to
91
-encourage the widest possible use of a certain library, so that it becomes
92
-a de-facto standard.  To achieve this, non-free programs must be
93
-allowed to use the library.  A more frequent case is that a free
94
-library does the same job as widely used non-free libraries.  In this
95
-case, there is little to gain by limiting the free library to free
96
-software only, so we use the Lesser General Public License.
97
-
98
-  In other cases, permission to use a particular library in non-free
99
-programs enables a greater number of people to use a large body of
100
-free software.  For example, permission to use the GNU C Library in
101
-non-free programs enables many more people to use the whole GNU
102
-operating system, as well as its variant, the GNU/Linux operating
103
-system.
104
-
105
-  Although the Lesser General Public License is Less protective of the
106
-users' freedom, it does ensure that the user of a program that is
107
-linked with the Library has the freedom and the wherewithal to run
108
-that program using a modified version of the Library.
109
-
110
-  The precise terms and conditions for copying, distribution and
111
-modification follow.  Pay close attention to the difference between a
112
-"work based on the library" and a "work that uses the library".  The
113
-former contains code derived from the library, whereas the latter must
114
-be combined with the library in order to run.
115
-&#xc;
116
-         GNU LESSER GENERAL PUBLIC LICENSE
117
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
118
-
119
-  0. This License Agreement applies to any software library or other
120
-program which contains a notice placed by the copyright holder or
121
-other authorized party saying it may be distributed under the terms of
122
-this Lesser General Public License (also called "this License").
123
-Each licensee is addressed as "you".
124
-
125
-  A "library" means a collection of software functions and/or data
126
-prepared so as to be conveniently linked with application programs
127
-(which use some of those functions and data) to form executables.
128
-
129
-  The "Library", below, refers to any such software library or work
130
-which has been distributed under these terms.  A "work based on the
131
-Library" means either the Library or any derivative work under
132
-copyright law: that is to say, a work containing the Library or a
133
-portion of it, either verbatim or with modifications and/or translated
134
-straightforwardly into another language.  (Hereinafter, translation is
135
-included without limitation in the term "modification".)
136
-
137
-  "Source code" for a work means the preferred form of the work for
138
-making modifications to it.  For a library, complete source code means
139
-all the source code for all modules it contains, plus any associated
140
-interface definition files, plus the scripts used to control compilation
141
-and installation of the library.
142
-
143
-  Activities other than copying, distribution and modification are not
144
-covered by this License; they are outside its scope.  The act of
145
-running a program using the Library is not restricted, and output from
146
-such a program is covered only if its contents constitute a work based
147
-on the Library (independent of the use of the Library in a tool for
148
-writing it).  Whether that is true depends on what the Library does
149
-and what the program that uses the Library does.
150
-  
151
-  1. You may copy and distribute verbatim copies of the Library's
152
-complete source code as you receive it, in any medium, provided that
153
-you conspicuously and appropriately publish on each copy an
154
-appropriate copyright notice and disclaimer of warranty; keep intact
155
-all the notices that refer to this License and to the absence of any
156
-warranty; and distribute a copy of this License along with the
157
-Library.
158
-
159
-  You may charge a fee for the physical act of transferring a copy,
160
-and you may at your option offer warranty protection in exchange for a
161
-fee.
162
-&#xc;
163
-  2. You may modify your copy or copies of the Library or any portion
164
-of it, thus forming a work based on the Library, and copy and
165
-distribute such modifications or work under the terms of Section 1
166
-above, provided that you also meet all of these conditions:
167
-
168
-    a) The modified work must itself be a software library.
169
-
170
-    b) You must cause the files modified to carry prominent notices
171
-    stating that you changed the files and the date of any change.
172
-
173
-    c) You must cause the whole of the work to be licensed at no
174
-    charge to all third parties under the terms of this License.
175
-
176
-    d) If a facility in the modified Library refers to a function or a
177
-    table of data to be supplied by an application program that uses
178
-    the facility, other than as an argument passed when the facility
179
-    is invoked, then you must make a good faith effort to ensure that,
180
-    in the event an application does not supply such function or
181
-    table, the facility still operates, and performs whatever part of
182
-    its purpose remains meaningful.
183
-
184
-    (For example, a function in a library to compute square roots has
185
-    a purpose that is entirely well-defined independent of the
186
-    application.  Therefore, Subsection 2d requires that any
187
-    application-supplied function or table used by this function must
188
-    be optional: if the application does not supply it, the square
189
-    root function must still compute square roots.)
190
-
191
-These requirements apply to the modified work as a whole.  If
192
-identifiable sections of that work are not derived from the Library,
193
-and can be reasonably considered independent and separate works in
194
-themselves, then this License, and its terms, do not apply to those
195
-sections when you distribute them as separate works.  But when you
196
-distribute the same sections as part of a whole which is a work based
197
-on the Library, the distribution of the whole must be on the terms of
198
-this License, whose permissions for other licensees extend to the
199
-entire whole, and thus to each and every part regardless of who wrote
200
-it.
201
psi-plus-main-20160309.tar.xz/iconsets/activities Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/iconsets/activities/default Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_buying_groceries.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_cleaning.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_cooking.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_doing_maintenance.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_doing_the_dishes.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_doing_the_laundry.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_gardening.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_running_an_errand.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/doing_chores_walking_the_dog.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/drinking.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/drinking_having_a_beer.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/drinking_having_coffee.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/drinking_having_tea.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/eating.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/eating_having_a_snack.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/eating_having_breakfast.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/eating_having_dinner.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/eating_having_lunch.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_cycling.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_dancing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_hiking.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_jogging.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_playing_sports.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_running.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_skiing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_swimming.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/exercising_working_out.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/grooming.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/grooming_at_the_spa.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/grooming_brushing_teeth.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/grooming_getting_a_haircut.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/grooming_shaving.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/grooming_taking_a_bath.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/grooming_taking_a_shower.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/having_appointment.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/icondef.xml Deleted
201
 
1
@@ -1,432 +0,0 @@
2
-<?xml version='1.0' encoding='UTF-8'?>
3
-<icondef>                                                         
4
-        <meta>                                                    
5
-                <name>Psi+ Activities - size 16</name>
6
-                <version>0.3</version>
7
-                <creation>2010-07-18</creation>
8
-                <home>http://psi-dev.googlecode.com/</home>
9
-                <author email='tuxden@ru.ru'>tux-den</author>
10
-                <author email='maksim.maj@gmail.com'>maj</author>
11
-                <description>Activities iconset for Psi+ IM</description>
12
-           </meta>
13
-
14
-   <!-- doing_chores                   -->
15
-
16
-        <icon>
17
-                <x xmlns='name'>activities/doing_chores</x>
18
-                <object mime='image/png'>doing_chores.png</object>
19
-        </icon>                                                 
20
-
21
-        <icon>
22
-                <x xmlns='name'>activities/doing_chores_buying_groceries</x>
23
-                <object mime='image/png'>doing_chores_buying_groceries.png</object>
24
-        </icon> 
25
-
26
-        <icon>
27
-                <x xmlns='name'>activities/doing_chores_cleaning</x>
28
-                <object mime='image/png'>doing_chores_cleaning.png</object>
29
-        </icon> 
30
-
31
-        <icon>
32
-                <x xmlns='name'>activities/doing_chores_cooking</x>
33
-                <object mime='image/png'>doing_chores_cooking.png</object>
34
-        </icon> 
35
-
36
-        <icon>
37
-                <x xmlns='name'>activities/doing_chores_doing_maintenance</x>
38
-                <object mime='image/png'>doing_chores_doing_maintenance.png</object>
39
-        </icon> 
40
-
41
-        <icon>
42
-                <x xmlns='name'>activities/doing_chores_doing_the_dishes</x>
43
-                <object mime='image/png'>doing_chores_doing_the_dishes.png</object>
44
-        </icon> 
45
-
46
-        <icon>
47
-                <x xmlns='name'>activities/doing_chores_doing_the_laundry</x>
48
-                <object mime='image/png'>doing_chores_doing_the_laundry.png</object>
49
-        </icon> 
50
-
51
-        <icon>
52
-                <x xmlns='name'>activities/doing_chores_gardening</x>
53
-                <object mime='image/png'>doing_chores_gardening.png</object>
54
-        </icon> 
55
-
56
-        <icon>
57
-                <x xmlns='name'>activities/doing_chores_running_an_errand</x>
58
-                <object mime='image/png'>doing_chores_running_an_errand.png</object>
59
-        </icon> 
60
-
61
-        <icon>
62
-                <x xmlns='name'>activities/doing_chores_walking_the_dog</x>
63
-                <object mime='image/png'>doing_chores_walking_the_dog.png</object>
64
-        </icon> 
65
-
66
-   <!-- drinking                       -->
67
-
68
-        <icon>
69
-                <x xmlns='name'>activities/drinking</x>
70
-                <object mime='image/png'>drinking.png</object>
71
-        </icon> 
72
-
73
-        <icon>
74
-                <x xmlns='name'>activities/drinking_having_a_beer</x>
75
-                <object mime='image/png'>drinking_having_a_beer.png</object>
76
-        </icon> 
77
-
78
-        <icon>
79
-                <x xmlns='name'>activities/drinking_having_coffee</x>
80
-                <object mime='image/png'>drinking_having_coffee.png</object>
81
-        </icon> 
82
-
83
-        <icon>
84
-                <x xmlns='name'>activities/drinking_having_tea</x>
85
-                <object mime='image/png'>drinking_having_tea.png</object>
86
-        </icon> 
87
-
88
-   <!-- eating                         -->
89
-
90
-        <icon>
91
-                <x xmlns='name'>activities/eating</x>
92
-                <object mime='image/png'>eating.png</object>
93
-        </icon> 
94
-
95
-        <icon>
96
-                <x xmlns='name'>activities/eating_having_a_snack</x>
97
-                <object mime='image/png'>eating_having_a_snack.png</object>
98
-        </icon> 
99
-
100
-        <icon>
101
-                <x xmlns='name'>activities/eating_having_breakfast</x>
102
-                <object mime='image/png'>eating_having_breakfast.png</object>
103
-        </icon> 
104
-
105
-        <icon>
106
-                <x xmlns='name'>activities/eating_having_dinner</x>
107
-                <object mime='image/png'>eating_having_dinner.png</object>
108
-        </icon> 
109
-
110
-        <icon>
111
-                <x xmlns='name'>activities/eating_having_lunch</x>
112
-                <object mime='image/png'>eating_having_lunch.png</object>
113
-        </icon> 
114
-
115
-   <!-- exercising                     -->
116
-
117
-        <icon>
118
-                <x xmlns='name'>activities/exercising</x>
119
-                <object mime='image/png'>exercising.png</object>
120
-        </icon> 
121
-
122
-        <icon>
123
-                <x xmlns='name'>activities/exercising_cycling</x>
124
-                <object mime='image/png'>exercising_cycling.png</object>
125
-        </icon> 
126
-
127
-        <icon>
128
-                <x xmlns='name'>activities/exercising_dancing</x>
129
-                <object mime='image/png'>exercising_dancing.png</object>
130
-        </icon> 
131
-
132
-        <icon>
133
-                <x xmlns='name'>activities/exercising_hiking</x>
134
-                <object mime='image/png'>exercising_hiking.png</object>
135
-        </icon> 
136
-
137
-        <icon>
138
-                <x xmlns='name'>activities/exercising_jogging</x>
139
-                <object mime='image/png'>exercising_jogging.png</object>
140
-        </icon> 
141
-
142
-        <icon>
143
-                <x xmlns='name'>activities/exercising_playing_sports</x>
144
-                <object mime='image/png'>exercising_playing_sports.png</object>
145
-        </icon> 
146
-
147
-        <icon>
148
-                <x xmlns='name'>activities/exercising_running</x>
149
-                <object mime='image/png'>exercising_running.png</object>
150
-        </icon> 
151
-
152
-        <icon>
153
-                <x xmlns='name'>activities/exercising_skiing</x>
154
-                <object mime='image/png'>exercising_skiing.png</object>
155
-        </icon> 
156
-
157
-        <icon>
158
-                <x xmlns='name'>activities/exercising_swimming</x>
159
-                <object mime='image/png'>exercising_swimming.png</object>
160
-        </icon> 
161
-
162
-        <icon>
163
-                <x xmlns='name'>activities/exercising_working_out</x>
164
-                <object mime='image/png'>exercising_working_out.png</object>
165
-        </icon> 
166
-
167
-   <!-- grooming                       -->
168
-
169
-        <icon>
170
-                <x xmlns='name'>activities/grooming</x>
171
-                <object mime='image/png'>grooming.png</object>
172
-        </icon> 
173
-
174
-        <icon>
175
-                <x xmlns='name'>activities/grooming_at_the_spa</x>
176
-                <object mime='image/png'>grooming_at_the_spa.png</object>
177
-        </icon> 
178
-
179
-        <icon>
180
-                <x xmlns='name'>activities/grooming_brushing_teeth</x>
181
-                <object mime='image/png'>grooming_brushing_teeth.png</object>
182
-        </icon> 
183
-
184
-        <icon>
185
-                <x xmlns='name'>activities/grooming_getting_a_haircut</x>
186
-                <object mime='image/png'>grooming_getting_a_haircut.png</object>
187
-        </icon> 
188
-
189
-        <icon>
190
-                <x xmlns='name'>activities/grooming_shaving</x>
191
-                <object mime='image/png'>grooming_shaving.png</object>
192
-        </icon> 
193
-
194
-        <icon>
195
-                <x xmlns='name'>activities/grooming_taking_a_bath</x>
196
-                <object mime='image/png'>grooming_taking_a_bath.png</object>
197
-        </icon> 
198
-
199
-        <icon>
200
-                <x xmlns='name'>activities/grooming_taking_a_shower</x>
201
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_day_off.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_hanging_out.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_hiding.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_on_vacation.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_praying.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_scheduled_holiday.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_sleeping.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/inactive_thinking.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_fishing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_gaming.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_going_out.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_partying.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_reading.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_rehearsing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_shopping.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_smoking.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_socializing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_sunbathing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_watching_a_movie.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/relaxing_watching_tv.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/talking.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/talking_in_real_life.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/talking_on_the_phone.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/talking_on_video_phone.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_commuting.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_cycling.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_driving.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_in_a_car.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_on_a_bus.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_on_a_plane.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_on_a_train.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_on_a_trip.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/traveling_walking.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/unknown.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/working_coding.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/working_in_a_meeting.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/working_studying.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/working_working.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/activities/default/working_writing.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/affiliations Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/iconsets/affiliations/default Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/iconsets/affiliations/default/admin.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/affiliations/default/icondef.xml Deleted
40
 
1
@@ -1,37 +0,0 @@
2
-<?xml version='1.0' encoding='UTF-8'?>
3
-<icondef>
4
-   <meta>
5
-       <name>Medals</name>
6
-       <version>0.1</version>
7
-       <description>Adium Affiliations</description>
8
-       <creation>2010-06-10</creation>
9
-       <home>http://code.google.com/p/psi-dev</home>
10
-       <author jid='tuxden@psi-plus.com'>tux-den</author>
11
-   </meta>
12
-
13
-   <icon>
14
-       <x xmlns='name'>affiliation/owner</x>
15
-       <object mime='image/png'>owner.png</object>
16
-   </icon>
17
-
18
-   <icon>
19
-       <x xmlns='name'>affiliation/admin</x>
20
-       <object mime='image/png'>admin.png</object>
21
-   </icon>
22
-
23
-   <icon>
24
-       <x xmlns='name'>affiliation/member</x>
25
-       <object mime='image/png'>member.png</object>
26
-   </icon>
27
-
28
-   <icon>
29
-       <x xmlns='name'>affiliation/noaffiliation</x>
30
-       <object mime='image/png'>noaffiliation.png</object>
31
-   </icon>
32
-
33
-   <icon>
34
-       <x xmlns='name'>affiliation/outcast</x>
35
-       <object mime='image/png'>outcast.png</object>
36
-   </icon>
37
-
38
-</icondef>
39
\ No newline at end of file
40
psi-plus-main-20160309.tar.xz/iconsets/affiliations/default/member.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/affiliations/default/noaffiliation.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/affiliations/default/outcast.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/affiliations/default/owner.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/iconsets/moods/default Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Afraid.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Amazed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Amorous.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Angry.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Annoyed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Anxious.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Aroused.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Ashamed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Bored.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Brave.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Calm.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Cautious.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Cold.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Confident.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Confused.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Contemplative.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Contented.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Cranky.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Crazy.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Creative.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Curious.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Dejected.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Depressed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Disappointed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Disgusted.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Dismayed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Distracted.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Embarrassed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Envious.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Excited.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Flirtatious.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Frustrated.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Grumpy.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Guilty.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Happy.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Hopeful.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Hot.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Humbled.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Humiliated.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Hungry.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Hurt.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Impressed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/In_awe.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/In_love.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Indignant.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Interested.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Intoxicated.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Invincible.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Jealous.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Lonely.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Lucky.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Mean.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Moody.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Nervous.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Neutral.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Offended.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Outraged.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Playful.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Proud.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Readme.txt Deleted
8
 
1
@@ -1,5 +0,0 @@
2
-Name           = silk
3
-Author         = http://www.famfamfam.com/lab/icons/silk/
4
-Made for Psi       = maksim.maj@gmail.com, ky6uk@jabber.ufanet.ru
5
-Date           = Thu, 25 Dec 2008 01:42:32 +0500
6
-Version            = 1.1
7
\ No newline at end of file
8
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Relaxed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Relieved.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Remorseful.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Restless.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Sad.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Sarcastic.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Serious.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Shocked.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Shy.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Sick.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Sleepy.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Spontaneous.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Stressed.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Strong.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Surprised.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Thankful.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Thirsty.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Tired.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Undefined.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Weak.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/Worried.png Deleted
psi-plus-main-20160309.tar.xz/iconsets/moods/default/icondef.xml Deleted
201
 
1
@@ -1,415 +0,0 @@
2
-<?xml version='1.0' encoding='UTF-8'?>
3
-<icondef>                                                         
4
-        <meta>                                                    
5
-                <name>silk</name>
6
-                <version>1.2</version>
7
-                <description>
8
-Name: silk
9
-Author: http://www.famfamfam.com/lab/icons/silk/
10
-Made for Psi: maksim.maj@gmail.com, ky6uk@jabber.ufanet.ru
11
-Date: 2010-11-16
12
-                </description>
13
-               <creation>2008-12-25</creation>
14
-           </meta>
15
-
16
-        <icon>
17
-                <x xmlns='name'>mood/afraid</x>
18
-                <object mime='image/png'>Afraid.png</object>
19
-        </icon>                                                 
20
-
21
-        <icon>
22
-                <x xmlns='name'>mood/amazed</x>
23
-                <object mime='image/png'>Amazed.png</object>
24
-        </icon>
25
-
26
-        <icon>
27
-                <x xmlns='name'>mood/angry</x>
28
-                <object mime='image/png'>Angry.png</object>
29
-        </icon>
30
-
31
-       <icon>
32
-           <x xmlns='name'>mood/amorous</x>
33
-           <object mime='image/png'>Amorous.png</object>
34
-        </icon>
35
-
36
-        <icon>
37
-                <x xmlns='name'>mood/annoyed</x>
38
-                <object mime='image/png'>Annoyed.png</object>
39
-        </icon>
40
-
41
-        <icon>
42
-                <x xmlns='name'>mood/anxious</x>
43
-                <object mime='image/png'>Anxious.png</object>
44
-        </icon>
45
-
46
-        <icon>
47
-                <x xmlns='name'>mood/aroused</x>
48
-                <object mime='image/png'>Aroused.png</object>
49
-        </icon>
50
-
51
-        <icon>
52
-                <x xmlns='name'>mood/ashamed</x>
53
-                <object mime='image/png'>Ashamed.png</object>
54
-        </icon>
55
-
56
-        <icon>
57
-                <x xmlns='name'>mood/bored</x>
58
-                <object mime='image/png'>Bored.png</object>
59
-        </icon>
60
-
61
-        <icon>
62
-                <x xmlns='name'>mood/brave</x>
63
-                <object mime='image/png'>Brave.png</object>
64
-        </icon>
65
-
66
-        <icon>
67
-                <x xmlns='name'>mood/calm</x>
68
-                <object mime='image/png'>Calm.png</object>
69
-        </icon>
70
-
71
-       <icon>
72
-           <x xmlns='name'>mood/cautious</x>
73
-           <object mime='image/png'>Cautious.png</object>
74
-        </icon>
75
-
76
-        <icon>
77
-                <x xmlns='name'>mood/cold</x>
78
-                <object mime='image/png'>Cold.png</object>
79
-        </icon>
80
-
81
-       <icon>
82
-           <x xmlns='name'>mood/confident</x>
83
-           <object mime='image/png'>Confident.png</object>
84
-       </icon>
85
-
86
-
87
-        <icon>
88
-                <x xmlns='name'>mood/confused</x>
89
-                <object mime='image/png'>Confused.png</object>
90
-        </icon>
91
-
92
-       <icon>
93
-           <x xmlns='name'>mood/contemplative</x>
94
-           <object mime='image/png'>Contemplative.png</object>
95
-        </icon>
96
-
97
-        <icon>
98
-                <x xmlns='name'>mood/contented</x>
99
-                <object mime='image/png'>Contented.png</object>
100
-        </icon>
101
-
102
-        <icon>
103
-                <x xmlns='name'>mood/cranky</x>
104
-                <object mime='image/png'>Cranky.png</object>
105
-        </icon>
106
-       
107
-       <icon>
108
-           <x xmlns='name'>mood/crazy</x>
109
-           <object mime='image/png'>Crazy.png</object>
110
-        </icon>
111
-       
112
-       <icon>
113
-           <x xmlns='name'>mood/creative</x>
114
-           <object mime='image/png'>Creative.png</object>
115
-        </icon>
116
-       
117
-        <icon>
118
-                <x xmlns='name'>mood/curious</x>
119
-                <object mime='image/png'>Curious.png</object>
120
-        </icon>
121
-
122
-       <icon>
123
-           <x xmlns='name'>mood/dejected</x>
124
-           <object mime='image/png'>Dejected.png</object>
125
-        </icon>
126
-       
127
-        <icon>
128
-                <x xmlns='name'>mood/depressed</x>
129
-                <object mime='image/png'>Depressed.png</object>
130
-        </icon>
131
-
132
-        <icon>
133
-                <x xmlns='name'>mood/disappointed</x>
134
-                <object mime='image/png'>Disappointed.png</object>
135
-        </icon>
136
-
137
-        <icon>
138
-                <x xmlns='name'>mood/disgusted</x>
139
-                <object mime='image/png'>Disgusted.png</object>
140
-        </icon>
141
-
142
-       <icon>
143
-           <x xmlns='name'>mood/dismayed</x>
144
-           <object mime='image/png'>Dismayed.png</object>
145
-       </icon>
146
-
147
-        <icon>
148
-                <x xmlns='name'>mood/distracted</x>
149
-                <object mime='image/png'>Distracted.png</object>
150
-        </icon>
151
-
152
-        <icon>
153
-                <x xmlns='name'>mood/embarrassed</x>
154
-                <object mime='image/png'>Embarrassed.png</object>
155
-        </icon>
156
-
157
-       <icon>
158
-           <x xmlns='name'>mood/envious</x>
159
-           <object mime='image/png'>Envious.png</object>
160
-        </icon>
161
-       
162
-        <icon>
163
-                <x xmlns='name'>mood/excited</x>
164
-                <object mime='image/png'>Excited.png</object>
165
-        </icon>
166
-
167
-        <icon>
168
-                <x xmlns='name'>mood/flirtatious</x>
169
-                <object mime='image/png'>Flirtatious.png</object>
170
-        </icon>
171
-
172
-        <icon>
173
-                <x xmlns='name'>mood/frustrated</x>
174
-                <object mime='image/png'>Frustrated.png</object>
175
-        </icon>
176
-
177
-        <icon>
178
-                <x xmlns='name'>mood/grumpy</x>
179
-                <object mime='image/png'>Grumpy.png</object>
180
-        </icon>
181
-
182
-        <icon>
183
-                <x xmlns='name'>mood/guilty</x>
184
-                <object mime='image/png'>Guilty.png</object>
185
-        </icon>
186
-
187
-        <icon>
188
-                <x xmlns='name'>mood/happy</x>
189
-                <object mime='image/png'>Happy.png</object>
190
-        </icon>
191
-       
192
-       <icon>
193
-           <x xmlns='name'>mood/hopeful</x>
194
-           <object mime='image/png'>Hopeful.png</object>
195
-        </icon>
196
-
197
-        <icon>
198
-                <x xmlns='name'>mood/hot</x>
199
-                <object mime='image/png'>Hot.png</object>
200
-        </icon>
201
psi-plus-main-20160309.tar.xz/patches Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/patches/0010-psi-iconsets.diff Deleted
145
 
1
@@ -1,143 +0,0 @@
2
---- psi.orig/iconsets.qrc
3
-+++ psi/iconsets.qrc
4
-@@ -71,7 +71,7 @@
5
-         <file>iconsets/system/default/pgp.png</file>
6
-         <file>iconsets/system/default/play.png</file>
7
-         <file>iconsets/system/default/play_sounds.png</file>
8
--        <file>iconsets/system/default/psilogo.png</file>
9
-+        <file>iconsets/system/default/psiplus/psilogo.png</file>
10
-         <file>iconsets/system/default/psimain.png</file>
11
-         <file>iconsets/system/default/quit.png</file>
12
-         <file>iconsets/system/default/register.png</file>
13
-@@ -125,6 +125,23 @@
14
-         <file>iconsets/system/default/autojid.png</file>
15
-   <file>iconsets/system/default/ignore_global_actions.png</file>
16
-         <file>iconsets/system/default/action_direct_presence.png</file>
17
-+        <file>iconsets/system/default/psiplus/psiplus_icon.png</file>
18
-+        <file>iconsets/system/default/psiplus/action_paste_and_send.png</file>
19
-+        <file>iconsets/system/default/psiplus/action_vcard_restore.png</file>
20
-+        <file>iconsets/system/default/psiplus/action_vcard_save_as.png</file>
21
-+        <file>iconsets/system/default/psiplus/cm_check.png</file>
22
-+        <file>iconsets/system/default/psiplus/cm_invertcheck.png</file>
23
-+        <file>iconsets/system/default/psiplus/cm_uncheck.png</file>
24
-+        <file>iconsets/system/default/psiplus/psiplus_logo.png</file>
25
-+        <file>iconsets/system/default/psiplus/action_contacts_manager.png</file>
26
-+        <file>iconsets/system/default/psiplus/doublenextarrow.png</file>
27
-+        <file>iconsets/system/default/psiplus/doublebackarrow.png</file>
28
-+        <file>iconsets/system/default/psiplus/crop.png</file>
29
-+        <file>iconsets/system/default/psiplus/draw.png</file>
30
-+        <file>iconsets/system/default/psiplus/frame.png</file>
31
-+        <file>iconsets/system/default/psiplus/palette.png</file>
32
-+        <file>iconsets/system/default/psiplus/undo.png</file>
33
-+        <file>iconsets/system/default/psiplus/print.png</file>
34
-         <file>iconsets/system/default/whiteboarding/whiteboard.png</file>
35
-         <file>iconsets/system/default/whiteboarding/save.png</file>
36
-         <file>iconsets/system/default/whiteboarding/select.png</file>
37
---- psi.orig/iconsets/system/default/icondef.xml
38
-+++ psi/iconsets/system/default/icondef.xml
39
-@@ -342,7 +342,7 @@
40
- 
41
-   <icon>
42
-       <x xmlns='name'>psi/psiLogo</x>
43
--      <object mime='image/png'>psilogo.png</object>
44
-+      <object mime='image/png'>psiplus/psilogo.png</object>
45
-   </icon>
46
- 
47
-   <icon>
48
-@@ -678,4 +678,96 @@
49
-       <object mime='image/png'>whiteboarding/ungroup.png</object>
50
-   </icon>
51
-   <!-- End whiteboarding -->
52
-+
53
-+    <!-- conferenceloggerplugin icon -->
54
-+    <icon>
55
-+      <x xmlns='name'>loggerplugin/openlog</x>
56
-+      <object mime='image/png'>history.png</object>
57
-+  </icon>
58
-+    <!-- End conferenceloggerplugin icon -->
59
-+
60
-+  <!-- Psi Plus icons -->
61
-+  <icon>
62
-+      <x xmlns='name'>psi/action_paste_and_send</x>
63
-+      <object mime='image/png'>psiplus/action_paste_and_send.png</object>
64
-+  </icon>
65
-+
66
-+  <icon>
67
-+      <x xmlns='name'>psi/action_contacts_manager</x>
68
-+      <object mime='image/png'>psiplus/action_contacts_manager.png</object>
69
-+  </icon>
70
-+
71
-+  <icon>
72
-+      <x xmlns='name'>psi/action_vcard_restore</x>
73
-+      <object mime='image/png'>psiplus/action_vcard_restore.png</object>
74
-+  </icon>
75
-+
76
-+  <icon>
77
-+      <x xmlns='name'>psi/action_vcard_save_as</x>
78
-+      <object mime='image/png'>psiplus/action_vcard_save_as.png</object>
79
-+  </icon>
80
-+
81
-+  <icon>
82
-+      <x xmlns='name'>psi/cm_check</x>
83
-+      <object mime='image/png'>psiplus/cm_check.png</object>
84
-+  </icon>
85
-+
86
-+  <icon>
87
-+      <x xmlns='name'>psi/cm_invertcheck</x>
88
-+      <object mime='image/png'>psiplus/cm_invertcheck.png</object>
89
-+  </icon>
90
-+
91
-+  <icon>
92
-+      <x xmlns='name'>psi/cm_uncheck</x>
93
-+      <object mime='image/png'>psiplus/cm_uncheck.png</object>
94
-+  </icon>
95
-+
96
-+  <icon>
97
-+      <x xmlns='name'>psi/psiplus_logo</x>
98
-+      <object mime='image/png'>psiplus/psiplus_logo.png</object>
99
-+  </icon>
100
-+
101
-+  <icon>
102
-+      <x xmlns='name'>psi/doubleNextArrow</x>
103
-+      <object mime='image/png'>psiplus/doublenextarrow.png</object>
104
-+  </icon>
105
-+
106
-+  <icon>
107
-+      <x xmlns='name'>psi/doubleBackArrow</x>
108
-+      <object mime='image/png'>psiplus/doublebackarrow.png</object>
109
-+  </icon>
110
-+  <!-- End psi Plus icons -->
111
-+
112
-+  <!-- Icons for screenshot-plugin -->
113
-+  <icon>
114
-+      <x xmlns='name'>psi/crop</x>
115
-+      <object mime='image/png'>psiplus/crop.png</object>
116
-+  </icon>
117
-+
118
-+  <icon>
119
-+      <x xmlns='name'>psi/draw</x>
120
-+      <object mime='image/png'>psiplus/draw.png</object>
121
-+  </icon>
122
-+
123
-+  <icon>
124
-+      <x xmlns='name'>psi/frame</x>
125
-+      <object mime='image/png'>psiplus/frame.png</object>
126
-+  </icon>
127
-+
128
-+  <icon>
129
-+      <x xmlns='name'>psi/palette</x>
130
-+      <object mime='image/png'>psiplus/palette.png</object>
131
-+  </icon>
132
-+
133
-+  <icon>
134
-+      <x xmlns='name'>psi/undo</x>
135
-+      <object mime='image/png'>psiplus/undo.png</object>
136
-+  </icon>
137
-+
138
-+  <icon>
139
-+      <x xmlns='name'>psi/print</x>
140
-+      <object mime='image/png'>psiplus/print.png</object>
141
-+  </icon>
142
-+  <!-- End icons for screenshot-plugin -->
143
-+
144
- </icondef>
145
psi-plus-main-20160309.tar.xz/patches/0020-psi-icon-actions-shortcuts.diff Deleted
151
 
1
@@ -1,149 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -442,6 +442,81 @@
5
-           </tabs>
6
-       </ui>
7
-       <shortcuts comment="Shortcuts">
8
-+          <alist comment="Action List" >
9
-+              <menu_disco type="QKeySequence" comment="Service Discovery"></menu_disco>
10
-+              <menu_add_contact type="QKeySequence" comment="Add Contact"></menu_add_contact>
11
-+              <menu_new_message type="QKeySequence" comment="New Message"></menu_new_message>
12
-+              <menu_join_groupchat type="QKeySequence" comment="Join Group Chat"></menu_join_groupchat>
13
-+              <menu_account_setup type="QKeySequence" comment="Account Setup"></menu_account_setup>
14
-+              <menu_options type="QKeySequence" comment="Options"></menu_options>
15
-+              <menu_file_transfer type="QKeySequence" comment="File Transfer"></menu_file_transfer>
16
-+              <menu_toolbars type="QKeySequence" comment="Toolbars"></menu_toolbars>
17
-+              <menu_xml_console type="QKeySequence" comment="XML Console"></menu_xml_console>
18
-+              <menu_change_profile type="QKeySequence" comment="Change Profile"></menu_change_profile>
19
-+              <menu_play_sounds type="QKeySequence" comment="Play Sounds"></menu_play_sounds>
20
-+              <menu_quit type="QKeySequence" comment="Quit"></menu_quit>
21
-+              <button_options type="QKeySequence" comment="Options"></button_options>
22
-+              <button_status type="QKeySequence" comment="Status"></button_status>
23
-+              <enable_groups type="QKeySequence" comment="Enable Groups"></enable_groups>
24
-+              <event_notifier type="QKeySequence" comment="Event Notifier"></event_notifier>
25
-+              <view_groups type="QKeySequence" comment="View Groups"></view_groups>
26
-+              <show_offline type="QKeySequence" comment="Show Offline Contacts"></show_offline>
27
-+              <show_away type="QKeySequence" comment="Show Away Contacts"></show_away>
28
-+              <show_hidden type="QKeySequence" comment="Show Hidden Contacts"></show_hidden>
29
-+              <show_agents type="QKeySequence" comment="Show Agents"></show_agents>
30
-+              <show_self type="QKeySequence" comment="Show Self"></show_self>
31
-+              <show_statusmsg type="QKeySequence" comment="Show Status Message"></show_statusmsg>
32
-+              <publish_tune type="QKeySequence" comment="Publish Tune"></publish_tune>
33
-+              <active_contacts type="QKeySequence" comment="Active contacts"/>
34
-+              <status_all type="QKeySequence" comment="Status All"></status_all>
35
-+              <status_group type="QKeySequence" comment="Status Group"></status_group>
36
-+              <status_chat type="QKeySequence" comment="Status Chat"></status_chat>
37
-+              <status_online type="QKeySequence" comment="Status Online"></status_online>
38
-+              <status_away type="QKeySequence" comment="Status Away"></status_away>
39
-+              <status_xa type="QKeySequence" comment="Status XA"></status_xa>
40
-+              <status_dnd type="QKeySequence" comment="Status DND"></status_dnd>
41
-+              <status_invisible type="QKeySequence" comment="Status Invisible"></status_invisible>
42
-+              <status_offline type="QKeySequence" comment="Status Offline"></status_offline>
43
-+              <choose_status type="QKeySequence" comment="Choose status"></choose_status>
44
-+              <reconnect_all type="QKeySequence" comment="Reconnect all accounts"></reconnect_all>
45
-+              <set_mood type="QKeySequence" comment="Set Mood"/>
46
-+              <set_activity type="QKeySequence" comment="Set Activity"/>
47
-+              <set_geoloc type="QKeySequence" comment="Set Geolocation"/>
48
-+              <help_readme type="QKeySequence" comment="README"></help_readme>
49
-+              <help_tip type="QKeySequence" comment="Tips"></help_tip>
50
-+              <help_online_forum type="QKeySequence" comment="Psi Forum (Online)"></help_online_forum>
51
-+              <help_online_help type="QKeySequence" comment="Open Help"></help_online_help>
52
-+              <help_online_wiki type="QKeySequence" comment="Open Wiki"></help_online_wiki>
53
-+              <help_online_home type="QKeySequence" comment="Open Home Page"></help_online_home>
54
-+              <help_psi_muc type="QKeySequence" comment="Help Psi MUC"></help_psi_muc>
55
-+              <help_report_bug type="QKeySequence" comment="Report Bug"></help_report_bug>
56
-+              <help_about type="QKeySequence" comment="About Psi"></help_about>
57
-+              <help_about_psimedia type="QKeySequence" comment="About PsiMedia" />
58
-+              <help_about_qt type="QKeySequence" comment="About Qt"></help_about_qt>
59
-+              <help_diag_qcaplugin type="QKeySequence" comment="QCA plugin diag"></help_diag_qcaplugin>
60
-+              <help_diag_qcakeystore type="QKeySequence" comment="QCA key store diag"></help_diag_qcakeystore>
61
-+              <chat_active_contacts type="QKeySequence"></chat_active_contacts>
62
-+              <chat_add_contact type="QKeySequence"></chat_add_contact>
63
-+              <chat_clear type="QKeySequence"></chat_clear>
64
-+              <chat_compact type="QKeySequence"></chat_compact>
65
-+              <chat_file type="QKeySequence"></chat_file>
66
-+              <chat_find type="QKeySequence"></chat_find>
67
-+              <chat_history type="QKeySequence"></chat_history>
68
-+              <chat_html_text type="QKeySequence"></chat_html_text>
69
-+              <chat_icon type="QKeySequence"></chat_icon>
70
-+              <chat_info type="QKeySequence"></chat_info>
71
-+              <chat_pgp type="QKeySequence"></chat_pgp>
72
-+              <chat_ps type="QKeySequence"></chat_ps>
73
-+              <chat_templates type="QKeySequence"></chat_templates>
74
-+              <chat_voice type="QKeySequence"></chat_voice>
75
-+              <gchat_clear type="QKeySequence"></gchat_clear>
76
-+              <gchat_configure type="QKeySequence"></gchat_configure>
77
-+              <gchat_find type="QKeySequence"></gchat_find>
78
-+              <gchat_html_text type="QKeySequence"></gchat_html_text>
79
-+              <gchat_icon type="QKeySequence"></gchat_icon>
80
-+              <gchat_ps type="QKeySequence"></gchat_ps>
81
-+              <gchat_templates type="QKeySequence"></gchat_templates>
82
-+          </alist>
83
-           <chat comment="Shortcuts in the chat dialog">
84
-               <next-tab type="QVariantList" comment="Switch to the next tab">
85
-                   <item type="QKeySequence">Ctrl+PgDown</item>
86
---- psi.orig/src/psiactionlist.cpp
87
-+++ psi/src/psiactionlist.cpp
88
-@@ -19,15 +19,20 @@
89
-  */
90
- 
91
- #include "psiactionlist.h"
92
-+#include "shortcutmanager.h"
93
- 
94
- #include <QObject>
95
- #include <QPointer>
96
-+#include <map>
97
-+#include <utility>
98
- 
99
- #include "iconset.h"
100
- #include "psioptions.h"
101
- 
102
- #include "mainwin_p.h"
103
- 
104
-+using namespace std;
105
-+
106
- //----------------------------------------------------------------------------
107
- // PsiActionList::Private
108
- //----------------------------------------------------------------------------
109
-@@ -43,6 +48,7 @@ private:
110
-   PsiActionList *list;
111
-   PsiCon *psi;
112
-   QPointer<ActionList> statusActionList;
113
-+  map<QString,IconAction*> actionmap;
114
- 
115
-   void createCommon();
116
-   void createMainWin();
117
-@@ -92,13 +98,21 @@ PsiActionList::Private::~Private()
118
- 
119
- ActionList* PsiActionList::Private::createActionList( QString name, int id, ActionNames *actionlist )
120
- {
121
-+  static const QStringList skipList = QStringList() << "separator" << "spacer";
122
-+
123
-   ActionList *actions = new ActionList( name, id, false );
124
- 
125
-   QString aName;
126
-   for ( int i = 0; !(aName = QString(actionlist[i].name)).isEmpty(); i++ ) {
127
-       IconAction *action = actionlist[i].action;
128
-       if (action)
129
-+      {
130
-           actions->addAction( aName, action );
131
-+          if(!skipList.contains(aName)) {
132
-+              action->setShortcuts(ShortcutManager::instance()->shortcuts("alist." + aName));
133
-+              actionmap[aName] = action;
134
-+          }
135
-+      }
136
-   }
137
- 
138
-   list->addList( actions );
139
-@@ -503,6 +517,11 @@ void PsiActionList::Private::optionsChan
140
-   statusActionList->action("status_chat")->setVisible(PsiOptions::instance()->getOption("options.ui.menu.status.chat").toBool());
141
-   statusActionList->action("status_xa")->setVisible(PsiOptions::instance()->getOption("options.ui.menu.status.xa").toBool());
142
-   statusActionList->action("status_invisible")->setVisible(PsiOptions::instance()->getOption("options.ui.menu.status.invisible").toBool());
143
-+
144
-+  for(map<QString,IconAction*>::iterator i=actionmap.begin(); i!=actionmap.end(); i++)
145
-+  {
146
-+       i->second->setShortcuts(ShortcutManager::instance()->shortcuts("alist." + i->first));
147
-+  }
148
- }
149
- 
150
- //----------------------------------------------------------------------------
151
psi-plus-main-20160309.tar.xz/patches/0030-psi-default-application-settings.diff Deleted
201
 
1
@@ -1,224 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -33,7 +33,7 @@
5
-       <extended-presence comment="Extended presence options">
6
-           <notify comment="Get notified of extended presence changes" type="bool">true</notify>
7
-           <tune comment="Tune options">
8
--              <publish comment="Publish user tune information" type="bool">false</publish>
9
-+              <publish comment="Publish user tune information" type="bool">true</publish>
10
-               <url-filter comment="Ingore tune by media file extension" type="QString">avi asf asx mpg mpg2 mpeg mpe mst mp4 flv 3gp mkv wmv swf rv rm rst dat vob ifo ogv</url-filter>
11
-               <title-filter comment="Ignore tune by name via RegExp" type="QString"></title-filter>
12
-               <controller-filter comment="List of disabled controllers" type="QString">WinAmp</controller-filter>
13
-@@ -47,7 +47,7 @@
14
-           </bookmarks>
15
-           <show-joins comment="Display notices of users joining and leaving conferences" type="bool">true</show-joins>
16
-           <show-role-affiliation comment="Include role and affiliation changes in join messages, and display notices of changes" type="bool">true</show-role-affiliation>
17
--          <show-status-changes comment="Show status changes in groupchat window" type="bool">false</show-status-changes>
18
-+          <show-status-changes comment="Show status changes in groupchat window" type="bool">true</show-status-changes>
19
-           <accept-defaults comment="Automatically accept the default room configuration when a new room is created." type="bool">true</accept-defaults>
20
-           <auto-configure comment="Automatically open the configuration dialog when a new room is created. This option only has effect if accept-defaults is false." type="bool">true</auto-configure>
21
-           <context comment="Options regarding the context being sent when joining a room">
22
-@@ -92,14 +92,14 @@
23
-               <auto-grab-urls-from-clipboard type="bool">false</auto-grab-urls-from-clipboard>
24
-               <auto-popup type="bool">false</auto-popup>
25
-               <auto-popup-headlines type="bool">false</auto-popup-headlines>
26
--              <show-character-count type="bool">false</show-character-count>
27
-+              <show-character-count type="bool">true</show-character-count>
28
-               <show-subjects type="bool">true</show-subjects>
29
-               <use-jid-auto-completion type="bool">true</use-jid-auto-completion>
30
-               <size type="QString"></size> <!-- will be invalid when converted to QSize so we can detect first load -->
31
-           </message>
32
-           <chat comment="Chat dialog options">
33
-               <theme comment="The theme used for chat messages rendering" type="QString">psi/classic</theme>
34
--              <central-toolbar comment="Have a central toolbar" type="bool">false</central-toolbar>
35
-+              <central-toolbar comment="Have a central toolbar" type="bool">true</central-toolbar>
36
-               <size comment="Remembered window size" type="QSize">
37
-               </size><!-- will be invalid when converted to QSize so we can detect first load -->
38
-               <opacity comment="Opacity percentage of chat dialogs" type="int">100</opacity>
39
-@@ -110,11 +110,11 @@
40
-               </avatars>
41
-               <alert-for-already-open-chats type="bool">true</alert-for-already-open-chats>
42
-               <auto-popup type="bool">false</auto-popup>
43
--              <delete-contents-after type="QString">hour</delete-contents-after>
44
-+              <delete-contents-after type="QString">never</delete-contents-after>
45
-               <raise-chat-windows-on-new-messages type="bool">false</raise-chat-windows-on-new-messages>
46
-               <switch-tab-on-new-messages type="bool">false</switch-tab-on-new-messages>
47
-               <use-chat-says-style type="bool">false</use-chat-says-style>
48
--              <use-expanding-line-edit type="bool">true</use-expanding-line-edit>
49
-+              <use-expanding-line-edit type="bool">false</use-expanding-line-edit>
50
-               <use-small-chats type="bool">false</use-small-chats>
51
-               <use-message-icons type="bool">true</use-message-icons>
52
-               <scaled-message-icons type="bool">false</scaled-message-icons>
53
-@@ -195,7 +195,7 @@
54
-               <use-single-click type="bool">false</use-single-click>
55
-               <use-status-change-animation type="bool">true</use-status-change-animation>
56
-               <aio-left-roster type="bool">false</aio-left-roster>
57
--              <use-transport-icons type="bool">false</use-transport-icons>
58
-+              <use-transport-icons type="bool">true</use-transport-icons>
59
-               <saved-window-geometry type="QRect" >
60
-                   <x>64</x>
61
-                   <y>64</y>
62
-@@ -236,7 +236,7 @@
63
-                   <invisible comment="Enable invisibility" type="bool">false</invisible>
64
-               </status>
65
-               <view comment="Options for the view menu">
66
--                  <show-away comment="Show the 'show away/xa' toggle" type="bool">false</show-away>
67
-+                  <show-away comment="Show the 'show away/xa' toggle" type="bool">true</show-away>
68
-               </view>
69
-           </menu>
70
-           <muc comment="Multi-User Chat options">
71
-@@ -399,8 +399,8 @@
72
-                   </status>
73
-               </passive-popups>
74
-               <popup-dialogs>
75
--                  <suppress-when-not-on-roster type="bool">false</suppress-when-not-on-roster>
76
--                  <suppress-while-away type="bool">false</suppress-while-away>
77
-+                  <suppress-when-not-on-roster type="bool">true</suppress-when-not-on-roster>
78
-+                  <suppress-while-away type="bool">true</suppress-while-away>
79
-               </popup-dialogs>
80
-               <sounds>
81
-                   <chat-message type="QString">sound/chat2.wav</chat-message>
82
-@@ -419,10 +419,10 @@
83
-                   <system-message type="QString">sound/chat2.wav</system-message>
84
-                   <unix-sound-player type="QString"/>
85
-               </sounds>
86
--              <successful-subscription type="bool">false</successful-subscription>
87
-+              <successful-subscription type="bool">true</successful-subscription>
88
-           </notifications>
89
-           <service-discovery>
90
--              <automatically-get-info type="bool">true</automatically-get-info>
91
-+              <automatically-get-info type="bool">false</automatically-get-info>
92
-               <automatically-get-items type="bool">false</automatically-get-items>
93
-               <recent-jids type="QStringList" />
94
-           </service-discovery>
95
-@@ -431,7 +431,7 @@
96
-               <can-close-inactive-tab type="bool">true</can-close-inactive-tab>
97
-               <show-tab-close-buttons type="bool">true</show-tab-close-buttons>
98
-               <put-tabs-at-bottom type="bool">false</put-tabs-at-bottom>
99
--              <use-tabs type="bool">false</use-tabs>
100
-+              <use-tabs type="bool">true</use-tabs>
101
-               <mouse-middle-button type="QString">close</mouse-middle-button> <!-- hide|close|detach -->
102
-               <mouse-doubleclick-action type="QString">detach</mouse-doubleclick-action>
103
-               <size type="QString"></size> <!-- will be invalid when converted to QSize so we can detect first load -->
104
-@@ -534,7 +534,7 @@
105
-                   <item type="QKeySequence">Enter</item>
106
-               </send>
107
-               <clear type="QKeySequence" comment="Clear the text"/>
108
--              <quick-command type="QKeySequence" comment="Change to quick command mode">Ctrl+7</quick-command>
109
-+              <quick-command type="QKeySequence" comment="Change to quick command mode">Ctrl+Space</quick-command>
110
-               <show-messageLast type="QKeySequence" comment="Show last message" >Alt+Home</show-messageLast>
111
-               <show-messageFirst type="QKeySequence" comment="Show first message" >Alt+End</show-messageFirst>
112
-               <show-messageNext type="QKeySequence" comment="Show next message" >Ctrl+Down</show-messageNext>
113
-@@ -543,7 +543,7 @@
114
-           <contactlist comment="Shortcuts in the contactlist">
115
-               <assign-custom-avatar type="QKeySequence" comment="Assign a custom avatar to the selected contact"/>
116
-               <clear-custom-avatar type="QKeySequence" comment="Remove custom avatar from the selected contact"/>
117
--              <delete type="QKeySequence" comment="Delete the selected contact">Del</delete>
118
-+              <delete type="QKeySequence" comment="Delete the selected contact">Shift+Del</delete>
119
-               <chat type="QKeySequence" comment="Open a chat to the selected contact">Ctrl+C</chat>
120
-               <message type="QKeySequence" comment="Send a message to the selected contact">Ctrl+M</message>
121
-               <event type="QKeySequence" comment="Receive incoming event">Ctrl+R</event>
122
-@@ -591,7 +591,7 @@
123
-       </shortcuts>
124
-       <contactlist>
125
-           <hide-on-start type="bool">false</hide-on-start>
126
--          <resolve-nicks-on-contact-add type="bool">false</resolve-nicks-on-contact-add>
127
-+          <resolve-nicks-on-contact-add type="bool">true</resolve-nicks-on-contact-add>
128
-           <use-toolwindow type="bool">false</use-toolwindow>
129
-           <autohide-interval type="int">0</autohide-interval>
130
-       </contactlist>
131
-@@ -608,6 +608,10 @@
132
-           </emoticons>
133
-           <status type="QString">default</status>
134
-           <system type="QString">default</system>
135
-+          <moods type="QString">default</moods>
136
-+          <clients type="QString">default</clients>
137
-+          <activities type="QString">default</activities>
138
-+          <affiliations type="QString">default</affiliations>
139
-       </iconsets>
140
-       <messages>
141
-           <default-outgoing-message-type type="QString">chat</default-outgoing-message-type>
142
---- psi.orig/options/macosx.xml
143
-+++ psi/options/macosx.xml
144
-@@ -16,14 +16,25 @@
145
-       </ui>
146
-       <shortcuts comment="Shortcuts">
147
-           <contactlist comment="Shortcuts in the contactlist">
148
--              <delete type="QVariantList" comment="Delete the selected contact">
149
--                  <item type="QKeySequence">Backspace</item>
150
--                  <item type="QKeySequence">Del</item>
151
--              </delete>
152
-+              <delete type="QKeySequence" comment="Delete the selected contact">Shift+Del</delete>
153
-           </contactlist>
154
-           <common comment="Common actions" >
155
-               <history type="QKeySequence" comment="Open the message history">Ctrl+Shift+H</history>
156
-           </common>
157
-+          <chat comment="Shortcuts in the chat dialog">
158
-+              <quick-command type="QKeySequence" comment="Change to quick command mode">Ctrl+7</quick-command>
159
-+          </chat>
160
-       </shortcuts>
161
-+      <ui comment="User interface options">
162
-+          <disable-send-button type="bool">true</disable-send-button>
163
-+          <look>
164
-+              <font>
165
-+                  <chat type="QString">Lucida Grande,11,-1,5,50,0,0,0,0,0</chat>
166
-+                  <contactlist type="QString">Lucida Grande,11,-1,5,50,0,0,0,0,0</contactlist>
167
-+                  <message type="QString">Lucida Grande,11,-1,5,50,0,0,0,0,0</message>
168
-+                  <passive-popup type="QString">Lucida Grande,9,-1,5,50,0,0,0,0,0</passive-popup>
169
-+              </font>
170
-+          </look>
171
-+      </ui>
172
-   </options>
173
- </psi>
174
---- psi.orig/options/windows.xml
175
-+++ psi/options/windows.xml
176
-@@ -6,6 +6,9 @@
177
-               <enable type="bool">true</enable>
178
-               <use-double-click type="bool">true</use-double-click>
179
-           </systemtray>
180
-+          <spell-check comment="Options related to the spell checker">
181
-+              <enabled comment="Whether the spell checker is enabled" type="bool">false</enabled>
182
-+          </spell-check>
183
-       </ui>
184
-   </options>
185
- </psi>
186
---- psi.orig/src/psi_profiles.cpp
187
-+++ psi/src/psi_profiles.cpp
188
-@@ -131,17 +131,17 @@ void UserAccount::reset()
189
-   port = 5222;
190
-   opt_host = false;
191
-   host = "";
192
--  opt_automatic_resource = true;
193
-+  opt_automatic_resource = false;
194
-   priority_dep_on_status = true;
195
-   ignore_global_actions = false;
196
-   resource = ApplicationInfo::name();
197
--  priority = 5;
198
-+  priority = 55;
199
-   ibbOnly = false;
200
-   opt_keepAlive = true;
201
psi-plus-main-20160309.tar.xz/patches/0040-psi-tabs-button-killer.diff Deleted
82
 
1
@@ -1,80 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -439,6 +439,7 @@
5
-               <group-state comment="Saved state data of the tabsets defined by options.ui.tabs.grouping"/>
6
-               <tab-singles type="QString" comment="Tab types that would have been untabbed are given their own tabset. 'C' for chat and 'M' for mucs"/>
7
-               <use-tab-shortcuts type="bool">true</use-tab-shortcuts>
8
-+              <show-tab-buttons type="bool">true</show-tab-buttons>
9
-           </tabs>
10
-       </ui>
11
-       <shortcuts comment="Shortcuts">
12
---- psi.orig/src/options/opt_chat.cpp
13
-+++ psi/src/options/opt_chat.cpp
14
-@@ -107,6 +107,7 @@ void OptionsTabChat::applyOptions()
15
-   PsiOptions::instance()->setOption("options.ui.chat.raise-chat-windows-on-new-messages", d->ck_raiseChatWindow->isChecked());
16
-   PsiOptions::instance()->setOption("options.ui.chat.switch-tab-on-new-messages", d->ck_switchTabOnMessage->isChecked());
17
-   PsiOptions::instance()->setOption("options.ui.chat.use-small-chats", d->ck_smallChats->isChecked());
18
-+  PsiOptions::instance()->setOption("options.ui.tabs.show-tab-buttons", d->ck_showTabButtons->isChecked());
19
- 
20
-   QString delafter;
21
-   switch (bg_delChats->buttons().indexOf( bg_delChats->checkedButton() )) {
22
-@@ -184,6 +185,7 @@ void OptionsTabChat::restoreOptions()
23
-   d->ck_raiseChatWindow->setChecked( PsiOptions::instance()->getOption("options.ui.chat.raise-chat-windows-on-new-messages").toBool() );
24
-   d->ck_switchTabOnMessage->setChecked( PsiOptions::instance()->getOption("options.ui.chat.switch-tab-on-new-messages").toBool() );
25
-   d->ck_smallChats->setChecked( PsiOptions::instance()->getOption("options.ui.chat.use-small-chats").toBool() );
26
-+  d->ck_showTabButtons->setChecked( PsiOptions::instance()->getOption("options.ui.tabs.show-tab-buttons").toBool() );
27
-   d->ck_tabChats->setChecked( PsiOptions::instance()->getOption("options.ui.tabs.use-tabs").toBool() );
28
-   d->cb_tabGrouping->setEnabled(PsiOptions::instance()->getOption("options.ui.tabs.use-tabs").toBool());
29
-   QString tabGrouping = PsiOptions::instance()->getOption("options.ui.tabs.grouping").toString();
30
---- psi.orig/src/options/opt_chat.ui
31
-+++ psi/src/options/opt_chat.ui
32
-@@ -127,6 +127,13 @@
33
-     </layout>
34
-    </item>
35
-    <item>
36
-+    <widget class="QCheckBox" name="ck_showTabButtons" >
37
-+     <property name="text" >
38
-+      <string>Show tab buttons</string>
39
-+     </property>
40
-+    </widget>
41
-+   </item>
42
-+   <item>
43
-     <widget class="QCheckBox" name="ck_autoResize" >
44
-      <property name="text" >
45
-       <string>Auto-resize text input field</string>
46
---- psi.orig/src/psicon.cpp
47
-+++ psi/src/psicon.cpp
48
-@@ -1414,7 +1414,8 @@ void PsiCon::optionChanged(const QString
49
-   }
50
- 
51
-   if (option == "options.ui.tabs.use-tabs" ||
52
--      option == "options.ui.tabs.grouping") {
53
-+      option == "options.ui.tabs.grouping" ||
54
-+      option == "options.ui.tabs.show-tab-buttons") {
55
-       QMessageBox::information(0, tr("Information"), tr("Some of the options you changed will only have full effect upon restart."));
56
-       //notifyRestart = false;
57
-   }
58
---- psi.orig/src/tabs/tabdlg.cpp
59
-+++ psi/src/tabs/tabdlg.cpp
60
-@@ -825,7 +825,7 @@ void TabDlg::setUserManagementEnabled(bo
61
-   }
62
- 
63
-   userManagement_ = enabled;
64
--  tabWidget_->setTabButtonsShown(enabled);
65
-+  tabWidget_->setTabButtonsShown(PsiOptions::instance()->getOption("options.ui.tabs.show-tab-buttons").toBool());
66
-   tabWidget_->setDragsEnabled(enabled);
67
- }
68
- 
69
---- psi.orig/src/widgets/psitabwidget.cpp
70
-+++ psi/src/widgets/psitabwidget.cpp
71
-@@ -78,6 +78,10 @@ PsiTabWidget::PsiTabWidget(QWidget *pare
72
-   if (!PsiOptions::instance()->getOption("options.ui.tabs.show-tab-close-buttons").toBool()){
73
-       tabBar_->setTabsClosable(false);
74
-   }
75
-+  if (!PsiOptions::instance()->getOption("options.ui.tabs.show-tab-buttons").toBool()){
76
-+      closeButton_->hide();
77
-+      downButton_->hide();
78
-+  }
79
-   connect(tabBar_, SIGNAL(mouseDoubleClickTab(int)), SLOT(mouseDoubleClickTab(int)));
80
-   connect(tabBar_, SIGNAL(mouseMiddleClickTab(int)), SLOT(mouseMiddleClickTab(int)));
81
-   connect(tabBar_, SIGNAL( currentChanged(int)), SLOT(tab_currentChanged(int)));
82
psi-plus-main-20160309.tar.xz/patches/0050-psi-plugins-qcm-fix.diff Deleted
45
 
1
@@ -1,43 +0,0 @@
2
---- psi.orig/qcm/plugins.qcm
3
-+++ psi/qcm/plugins.qcm
4
-@@ -1,8 +1,6 @@
5
- /*
6
- -----BEGIN QCMOD-----
7
--name: Plugins
8
--arg: enable-plugins,Enable Psi Plugin support
9
--
10
-+name: Psi Plugin support
11
- -----END QCMOD-----
12
- */
13
- 
14
-@@ -13,17 +11,10 @@ class qc_plugins : public ConfObj
15
- {
16
- public:
17
-   qc_plugins(Conf *c) : ConfObj(c) {}
18
--  QString name() const { return "Plugins"; }
19
--  QString shortname() const { return "Plugins"; }
20
-+  QString name() const { return "Psi Plugin support"; }
21
-+  QString shortname() const { return "plugins"; }
22
-   bool exec()
23
-   {
24
--      QString s;
25
--
26
--      // Check if Jingle was enabled explicitly
27
--      s = conf->getenv("QC_ENABLE_PLUGINS");
28
--      if(s.isEmpty())
29
--          return false;
30
--
31
-       conf->addDefine("PSI_PLUGINS");
32
- 
33
-       // Finish
34
---- psi.orig/psi.qc
35
-+++ psi/psi.qc
36
-@@ -45,7 +45,7 @@
37
-   <dep type='spell'>
38
-     <required/>
39
-   </dep>
40
--  <!--<dep type='plugins'/>-->
41
-+  <dep type='plugins'><disabled/></dep>
42
-   <dep type='conf'>
43
-     <required/>
44
-   </dep>
45
psi-plus-main-20160309.tar.xz/patches/0060-psi-configure-hyperlink-color.diff Deleted
37
 
1
@@ -1,35 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -345,6 +345,10 @@
5
-                       <usertext type="QColor" comment="Color used to indicate additional text for informational messages.">#606060</usertext>
6
-                       <highlighting type="QColor">#FF0000</highlighting>
7
-                   </messages>
8
-+                  <chat>
9
-+                      <link-color type="QColor">#0000ff</link-color>
10
-+                      <mailto-color type="QColor">#0000ff</mailto-color>
11
-+                  </chat>
12
-                   <passive-popup>
13
-                       <border type="QColor">#5297f9</border>
14
-                   </passive-popup>
15
---- psi.orig/src/textutil.cpp
16
-+++ psi/src/textutil.cpp
17
-@@ -411,7 +411,8 @@ QString TextUtil::linkify(const QString
18
-           href = escape(href);
19
-           href = linkify_htmlsafe(href);
20
-           //printf("link: [%s], href=[%s]\n", link.latin1(), href.latin1());
21
--          linked = QString("<a href=\"%1\">").arg(href) + escape(link) + "</a>" + escape(pre.mid(cutoff));
22
-+          QColor lcolor=PsiOptions::instance()->getOption("options.ui.look.colors.chat.link-color").toString();
23
-+          linked = QString("<a href=\"%1\" style=\"color:"+lcolor.name()+"\">").arg(href) + escape(link) + "</a>" + escape(pre.mid(cutoff));
24
-           out.replace(x1, len, linked);
25
-           n = x1 + linked.length() - 1;
26
-       }
27
-@@ -444,7 +445,8 @@ QString TextUtil::linkify(const QString
28
- 
29
-           href += link;
30
-           //printf("link: [%s], href=[%s]\n", link.latin1(), href.latin1());
31
--          linked = QString("<a href=\"%1\">").arg(href) + link + "</a>";
32
-+          QColor mcolor=PsiOptions::instance()->getOption("options.ui.look.colors.chat.mailto-color").toString();
33
-+          linked = QString("<a href=\"%1\" style=\"color:"+mcolor.name()+"\">").arg(href) + link + "</a>";
34
-           out.replace(x1, len, linked);
35
-           n = x1 + linked.length() - 1;
36
-       }
37
psi-plus-main-20160309.tar.xz/patches/0070-psi-dirty-check.diff Deleted
201
 
1
@@ -1,295 +0,0 @@
2
---- psi.orig/src/AutoUpdater/AutoUpdater.pri
3
-+++ psi/src/AutoUpdater/AutoUpdater.pri
4
-@@ -16,3 +16,16 @@ Sparkle {
5
- 
6
-   LIBS += -framework Sparkle
7
- }
8
-+
9
-+QuickDirtyChecker {
10
-+        DEFINES += USE_QDCHECKER
11
-+
12
-+        HEADERS += \
13
-+                $$PWD/QDChecker.h
14
-+
15
-+        SOURCES += \
16
-+                $$PWD/QDChecker.cpp
17
-+
18
-+        FORMS += \
19
-+                $$PWD/QDChangeLog.ui
20
-+}
21
---- /dev/null
22
-+++ psi/src/AutoUpdater/QDChangeLog.ui
23
-@@ -0,0 +1,71 @@
24
-+<?xml version="1.0" encoding="UTF-8"?>
25
-+<ui version="4.0">
26
-+ <class>ShowChangeLogForm</class>
27
-+ <widget class="QWidget" name="ShowChangeLogForm">
28
-+  <property name="geometry">
29
-+   <rect>
30
-+    <x>0</x>
31
-+    <y>0</y>
32
-+    <width>400</width>
33
-+    <height>300</height>
34
-+   </rect>
35
-+  </property>
36
-+  <property name="windowTitle">
37
-+   <string>New version is available!</string>
38
-+  </property>
39
-+  <layout class="QGridLayout" name="gridLayout">
40
-+   <property name="margin">
41
-+    <number>6</number>
42
-+   </property>
43
-+   <property name="spacing">
44
-+    <number>2</number>
45
-+   </property>
46
-+   <item row="0" column="0">
47
-+    <widget class="QTextEdit" name="logText">
48
-+     <property name="readOnly">
49
-+      <bool>true</bool>
50
-+     </property>
51
-+     <property name="textInteractionFlags">
52
-+      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
53
-+     </property>
54
-+    </widget>
55
-+   </item>
56
-+   <item row="1" column="0">
57
-+    <layout class="QHBoxLayout" name="horizontalLayout">
58
-+     <item>
59
-+      <spacer name="horizontalSpacer">
60
-+       <property name="orientation">
61
-+        <enum>Qt::Horizontal</enum>
62
-+       </property>
63
-+       <property name="sizeHint" stdset="0">
64
-+        <size>
65
-+         <width>40</width>
66
-+         <height>20</height>
67
-+        </size>
68
-+       </property>
69
-+      </spacer>
70
-+     </item>
71
-+     <item>
72
-+      <widget class="QLabel" name="label">
73
-+       <property name="text">
74
-+        <string>Open download page?</string>
75
-+       </property>
76
-+       <property name="alignment">
77
-+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
78
-+       </property>
79
-+      </widget>
80
-+     </item>
81
-+     <item>
82
-+      <widget class="QDialogButtonBox" name="buttonBox">
83
-+       <property name="standardButtons">
84
-+        <set>QDialogButtonBox::No|QDialogButtonBox::Yes</set>
85
-+       </property>
86
-+      </widget>
87
-+     </item>
88
-+    </layout>
89
-+   </item>
90
-+  </layout>
91
-+ </widget>
92
-+ <resources/>
93
-+ <connections/>
94
-+</ui>
95
---- /dev/null
96
-+++ psi/src/AutoUpdater/QDChecker.cpp
97
-@@ -0,0 +1,100 @@
98
-+/*
99
-+ * Quick-and-dirty checker for updates.
100
-+ * Written by Aleksey Palazhchenko.
101
-+ * No rights reserved for this ugly code. This file is in public domain.
102
-+ */
103
-+
104
-+#include "QDChecker.h"
105
-+#include "ui_QDChangeLog.h"
106
-+
107
-+#include <QUrl>
108
-+#include <QDesktopServices>
109
-+#include <QNetworkAccessManager>
110
-+#include <QNetworkRequest>
111
-+#include <QNetworkReply>
112
-+#include <QNetworkProxy>
113
-+
114
-+#include "psioptions.h"
115
-+#include "proxy.h"
116
-+
117
-+const QUrl QDChecker::updateCheckUrl_ = QUrl("https://raw.githubusercontent.com/psi-plus/main/master/version.txt");
118
-+const QUrl QDChecker::changelogUrl_ = QUrl("https://raw.githubusercontent.com/psi-plus/main/master/changelog.txt");
119
-+const QUrl QDChecker::downloadPageUrl_ = QUrl("http://sourceforge.net/projects/psiplus/files/MS-Windows/Installers/0.16/");
120
-+
121
-+const QString QDChecker::settingsKey_ = QLatin1String("options.auto-update.last-check-value");
122
-+
123
-+QDChecker::QDChecker()
124
-+  : manager_(new QNetworkAccessManager(this)), logForm_(0)
125
-+{
126
-+  ProxyItem it = ProxyManager::instance()->getItemForObject("Auto Updater");
127
-+  ProxySettings ps = it.settings;
128
-+  if(!ps.host.isEmpty()) {
129
-+      QNetworkProxy prx(QNetworkProxy::HttpCachingProxy, ps.host, ps.port, ps.user, ps.pass);
130
-+      if(it.type == "socks")
131
-+          prx.setType(QNetworkProxy::Socks5Proxy);
132
-+      manager_->setProxy(prx);
133
-+  }
134
-+}
135
-+
136
-+QDChecker::~QDChecker()
137
-+{
138
-+  delete logForm_;
139
-+}
140
-+
141
-+void QDChecker::checkForUpdates()
142
-+{
143
-+  QNetworkRequest request(updateCheckUrl_);
144
-+  QNetworkReply* reply = manager_->get(request);
145
-+  connect(reply, SIGNAL(finished()), this, SLOT(onCheckFinished()));
146
-+}
147
-+
148
-+void QDChecker::onCheckFinished()
149
-+{
150
-+  qDebug("onCheckFinished");
151
-+  QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
152
-+  if(reply && reply->error() == QNetworkReply::NoError) {
153
-+      const QByteArray data = reply->readAll();
154
-+      const quint16 newValue = qChecksum(data.constData(), data.size());
155
-+      const quint16 oldValue = PsiOptions::instance()->getOption(settingsKey_).toUInt();
156
-+
157
-+      if(newValue != oldValue) {
158
-+          QNetworkRequest request(changelogUrl_);
159
-+          QNetworkReply* reply = manager_->get(request);
160
-+          connect(reply, SIGNAL(finished()), this, SLOT(onDownloadLogFinished()));
161
-+          PsiOptions::instance()->setOption(settingsKey_, newValue);
162
-+      }
163
-+
164
-+      reply->deleteLater();
165
-+  } else {
166
-+      qCritical("WTF?! at %s %d", __FILE__, __LINE__);
167
-+  }
168
-+}
169
-+
170
-+void QDChecker::onDownloadLogFinished()
171
-+{
172
-+  qDebug("onDownloadLogFinished");
173
-+  QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
174
-+  if(reply && reply->error() == QNetworkReply::NoError) {
175
-+      if(logForm_) {
176
-+          logForm_->deleteLater();
177
-+      }
178
-+      Ui::ShowChangeLogForm ui;
179
-+      logForm_ = new QWidget;
180
-+      ui.setupUi(logForm_);
181
-+
182
-+      ui.logText->setText(QString::fromUtf8(reply->readAll()));
183
-+
184
-+      connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(onOpenDownloadPage()));
185
-+      connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), logForm_, SLOT(hide()));
186
-+      logForm_->show();
187
-+
188
-+      reply->deleteLater();
189
-+  } else {
190
-+      qCritical("WTF?! at %s %d", __FILE__, __LINE__);
191
-+  }
192
-+}
193
-+
194
-+void QDChecker::onOpenDownloadPage()
195
-+{
196
-+  QDesktopServices::openUrl(downloadPageUrl_);
197
-+}
198
---- /dev/null
199
-+++ psi/src/AutoUpdater/QDChecker.h
200
-@@ -0,0 +1,44 @@
201
psi-plus-main-20160309.tar.xz/patches/0080-psi-temp-show-caps.diff Deleted
16
 
1
@@ -1,14 +0,0 @@
2
---- psi.orig/src/gcuserview.cpp
3
-+++ psi/src/gcuserview.cpp
4
-@@ -557,8 +557,8 @@ bool GCUserView::maybeTip(const QPoint &
5
-   UserResource ur;
6
-   ur.setName(nick);
7
-   ur.setStatus(s);
8
--  //ur.setClient(client_name,client_version,"");
9
--  ur.setClient(QString(),QString(),"");
10
-+  ur.setClient(client_name,client_version,"");
11
-+  //ur.setClient(QString(),QString(),"");
12
-   u.userResourceList().append(ur);
13
-   u.setPrivate(true);
14
-   u.setAvatarFactory(dlg->account()->avatarFactory());
15
-
16
psi-plus-main-20160309.tar.xz/patches/0090-psi-add-view-groups-to-tray-menu.diff Deleted
29
 
1
@@ -1,27 +0,0 @@
2
---- psi.orig/src/mainwin.cpp
3
-+++ psi/src/mainwin.cpp
4
-@@ -133,7 +133,7 @@ public:
5
-   bool isLeftRoster;
6
- 
7
-   PopupAction* optionsButton, *statusButton;
8
--  IconActionGroup* statusGroup;
9
-+  IconActionGroup* statusGroup, *viewGroups;
10
-   IconAction* statusSmallerAlt;
11
-   EventNotifierAction* eventNotifier;
12
-   PsiCon* psi;
13
-@@ -177,6 +177,7 @@ MainWin::Private::Private(PsiCon* _psi,
14
- {
15
- 
16
-   statusGroup   = (IconActionGroup *)getAction("status_group");
17
-+  viewGroups    = (IconActionGroup *)getAction("view_groups");
18
-   eventNotifier = (EventNotifierAction *)getAction("event_notifier");
19
- 
20
-   optionsButton = (PopupAction *)getAction("button_options");
21
-@@ -946,6 +947,7 @@ void MainWin::buildOptionsMenu()
22
- {
23
-   buildGeneralMenu( d->optionsMenu );
24
-   d->optionsMenu->addSeparator();
25
-+  d->optionsMenu->addAction(d->viewGroups);
26
- 
27
-   // help menu
28
-   QMenu* helpMenu = new QMenu(tr("&Help"), d->optionsMenu);
29
psi-plus-main-20160309.tar.xz/patches/0100-psi-contact-manager.diff Deleted
201
 
1
@@ -1,1228 +0,0 @@
2
---- a/src/contactlistaccountmenu.cpp
3
-+++ b/src/contactlistaccountmenu.cpp
4
-@@ -32,6 +32,7 @@
5
- #include "privacy/privacydlg.h"
6
- #include "psiiconset.h"
7
- #include "common.h"
8
-+#include "contactmanager/contactmanagerdlg.h"
9
- #include "mucjoindlg.h"
10
- 
11
- class ContactListAccountMenu::Private : public QObject
12
-@@ -46,6 +47,7 @@ class ContactListAccountMenu::Private : public QObject
13
-   QAction* setAvatarAction_;
14
-   QMenu* avatarMenu_;
15
-   QAction* unsetAvatarAction_;
16
-+  QAction* contactManagerAction_;
17
-   QMenu* bookmarksMenu_;
18
-   QAction* bookmarksManageAction_;
19
-   QList<QAction*> bookmarksJoinActions_;
20
-@@ -101,6 +103,9 @@ public:
21
-       unsetAvatarAction_ = new QAction(tr("Unset Avatar"), this);
22
-       connect(unsetAvatarAction_, SIGNAL(triggered()), SLOT(unsetAvatar()));
23
- 
24
-+      contactManagerAction_ = new IconAction(tr("&Contacts Manager"), this, "psi/action_contacts_manager");
25
-+      connect(contactManagerAction_, SIGNAL(triggered()), SLOT(contactManager()));
26
-+
27
-       bookmarksManageAction_ = new QAction(tr("Manage Bookmarks"), this);
28
-       connect(bookmarksManageAction_, SIGNAL(triggered()), SLOT(bookmarksManage()));
29
- 
30
-@@ -155,6 +160,7 @@ public:
31
-       menu->addAction(addContactAction_);
32
-       menu->addAction(serviceDiscoveryAction_);
33
-       menu->addAction(newMessageAction_);
34
-+      menu->addAction(contactManagerAction_);
35
-       menu->addAction(privacyListsAction_);
36
-       menu->addSeparator();
37
-       menu->addAction(xmlConsoleAction_);
38
-@@ -219,6 +225,7 @@ private slots:
39
-       newMessageAction_->setEnabled(account->account()->isAvailable());
40
-       addContactAction_->setEnabled(account->account()->isAvailable());
41
-       serviceDiscoveryAction_->setEnabled(account->account()->isAvailable());
42
-+      contactManagerAction_->setEnabled(account->account()->isAvailable());
43
-       privacyListsAction_->setEnabled(account->account()->isAvailable());
44
-       if (!PsiOptions::instance()->getOption("options.ui.menu.account.admin").toBool()) {
45
-           adminMenu_->menuAction()->setVisible(false);
46
-@@ -344,6 +351,19 @@ private slots:
47
-           bringToFront(dlg);
48
-   }
49
- 
50
-+  void contactManager()
51
-+  {
52
-+      if (!account)
53
-+          return;
54
-+
55
-+      ContactManagerDlg *dlg = account->account()->findDialog<ContactManagerDlg*>();
56
-+      if(!dlg) {
57
-+          dlg = new ContactManagerDlg(account->account());
58
-+          dlg->show();
59
-+      } else
60
-+          bringToFront(dlg);
61
-+  }
62
-+
63
-   void xmlConsole()
64
-   {
65
-       if (!account)
66
-new file mode 100644
67
---- /dev/null
68
-+++ b/src/contactmanager/contactmanager.pri
69
-@@ -0,0 +1,7 @@
70
-+HEADERS += $$PWD/contactmanagerdlg.h \
71
-+    $$PWD/contactmanagermodel.h \
72
-+  $$PWD/contactmanagerview.h
73
-+SOURCES += $$PWD/contactmanagerdlg.cpp \
74
-+    $$PWD/contactmanagermodel.cpp \
75
-+  $$PWD/contactmanagerview.cpp
76
-+FORMS += $$PWD/contactmanagerdlg.ui
77
-new file mode 100644
78
---- /dev/null
79
-+++ b/src/contactmanager/contactmanagerdlg.cpp
80
-@@ -0,0 +1,318 @@
81
-+/*
82
-+ * contactmanagerdlg.cpp
83
-+ * Copyright (C) 2010 Rion
84
-+ *
85
-+ * This program is free software; you can redistribute it and/or
86
-+ * modify it under the terms of the GNU General Public License
87
-+ * as published by the Free Software Foundation; either version 2
88
-+ * of the License, or (at your option) any later version.
89
-+ *
90
-+ * This program is distributed in the hope that it will be useful,
91
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
92
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
93
-+ * GNU General Public License for more details.
94
-+ *
95
-+ * You should have received a copy of the GNU General Public License
96
-+ * along with this library; if not, write to the Free Software
97
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
98
-+ *
99
-+ */
100
-+
101
-+#include <QMessageBox>
102
-+#include <QItemSelectionModel>
103
-+#include <QFileDialog>
104
-+#include <QFile>
105
-+#include <QScrollArea>
106
-+#include <QCheckBox>
107
-+
108
-+#include "contactmanagerdlg.h"
109
-+
110
-+#include "psiaccount.h"
111
-+#include "userlist.h"
112
-+#include "xmpp_tasks.h"
113
-+#include "psiiconset.h"
114
-+#include "vcardfactory.h"
115
-+//#include "contactview.h"
116
-+
117
-+
118
-+ContactManagerDlg::ContactManagerDlg(PsiAccount *pa) :
119
-+  QDialog(0, Qt::Window),
120
-+  pa_(pa),
121
-+  um(0)
122
-+{
123
-+  setAttribute(Qt::WA_DeleteOnClose, true);
124
-+  ui_.setupUi(this);
125
-+  pa_->dialogRegister(this);
126
-+  setWindowTitle(tr("Contacts Manager")+" - "+pa->jid().bare());
127
-+
128
-+  um = new ContactManagerModel(this, pa_);
129
-+  um->reloadUsers();
130
-+  ui_.usersView->setModel(um);
131
-+  ui_.usersView->init();
132
-+
133
-+  ui_.cbAction->addItem(IconsetFactory::icon("psi/sendMessage").icon(), tr("Message"), 1);
134
-+  ui_.cbAction->addItem(IconsetFactory::icon("psi/remove").icon(), tr("Remove"), 2);
135
-+  ui_.cbAction->addItem(IconsetFactory::icon("status/ask").icon(), tr("Auth request"), 3);
136
-+  ui_.cbAction->addItem(IconsetFactory::icon("status/ask").icon(), tr("Auth grant"), 4);
137
-+  ui_.cbAction->addItem(IconsetFactory::icon("psi/command").icon(), tr("Change domain"), 5);
138
-+  ui_.cbAction->addItem(IconsetFactory::icon("psi/info").icon(), tr("Resolve nicks"), 6);
139
-+  ui_.cbAction->addItem(IconsetFactory::icon("psi/browse").icon(), tr("Move to group"), 7);
140
-+  ui_.cbAction->addItem(IconsetFactory::icon("psi/export").icon(), tr("Export"), 8);
141
-+  ui_.cbAction->addItem(IconsetFactory::icon("psi/import").icon(), tr("Import"), 9);
142
-+  connect(ui_.cbAction, SIGNAL(currentIndexChanged(int)), this, SLOT(showParamField(int)));
143
-+  showParamField(0); // 0 - default index of combobox
144
-+
145
-+  ui_.cmbField->insertItems(0, um->manageableFields());
146
-+  ui_.cmbMatchType->addItem(tr("Simple"), ContactManagerModel::SimpleMatch);
147
-+  ui_.cmbMatchType->addItem(tr("RegExp"), ContactManagerModel::RegexpMatch);
148
-+  connect(ui_.btnExecute, SIGNAL(clicked()), this, SLOT(executeCurrent()));
149
-+  connect(ui_.btnSelect, SIGNAL(clicked()), this, SLOT(doSelect()));
150
-+
151
-+  connect(pa_->client(), SIGNAL(rosterRequestFinished(bool,int,QString)), this, SLOT(client_rosterUpdated(bool,int,QString)));
152
-+}
153
-+
154
-+
155
-+
156
-+ContactManagerDlg::~ContactManagerDlg()
157
-+{
158
-+  pa_->dialogUnregister(this);
159
-+}
160
-+
161
-+void ContactManagerDlg::changeEvent(QEvent *e)
162
-+{
163
-+    switch (e->type()) {
164
-+    case QEvent::LanguageChange:
165
-+      ui_.retranslateUi(this);
166
-+        break;
167
-+    default:
168
-+        break;
169
-+    }
170
-+}
171
-+
172
-+void ContactManagerDlg::doSelect()
173
-+{
174
-+  int type = ui_.cmbMatchType->itemData(ui_.cmbMatchType->currentIndex()).toInt();
175
-+  int coumnIndex = ui_.cmbField->currentIndex();
176
-+  um->invertByMatch(coumnIndex + 1, type,  ui_.edtMatch->text());
177
-+}
178
-+
179
-+void ContactManagerDlg::executeCurrent()
180
-+{
181
-+  int action = ui_.cbAction->itemData(ui_.cbAction->currentIndex()).toInt();
182
-+  QList<UserListItem *> users = um->checkedUsers();
183
-+  if (!users.count() && action != 9) {
184
-+      return;
185
-+  }
186
-+  switch (action) {
187
-+      case 1: //message
188
-+          {
189
-+              QList<XMPP::Jid> list;
190
-+              foreach (UserListItem *u, users) {
191
-+                  list.append(u->jid().full());
192
-+              }
193
-+              pa_->actionSendMessage(list);
194
-+          }
195
-+          break;
196
-+      case 2: //remove
197
-+          {
198
-+              if (QMessageBox::question(this, tr("Removal confirmation"),
199
-+                                        tr("Are you sure want to delete selected contacts?"),
200
-+                                        QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) {
201
psi-plus-main-20160309.tar.xz/patches/0110-psiplus-more-compatibility-with-skinsplugin.diff Deleted
39
 
1
@@ -1,37 +0,0 @@
2
---- psi.orig/src/mainwin.cpp
3
-+++ psi/src/mainwin.cpp
4
-@@ -358,6 +358,8 @@ MainWin::MainWin(bool _onTop, bool _asTo
5
-   } else
6
-       setCentralWidget(rosterBar);
7
- 
8
-+  connect(PsiOptions::instance(), SIGNAL(optionChanged(const QString&)), SLOT(optionChanged(const QString&)));
9
-+
10
-   d->vb_roster = new QVBoxLayout(rosterBar);
11
- #ifndef NEWCONTACTLIST
12
-   cvlist = new ContactView(rosterBar);
13
-@@ -600,6 +602,14 @@ void MainWin::splitterMoved()
14
-   d->tabsSize = d->isLeftRoster ? list.last() : list.first();
15
- }
16
- 
17
-+void MainWin::optionChanged(const QString& option)
18
-+{
19
-+  if (option == toolbarsStateOptionPath) { //for compatibility with skins plugin
20
-+      loadToolbarsState();
21
-+      //buildToolbars(); //FIXME!!! not a very good solution
22
-+  }
23
-+}
24
-+
25
- void MainWin::registerAction( IconAction* action )
26
- {
27
-   const char *activated  = SIGNAL( triggered() );
28
---- psi.orig/src/mainwin.h
29
-+++ psi/src/mainwin.h
30
-@@ -168,6 +168,8 @@ private slots:
31
- 
32
-   void hideTimerTimeout();
33
- 
34
-+  void optionChanged(const QString&);
35
-+
36
- public slots:
37
-   void setWindowIcon(const QPixmap&);
38
-   void showNoFocus();
39
psi-plus-main-20160309.tar.xz/patches/0120-psi-css-style-sheet.diff Deleted
201
 
1
@@ -1,349 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -120,6 +120,7 @@
5
-               <scaled-message-icons type="bool">false</scaled-message-icons>
6
-               <show-status-changes type="bool">true</show-status-changes>
7
-               <warn-before-clear type="bool">true</warn-before-clear>
8
-+              <css type="QString" />
9
-               <hide-when-closing type="bool">false</hide-when-closing>
10
-               <status-with-priority comment="Show priority with status change" type="bool">false</status-with-priority>
11
-               <default-jid-mode comment="Default jid mode: barejid | auto" type="QString">barejid</default-jid-mode>
12
-@@ -144,6 +145,7 @@
13
-                   <show comment="Show status messages" type="bool">false</show>
14
-               </status-messages>
15
-               <tooltip comment="Display options for the contact list tooltips">
16
-+                  <css type="QString"></css>
17
-                   <avatar comment="Display avatar" type="bool">true</avatar>
18
-                   <client-version comment="Display client version information" type="bool">true</client-version>
19
-                   <geolocation comment="Display geolocation information" type="bool">true</geolocation>
20
-@@ -152,6 +154,58 @@
21
-               </tooltip>
22
-               <temp-no-roster-animation comment="Disable animated icons. This option will be removed as soon as the contactlist code is optimized enough" type="bool">false</temp-no-roster-animation>
23
-               <account-sort-style type="QString">alpha</account-sort-style>
24
-+              <css type="QString">/* frame of avatar - general settings */
25
-+/* фрейм с аватаром - общие настройки */
26
-+RosterAvatarFrame * {
27
-+  margin: 1px;
28
-+}
29
-+
30
-+/* frame of avatar - avatar */
31
-+/* фрейм с аватаром - аватар */
32
-+QLabel#lb_avatar {
33
-+  margin-left: 0px;
34
-+  margin-top: 2px;
35
-+  margin-bottom: 2px;
36
-+  border: 1px solid #949494;
37
-+  border-radius: 3px;
38
-+}
39
-+
40
-+/* frame of avatar - nick */
41
-+/* фрейм с аватаром - ник */
42
-+QLabel#lb_nick {
43
-+  margin: 2px;
44
-+  margin-right: 1px;
45
-+  margin-bottom: 3px;
46
-+  border: 1px solid #949494;
47
-+  border-radius: 3px;
48
-+}
49
-+
50
-+/* frame of avatar - buttons of PEP and status */
51
-+/* фрейм с аватаром - кнопки PEP и статуса */
52
-+QToolButton#tb_status, #tb_mood, #tb_activity {
53
-+  margin-left: 1px;
54
-+  margin-right: 1px;
55
-+  margin-bottom: 2px;
56
-+  width: 100%;
57
-+}
58
-+
59
-+QToolButton#tb_status {
60
-+  margin-top: 0px;
61
-+  margin-bottom: 1px;
62
-+}
63
-+
64
-+/* frame of avatar - button of status, arrow */
65
-+/* фрейм с аватаром - кнопка статуса, стрелка */
66
-+QToolButton#tb_status::menu-indicator {
67
-+  background: argb(0,0,0,0);
68
-+}
69
-+
70
-+/* frame of avatar - field of status message */
71
-+/* фрейм с аватаром - строка статусного сообщения */
72
-+QLineEdit#le_status_text {
73
-+  margin-right: 0px;
74
-+  margin-bottom: 2px;
75
-+}</css>
76
-               <always-on-top type="bool">false</always-on-top>
77
-               <automatically-resize-roster type="bool">false</automatically-resize-roster>
78
-               <grow-roster-upwards type="bool">true</grow-roster-upwards>
79
-@@ -363,6 +417,7 @@
80
-                   <message type="QString">Sans Serif,9,-1,5,50,0,0,0,0,0</message>
81
-                   <passive-popup type="QString">Sans Serif,7,-1,5,50,0,0,0,0,0</passive-popup>
82
-               </font>
83
-+              <css type="QString" />
84
-           </look>
85
-           <notifications>
86
-               <send-receipts type="bool" >true</send-receipts>
87
-@@ -379,6 +434,7 @@
88
-                       <status type="int">2000</status>
89
-                   </delays>
90
-                   <enabled type="bool">false</enabled>
91
-+                  <css type="QString"></css>
92
-                   <top-to-bottom type="bool">false</top-to-bottom>
93
-                   <at-left-corner type="bool">false</at-left-corner>
94
-                   <incoming-chat type="bool">true</incoming-chat>
95
---- psi.orig/src/contactlistitemmenu.cpp
96
-+++ psi/src/contactlistitemmenu.cpp
97
-@@ -21,12 +21,17 @@
98
- #include "contactlistitemmenu.h"
99
- 
100
- #include "shortcutmanager.h"
101
-+#include "psioptions.h"
102
- 
103
- ContactListItemMenu::ContactListItemMenu(ContactListItem* item, ContactListModel* model)
104
-   : QMenu(0)
105
-   , item_(item)
106
-   , model_(model)
107
- {
108
-+  const QString css = PsiOptions::instance()->getOption("options.ui.contactlist.css").toString();
109
-+  if (!css.isEmpty()) {
110
-+      setStyleSheet(css);
111
-+  }
112
- }
113
- 
114
- ContactListItemMenu::~ContactListItemMenu()
115
---- psi.orig/src/gcuserview.cpp
116
-+++ psi/src/gcuserview.cpp
117
-@@ -721,6 +721,10 @@ void GCUserView::doContextMenu(QTreeWidg
118
-   pm->addAction(act);
119
-   act->setData(3);
120
- 
121
-+  const QString css = PsiOptions::instance()->getOption("options.ui.chat.css").toString();
122
-+  if (!css.isEmpty()) {
123
-+      pm->setStyleSheet(css);
124
-+  }
125
-   int x = -1;
126
-   bool enabled = false;
127
-   act = pm->exec(QCursor::pos());
128
---- psi.orig/src/groupchatdlg.cpp
129
-+++ psi/src/groupchatdlg.cpp
130
-@@ -1907,6 +1907,11 @@ QString GCMainDlg::desiredCaption() cons
131
- 
132
- void GCMainDlg::setLooks()
133
- {
134
-+  const QString css = PsiOptions::instance()->getOption("options.ui.chat.css").toString();
135
-+  if (!css.isEmpty()) {
136
-+      setStyleSheet(css);
137
-+      d->mle()->setCssString(css);
138
-+  }
139
-   ui_.vsplitter->optionsChanged();
140
-   ui_.mle->optionsChanged();
141
- 
142
---- psi.orig/src/mainwin.cpp
143
-+++ psi/src/mainwin.cpp
144
-@@ -574,6 +574,7 @@ MainWin::MainWin(bool _onTop, bool _asTo
145
- 
146
-       /*QShortcut *sp_ss = new QShortcut(QKeySequence(tr("Ctrl+Shift+N")), this);
147
-       connect(sp_ss, SIGNAL(triggered()), SLOT(avcallConfig()));*/
148
-+  optionChanged("options.ui.contactlist.css");
149
- 
150
-   reinitAutoHide();
151
- }
152
-@@ -608,6 +609,12 @@ void MainWin::optionChanged(const QStrin
153
-       loadToolbarsState();
154
-       //buildToolbars(); //FIXME!!! not a very good solution
155
-   }
156
-+  else if (option == "options.ui.contactlist.css") {
157
-+      const QString css = PsiOptions::instance()->getOption("options.ui.contactlist.css").toString();
158
-+      if (!css.isEmpty()) {
159
-+          setStyleSheet(css);
160
-+      }
161
-+  }
162
- }
163
- 
164
- void MainWin::registerAction( IconAction* action )
165
---- psi.orig/src/psichatdlg.cpp
166
-+++ psi/src/psichatdlg.cpp
167
-@@ -284,6 +284,11 @@ void PsiChatDlg::setLooks()
168
- {
169
-   ChatDlg::setLooks();
170
- 
171
-+  const QString css = PsiOptions::instance()->getOption("options.ui.chat.css").toString();
172
-+  if (!css.isEmpty()) {
173
-+      setStyleSheet(css);
174
-+      chatEdit()->setCssString(css);
175
-+  }
176
-   ui_.splitter->optionsChanged();
177
-   ui_.mle->optionsChanged();
178
- 
179
---- psi.orig/src/psicon.cpp
180
-+++ psi/src/psicon.cpp
181
-@@ -511,6 +511,10 @@ bool PsiCon::init()
182
-   d->iconSelect = new IconSelectPopup(0);
183
-   connect(PsiIconset::instance(), SIGNAL(emoticonsChanged()), d, SLOT(updateIconSelect()));
184
- 
185
-+  const QString css = options->getOption("options.ui.chat.css").toString();
186
-+  if (!css.isEmpty())
187
-+      d->iconSelect->setStyleSheet(css);
188
-+
189
-   // first thing, try to load the iconset
190
-   bool result = true;;
191
-   if( !PsiIconset::instance()->loadAll() ) {
192
-@@ -1428,6 +1432,13 @@ void PsiCon::optionChanged(const QString
193
-       s5b_init();
194
-   }
195
- 
196
-+  if (option == "options.ui.chat.css") {
197
-+      QString css = PsiOptions::instance()->getOption(option).toString();
198
-+      if (!css.isEmpty())
199
-+          d->iconSelect->setStyleSheet(css);
200
-+      return;
201
psi-plus-main-20160309.tar.xz/patches/0130-psiplus-nix-application-icon-and-name.diff Deleted
36
 
1
@@ -1,34 +0,0 @@
2
---- psi.orig/psi.desktop
3
-+++ psi/psi.desktop
4
-@@ -2,7 +2,7 @@
5
- # This is the spec version, *not* the application version
6
- Version=1.0
7
- Type=Application
8
--Name=Psi
9
-+Name=Psi+
10
- GenericName=XMPP Client
11
- Comment=Communicate over the XMPP network
12
- Icon=psi
13
---- psi.orig/src/src.pro
14
-+++ psi/src/src.pro
15
-@@ -45,15 +45,15 @@ unix {
16
-   dt.path=$$PREFIX/share/applications/
17
-   dt.files = ../psi.desktop
18
-   icon1.path=$$PREFIX/share/icons/hicolor/16x16/apps
19
--  icon1.extra = cp -f ../iconsets/system/default/logo_16.png $(INSTALL_ROOT)$$icon1.path/psi.png
20
-+  icon1.extra = cp -f ../iconsets/system/default/psiplus/logo_16.png $(INSTALL_ROOT)$$icon1.path/psi.png
21
-   icon2.path=$$PREFIX/share/icons/hicolor/32x32/apps
22
--  icon2.extra = cp -f ../iconsets/system/default/logo_32.png $(INSTALL_ROOT)$$icon2.path/psi.png
23
-+  icon2.extra = cp -f ../iconsets/system/default/psiplus/logo_32.png $(INSTALL_ROOT)$$icon2.path/psi.png
24
-   icon3.path=$$PREFIX/share/icons/hicolor/48x48/apps
25
--  icon3.extra = cp -f ../iconsets/system/default/logo_48.png $(INSTALL_ROOT)$$icon3.path/psi.png
26
-+  icon3.extra = cp -f ../iconsets/system/default/psiplus/logo_48.png $(INSTALL_ROOT)$$icon3.path/psi.png
27
-   icon4.path=$$PREFIX/share/icons/hicolor/64x64/apps
28
--  icon4.extra = cp -f ../iconsets/system/default/logo_64.png $(INSTALL_ROOT)$$icon4.path/psi.png
29
-+  icon4.extra = cp -f ../iconsets/system/default/psiplus/logo_64.png $(INSTALL_ROOT)$$icon4.path/psi.png
30
-   icon5.path=$$PREFIX/share/icons/hicolor/128x128/apps
31
--  icon5.extra = cp -f ../iconsets/system/default/logo_128.png $(INSTALL_ROOT)$$icon5.path/psi.png
32
-+  icon5.extra = cp -f ../iconsets/system/default/psiplus/logo_128.png $(INSTALL_ROOT)$$icon5.path/psi.png
33
-   INSTALLS += dt icon1 icon2 icon3 icon4 icon5
34
- }
35
- 
36
psi-plus-main-20160309.tar.xz/patches/0140-psi-tray-act-bring-to-front.diff Deleted
201
 
1
@@ -1,441 +0,0 @@
2
---- a/options/default.xml
3
-+++ b/options/default.xml
4
-@@ -218,6 +218,7 @@ QLineEdit#le_status_text {
5
-               <lockdown-roster type="bool">false</lockdown-roster>
6
-               <raise-on-new-event type="bool">false</raise-on-new-event>
7
-               <quit-on-close type="bool">false</quit-on-close>
8
-+              <raise-inactive type="bool">true</raise-inactive>
9
-               <show-avatar-frame type="bool">false</show-avatar-frame>
10
-               <show>
11
-                   <agent-contacts type="bool">true</agent-contacts>
12
---- a/src/mainwin.cpp
13
-+++ b/src/mainwin.cpp
14
-@@ -84,6 +84,10 @@
15
- #include "rosteravatarframe.h"
16
- #include "avatars.h"
17
- 
18
-+#ifdef HAVE_X11
19
-+#include <x11windowsystem.h>
20
-+#endif
21
-+
22
- using namespace XMPP;
23
- 
24
- static const QString showStatusMessagesOptionPath = "options.ui.contactlist.status-messages.show";
25
-@@ -161,6 +165,10 @@ public:
26
-   PsiRosterWidget* rosterWidget_;
27
- #endif
28
- 
29
-+#ifdef Q_OS_WIN
30
-+  DWORD deactivationTickCount;
31
-+#endif
32
-+
33
-   void registerActions();
34
-   IconAction* getAction( QString name );
35
-   void updateMenu(QStringList actions, QMenu* menu);
36
-@@ -1478,7 +1486,23 @@ void MainWin::closeEvent(QCloseEvent* e)
37
- 
38
- void MainWin::changeEvent(QEvent *event)
39
- {
40
--    if (event->type() == QEvent::ActivationChange ||
41
-+#ifdef Q_OS_WIN
42
-+  if (event->type() == QEvent::ActivationChange
43
-+      && PsiOptions::instance()->getOption("options.ui.systemtray.enable").toBool()
44
-+      && PsiOptions::instance()->getOption("options.ui.contactlist.raise-inactive").toBool()) {
45
-+      //On Windows app window loose active state when you
46
-+      //  click on tray icon. Workaround is to use timer:
47
-+      //  we'll keep activated == true within 300 msec
48
-+      //  (+ doubleClickInterval, if double click is enabled)
49
-+      //  after deactivation.
50
-+      if (!isActiveWindow())
51
-+      {
52
-+          d->deactivationTickCount = GetTickCount();
53
-+      }
54
-+  }
55
-+#endif
56
-+
57
-+  if (event->type() == QEvent::ActivationChange ||
58
-       event->type() == QEvent::WindowStateChange)
59
-   {
60
-       if (d->mainTabs) {
61
-@@ -1606,18 +1630,42 @@ void MainWin::optionsUpdate()
62
-   updateTray();
63
- }
64
- 
65
--void MainWin::toggleVisible()
66
-+void MainWin::toggleVisible(bool fromTray)
67
- {
68
--  if(!isHidden()) {
69
--      trayHide();
70
--  }
71
--  else {
72
--      trayShow();
73
-+  if (PsiOptions::instance()->getOption("options.ui.contactlist.raise-inactive").toBool())
74
-+  {
75
-+      bool hidden = false;
76
-+#ifdef Q_OS_WIN
77
-+      if (fromTray) {
78
-+          int timeout = 300;
79
-+          if (PsiOptions::instance()->getOption("options.ui.systemtray.use-double-click").toBool())
80
-+              timeout += qApp->doubleClickInterval();
81
-+          hidden = isHidden() || (GetTickCount() - d->deactivationTickCount > timeout);
82
-+      }
83
-+      else {
84
-+          hidden = isHidden() || !isActiveWindow();
85
-+      }
86
-+#elif defined(HAVE_X11)
87
-+      Q_UNUSED(fromTray);
88
-+      hidden = isHidden() || X11WindowSystem::instance()->isWindowObscured(this, PsiOptions::instance()->getOption("options.ui.contactlist.always-on-top").toBool());
89
-+#else
90
-+      Q_UNUSED(fromTray);
91
-+      hidden = isHidden() || !isActiveWindow();
92
-+#endif
93
-+      if(hidden) {
94
-+          trayShow();
95
-+      }
96
-+      else {
97
-+          trayHide();
98
-+      }
99
-   }
100
-+  else
101
-+      isHidden() ? trayShow() : trayHide();
102
- }
103
- 
104
- void MainWin::setTrayToolTip(const Status& status, bool, bool)
105
- {
106
-+  Q_UNUSED (status);
107
-   if (!d->tray) {
108
-       return;
109
-   }
110
-@@ -1635,32 +1683,21 @@ void MainWin::trayClicked(const QPoint &, int button)
111
-       return;
112
-   }
113
- 
114
--  if(!isHidden()) {
115
--      trayHide();
116
--  }
117
--  else {
118
--      trayShow();
119
--  }
120
-+  toggleVisible(true);
121
- }
122
- 
123
- void MainWin::trayDoubleClicked()
124
- {
125
--  if(!PsiOptions::instance()->getOption("options.ui.systemtray.use-double-click").toBool()) {
126
--      return;
127
--  }
128
-+  //Double click works like second single click now if "double-click" style is disabled
129
- 
130
--  if(d->nextAmount > 0) {
131
--      doRecvNextEvent();
132
--      return;
133
-+  if(PsiOptions::instance()->getOption("options.ui.systemtray.use-double-click").toBool()) {
134
-+      if(d->nextAmount > 0) {
135
-+          doRecvNextEvent();
136
-+          return;
137
-+      }
138
-   }
139
- 
140
--
141
--  if(!isHidden()) {
142
--      trayHide();
143
--  }
144
--  else {
145
--      trayShow();
146
--  }
147
-+  toggleVisible(true);
148
- }
149
- 
150
- void MainWin::trayShow()
151
---- a/src/mainwin.h
152
-+++ b/src/mainwin.h
153
-@@ -180,7 +180,7 @@ public slots:
154
-   void optionsUpdate();
155
-   void setTrayToolTip(const XMPP::Status &, bool usePriority = false, bool isManualStatus = false);
156
- 
157
--  void toggleVisible();
158
-+  void toggleVisible(bool fromTray = false);
159
- 
160
-   void avcallConfig();
161
- 
162
---- a/src/src.pri
163
-+++ b/src/src.pri
164
-@@ -349,6 +349,10 @@ SOURCES += \
165
-   $$PWD/accountloginpassword.cpp \
166
-   $$PWD/mcmdcompletion.cpp
167
- 
168
-+unix:!macx:!haiku {
169
-+  HEADERS += $$PWD/x11windowsystem.h
170
-+  SOURCES += $$PWD/x11windowsystem.cpp
171
-+}
172
- 
173
- CONFIG += filetransfer
174
- filetransfer {
175
-new file mode 100644
176
-index 0000000..ea1ae7d
177
---- /dev/null
178
-+++ b/src/x11windowsystem.cpp
179
-@@ -0,0 +1,215 @@
180
-+#include "x11windowsystem.h"
181
-+
182
-+#include <QX11Info>
183
-+#include <X11/Xlib.h>
184
-+
185
-+const long MAX_PROP_SIZE = 100000;
186
-+X11WindowSystem* X11WindowSystem::_instance = 0;
187
-+
188
-+X11WindowSystem::X11WindowSystem()
189
-+{
190
-+  const int atomsCount = 10;
191
-+  const char* names[atomsCount] = {
192
-+      "_NET_CLIENT_LIST_STACKING",
193
-+      "_NET_FRAME_EXTENTS",
194
-+
195
-+      "_NET_WM_WINDOW_TYPE",
196
-+      "_NET_WM_WINDOW_TYPE_NORMAL",
197
-+      "_NET_WM_WINDOW_TYPE_DIALOG",
198
-+      "_NET_WM_WINDOW_TYPE_UTILITY",
199
-+      "_NET_WM_WINDOW_TYPE_SPLASH",
200
-+
201
psi-plus-main-20160309.tar.xz/patches/0150-psi-options-language-select.diff Deleted
103
 
1
@@ -1,101 +0,0 @@
2
---- psi.orig/src/options/opt_application.cpp
3
-+++ psi/src/options/opt_application.cpp
4
-@@ -3,11 +3,16 @@
5
- #include "iconwidget.h"
6
- #include "psioptions.h"
7
- #include "proxy.h"
8
-+#include "translationmanager.h"
9
-+#include "varlist.h"
10
-+#include "applicationinfo.h"
11
- 
12
- #include <QCheckBox>
13
- #include <QComboBox>
14
- #include <QLineEdit>
15
-+#include "qsettings.h"
16
- #include <QList>
17
-+#include <QMessageBox>
18
- 
19
- #include "ui_opt_application.h"
20
- 
21
-@@ -101,6 +106,23 @@ void OptionsTabApplication::applyOptions
22
- 
23
-   //Proxy
24
-   ProxyManager::instance()->proxyForObject()->save();
25
-+
26
-+  // Language
27
-+  QString curLang = TranslationManager::instance()->currentLanguage();
28
-+  QString lang = d->cb_lang->currentText();
29
-+  QString itemData;
30
-+  foreach(VarListItem it, TranslationManager::instance()->availableTranslations() ) {
31
-+      if(it.data() == lang) {
32
-+          itemData = it.key();
33
-+          break;
34
-+      }
35
-+  }
36
-+  if(curLang != itemData && !itemData.isEmpty()) {
37
-+      TranslationManager::instance()->loadTranslation(itemData);
38
-+      QMessageBox::information(0, tr("Information"), tr("Some of the options you changed will only have full effect upon restart."));
39
-+  }
40
-+  QSettings s(ApplicationInfo::homeDir(ApplicationInfo::ConfigLocation) + "/psirc", QSettings::IniFormat);
41
-+  s.setValue("last_lang", itemData);
42
- }
43
- 
44
- void OptionsTabApplication::restoreOptions()
45
-@@ -123,6 +145,21 @@ void OptionsTabApplication::restoreOptio
46
-   // data transfer
47
-   d->le_dtPort->setText( QString::number(PsiOptions::instance()->getOption("options.p2p.bytestreams.listen-port").toInt()) );
48
-   d->le_dtExternal->setText( PsiOptions::instance()->getOption("options.p2p.bytestreams.external-address").toString() );
49
-+
50
-+  // Language
51
-+  VarList vList = TranslationManager::instance()->availableTranslations();
52
-+  QStringList lang = vList.varsToStringList();
53
-+  d->cb_lang->addItem(tr("Default"));
54
-+  foreach(QString item, lang) {
55
-+      d->cb_lang->addItem(vList.get(item));
56
-+  }
57
-+  QString curLang = TranslationManager::instance()->currentLanguage();
58
-+  QSettings s(ApplicationInfo::homeDir(ApplicationInfo::ConfigLocation) + "/psirc", QSettings::IniFormat);
59
-+  QString curL = s.value("last_lang", "").toString();
60
-+  if (curL.isEmpty())
61
-+      d->cb_lang->setCurrentIndex( 0 );
62
-+  else if(!curLang.isEmpty() && lang.contains(curLang) )
63
-+      d->cb_lang->setCurrentIndex( d->cb_lang->findText(vList.get(curLang)) );
64
- }
65
- 
66
- void OptionsTabApplication::doEnableQuitOnClose(int state)
67
---- psi.orig/src/options/opt_application.ui
68
-+++ psi/src/options/opt_application.ui
69
-@@ -179,6 +179,33 @@
70
-     </widget>
71
-    </item>
72
-    <item>
73
-+    <layout class="QHBoxLayout" name="horizontalLayout">
74
-+     <item>
75
-+      <widget class="QLabel" name="label_2">
76
-+       <property name="text">
77
-+        <string>Language</string>
78
-+       </property>
79
-+      </widget>
80
-+     </item>
81
-+     <item>
82
-+      <widget class="QComboBox" name="cb_lang"/>
83
-+     </item>
84
-+     <item>
85
-+      <spacer name="horizontalSpacer">
86
-+       <property name="orientation">
87
-+        <enum>Qt::Horizontal</enum>
88
-+       </property>
89
-+       <property name="sizeHint" stdset="0">
90
-+        <size>
91
-+         <width>40</width>
92
-+         <height>20</height>
93
-+        </size>
94
-+       </property>
95
-+      </spacer>
96
-+     </item>
97
-+    </layout>
98
-+   </item>
99
-+   <item>
100
-     <spacer>
101
-      <property name="orientation" >
102
-       <enum>Qt::Vertical</enum>
103
psi-plus-main-20160309.tar.xz/patches/0160-psi-minimize-chat-hotkey.diff Deleted
106
 
1
@@ -1,104 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -601,6 +601,7 @@ QLineEdit#le_status_text {
5
-               <show-messageFirst type="QKeySequence" comment="Show first message" >Alt+End</show-messageFirst>
6
-               <show-messageNext type="QKeySequence" comment="Show next message" >Ctrl+Down</show-messageNext>
7
-               <show-messagePrev type="QKeySequence" comment="Show prev message" >Ctrl+Up</show-messagePrev>
8
-+              <minimize type="QKeySequence" comment="Minimize active chat window"/>
9
-           </chat>
10
-           <contactlist comment="Shortcuts in the contactlist">
11
-               <assign-custom-avatar type="QKeySequence" comment="Assign a custom avatar to the selected contact"/>
12
---- psi.orig/src/groupchatdlg.cpp
13
-+++ psi/src/groupchatdlg.cpp
14
-@@ -224,6 +224,7 @@ public:
15
- //#endif
16
-   QAction *act_send, *act_scrollup, *act_scrolldown, *act_close;
17
-   QAction *act_mini_cmd, *act_nick, *act_hide, *act_copy_muc_jid;
18
-+  QAction *act_minimize;
19
- 
20
-   MCmdSimpleSite mCmdSite;
21
-   MCmdManager mCmdManager;
22
-@@ -786,6 +787,10 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, con
23
-   connect(bm, SIGNAL(conferencesChanged(QList<ConferenceBookmark>)), SLOT(updateBookmarkIcon()));
24
-   connect(bm, SIGNAL(bookmarksSaved()), SLOT(updateBookmarkIcon()));
25
- 
26
-+  d->act_minimize = new QAction(this);
27
-+  connect(d->act_minimize, SIGNAL(triggered()), SLOT(doMinimize()));
28
-+  addAction(d->act_minimize);
29
-+
30
-   int s = PsiIconset::instance()->system().iconSize();
31
-   ui_.toolbar->setIconSize(QSize(s,s));
32
- 
33
-@@ -896,6 +901,11 @@ void GCMainDlg::horizSplitterMoved()
34
-   PsiOptions::instance()->setOption("options.ui.muc.roster-width", d->rosterSize);
35
- }
36
- 
37
-+void GCMainDlg::doMinimize()
38
-+{
39
-+  window()->showMinimized();
40
-+}
41
-+
42
- void GCMainDlg::ensureTabbedCorrectly()
43
- {
44
-   TabbableWidget::ensureTabbedCorrectly();
45
-@@ -939,6 +949,7 @@ void GCMainDlg::setShortcuts()
46
-   d->act_scrollup->setShortcuts(ShortcutManager::instance()->shortcuts("common.scroll-up"));
47
-   d->act_scrolldown->setShortcuts(ShortcutManager::instance()->shortcuts("common.scroll-down"));
48
-   d->act_mini_cmd->setShortcuts(ShortcutManager::instance()->shortcuts("chat.quick-command"));
49
-+  d->act_minimize->setShortcuts(ShortcutManager::instance()->shortcuts("chat.minimize"));
50
- }
51
- 
52
- void GCMainDlg::scrollUp()
53
---- psi.orig/src/groupchatdlg.h
54
-+++ psi/src/groupchatdlg.h
55
-@@ -141,6 +141,7 @@ private slots:
56
- #endif
57
-   void chatEditCreated();
58
-   void horizSplitterMoved();
59
-+  void doMinimize();
60
-   void avatarUpdated(const Jid& jid);
61
- 
62
- public:
63
---- psi.orig/src/psichatdlg.cpp
64
-+++ psi/src/psichatdlg.cpp
65
-@@ -349,6 +349,11 @@ void PsiChatDlg::setShortcuts()
66
- 
67
-   act_mini_cmd_->setShortcuts(ShortcutManager::instance()->shortcuts("chat.quick-command"));
68
- 
69
-+  act_minimize_ = new QAction(this);
70
-+
71
-+  connect(act_minimize_, SIGNAL(triggered()), SLOT(doMinimize()));
72
-+  addAction(act_minimize_);
73
-+  act_minimize_->setShortcuts(ShortcutManager::instance()->shortcuts("chat.minimize"));
74
- }
75
- 
76
- void PsiChatDlg::updateIdentityVisibility()
77
-@@ -884,6 +889,10 @@ void PsiChatDlg::chatEditCreated()
78
-   tabCompletion.setTextEdit(chatEdit());
79
- }
80
- 
81
-+void PsiChatDlg::doMinimize()
82
-+{
83
-+  window()->showMinimized();
84
-+}
85
- 
86
- void PsiChatDlg::doSend() {
87
-   tabCompletion.reset();
88
---- psi.orig/src/psichatdlg.h
89
-+++ psi/src/psichatdlg.h
90
-@@ -36,6 +36,7 @@ private slots:
91
-   void toggleSmallChat();
92
-   void doClearButton();
93
-   void doMiniCmd();
94
-+  void doMinimize();
95
-   void addContact();
96
-   void buildMenu();
97
-   void updateCounter();
98
-@@ -85,6 +86,7 @@ private:
99
- 
100
-   ActionList* actions_;
101
-   QAction *act_mini_cmd_;
102
-+  QAction *act_minimize_;
103
-   TypeAheadFindBar *typeahead_;
104
- 
105
-   ActionLineEdit *le_autojid;
106
psi-plus-main-20160309.tar.xz/patches/0170-psi-add-bookmarks-to-join-conference-dlg.diff Deleted
175
 
1
@@ -1,173 +0,0 @@
2
---- psi.orig/src/mucjoin.ui
3
-+++ psi/src/mucjoin.ui
4
-@@ -27,7 +27,7 @@
5
-    <item row="0" column="1">
6
-     <widget class="AccountsComboBox" name="cb_ident"/>
7
-    </item>
8
--   <item row="1" column="0">
9
-+   <item row="2" column="0">
10
-     <widget class="QLabel" name="TextLabel1_2">
11
-      <property name="text">
12
-       <string>Recent:</string>
13
-@@ -37,7 +37,7 @@
14
-      </property>
15
-     </widget>
16
-    </item>
17
--   <item row="1" column="1">
18
-+   <item row="2" column="1">
19
-     <widget class="QComboBox" name="cb_recent">
20
-      <property name="sizePolicy">
21
-       <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
22
-@@ -47,7 +47,7 @@
23
-      </property>
24
-     </widget>
25
-    </item>
26
--   <item row="2" column="0" colspan="2">
27
-+   <item row="4" column="0" colspan="2">
28
-     <widget class="QGroupBox" name="gb_info">
29
-      <property name="title">
30
-       <string>Room information</string>
31
-@@ -119,7 +119,7 @@
32
-      </layout>
33
-     </widget>
34
-    </item>
35
--   <item row="3" column="0" colspan="2">
36
-+   <item row="5" column="0" colspan="2">
37
-     <spacer>
38
-      <property name="orientation">
39
-       <enum>Qt::Vertical</enum>
40
-@@ -135,7 +135,7 @@
41
-      </property>
42
-     </spacer>
43
-    </item>
44
--   <item row="4" column="0" colspan="2">
45
-+   <item row="6" column="0" colspan="2">
46
-     <widget class="Line" name="Line1">
47
-      <property name="frameShape">
48
-       <enum>QFrame::HLine</enum>
49
-@@ -148,16 +148,29 @@
50
-      </property>
51
-     </widget>
52
-    </item>
53
--   <item row="5" column="0">
54
-+   <item row="7" column="0">
55
-     <widget class="BusyWidget" name="busy" native="true"/>
56
-    </item>
57
--   <item row="5" column="1">
58
-+   <item row="7" column="1">
59
-     <widget class="QDialogButtonBox" name="buttonBox">
60
-      <property name="standardButtons">
61
-       <set>QDialogButtonBox::Cancel</set>
62
-      </property>
63
-     </widget>
64
-    </item>
65
-+   <item row="1" column="0">
66
-+    <widget class="QLabel" name="label">
67
-+     <property name="text">
68
-+      <string>Bookmarks:</string>
69
-+     </property>
70
-+     <property name="alignment">
71
-+      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
72
-+     </property>
73
-+    </widget>
74
-+   </item>
75
-+   <item row="1" column="1">
76
-+    <widget class="QComboBox" name="cb_bookmarks"/>
77
-+   </item>
78
-   </layout>
79
-  </widget>
80
-  <layoutdefault spacing="6" margin="11"/>
81
---- psi.orig/src/mucjoindlg.cpp
82
-+++ psi/src/mucjoindlg.cpp
83
-@@ -29,6 +29,7 @@
84
- #include "mucjoindlg.h"
85
- #include "psicontactlist.h"
86
- #include "groupchatdlg.h"
87
-+#include "bookmarkmanager.h"
88
- 
89
- static const int nickConflictCode = 409;
90
- static const QString additionalSymbol = "_";
91
-@@ -70,6 +71,7 @@ MUCJoinDlg::MUCJoinDlg(PsiCon* psi, PsiA
92
- 
93
-   setWindowTitle(CAP(windowTitle()));
94
-   connect(ui_.cb_recent, SIGNAL(activated(int)), SLOT(recent_activated(int)));
95
-+  connect(ui_.cb_bookmarks, SIGNAL(activated(int)), SLOT(bookmarksActivated(int)));
96
-   if (!ui_.cb_recent->count()) {
97
-       ui_.cb_recent->setEnabled(false);
98
-       ui_.le_host->setFocus();
99
-@@ -77,6 +79,13 @@ MUCJoinDlg::MUCJoinDlg(PsiCon* psi, PsiA
100
-   else {
101
-       recent_activated(0);
102
-   }
103
-+  if (!ui_.cb_bookmarks->count()) {
104
-+      ui_.cb_bookmarks->setEnabled(false);
105
-+      ui_.le_host->setFocus();
106
-+  }
107
-+  else {
108
-+      bookmarksActivated(0);
109
-+  }
110
- 
111
-   setWidgetsEnabled(true);
112
-   adjustSize();
113
-@@ -114,6 +123,8 @@ void MUCJoinDlg::updateIdentity(PsiAccou
114
-       return;
115
-   }
116
- 
117
-+  updateBookmarks(account_);
118
-+
119
-   connect(account_, SIGNAL(disconnected()), this, SLOT(pa_disconnected()));
120
- }
121
- 
122
-@@ -142,6 +153,33 @@ void MUCJoinDlg::recent_activated(int x)
123
-   ui_.le_nick->setText(jid.resource());
124
- }
125
- 
126
-+void MUCJoinDlg::bookmarksActivated(int x)
127
-+{
128
-+  Jid jid(ui_.cb_bookmarks->itemData(x).toString());
129
-+  if (jid.full().isEmpty())
130
-+      return;
131
-+
132
-+  ui_.le_host->setText(jid.domain());
133
-+  ui_.le_room->setText(jid.node());
134
-+  ui_.le_nick->setText(jid.resource());
135
-+}
136
-+
137
-+void MUCJoinDlg::updateBookmarks(PsiAccount *pa)
138
-+{
139
-+  ui_.cb_bookmarks->clear();
140
-+  if (pa && pa->bookmarkManager()->isAvailable()) {
141
-+      ui_.cb_bookmarks->setEnabled(true);
142
-+      foreach(ConferenceBookmark c, pa->bookmarkManager()->conferences()) {
143
-+          Jid jid = c.jid().withResource(c.nick());
144
-+          ui_.cb_bookmarks->addItem(JIDUtil::toString(jid, false));
145
-+          ui_.cb_bookmarks->setItemData(ui_.cb_bookmarks->count()-1, QVariant(jid.full()));
146
-+      }
147
-+  }
148
-+  else {
149
-+      ui_.cb_bookmarks->setEnabled(false);
150
-+  }
151
-+}
152
-+
153
- void MUCJoinDlg::doJoin(MucJoinReason r)
154
- {
155
-   if (!account_ || !account_->checkConnected(this))
156
-@@ -197,6 +235,7 @@ void MUCJoinDlg::setWidgetsEnabled(bool
157
- {
158
-   ui_.cb_ident->setEnabled(enabled);
159
-   ui_.cb_recent->setEnabled(enabled && ui_.cb_recent->count() > 0);
160
-+  ui_.cb_bookmarks->setEnabled(enabled && ui_.cb_bookmarks->count() > 0);
161
-   ui_.gb_info->setEnabled(enabled);
162
-   joinButton_->setEnabled(enabled);
163
- }
164
---- psi.orig/src/mucjoindlg.h
165
-+++ psi/src/mucjoindlg.h
166
-@@ -68,6 +68,8 @@ private slots:
167
-   void updateIdentityVisibility();
168
-   void pa_disconnected();
169
-   void recent_activated(int);
170
-+  void bookmarksActivated(int);
171
-+  void updateBookmarks(PsiAccount *pa);
172
- 
173
- private:
174
-   Ui::MUCJoin ui_;
175
psi-plus-main-20160309.tar.xz/patches/0180-psiplus-decorate-windows.diff Deleted
201
 
1
@@ -1,1109 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -482,6 +482,7 @@ QLineEdit#le_status_text {
5
-               </sounds>
6
-               <successful-subscription type="bool">true</successful-subscription>
7
-           </notifications>
8
-+          <decorate-windows type="bool">true</decorate-windows>
9
-           <service-discovery>
10
-               <automatically-get-info type="bool">false</automatically-get-info>
11
-               <automatically-get-items type="bool">false</automatically-get-items>
12
---- psi.orig/src/groupchatdlg.cpp
13
-+++ psi/src/groupchatdlg.cpp
14
-@@ -87,6 +87,7 @@
15
- #include "mcmdmanager.h"
16
- #include "lastactivitytask.h"
17
- #include "psirichtext.h"
18
-+#include "psiwindowheader.h"
19
- 
20
- #include "mcmdsimplesite.h"
21
- 
22
-@@ -247,9 +248,13 @@ public:
23
- 
24
-   int logSize;
25
-   int rosterSize;
26
-+
27
- public:
28
-   bool trackBar;
29
- 
30
-+  bool tabmode;
31
-+  PsiWindowHeader *winHeader_;
32
-+
33
- public:
34
-   ChatEdit* mle() const { return dlg->ui_.mle->chatEdit(); }
35
-   ChatView* te_log() const { return dlg->ui_.log; }
36
-@@ -677,6 +682,14 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, con
37
-   ui_.lb_ident->setAccount(account());
38
-   ui_.lb_ident->setShowJid(false);
39
-   ui_.log->setSessionData(true, jid().full(), jid().full()); //FIXME change conference name
40
-+  d->tabmode = PsiOptions::instance()->getOption("options.ui.tabs.use-tabs").toBool();
41
-+  setWindowBorder(PsiOptions::instance()->getOption("options.ui.decorate-windows").toBool());
42
-+  if (!d->tabmode && !isBorder()) {
43
-+      d->winHeader_ = new PsiWindowHeader(this);
44
-+      ui_.vboxLayout1->insertWidget(0, d->winHeader_);
45
-+  }
46
-+  setMargins();
47
-+
48
- #ifdef WEBKIT
49
-   ui_.log->setAccount(account());
50
- #endif
51
-@@ -2185,6 +2198,25 @@ void GCMainDlg::resizeEvent(QResizeEvent
52
-   QTimer::singleShot(0, this, SLOT(horizSplitterMoved()));
53
- }
54
- 
55
-+void GCMainDlg::setMargins()
56
-+{
57
-+  ui_.vboxLayout->setContentsMargins(0,0,0,0);
58
-+  ui_.vboxLayout2->setContentsMargins(4,0,4,4);
59
-+  if (!d->tabmode) {
60
-+      ui_.hboxLayout->setContentsMargins(4,0,4,0);
61
-+      if (!isBorder()) {
62
-+          ui_.vboxLayout1->setContentsMargins(0,0,0,0);
63
-+      }
64
-+      else {
65
-+          ui_.vboxLayout1->setContentsMargins(0,4,0,0);
66
-+      }
67
-+  }
68
-+  else {
69
-+      ui_.vboxLayout1->setContentsMargins(4,4,4,0);
70
-+      ui_.hboxLayout->setContentsMargins(2,0,4,0);
71
-+  }
72
-+}
73
-+
74
- //----------------------------------------------------------------------------
75
- // GCFindDlg
76
- //----------------------------------------------------------------------------
77
---- psi.orig/src/groupchatdlg.h
78
-+++ psi/src/groupchatdlg.h
79
-@@ -166,6 +166,8 @@ private:
80
- 
81
-   inline XMPP::Jid jidForNick(const QString &nick) const;
82
- 
83
-+  void setMargins();
84
-+
85
- };
86
- 
87
- class GCFindDlg : public QDialog
88
---- psi.orig/src/mainwin.cpp
89
-+++ psi/src/mainwin.cpp
90
-@@ -135,6 +135,7 @@ public:
91
-   int tabsSize;
92
-   int rosterSize;
93
-   bool isLeftRoster;
94
-+  bool isHide;
95
- 
96
-   PopupAction* optionsButton, *statusButton;
97
-   IconActionGroup* statusGroup, *viewGroups;
98
-@@ -584,6 +585,9 @@ MainWin::MainWin(bool _onTop, bool _asTo
99
-       connect(sp_ss, SIGNAL(triggered()), SLOT(avcallConfig()));*/
100
-   optionChanged("options.ui.contactlist.css");
101
- 
102
-+  setWindowBorder(PsiOptions::instance()->getOption("options.ui.decorate-windows").toBool());
103
-+  setMouseTracking(!isBorder());
104
-+
105
-   reinitAutoHide();
106
- }
107
- 
108
-@@ -623,6 +627,11 @@ void MainWin::optionChanged(const QStrin
109
-           setStyleSheet(css);
110
-       }
111
-   }
112
-+  else if (option == "options.ui.decorate-windows") {
113
-+      setWindowBorder(PsiOptions::instance()->getOption("options.ui.decorate-windows").toBool());
114
-+      setMouseTracking(!isBorder());
115
-+      show();
116
-+  }
117
- }
118
- 
119
- void MainWin::registerAction( IconAction* action )
120
-@@ -812,13 +821,19 @@ void MainWin::setWindowOpts(bool _onTop,
121
-   d->onTop = _onTop;
122
-   d->asTool = _asTool;
123
- 
124
--  Qt::WindowFlags flags = 0;
125
-+  Qt::WindowFlags flags = windowFlags();
126
-   if(d->onTop) {
127
-       flags |= Qt::WindowStaysOnTopHint;
128
-   }
129
-+  else {
130
-+      flags &= ~Qt::WindowStaysOnTopHint;
131
-+  }
132
-   if(d->asTool) {
133
-       flags |= Qt::Tool | TOOLW_FLAGS;
134
-   }
135
-+  else {
136
-+      flags &= ~Qt::Tool;
137
-+  }
138
- 
139
-   setWindowFlags(flags);
140
-   show();
141
-@@ -1783,6 +1798,7 @@ void MainWin::statusClicked(int x)
142
- {
143
-   if(x == Qt::MidButton) {
144
-       recvNextEvent();
145
-+      d->isHide = false;
146
-   }
147
- }
148
- 
149
-@@ -2036,4 +2052,32 @@ void MainWin::resizeEvent(QResizeEvent *
150
-   }
151
- }
152
- 
153
-+void MainWin::mousePressEvent(QMouseEvent *e)
154
-+{
155
-+  if (e->button() == Qt::MidButton && !isBorder()) {
156
-+      d->isHide = true;
157
-+  }
158
-+
159
-+  AdvancedWidget<QMainWindow>::mousePressEvent(e);
160
-+}
161
-+
162
-+void MainWin::mouseReleaseEvent(QMouseEvent *e)
163
-+{
164
-+  if (e->button() == Qt::MidButton && !isBorder() && d->isHide) {
165
-+      d->isHide = false;
166
-+      if (e->globalPos().x() >= geometry().left()
167
-+          && e->globalPos().x() <= geometry().right()
168
-+          && e->globalPos().y() >= geometry().top()
169
-+          && e->globalPos().y() <= geometry().bottom()){
170
-+          if (d->asTool){
171
-+              d->mainWin->trayHide();
172
-+          } else {
173
-+              setWindowState(windowState() | Qt::WindowMinimized);
174
-+          }
175
-+      }
176
-+  }
177
-+
178
-+  AdvancedWidget<QMainWindow>::mouseReleaseEvent(e);
179
-+}
180
-+
181
- //#endif
182
---- psi.orig/src/mainwin.h
183
-+++ psi/src/mainwin.h
184
-@@ -26,6 +26,7 @@
185
- #include <QList>
186
- #include <QString>
187
- #include <QStringList>
188
-+#include <QMouseEvent>
189
- 
190
- #include "advwidget.h"
191
- #include "xmpp_status.h"
192
-@@ -88,6 +89,8 @@ protected:
193
- #ifdef Q_OS_WIN
194
-   bool winEvent(MSG *, long *);
195
- #endif
196
-+  void mousePressEvent(QMouseEvent *e);
197
-+  void mouseReleaseEvent(QMouseEvent *e);
198
- 
199
- signals:
200
-   void statusChanged(XMPP::Status::Type);
201
psi-plus-main-20160309.tar.xz/patches/0190-psi-colors-for-tabs.diff Deleted
34
 
1
@@ -1,32 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -403,6 +403,8 @@ QLineEdit#le_status_text {
5
-                   <chat>
6
-                       <link-color type="QColor">#0000ff</link-color>
7
-                       <mailto-color type="QColor">#0000ff</mailto-color>
8
-+                      <composing-color type="QColor">darkGreen</composing-color>
9
-+                      <unread-message-color type="QColor">red</unread-message-color>
10
-                   </chat>
11
-                   <passive-popup>
12
-                       <border type="QColor">#5297f9</border>
13
---- psi.orig/src/tabs/tabdlg.cpp
14
-+++ psi/src/tabs/tabdlg.cpp
15
-@@ -653,15 +653,15 @@ void TabDlg::updateTab(TabbableWidget* c
16
-   //now set text colour based upon whether there are new messages/composing etc
17
- 
18
-   if (chat->state() == TabbableWidget::StateComposing) {
19
--      tabWidget_->setTabTextColor(chat, Qt::darkGreen);
20
-+      tabWidget_->setTabTextColor(chat, PsiOptions::instance()->getOption("options.ui.look.colors.chat.composing-color").value<QColor>());
21
-       tabWidget_->setTabIcon(chat, IconsetFactory::iconPtr("psi/typing")->icon());
22
-   }
23
-   else if (chat->unreadMessageCount()) {
24
--      tabWidget_->setTabTextColor(chat, Qt::red);
25
-+      tabWidget_->setTabTextColor(chat, PsiOptions::instance()->getOption("options.ui.look.colors.chat.unread-message-color").value<QColor>());
26
-       tabWidget_->setTabIcon(chat, IconsetFactory::iconPtr("psi/chat")->icon());
27
-   }
28
-   else {
29
--      tabWidget_->setTabTextColor(chat, palette().windowText().color());
30
-+      tabWidget_->setTabTextColor(chat, palette().color(QPalette::Text));
31
-       tabWidget_->setTabIcon(chat, chat->icon());
32
-   }
33
-   updateCaption();
34
psi-plus-main-20160309.tar.xz/patches/0200-psi-chatview-quote-feature.diff Deleted
201
 
1
@@ -1,408 +0,0 @@
2
---- psi.orig/src/chatview_te.cpp
3
-+++ psi/src/chatview_te.cpp
4
-@@ -35,6 +35,8 @@
5
- #include <QTimer>
6
- #include <QKeyEvent>
7
- #include <QUrl>
8
-+#include <QMenu>
9
-+#include <QTextDocumentFragment>
10
- 
11
- static const char *informationalColorOpt = "options.ui.look.colors.messages.informational";
12
- 
13
-@@ -59,6 +61,12 @@ ChatView::ChatView(QWidget *parent)
14
-   connect(this, SIGNAL(selectionChanged()), SLOT(autoCopy()));
15
-   connect(this, SIGNAL(cursorPositionChanged()), SLOT(autoCopy()));
16
- #endif
17
-+  actQuote_ = new QAction(tr("Quote"), this);
18
-+  actQuote_->setEnabled(false);
19
-+  actQuote_->setShortcut(QKeySequence(tr("Ctrl+S")));
20
-+  addAction(actQuote_);
21
-+  connect(actQuote_, SIGNAL(triggered()), SLOT(quoteEvent()));
22
-+  connect(this, SIGNAL(selectionChanged()), SLOT(changeActQuoteState()));
23
- 
24
-   useMessageIcons_ = PsiOptions::instance()->getOption("options.ui.chat.use-message-icons").toBool();
25
-   if (useMessageIcons_) {
26
-@@ -135,10 +143,20 @@ void ChatView::contextMenuEvent(QContext
27
-       e->accept();
28
-   }
29
-   else {
30
--      PsiTextView::contextMenuEvent(e);
31
-+      QMenu *menu = createStandardContextMenu(e->pos());
32
-+      menu->exec(e->globalPos());
33
-+      delete menu;
34
-+      e->accept();
35
-   }
36
- }
37
- 
38
-+QMenu* ChatView::createStandardContextMenu(const QPoint &position)
39
-+{
40
-+  QMenu *menu = PsiTextView::createStandardContextMenu(position);
41
-+  menu->addAction(actQuote_);
42
-+  return menu;
43
-+}
44
-+
45
- void ChatView::addLogIconsResources()
46
- {
47
-   document()->addResource(QTextDocument::ImageResource, QUrl("icon:log_icon_receive"), logIconReceive);
48
-@@ -203,6 +221,24 @@ void ChatView::autoCopy()
49
- }
50
- 
51
- /**
52
-+ * Make quote from any selected text and paste it in chat window
53
-+ */
54
-+
55
-+void ChatView::quoteEvent()
56
-+{
57
-+  emit quote(getPlainText());
58
-+}
59
-+
60
-+/**
61
-+ * Enable or disable actQuote_ in relations from hasSelection()
62
-+ */
63
-+
64
-+void ChatView::changeActQuoteState()
65
-+{
66
-+  actQuote_->setEnabled(textCursor().hasSelection());
67
-+}
68
-+
69
-+/**
70
-  * Handle KeyPress events that happen in ChatEdit widget. This is used
71
-  * to 'fix' the copy shortcut.
72
-  * \param object object that should receive the event
73
---- psi.orig/src/chatview_te.h
74
-+++ psi/src/chatview_te.h
75
-@@ -47,6 +47,7 @@ public:
76
-   QSize sizeHint() const;
77
-   void clear();
78
-   void contextMenuEvent(QContextMenuEvent *e);
79
-+  QMenu* createStandardContextMenu(const QPoint &position);
80
- 
81
-   void init();
82
-   void setDialog(QWidget* dialog);
83
-@@ -85,12 +86,15 @@ protected:
84
- 
85
- protected slots:
86
-   void autoCopy();
87
-+  void quoteEvent();
88
-+  void changeActQuoteState();
89
- 
90
- private slots:
91
-   void slotScroll();
92
- 
93
- signals:
94
-   void showNM(const QString&);
95
-+  void quote(const QString &text);
96
- 
97
- private:
98
-   bool isMuc_;
99
-@@ -109,6 +113,7 @@ private:
100
-   QPixmap logIconDeliveredPgp;
101
-   QPixmap logIconTime;
102
-   QPixmap logIconInfo;
103
-+  QAction *actQuote_;
104
- };
105
- 
106
- #endif
107
---- psi.orig/src/groupchatdlg.cpp
108
-+++ psi/src/groupchatdlg.cpp
109
-@@ -881,6 +881,7 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, con
110
-   invalidateTab();
111
-   setConnecting();
112
- 
113
-+  connect(ui_.log->textWidget(), SIGNAL(quote(const QString &)), ui_.mle->chatEdit(), SLOT(insertAsQuote(const QString &)));
114
-   connect(pa->avatarFactory(), SIGNAL(avatarChanged(Jid)), SLOT(avatarUpdated(Jid)));
115
- }
116
- 
117
---- psi.orig/src/msgmle.cpp
118
-+++ psi/src/msgmle.cpp
119
-@@ -33,6 +33,7 @@
120
- #include <QTextDocument>
121
- #include <QTimer>
122
- #include <QMimeData>
123
-+#include <QClipboard>
124
- 
125
- #include "shortcutmanager.h"
126
- #include "spellchecker/spellhighlighter.h"
127
-@@ -93,6 +94,13 @@ void ChatEdit::initActions()
128
-   act_showMessageLast= new QAction(this);
129
-   addAction(act_showMessageLast);
130
-   connect(act_showMessageLast, SIGNAL(triggered()), SLOT(showHistoryMessageLast()));
131
-+
132
-+  QClipboard *clipboard = QApplication::clipboard();
133
-+  actPasteAsQuote_ = new QAction(tr("Paste as Quotation"), this);
134
-+  actPasteAsQuote_->setEnabled(clipboard->mimeData()->hasText());
135
-+  addAction(actPasteAsQuote_);
136
-+  connect(actPasteAsQuote_, SIGNAL(triggered()), SLOT(pasteAsQuote()));
137
-+  connect(clipboard, SIGNAL(dataChanged()), SLOT(changeActPasteAsQuoteState()));
138
- }
139
- 
140
- void ChatEdit::setShortcuts()
141
-@@ -119,6 +127,13 @@ void ChatEdit::setFont(const QFont &f)
142
-   controller_->setFont(f);
143
- }
144
- 
145
-+QMenu* ChatEdit::createStandardContextMenu(const QPoint &position)
146
-+{
147
-+  QMenu *menu = QTextEdit::createStandardContextMenu(position);
148
-+  menu->addAction(actPasteAsQuote_);
149
-+  return menu;
150
-+}
151
-+
152
- bool ChatEdit::checkSpellingGloballyEnabled()
153
- {
154
-   return (SpellChecker::instance()->available() && PsiOptions::instance()->getOption("options.ui.spell-check.enabled").toBool());
155
-@@ -223,8 +238,10 @@ void ChatEdit::contextMenuEvent(QContext
156
-       }
157
-   }
158
- 
159
--  // Do normal menu
160
--  QTextEdit::contextMenuEvent(e);
161
-+  // Do custom menu
162
-+  QMenu *menu = createStandardContextMenu(e->pos());
163
-+  menu->exec(e->globalPos());
164
-+  delete menu;
165
-   e->accept();
166
- }
167
- 
168
-@@ -299,6 +316,18 @@ void ChatEdit::showHistoryMessageNext()
169
-   }
170
- }
171
- 
172
-+void ChatEdit::changeActPasteAsQuoteState()
173
-+{
174
-+  QClipboard *clipboard = QApplication::clipboard();
175
-+  actPasteAsQuote_->setEnabled(clipboard->mimeData()->hasText());
176
-+}
177
-+
178
-+void ChatEdit::pasteAsQuote()
179
-+{
180
-+  QString text = QApplication::clipboard()->mimeData()->text();
181
-+  insertAsQuote(text);
182
-+}
183
-+
184
- void ChatEdit::showHistoryMessagePrev()
185
- {
186
-   if (!typedMsgsHistory.isEmpty() && typedMsgsIndex > 0) {
187
-@@ -408,6 +437,24 @@ void ChatEdit::setCssString(const QStrin
188
-   controller_->setCssString(css);
189
- }
190
- 
191
-+void ChatEdit::insertAsQuote(const QString &text)
192
-+{
193
-+  int pos =  textCursor().position();
194
-+  QString prevLine = toPlainText().left(pos - 1);
195
-+  prevLine = prevLine.mid(prevLine.lastIndexOf("\n") + 1);
196
-+
197
-+  QString quote = QString::fromUtf8("» ") + text;
198
-+  quote.replace("\n", QString::fromUtf8("\n» "));
199
-+
200
-+  // Check for previous quote and merge if true
201
psi-plus-main-20160309.tar.xz/patches/0210-psi-vert-splitter-position.diff Deleted
201
 
1
@@ -1,266 +0,0 @@
2
---- a/options/default.xml
3
-+++ b/options/default.xml
4
-@@ -123,6 +123,8 @@
5
-               <css type="QString" />
6
-               <hide-when-closing type="bool">false</hide-when-closing>
7
-               <status-with-priority comment="Show priority with status change" type="bool">false</status-with-priority>
8
-+              <log-height type="int">325</log-height>
9
-+              <chatedit-height type="int">10</chatedit-height>
10
-               <default-jid-mode comment="Default jid mode: barejid | auto" type="QString">barejid</default-jid-mode>
11
-               <default-jid-mode-ignorelist comment="Default autojid mode ignore list: jid1,jid2,..." type="QString"></default-jid-mode-ignorelist>
12
-           </chat>
13
---- a/src/chatsplitter.cpp
14
-+++ b/src/chatsplitter.cpp
15
-@@ -75,6 +75,15 @@ void ChatSplitter::setSizes(const QList<int>& list)
16
-       splitter_->setSizes(list);
17
- }
18
- 
19
-+QList<int> ChatSplitter::sizes()
20
-+{
21
-+  QList<int> list;
22
-+  if(splitter_)
23
-+      list = splitter_->sizes();
24
-+
25
-+  return list;
26
-+}
27
-+
28
- /**
29
-  * Moves \a child either to the real QSplitter, or adds it to the
30
-  * private layout.
31
-@@ -130,6 +139,8 @@ void ChatSplitter::updateLayout()
32
- 
33
-   foreach(QWidget* child, children_)
34
-       updateChildLayout(child);
35
-+
36
-+  connect(splitter_, SIGNAL(splitterMoved(int,int)), SIGNAL(splitterMoved(int,int)));
37
- }
38
- 
39
- /**
40
---- a/src/chatsplitter.h
41
-+++ b/src/chatsplitter.h
42
-@@ -35,6 +35,7 @@ public:
43
-   void setOrientation(Qt::Orientation orientation);
44
-   void addWidget(QWidget* widget);
45
-   void setSizes(const QList<int>& list);
46
-+  QList<int> sizes();
47
- 
48
- protected:
49
-   /**
50
-@@ -49,6 +50,9 @@ public slots:
51
- private slots:
52
-   void childDestroyed(QObject* obj);
53
- 
54
-+signals:
55
-+  void splitterMoved(int,int);
56
-+
57
- private:
58
-   void updateChildLayout(QWidget* child);
59
-   void updateLayout();
60
---- a/src/groupchatdlg.cpp
61
-+++ b/src/groupchatdlg.cpp
62
-@@ -249,6 +249,9 @@ public:
63
-   int logSize;
64
-   int rosterSize;
65
- 
66
-+  int logHeight;
67
-+  int chateditHeight;
68
-+
69
- public:
70
-   bool trackBar;
71
- 
72
-@@ -844,6 +847,7 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager)
73
-   ui_.tb_actions->setStyleSheet(" QToolButton::menu-indicator { image:none } ");
74
- 
75
-   connect(ui_.hsplitter, SIGNAL(splitterMoved(int,int)), this, SLOT(horizSplitterMoved()));
76
-+  connect(ui_.vsplitter, SIGNAL(splitterMoved(int,int)), this, SLOT(verticalSplitterMoved(int,int)));
77
- 
78
-   // resize the horizontal splitter
79
-   d->logSize = PsiOptions::instance()->getOption("options.ui.muc.log-width").toInt();
80
-@@ -861,10 +865,9 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager)
81
-       ui_.hsplitter->insertWidget(0, ui_.lv_users);  // Swap widgets
82
- 
83
-   // resize the vertical splitter
84
--  list.clear();
85
--  list << 324;
86
--  list << 10;
87
--  ui_.vsplitter->setSizes(list);
88
-+  d->logHeight = PsiOptions::instance()->getOption("options.ui.chat.log-height").toInt();
89
-+  d->chateditHeight = PsiOptions::instance()->getOption("options.ui.chat.chatedit-height").toInt();
90
-+  setVSplitterPosition(d->logHeight, d->chateditHeight);
91
- 
92
-   X11WM_CLASS("groupchat");
93
- 
94
-@@ -915,6 +918,26 @@ void GCMainDlg::horizSplitterMoved()
95
-   PsiOptions::instance()->setOption("options.ui.muc.roster-width", d->rosterSize);
96
- }
97
- 
98
-+void GCMainDlg::verticalSplitterMoved(int, int)
99
-+{
100
-+  QList<int> list = ui_.vsplitter->sizes();
101
-+  d->logHeight = list.first();
102
-+  d->chateditHeight = list.last();
103
-+  PsiOptions::instance()->setOption("options.ui.chat.log-height", d->logHeight);
104
-+  PsiOptions::instance()->setOption("options.ui.chat.chatedit-height", d->chateditHeight);
105
-+
106
-+  emit vSplitterMoved(d->logHeight, d->chateditHeight);
107
-+}
108
-+
109
-+void GCMainDlg::setVSplitterPosition(int log,int chat)
110
-+{
111
-+  QList<int> list;
112
-+  d->logHeight = log;
113
-+  d->chateditHeight = chat;
114
-+  list << log << chat;
115
-+  ui_.vsplitter->setSizes(list);
116
-+}
117
-+
118
- void GCMainDlg::doMinimize()
119
- {
120
-   window()->showMinimized();
121
---- a/src/groupchatdlg.h
122
-+++ b/src/groupchatdlg.h
123
-@@ -85,6 +85,7 @@ public:
124
-   virtual TabbableWidget::State state() const;
125
-   virtual int unreadMessageCount() const;
126
-   virtual QString desiredCaption() const;
127
-+  virtual void setVSplitterPosition(int log,int chat);
128
- 
129
- protected:
130
-   void setShortcuts();
131
-@@ -141,6 +142,7 @@ private slots:
132
- #endif
133
-   void chatEditCreated();
134
-   void horizSplitterMoved();
135
-+  void verticalSplitterMoved(int, int);
136
-   void doMinimize();
137
-   void avatarUpdated(const Jid& jid);
138
- 
139
---- a/src/psichatdlg.cpp
140
-+++ b/src/psichatdlg.cpp
141
-@@ -249,10 +249,11 @@ void PsiChatDlg::initUi()
142
- 
143
-   connect(account()->client()->capsManager(), SIGNAL(capsChanged(const Jid&)), SLOT(capsChanged(const Jid&)));
144
- 
145
--  QList<int> list;
146
--  list << 324;
147
--  list << 96;
148
--  ui_.splitter->setSizes(list);
149
-+  logHeight = PsiOptions::instance()->getOption("options.ui.chat.log-height").toInt();
150
-+  chateditHeight = PsiOptions::instance()->getOption("options.ui.chat.chatedit-height").toInt();
151
-+  setVSplitterPosition(logHeight, chateditHeight);
152
-+
153
-+  connect(ui_.splitter, SIGNAL(splitterMoved(int,int)), this, SLOT(verticalSplitterMoved(int,int)));
154
- 
155
-   smallChat_ = PsiOptions::instance()->getOption("options.ui.chat.use-small-chats").toBool();
156
-   ui_.pb_send->setIcon(IconsetFactory::icon("psi/action_button_send").icon());
157
-@@ -278,6 +279,26 @@ void PsiChatDlg::initUi()
158
-   unacked_messages = 0;
159
- }
160
- 
161
-+void PsiChatDlg::verticalSplitterMoved(int, int)
162
-+{
163
-+  QList<int> list = ui_.splitter->sizes();
164
-+  logHeight = list.first();
165
-+  chateditHeight = list.last();
166
-+  PsiOptions::instance()->setOption("options.ui.chat.log-height", logHeight);
167
-+  PsiOptions::instance()->setOption("options.ui.chat.chatedit-height", chateditHeight);
168
-+
169
-+  emit vSplitterMoved(logHeight, chateditHeight);
170
-+}
171
-+
172
-+void PsiChatDlg::setVSplitterPosition(int log,int chat)
173
-+{
174
-+  QList<int> list;
175
-+  logHeight = log;
176
-+  chateditHeight = chat;
177
-+  list << log << chat;
178
-+  ui_.splitter->setSizes(list);
179
-+}
180
-+
181
- void PsiChatDlg::updateCountVisibility()
182
- {
183
-   if (PsiOptions::instance()->getOption("options.ui.message.show-character-count").toBool() && !smallChat_) {
184
---- a/src/psichatdlg.h
185
-+++ b/src/psichatdlg.h
186
-@@ -23,6 +23,8 @@ class PsiChatDlg : public ChatDlg
187
- public:
188
-   PsiChatDlg(const Jid& jid, PsiAccount* account, TabManager* tabManager);
189
- 
190
-+  virtual void setVSplitterPosition(int log,int chat);
191
-+
192
- protected:
193
-   // reimplemented
194
-   void contextMenuEvent(QContextMenuEvent *);
195
-@@ -45,6 +47,7 @@ private slots:
196
-   void updateCountVisibility();
197
-   void updateContactAdding(PsiContact* c = 0);
198
-   void updateContactAdding(const Jid &j);
199
-+  void verticalSplitterMoved(int, int);
200
-   void contactChanged();
201
psi-plus-main-20160309.tar.xz/patches/0220-psi-auto-capitalizer.diff Deleted
201
 
1
@@ -1,239 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -110,6 +110,7 @@
5
-               </avatars>
6
-               <alert-for-already-open-chats type="bool">true</alert-for-already-open-chats>
7
-               <auto-popup type="bool">false</auto-popup>
8
-+              <auto-capitalize type="bool">false</auto-capitalize>
9
-               <delete-contents-after type="QString">never</delete-contents-after>
10
-               <raise-chat-windows-on-new-messages type="bool">false</raise-chat-windows-on-new-messages>
11
-               <switch-tab-on-new-messages type="bool">false</switch-tab-on-new-messages>
12
-@@ -606,6 +607,7 @@ QLineEdit#le_status_text {
13
-               <show-messageFirst type="QKeySequence" comment="Show first message" >Alt+End</show-messageFirst>
14
-               <show-messageNext type="QKeySequence" comment="Show next message" >Ctrl+Down</show-messageNext>
15
-               <show-messagePrev type="QKeySequence" comment="Show prev message" >Ctrl+Up</show-messagePrev>
16
-+              <change-case type="QKeySequence" comment="Change case of letters in the chat edit" >Ctrl+Alt+x</change-case>
17
-               <minimize type="QKeySequence" comment="Minimize active chat window"/>
18
-           </chat>
19
-           <contactlist comment="Shortcuts in the contactlist">
20
---- psi.orig/src/msgmle.cpp
21
-+++ psi/src/msgmle.cpp
22
-@@ -41,6 +41,126 @@
23
- #include "psioptions.h"
24
- #include "htmltextcontroller.h"
25
- 
26
-+#include "qdebug.h"
27
-+
28
-+//----------------------------------------------------------------------------
29
-+// CapitalLettersController
30
-+//----------------------------------------------------------------------------
31
-+
32
-+class CapitalLettersController : public QObject
33
-+{
34
-+  Q_OBJECT
35
-+public:
36
-+  CapitalLettersController(QTextEdit* parent)
37
-+      : QObject()
38
-+      , te_(parent)
39
-+      , enabled_(true)
40
-+  {
41
-+      connect(te_->document(), SIGNAL(contentsChange(int,int,int)), SLOT(textChanged(int,int,int)));
42
-+  }
43
-+
44
-+  virtual ~CapitalLettersController() {};
45
-+
46
-+  void setAutoCapitalizeEnabled(bool enabled)
47
-+  {
48
-+      enabled_ = enabled;
49
-+  }
50
-+
51
-+private:
52
-+  void capitalizeChar(int pos, QChar c)
53
-+  {
54
-+      changeChar(pos, c.toUpper());
55
-+  }
56
-+
57
-+  void decapitalizeChar(int pos, QChar c)
58
-+  {
59
-+      changeChar(pos, c.toLower());
60
-+  }
61
-+
62
-+  void changeChar(int pos, QChar c)
63
-+  {
64
-+      QTextCursor cur = te_->textCursor();
65
-+      cur.setPosition(pos+1);
66
-+      const QTextCharFormat cf = cur.charFormat();
67
-+      cur.deletePreviousChar();
68
-+      cur.setCharFormat(cf);
69
-+      cur.insertText(c);
70
-+  }
71
-+
72
-+public slots:
73
-+  void textChanged(int pos, int /*charsRemoved*/, int charsAdded)
74
-+  {
75
-+      if(enabled_) {
76
-+          if(charsAdded == 0) {
77
-+              return;
78
-+          }
79
-+          if(!te_->textCursor().atEnd()) { //Editing the letter in the middle of the text
80
-+              return;
81
-+          }
82
-+          bool capitalizeNext_ = false;
83
-+
84
-+          if(pos == 0 && charsAdded < 3) { //the first letter after the previous message was sent
85
-+              capitalizeNext_ = true;
86
-+          }
87
-+          else if (charsAdded > 1) { //Insert a piece of text
88
-+              return;
89
-+          }
90
-+          else {
91
-+              QString txt = te_->toPlainText();
92
-+              QRegExp capitalizeAfter("(?:^[^.][.]+\\s+)|(?:\\s*[^.]{2,}[.]+\\s+)|(?:[!?]\\s+)");
93
-+              int index = txt.lastIndexOf(capitalizeAfter);
94
-+              if(index != -1 && index == pos-capitalizeAfter.matchedLength()) {
95
-+                  capitalizeNext_ = true;
96
-+              }
97
-+          }
98
-+
99
-+          if(capitalizeNext_) {
100
-+              QChar ch = te_->document()->characterAt(pos);
101
-+              if(!ch.isLetter() || !ch.isLower()) {
102
-+                  return;
103
-+              }
104
-+              else {
105
-+                  capitalizeChar(pos, ch);
106
-+              }
107
-+          }
108
-+      }
109
-+  }
110
-+
111
-+  void changeCase()
112
-+  {
113
-+      bool tmpEnabled = enabled_;
114
-+      enabled_ = false;
115
-+      QTextCursor oldCur = te_->textCursor();
116
-+      int pos = oldCur.position();
117
-+      int begin = 0;
118
-+      int end = te_->document()->characterCount();
119
-+      if(oldCur.hasSelection()) {
120
-+          begin = oldCur.selectionStart();
121
-+          end = oldCur.selectionEnd();
122
-+      }
123
-+      for(; begin < end; begin++) {
124
-+          QChar ch = te_->document()->characterAt(begin);
125
-+          if(!ch.isLetter()) {
126
-+              continue;
127
-+          }
128
-+
129
-+          if(ch.isLower()) {
130
-+              capitalizeChar(begin, ch);
131
-+          }
132
-+          else {
133
-+              decapitalizeChar(begin, ch);
134
-+          }
135
-+      }
136
-+      oldCur.setPosition(pos);
137
-+      te_->setTextCursor(oldCur);
138
-+      enabled_ = tmpEnabled;
139
-+  }
140
-+
141
-+private:
142
-+  QTextEdit* te_;
143
-+  bool enabled_;
144
-+};
145
-+
146
- 
147
- //----------------------------------------------------------------------------
148
- // ChatEdit
149
-@@ -52,6 +172,7 @@ ChatEdit::ChatEdit(QWidget *parent)
150
-   , spellhighlighter_(0)
151
- {
152
-   controller_ = new HTMLTextController(this);
153
-+  capitalizer_ = new CapitalLettersController(this);
154
- 
155
-   setWordWrapMode(QTextOption::WordWrap);
156
-   setAcceptRichText(false);
157
-@@ -68,6 +189,7 @@ ChatEdit::ChatEdit(QWidget *parent)
158
- 
159
-   initActions();
160
-   setShortcuts();
161
-+  optionsChanged();
162
- }
163
- 
164
- ChatEdit::~ChatEdit()
165
-@@ -75,6 +197,12 @@ ChatEdit::~ChatEdit()
166
-   clearMessageHistory();
167
-   delete spellhighlighter_;
168
-   delete controller_;
169
-+  delete capitalizer_;
170
-+}
171
-+
172
-+CapitalLettersController * ChatEdit::capitalizer()
173
-+{
174
-+  return capitalizer_;
175
- }
176
- 
177
- void ChatEdit::initActions()
178
-@@ -101,6 +229,10 @@ void ChatEdit::initActions()
179
-   addAction(actPasteAsQuote_);
180
-   connect(actPasteAsQuote_, SIGNAL(triggered()), SLOT(pasteAsQuote()));
181
-   connect(clipboard, SIGNAL(dataChanged()), SLOT(changeActPasteAsQuoteState()));
182
-+
183
-+  act_changeCase = new QAction(this);
184
-+  addAction(act_changeCase);
185
-+  connect(act_changeCase, SIGNAL(triggered()), capitalizer_, SLOT(changeCase()));
186
- }
187
- 
188
- void ChatEdit::setShortcuts()
189
-@@ -109,6 +241,7 @@ void ChatEdit::setShortcuts()
190
-   act_showMessageNext->setShortcuts(ShortcutManager::instance()->shortcuts("chat.show-messageNext"));
191
-   act_showMessageFirst->setShortcuts(ShortcutManager::instance()->shortcuts("chat.show-messageFirst"));
192
-   act_showMessageLast->setShortcuts(ShortcutManager::instance()->shortcuts("chat.show-messageLast"));
193
-+  act_changeCase->setShortcuts(ShortcutManager::instance()->shortcuts("chat.change-case"));
194
- }
195
- 
196
- void ChatEdit::setDialog(QWidget* dialog)
197
-@@ -298,6 +431,7 @@ void ChatEdit::addToDictionary()
198
- void ChatEdit::optionsChanged()
199
- {
200
-   setCheckSpelling(checkSpellingGloballyEnabled());
201
psi-plus-main-20160309.tar.xz/patches/0230-psi-autostart.diff Deleted
141
 
1
@@ -1,139 +0,0 @@
2
---- psi.orig/src/applicationinfo.cpp
3
-+++ psi/src/applicationinfo.cpp
4
-@@ -383,3 +383,28 @@ QString ApplicationInfo::currentProfileD
5
- {
6
-   return pathToProfile(activeProfile, type);
7
- }
8
-+
9
-+QString ApplicationInfo::desktopFile()
10
-+{
11
-+  QString dFile;
12
-+  const QString execFileName = QFileInfo(qApp->applicationFilePath()).fileName();
13
-+  const QString desktopFile = QString("/usr/share/applications/%1.desktop").arg(execFileName);
14
-+  QFile f(desktopFile);
15
-+  if(f.open(QIODevice::ReadOnly)) {
16
-+      dFile = QString::fromUtf8(f.readAll());
17
-+  }
18
-+  else {
19
-+      dFile = "[Desktop Entry]\n";
20
-+      dFile += "Version=1.0\n";
21
-+      dFile += "Type=Application\n";
22
-+      dFile += QString("Name=%1\n").arg(name());
23
-+      dFile += "GenericName=Jabber Client\n";
24
-+      dFile += "Comment=Communicate over the Jabber network\n";
25
-+      dFile += QString("Icon=%1\n").arg(execFileName);
26
-+      dFile += QString("Exec=%1\n").arg(execFileName);
27
-+      dFile += "Terminal=false\n";
28
-+      dFile += "Categories=Network;InstantMessaging;Qt;";
29
-+  }
30
-+
31
-+  return dFile;
32
-+}
33
---- psi.orig/src/applicationinfo.h
34
-+++ psi/src/applicationinfo.h
35
-@@ -44,6 +44,9 @@ public:
36
-   static QString optionsNS();
37
-   static QString storageNS();
38
-   static QString fileCacheNS();
39
-+
40
-+  // Common
41
-+  static QString desktopFile();
42
- };
43
- 
44
- #endif
45
---- psi.orig/src/options/opt_application.cpp
46
-+++ psi/src/options/opt_application.cpp
47
-@@ -13,9 +13,17 @@
48
- #include "qsettings.h"
49
- #include <QList>
50
- #include <QMessageBox>
51
-+#include <QDir>
52
- 
53
- #include "ui_opt_application.h"
54
- 
55
-+#ifdef Q_OS_WIN
56
-+  static const QString regString = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run";
57
-+#endif
58
-+#ifdef HAVE_X11
59
-+  static const QString psiAutoStart = "/.config/autostart/psi-plus.desktop";
60
-+#endif
61
-+
62
- class OptApplicationUI : public QWidget, public Ui::OptApplication
63
- {
64
- public:
65
-@@ -60,6 +68,7 @@ QWidget *OptionsTabApplication::widget()
66
- 
67
- #ifdef Q_OS_MAC
68
-   d->gb_docklet->hide();
69
-+  d->ck_auto_load->hide();
70
- #endif
71
- 
72
-   if (!haveAutoUpdater_) {
73
-@@ -126,6 +135,29 @@ void OptionsTabApplication::applyOptions
74
-   }
75
-   QSettings s(ApplicationInfo::homeDir(ApplicationInfo::ConfigLocation) + "/psirc", QSettings::IniFormat);
76
-   s.setValue("last_lang", itemData);
77
-+
78
-+  //Auto-load
79
-+#ifdef Q_OS_WIN
80
-+  QSettings set(regString, QSettings::NativeFormat);
81
-+  if(d->ck_auto_load->isChecked()) {
82
-+      set.setValue(ApplicationInfo::name(), QDir::toNativeSeparators(qApp->applicationFilePath()));
83
-+  }
84
-+  else {
85
-+      set.remove(ApplicationInfo::name());
86
-+  }
87
-+#endif
88
-+#ifdef HAVE_X11
89
-+  QDir home = QDir::home();
90
-+  if (!home.exists(".config/autostart")) {
91
-+      home.mkpath(".config/autostart");
92
-+  }
93
-+  QFile f(home.absolutePath() + psiAutoStart);
94
-+  if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) {
95
-+      const QString contents = ApplicationInfo::desktopFile().trimmed();
96
-+      f.write(contents.toUtf8());
97
-+      f.write(QString("\nHidden=%1").arg(d->ck_auto_load->isChecked() ? "false\n" : "true\n").toUtf8());
98
-+  }
99
-+#endif
100
- }
101
- 
102
- void OptionsTabApplication::restoreOptions()
103
-@@ -164,6 +196,21 @@ void OptionsTabApplication::restoreOptio
104
-       d->cb_lang->setCurrentIndex( 0 );
105
-   else if(!curLang.isEmpty() && lang.contains(curLang) )
106
-       d->cb_lang->setCurrentIndex( d->cb_lang->findText(vList.get(curLang)) );
107
-+
108
-+  //Auto-load
109
-+#ifdef Q_OS_WIN
110
-+  QSettings set(regString, QSettings::NativeFormat);
111
-+  const QString path = set.value(ApplicationInfo::name()).toString();
112
-+  d->ck_auto_load->setChecked( (path == QDir::toNativeSeparators(qApp->applicationFilePath())) );
113
-+#endif
114
-+#ifdef HAVE_X11
115
-+  QFile desktop(QDir::homePath() + psiAutoStart);
116
-+  if (desktop.open(QIODevice::ReadOnly)
117
-+      && QString(desktop.readAll()).contains(QRegExp("\\bhidden\\s*=\\s*false", Qt::CaseInsensitive)))
118
-+  {
119
-+      d->ck_auto_load->setChecked(true);
120
-+  }
121
-+#endif
122
- }
123
- 
124
- void OptionsTabApplication::doEnableQuitOnClose(int state)
125
---- psi.orig/src/options/opt_application.ui
126
-+++ psi/src/options/opt_application.ui
127
-@@ -14,6 +14,13 @@
128
-   </property>
129
-   <layout class="QVBoxLayout" >
130
-    <item>
131
-+    <widget class="QCheckBox" name="ck_auto_load">
132
-+     <property name="text">
133
-+      <string>Automatically launch application when OS starts</string>
134
-+     </property>
135
-+    </widget>
136
-+   </item>
137
-+   <item>
138
-     <widget class="QCheckBox" name="ck_docklet" >
139
-      <property name="text" >
140
-       <string>Enable docklet</string>
141
psi-plus-main-20160309.tar.xz/patches/0240-psi-fix-psitooltiphandler.diff Deleted
49
 
1
@@ -1,47 +0,0 @@
2
---- psi.orig/src/widgets/psitooltip.cpp
3
-+++ psi/src/widgets/psitooltip.cpp
4
-@@ -40,7 +40,6 @@ class PsiToolTipHandler : public QObject
5
- public:
6
-   static PsiToolTipHandler *getInstance()
7
-   {
8
--      static PsiToolTipHandler *instance = 0;
9
-       if (!instance)
10
-           instance = new PsiToolTipHandler();
11
- 
12
-@@ -49,8 +48,10 @@ public:
13
- 
14
-   void install(QWidget *widget)
15
-   {
16
-+      if(!watchedWidgets_.contains(widget)) {
17
-+          connect(widget, SIGNAL(destroyed(QObject*)), SLOT(widgetDestroyed(QObject*)));
18
-+      }
19
-       watchedWidgets_[widget] = true;
20
--      connect(widget, SIGNAL(destroyed(QObject*)), SLOT(widgetDestroyed(QObject*)));
21
-   }
22
- 
23
- private slots:
24
-@@ -58,10 +59,15 @@ private slots:
25
-   {
26
-       QWidget* widget = static_cast<QWidget*>(obj);
27
-       watchedWidgets_.remove(widget);
28
-+      if(watchedWidgets_.isEmpty()) {
29
-+          instance->deleteLater();
30
-+          instance = 0;
31
-+      }
32
-   }
33
- 
34
- private:
35
-   QHash<QWidget*, bool> watchedWidgets_;
36
-+  static PsiToolTipHandler *instance;
37
- 
38
-   PsiToolTipHandler()
39
-       : QObject(qApp)
40
-@@ -87,6 +93,8 @@ private:
41
-   }
42
- };
43
- 
44
-+PsiToolTipHandler* PsiToolTipHandler::instance = 0;
45
-+
46
- //----------------------------------------------------------------------------
47
- // ToolTipPosition
48
- //----------------------------------------------------------------------------
49
psi-plus-main-20160309.tar.xz/patches/0250-psi-disable-auto-scroll-to-bottom.diff Deleted
32
 
1
@@ -1,30 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -111,6 +111,7 @@
5
-               <alert-for-already-open-chats type="bool">true</alert-for-already-open-chats>
6
-               <auto-popup type="bool">false</auto-popup>
7
-               <auto-capitalize type="bool">false</auto-capitalize>
8
-+              <auto-scroll-to-bottom type="bool">true</auto-scroll-to-bottom>
9
-               <delete-contents-after type="QString">never</delete-contents-after>
10
-               <raise-chat-windows-on-new-messages type="bool">false</raise-chat-windows-on-new-messages>
11
-               <switch-tab-on-new-messages type="bool">false</switch-tab-on-new-messages>
12
---- psi.orig/src/chatview_te.cpp
13
-+++ psi/src/chatview_te.cpp
14
-@@ -361,7 +361,7 @@ void ChatView::renderMucMessage(const Me
15
-       }
16
-   }
17
- 
18
--  if(mv.isLocal()) {
19
-+  if(mv.isLocal() && PsiOptions::instance()->getOption("options.ui.chat.auto-scroll-to-bottom").toBool() ) {
20
-       scrollToBottom();
21
-   }
22
- }
23
-@@ -390,7 +390,7 @@ void ChatView::renderMessage(const Messa
24
-       }
25
-   }
26
- 
27
--  if (mv.isLocal()) {
28
-+  if (mv.isLocal() && PsiOptions::instance()->getOption("options.ui.chat.auto-scroll-to-bottom").toBool() ) {
29
-       deferredScroll();
30
-   }
31
- }
32
psi-plus-main-20160309.tar.xz/patches/0260-psi-tab-highlight-color.diff Deleted
81
 
1
@@ -1,79 +0,0 @@
2
---- psi.orig/src/chatdlg.cpp
3
-+++ psi/src/chatdlg.cpp
4
-@@ -1127,9 +1127,15 @@ void ChatDlg::chatEditCreated()
5
- 
6
- TabbableWidget::State ChatDlg::state() const
7
- {
8
--  return contactChatState_ == XMPP::StateComposing ?
9
--         TabbableWidget::StateComposing :
10
--         TabbableWidget::StateNone;
11
-+  TabbableWidget::State state = TabbableWidget::StateNone;
12
-+  if(contactChatState_ == XMPP::StateComposing) {
13
-+      state = TabbableWidget::StateComposing;
14
-+  }
15
-+  else if(unreadMessageCount()) {
16
-+      state = TabbableWidget::StateHighlighted;
17
-+  }
18
-+
19
-+  return state;
20
- }
21
- 
22
- int ChatDlg::unreadMessageCount() const
23
---- psi.orig/src/groupchatdlg.cpp
24
-+++ psi/src/groupchatdlg.cpp
25
-@@ -2182,7 +2182,7 @@ void GCMainDlg::chatEditCreated()
26
- 
27
- TabbableWidget::State GCMainDlg::state() const
28
- {
29
--  return TabbableWidget::StateNone;
30
-+  return d->hPending ? TabbableWidget::StateHighlighted : TabbableWidget::StateNone;
31
- }
32
- 
33
- int GCMainDlg::unreadMessageCount() const
34
---- psi.orig/src/tabs/tabbablewidget.h
35
-+++ psi/src/tabs/tabbablewidget.h
36
-@@ -62,7 +62,8 @@ public:
37
- 
38
-   enum State {
39
-       StateNone = 0,
40
--      StateComposing
41
-+      StateComposing,
42
-+      StateHighlighted
43
-   };
44
-   virtual State state() const = 0;
45
-   virtual int unreadMessageCount() const = 0;
46
---- psi.orig/src/tabs/tabdlg.cpp
47
-+++ psi/src/tabs/tabdlg.cpp
48
-@@ -654,17 +654,25 @@ void TabDlg::updateTab(TabbableWidget* c
49
-   tabWidget_->setTabText(chat, captionForTab(chat));
50
-   //now set text colour based upon whether there are new messages/composing etc
51
- 
52
--  if (chat->state() == TabbableWidget::StateComposing) {
53
-+  TabbableWidget::State state = chat->state();
54
-+  if (state == TabbableWidget::StateComposing) {
55
-       tabWidget_->setTabTextColor(chat, PsiOptions::instance()->getOption("options.ui.look.colors.chat.composing-color").value<QColor>());
56
-       tabWidget_->setTabIcon(chat, IconsetFactory::iconPtr("psi/typing")->icon());
57
-   }
58
--  else if (chat->unreadMessageCount()) {
59
--      tabWidget_->setTabTextColor(chat, PsiOptions::instance()->getOption("options.ui.look.colors.chat.unread-message-color").value<QColor>());
60
--      tabWidget_->setTabIcon(chat, IconsetFactory::iconPtr("psi/chat")->icon());
61
--  }
62
-   else {
63
--      tabWidget_->setTabTextColor(chat, palette().color(QPalette::Text));
64
--      tabWidget_->setTabIcon(chat, chat->icon());
65
-+      if (state == TabbableWidget::StateHighlighted) {
66
-+          tabWidget_->setTabTextColor(chat, PsiOptions::instance()->getOption("options.ui.look.colors.chat.unread-message-color").value<QColor>());
67
-+      }
68
-+      else {
69
-+          tabWidget_->setTabTextColor(chat, palette().color(QPalette::Text));
70
-+      }
71
-+
72
-+      if(chat->unreadMessageCount()) {
73
-+          tabWidget_->setTabIcon(chat, IconsetFactory::iconPtr("psi/chat")->icon());
74
-+      }
75
-+      else {
76
-+          tabWidget_->setTabIcon(chat, chat->icon());
77
-+      }
78
-   }
79
-   updateCaption();
80
- }
81
psi-plus-main-20160309.tar.xz/patches/0270-psi-set-window-icons.diff Deleted
201
 
1
@@ -1,277 +0,0 @@
2
---- psi.orig/src/aboutdlg.cpp
3
-+++ psi/src/aboutdlg.cpp
4
-@@ -24,12 +24,14 @@
5
- 
6
- #include "applicationinfo.h"
7
- #include "aboutdlg.h"
8
-+#include "iconset.h"
9
- 
10
- AboutDlg::AboutDlg(QWidget* parent)
11
-   : QDialog(parent)
12
- {
13
-   setAttribute(Qt::WA_DeleteOnClose);
14
-   ui_.setupUi(this);
15
-+  setWindowIcon(IconsetFactory::icon("psi/psiplus_logo").icon());
16
- 
17
-   setModal(false);
18
- 
19
---- psi.orig/src/accountmanagedlg.cpp
20
-+++ psi/src/accountmanagedlg.cpp
21
-@@ -42,6 +42,7 @@
22
- #include "psicontactlist.h"
23
- #include "iconaction.h"
24
- #include "shortcutmanager.h"
25
-+#include "iconset.h"
26
- 
27
- using namespace XMPP;
28
- 
29
-@@ -95,6 +96,7 @@ AccountRemoveDlg::AccountRemoveDlg(const
30
- :QDialog(parent)
31
- {
32
-   setupUi(this);
33
-+  setWindowIcon(IconsetFactory::icon("psi/account").icon());
34
-   setModal(false);
35
-   setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint);
36
-   d = new Private;
37
---- psi.orig/src/activitydlg.cpp
38
-+++ psi/src/activitydlg.cpp
39
-@@ -33,7 +33,9 @@ ActivityDlg::ActivityDlg(QList<PsiAccoun
40
-   if(pa_.isEmpty())
41
-       close();
42
-   ui_.setupUi(this);
43
-+  setWindowIcon(IconsetFactory::icon("activities/other").icon());
44
-   setModal(false);
45
-+
46
-   connect(ui_.cb_general_type, SIGNAL(currentIndexChanged(const QString&)), SLOT(loadSpecificActivities(const QString&)));
47
-   connect(ui_.pb_cancel, SIGNAL(clicked()), SLOT(close()));
48
-   connect(ui_.pb_ok, SIGNAL(clicked()), SLOT(setActivity()));
49
---- psi.orig/src/avcall/calldlg.cpp
50
-+++ psi/src/avcall/calldlg.cpp
51
-@@ -28,6 +28,7 @@
52
- #include "common.h"
53
- #include "psiaccount.h"
54
- #include "psioptions.h"
55
-+#include "iconset.h"
56
- 
57
- // from opt_avcall.cpp
58
- extern void options_avcall_update();
59
-@@ -68,6 +69,7 @@ public:
60
-   {
61
-       ui.setupUi(q);
62
-       q->setWindowTitle(tr("Voice Call"));
63
-+      q->setWindowIcon(IconsetFactory::icon("psi/avcall").icon());
64
- 
65
-       ui.lb_bandwidth->setEnabled(false);
66
-       ui.cb_bandwidth->setEnabled(false);
67
---- psi.orig/src/bookmarkmanagedlg.cpp
68
-+++ psi/src/bookmarkmanagedlg.cpp
69
-@@ -39,6 +39,8 @@ BookmarkManageDlg::BookmarkManageDlg(Psi
70
-   setAttribute(Qt::WA_DeleteOnClose, true);
71
-   setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint);
72
-   ui_.setupUi(this);
73
-+  setWindowIcon(IconsetFactory::icon("psi/bookmarks").icon());
74
-+
75
-   account_->dialogRegister(this);
76
- 
77
-   QAction* removeBookmarkAction = new QAction(this);
78
---- psi.orig/src/contactmanager/contactmanagerdlg.cpp
79
-+++ psi/src/contactmanager/contactmanagerdlg.cpp
80
-@@ -44,6 +44,7 @@ ContactManagerDlg::ContactManagerDlg(Psi
81
-   ui_.setupUi(this);
82
-   pa_->dialogRegister(this);
83
-   setWindowTitle(tr("Contacts Manager")+" - "+pa->jid().bare());
84
-+  setWindowIcon(IconsetFactory::icon("psi/action_contacts_manager").icon());
85
- 
86
-   um = new ContactManagerModel(this, pa_);
87
-   um->reloadUsers();
88
---- psi.orig/src/geolocationdlg.cpp
89
-+++ psi/src/geolocationdlg.cpp
90
-@@ -27,6 +27,7 @@
91
- #include "pepmanager.h"
92
- #include "geolocation.h"
93
- #include <QLineEdit>
94
-+#include "iconset.h"
95
- 
96
- GeoLocationDlg::GeoLocationDlg(QList<PsiAccount*> list) : QDialog(0), pa_(list)
97
- {
98
-@@ -34,7 +35,9 @@ GeoLocationDlg::GeoLocationDlg(QList<Psi
99
-   if(pa_.isEmpty())
100
-       close();
101
-   ui_.setupUi(this);
102
-+  setWindowIcon(IconsetFactory::icon("system/geolocation").icon());
103
-   setModal(false);
104
-+
105
-   connect(ui_.pb_cancel, SIGNAL(clicked()), SLOT(close()));
106
-   connect(ui_.pb_ok, SIGNAL(clicked()), SLOT(setGeoLocation()));
107
-   connect(ui_.pb_reset, SIGNAL(clicked()), SLOT(reset()));
108
---- psi.orig/src/groupchatdlg.cpp
109
-+++ psi/src/groupchatdlg.cpp
110
-@@ -678,7 +678,7 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, con
111
-   setAcceptDrops(true);
112
- 
113
- #ifndef Q_OS_MAC
114
--  setWindowIcon(IconsetFactory::icon("psi/groupChat").icon());
115
-+  setWindowIcon(IconsetFactory::icon("psi/start-chat").icon());
116
- #endif
117
- 
118
-   ui_.setupUi(this);
119
-@@ -1298,6 +1298,7 @@ void GCMainDlg::doBookmark()
120
-   formLayout->addRow(tr("&Auto join:"), cbAutoJoin);
121
-   layout->addLayout(formLayout);
122
-   layout->addLayout(blayout);
123
-+  dlg->setWindowIcon(IconsetFactory::icon("psi/bookmark_remove").icon());
124
-   dlg->setLayout(layout);
125
-   dlg->setMinimumWidth(300);
126
-   dlg->connect(saveBtn, SIGNAL(clicked()), dlg, SLOT(accept()));
127
-@@ -1994,7 +1995,7 @@ void GCMainDlg::setLooks()
128
- 
129
-   // update the widget icon
130
- #ifndef Q_OS_MAC
131
--  setWindowIcon(IconsetFactory::icon("psi/groupChat").icon());
132
-+  setWindowIcon(IconsetFactory::icon("psi/start-chat").icon());
133
- #endif
134
- 
135
-   ui_.lv_users->setLooks();
136
---- psi.orig/src/mooddlg.cpp
137
-+++ psi/src/mooddlg.cpp
138
-@@ -34,7 +34,9 @@ MoodDlg::MoodDlg(QList<PsiAccount*> list
139
-   if(pa_.isEmpty())
140
-       close();
141
-   ui_.setupUi(this);
142
-+  setWindowIcon(IconsetFactory::icon("mood/").icon());
143
-   setModal(false);
144
-+
145
-   connect(ui_.pb_cancel, SIGNAL(clicked()), SLOT(close()));
146
-   connect(ui_.pb_ok, SIGNAL(clicked()), SLOT(setMood()));
147
- 
148
---- psi.orig/src/mucjoindlg.cpp
149
-+++ psi/src/mucjoindlg.cpp
150
-@@ -30,6 +30,7 @@
151
- #include "psicontactlist.h"
152
- #include "groupchatdlg.h"
153
- #include "bookmarkmanager.h"
154
-+#include "iconset.h"
155
- 
156
- static const int nickConflictCode = 409;
157
- static const QString additionalSymbol = "_";
158
-@@ -42,6 +43,7 @@ MUCJoinDlg::MUCJoinDlg(PsiCon* psi, PsiA
159
-   setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint);
160
-   setModal(false);
161
-   ui_.setupUi(this);
162
-+  setWindowIcon(IconsetFactory::icon("psi/groupChat").icon());
163
-   controller_ = psi;
164
-   account_ = 0;
165
-   controller_->dialogRegister(this);
166
---- psi.orig/src/options/optionsdlg.cpp
167
-+++ psi/src/options/optionsdlg.cpp
168
-@@ -509,6 +509,7 @@ OptionsDlg::OptionsDlg(PsiCon *psi, QWid
169
-   : QDialog(parent)
170
- {
171
-   setupUi(this);
172
-+  setWindowIcon(IconsetFactory::icon("psi/options").icon());
173
-   pb_apply = buttonBox->button(QDialogButtonBox::Apply);
174
- 
175
-   setAttribute(Qt::WA_DeleteOnClose);
176
---- psi.orig/src/privacy/privacydlg.cpp
177
-+++ psi/src/privacy/privacydlg.cpp
178
-@@ -26,6 +26,7 @@
179
- #include "privacylist.h"
180
- #include "privacymanager.h"
181
- #include "privacylistmodel.h"
182
-+#include "iconset.h"
183
- 
184
- // fixme: subscribe on the destroyed() signal of the manager
185
- 
186
-@@ -34,6 +35,7 @@ PrivacyDlg::PrivacyDlg(const QString& ac
187
-   ui_.setupUi(this);
188
-   setAttribute(Qt::WA_DeleteOnClose);
189
-   setWindowTitle(tr("%1: Privacy Lists").arg(account_name));
190
-+  setWindowIcon(IconsetFactory::icon("psi/eye").icon());
191
-   setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint);
192
- 
193
-   connect(manager_,SIGNAL(listsReceived(const QString&, const QString&, const QStringList&)),SLOT(updateLists(const QString&, const QString&, const QStringList&)));
194
---- psi.orig/src/profiledlg.cpp
195
-+++ psi/src/profiledlg.cpp
196
-@@ -81,6 +81,7 @@ ProfileOpenDlg::ProfileOpenDlg(const QSt
197
-   setupUi(this);
198
-   setModal(true);
199
-   setWindowTitle(CAP(windowTitle()));
200
-+  setWindowIcon(IconsetFactory::icon("psi/profile").icon());
201
psi-plus-main-20160309.tar.xz/patches/0280-psi-optionseditor-show-only-first-line.diff Deleted
20
 
1
@@ -1,18 +0,0 @@
2
---- psi.orig/src/tools/optionstree/optionstreemodel.cpp
3
-+++ psi/src/tools/optionstree/optionstreemodel.cpp
4
-@@ -160,8 +160,13 @@ QVariant OptionsTreeModel::data(const QM
5
-       } else if (!tree_->isInternalNode(option)) {
6
-           if (section == Type)
7
-               return tree_->getOption(option).typeName();
8
--          else if (section == Value)
9
--              return tree_->getOption(option);//.toString();
10
-+          else if (section == Value) {
11
-+              if (role == Qt::DisplayRole) {
12
-+                  return QVariant(tree_->getOption(option).toString().section('\n', 0, 0)); // Show only first line
13
-+              } else {
14
-+                  return tree_->getOption(option);//.toString();
15
-+              }
16
-+          }
17
-       }
18
-   } else if (role == Qt::ToolTipRole) {
19
-       if (!tree_->isInternalNode(option)) {
20
psi-plus-main-20160309.tar.xz/patches/0290-psi-custom-chat-window-caption.diff Deleted
54
 
1
@@ -1,52 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -112,6 +112,7 @@
5
-               <auto-popup type="bool">false</auto-popup>
6
-               <auto-capitalize type="bool">false</auto-capitalize>
7
-               <auto-scroll-to-bottom type="bool">true</auto-scroll-to-bottom>
8
-+              <caption type="QString"></caption>
9
-               <delete-contents-after type="QString">never</delete-contents-after>
10
-               <raise-chat-windows-on-new-messages type="bool">false</raise-chat-windows-on-new-messages>
11
-               <switch-tab-on-new-messages type="bool">false</switch-tab-on-new-messages>
12
---- psi.orig/src/chatdlg.cpp
13
-+++ psi/src/chatdlg.cpp
14
-@@ -637,7 +637,10 @@ void ChatDlg::setSelfDestruct(int minute
15
- 
16
- QString ChatDlg::desiredCaption() const
17
- {
18
--  QString cap = "";
19
-+  QString cap = PsiOptions::instance()->getOption("options.ui.chat.caption").toString();
20
-+  if(!cap.isEmpty()) {
21
-+      return cap;
22
-+  }
23
- 
24
-   if (pending_ > 0) {
25
-       cap += "* ";
26
---- psi.orig/src/groupchatdlg.cpp
27
-+++ psi/src/groupchatdlg.cpp
28
-@@ -1941,7 +1941,10 @@ void GCMainDlg::doAlert()
29
- 
30
- QString GCMainDlg::desiredCaption() const
31
- {
32
--  QString cap = "";
33
-+  QString cap = PsiOptions::instance()->getOption("options.ui.chat.caption").toString();
34
-+  if(!cap.isEmpty()) {
35
-+      return cap;
36
-+  }
37
- 
38
-   if (d->pending > 0) {
39
-       cap += "* ";
40
---- psi.orig/src/tabs/tabdlg.cpp
41
-+++ psi/src/tabs/tabdlg.cpp
42
-@@ -558,7 +558,10 @@ void TabDlg::activated()
43
- 
44
- QString TabDlg::desiredCaption() const
45
- {
46
--  QString cap = "";
47
-+  QString cap = PsiOptions::instance()->getOption("options.ui.chat.caption").toString();
48
-+  if(!cap.isEmpty()) {
49
-+      return cap;
50
-+  }
51
-   uint pending = 0;
52
-   foreach(TabbableWidget* tab, tabs_) {
53
-       pending += tab->unreadMessageCount();
54
psi-plus-main-20160309.tar.xz/patches/0300-psi-fix-trackbar.diff Deleted
109
 
1
@@ -1,107 +0,0 @@
2
---- psi.orig/src/tabs/tabbablewidget.cpp
3
-+++ psi/src/tabs/tabbablewidget.cpp
4
-@@ -37,10 +37,14 @@
5
- 
6
- TabbableWidget::TabbableWidget(const Jid &jid, PsiAccount *pa, TabManager *tabManager)
7
-   : AdvancedWidget<QWidget>(0)
8
-+  , state_(Deactivated)
9
-   , jid_(jid)
10
-   , pa_(pa)
11
-   , tabManager_(tabManager)
12
- {
13
-+  stateCommitTimer_.setInterval(100);
14
-+  stateCommitTimer_.setSingleShot(true);
15
-+  connect(&stateCommitTimer_, SIGNAL(timeout()), SLOT(commitState()));
16
-   //QTimer::singleShot(0, this, SLOT(ensureTabbedCorrectly()));
17
- }
18
- 
19
-@@ -205,11 +209,22 @@ void TabbableWidget::changeEvent(QEvent*
20
-       event->type() == QEvent::WindowStateChange)
21
-   {
22
-       if (isActiveTab()) {
23
--          activated();
24
-+          state_ = Activated;
25
-       }
26
-       else {
27
--          deactivated();
28
-+          state_ = Deactivated;
29
-       }
30
-+      stateCommitTimer_.start();
31
-+  }
32
-+}
33
-+
34
-+void TabbableWidget::commitState()
35
-+{
36
-+  if(state_ == Activated) {
37
-+      activated();
38
-+  }
39
-+  else {
40
-+      deactivated();
41
-   }
42
- }
43
- 
44
---- psi.orig/src/tabs/tabbablewidget.h
45
-+++ psi/src/tabs/tabbablewidget.h
46
-@@ -22,6 +22,7 @@
47
- #define TABBABLE_H
48
- 
49
- #include <QIcon>
50
-+#include <QTimer>
51
- #include "advwidget.h"
52
- #include "im.h" // ChatState
53
- 
54
-@@ -77,19 +78,26 @@ signals:
55
-   void vSplitterMoved(int,int);
56
- 
57
- public slots:
58
--  virtual void deactivated();
59
--  virtual void activated();
60
-   void bringToFront(bool raiseWindow = true);
61
-   virtual void ensureTabbedCorrectly();
62
-   void hideTab();
63
- 
64
- protected:
65
-   virtual void setJid(const Jid&);
66
-+  virtual void deactivated();
67
-+  virtual void activated();
68
- 
69
-   // reimplemented
70
-   void changeEvent(QEvent* e);
71
- 
72
-+private slots:
73
-+  void commitState();
74
-+
75
- private:
76
-+  enum ActivationState { Activated, Deactivated };
77
-+  ActivationState state_;
78
-+  QTimer stateCommitTimer_;
79
-+
80
-   Jid jid_;
81
-   PsiAccount *pa_;
82
-   TabManager *tabManager_;
83
---- psi.orig/src/tabs/tabdlg.cpp
84
-+++ psi/src/tabs/tabdlg.cpp
85
-@@ -397,12 +397,12 @@ void TabDlg::tabSelected(QWidget* _selec
86
-   // _selected could be null when TabDlg is closing and deleting all its tabs
87
-   TabbableWidget* selected = _selected ? qobject_cast<TabbableWidget*>(_selected) : 0;
88
-   if (!selectedTab_.isNull()) {
89
--      selectedTab_->deactivated();
90
-+      QCoreApplication::postEvent(selectedTab_, new QEvent(QEvent::ActivationChange));
91
-   }
92
- 
93
-   selectedTab_ = selected;
94
-   if (selected) {
95
--      selected->activated();
96
-+      QCoreApplication::postEvent(selected, new QEvent(QEvent::ActivationChange));
97
-   }
98
- 
99
-   updateCaption();
100
-@@ -520,7 +520,7 @@ void TabDlg::closeTab(TabbableWidget* ch
101
-   chat->hide();
102
-   removeTabWithNoChecks(chat);
103
-   chat->setParent(0);
104
--  chat->deactivated();
105
-+  QCoreApplication::postEvent(chat, new QEvent(QEvent::ActivationChange));
106
-   if (tabWidget_->count() > 0) {
107
-       updateCaption();
108
-   }
109
psi-plus-main-20160309.tar.xz/patches/0310-psi-fix-online-contacts-count-update.diff Deleted
47
 
1
@@ -1,45 +0,0 @@
2
---- psi.orig/src/psiaccount.cpp
3
-+++ psi/src/psiaccount.cpp
4
-@@ -448,6 +448,11 @@ public:
5
-       reconnectTimeoutTimer_ = new QTimer(this);
6
-       reconnectTimeoutTimer_->setSingleShot(true);
7
-       connect(reconnectTimeoutTimer_, SIGNAL(timeout()), SLOT(reconnectTimerTimeout()));
8
-+
9
-+      updateOnlineContactsCountTimer_ = new QTimer(this);
10
-+      updateOnlineContactsCountTimer_->setInterval(500);
11
-+      updateOnlineContactsCountTimer_->setSingleShot(true);
12
-+      connect(updateOnlineContactsCountTimer_, SIGNAL(timeout()), SLOT(updateOnlineContactsCountTimeout()));
13
-   }
14
- 
15
-   PsiContactList* contactList;
16
-@@ -475,6 +480,7 @@ public:
17
-   bool pepAvailable;
18
-   QString currentConnectionError;
19
-   int currentConnectionErrorCondition;
20
-+  QTimer *updateOnlineContactsCountTimer_;
21
- 
22
-   // Tune
23
-   Tune lastTune;
24
-@@ -644,7 +650,8 @@ public:
25
-       return pathToProfile(activeProfile, ApplicationInfo::DataLocation) + "/events-" + JIDUtil::encode(acc.id).toLower() + ".xml";
26
-   }
27
- 
28
--  void updateOnlineContactsCount()
29
-+private slots:
30
-+  void updateOnlineContactsCountTimeout()
31
-   {
32
-       int newOnlineContactsCount = 0;
33
-       foreach(const PsiContact* c, contacts) {
34
-@@ -660,6 +667,12 @@ public:
35
-       }
36
-   }
37
- 
38
-+public:
39
-+  void updateOnlineContactsCount()
40
-+  {
41
-+      updateOnlineContactsCountTimer_->start();
42
-+  }
43
-+
44
-   // FIXME: Rename updateEntry -> updateContact
45
-   void updateEntry(const UserListItem& u)
46
-   {
47
psi-plus-main-20160309.tar.xz/patches/0320-psi-muc-highlight-events.diff Deleted
201
 
1
@@ -1,383 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -328,6 +328,7 @@ QLineEdit#le_status_text {
5
-                   <height>420</height>
6
-               </size>
7
-               <use-highlighting type="bool">true</use-highlighting><use-nick-coloring type="bool">true</use-nick-coloring><use-hash-nick-coloring type="bool">true</use-hash-nick-coloring><colored-history type="bool">true</colored-history>
8
-+              <allow-highlight-events type="bool">false</allow-highlight-events>
9
-           </muc>
10
-           <show-deprecated comment="Deprecated functionality or protocols">
11
-               <service-discovery comment="Service discovery dialog">
12
---- psi.orig/src/chatdlg.cpp
13
-+++ psi/src/chatdlg.cpp
14
-@@ -449,6 +449,8 @@ void ChatDlg::ensureTabbedCorrectly()
15
- 
16
- void ChatDlg::updateContact(const Jid &j, bool fromPresence)
17
- {
18
-+  if (account()->groupchats().contains(j.full()))
19
-+      return;
20
-   // if groupchat, only update if the resource matches
21
-   if (account()->findGCContact(j) && !jid().compare(j)) {
22
-       return;
23
---- psi.orig/src/groupchatdlg.cpp
24
-+++ psi/src/groupchatdlg.cpp
25
-@@ -199,6 +199,7 @@ public:
26
-       dlg = d;
27
-       nickSeparator = ":";
28
-       nonAnonymous = false;
29
-+      alert = false;
30
- 
31
-       trackBar = false;
32
-       mCmdManager.registerProvider(this);
33
-@@ -236,6 +237,7 @@ public:
34
-   int pending;
35
-   int hPending; // highlight pending
36
-   bool connecting;
37
-+  bool alert;
38
- 
39
-   QStringList hist;
40
-   int histAt;
41
-@@ -1025,6 +1027,7 @@ void GCMainDlg::activated()
42
-           u->setPending(d->pending, d->hPending);
43
-           account()->updateEntry(*u);
44
-       }
45
-+      messagesRead(jid());
46
-       invalidateTab();
47
-   }
48
-   doFlash(false);
49
-@@ -1733,11 +1736,11 @@ void GCMainDlg::avatarUpdated(const Jid
50
-   }
51
- }
52
- 
53
--void GCMainDlg::message(const Message &_m)
54
-+void GCMainDlg::message(const Message &_m, const PsiEvent::Ptr &e)
55
- {
56
-   Message m = _m;
57
-   QString from = m.from().resource();
58
--  bool alert = false;
59
-+  d->alert = false;
60
- 
61
-   if (m.getMUCStatuses().contains(100)) {
62
-       d->nonAnonymous = true;
63
-@@ -1787,7 +1790,7 @@ void GCMainDlg::message(const Message &_
64
- 
65
-   // code to determine if the speaker was addressing this client in chat
66
-   if(m.body().contains(d->self))
67
--      alert = true;
68
-+      d->alert = true;
69
- 
70
-   if (m.body().left(d->self.length()) == d->self)
71
-       d->lastReferrer = m.from().resource();
72
-@@ -1796,7 +1799,7 @@ void GCMainDlg::message(const Message &_
73
-       QStringList highlightWords = options->getOption("options.ui.muc.highlight-words").toStringList();
74
-       foreach (QString word, highlightWords) {
75
-           if(m.body().contains((word), Qt::CaseInsensitive)) {
76
--              alert = true;
77
-+              d->alert = true;
78
-           }
79
-       }
80
-   }
81
-@@ -1807,13 +1810,12 @@ void GCMainDlg::message(const Message &_
82
-           account()->playSound(PsiAccount::eSend);
83
-   }
84
-   else {
85
--      if(alert || (options->getOption("options.ui.notifications.sounds.notify-every-muc-message").toBool() && !m.spooled() && !from.isEmpty()) )
86
-+      if(d->alert || (options->getOption("options.ui.notifications.sounds.notify-every-muc-message").toBool() && !m.spooled() && !from.isEmpty()) )
87
-           account()->playSound(PsiAccount::eGroupChat);
88
- 
89
--      if(alert || (options->getOption("options.ui.notifications.passive-popups.notify-every-muc-message").toBool() && !m.spooled() && !from.isEmpty()) ) {
90
-+      if(d->alert || (options->getOption("options.ui.notifications.passive-popups.notify-every-muc-message").toBool() && !m.spooled() && !from.isEmpty()) ) {
91
-           if (!m.spooled() && !isActiveTab() && !m.from().resource().isEmpty()) {
92
-               XMPP::Jid jid = m.from()/*.withDomain("")*/;
93
--              MessageEvent::Ptr e(new MessageEvent(m, account()));
94
-               UserListItem i;
95
-               i.setPrivate(true);
96
-               account()->psi()->popupManager()->doPopup(account(), PopupManager::AlertGcHighlight, jid, m.from().resource(), &i, e);
97
-@@ -1822,9 +1824,9 @@ void GCMainDlg::message(const Message &_
98
-   }
99
- 
100
-   if(from.isEmpty())
101
--      appendSysMsg(m.body(), alert, m.timeStamp());
102
-+      appendSysMsg(m.body(), d->alert, m.timeStamp());
103
-   else
104
--      appendMessage(m, alert);
105
-+      appendMessage(m, d->alert);
106
- }
107
- 
108
- void GCMainDlg::joined()
109
-@@ -1861,6 +1863,11 @@ const QDateTime & GCMainDlg::lastMsgTime
110
-   return d->te_log()->lastMsgTime();
111
- }
112
- 
113
-+bool GCMainDlg::isLastMessageAlert() const
114
-+{
115
-+  return d->alert;
116
-+}
117
-+
118
- void GCMainDlg::appendSysMsg(const QString &str, bool alert, const QDateTime &ts)
119
- {
120
-   MessageView mv = MessageView::fromPlainText(str, MessageView::System);
121
---- psi.orig/src/groupchatdlg.h
122
-+++ psi/src/groupchatdlg.h
123
-@@ -31,6 +31,7 @@
124
- #include "ui_groupchatdlg.h"
125
- #include "mucmanager.h"
126
- #include "advwidget.h"
127
-+#include "psievent.h"
128
- 
129
- using namespace XMPP;
130
- 
131
-@@ -70,12 +71,13 @@ public:
132
- 
133
-   void error(int, const QString &);
134
-   void presence(const QString &, const Status &);
135
--  void message(const Message &);
136
-+  void message(const Message &, const PsiEvent::Ptr &e = PsiEvent::Ptr());
137
-   void joined();
138
-   void setPassword(const QString&);
139
-   const QString& nick() const;
140
-   const QString& topic() const;
141
-   const QDateTime& lastMsgTime() const;
142
-+  bool isLastMessageAlert() const;
143
- 
144
-   bool isInactive() const;
145
-   void reactivate();
146
-@@ -100,6 +102,7 @@ protected:
147
- 
148
- signals:
149
-   void aSend(const Message &);
150
-+  void messagesRead(const Jid &);
151
- 
152
- public slots:
153
-   // reimplemented
154
---- psi.orig/src/psiaccount.cpp
155
-+++ psi/src/psiaccount.cpp
156
-@@ -2789,9 +2789,9 @@ void PsiAccount::processIncomingMessage(
157
- 
158
- #ifdef GROUPCHAT
159
-   if(_m.type() == "groupchat") {
160
--      GCMainDlg *w = findDialog<GCMainDlg*>(Jid(_m.from().bare()));
161
--      if(w)
162
--          w->message(_m);
163
-+      MessageEvent::Ptr me(new MessageEvent(_m, this));
164
-+      me->setOriginLocal(false);
165
-+      handleEvent(me, IncomingStanza);
166
-       return;
167
-   }
168
- #endif
169
-@@ -5076,7 +5076,17 @@ void PsiAccount::handleEvent(const PsiEv
170
-               !(e->type() == PsiEvent::Message &&
171
-                e.staticCast<MessageEvent>()->message().body().isEmpty()))
172
-           {
173
--              logEvent(e->from(), e);
174
-+              bool isMuc = false;
175
-+#ifdef GROUPCHAT
176
-+              if(e->type() == PsiEvent::Message) {
177
-+                  MessageEvent::Ptr me = e.staticCast<MessageEvent>();
178
-+                  if (me->message().type() == "groupchat")
179
-+                      isMuc = true;
180
-+              }
181
-+#endif
182
-+              if (!isMuc) {
183
-+                  logEvent(e->from(), e);
184
-+              }
185
-           }
186
-       }
187
-   }
188
-@@ -5116,7 +5126,7 @@ void PsiAccount::handleEvent(const PsiEv
189
-       }
190
- 
191
-       // Pass message events to chat window
192
--      if ((m.containsEvents() || m.chatState() != StateNone) && m.body().isEmpty()) {
193
-+      if ((m.containsEvents() || m.chatState() != StateNone) && m.body().isEmpty() && m.type() != "groupchat") {
194
-           if (o->getOption("options.messages.send-composing-events").toBool()) {
195
-               ChatDlg *c = findChatDialogEx(e->from());
196
-               if (c) {
197
-@@ -5180,6 +5190,22 @@ void PsiAccount::handleEvent(const PsiEv
198
-           doPopup = true;
199
-           popupType = PopupManager::AlertHeadline;
200
-       } // /headline
201
psi-plus-main-20160309.tar.xz/patches/0330-iris-XEP-0083-nested-roster-groups.diff Deleted
201
 
1
@@ -1,479 +0,0 @@
2
---- psi.orig/iris/src/xmpp/xmpp-im/client.cpp
3
-+++ psi/iris/src/xmpp/xmpp-im/client.cpp
4
-@@ -102,6 +102,8 @@ using namespace Jabber;*/
5
- #define vsnprintf _vsnprintf
6
- #endif
7
- 
8
-+#define GROUPS_DELIMITER_TIMEOUT 10
9
-+
10
- namespace XMPP
11
- {
12
- 
13
-@@ -887,12 +889,38 @@ void Client::prRoster(const Roster &r)
14
-   importRoster(r);
15
- }
16
- 
17
--void Client::rosterRequest()
18
-+void Client::rosterRequest(bool withGroupsDelimiter)
19
- {
20
-   if(!d->active)
21
-       return;
22
- 
23
-   JT_Roster *r = new JT_Roster(rootTask());
24
-+  int timeout = 0;
25
-+  if (withGroupsDelimiter) {
26
-+      connect(r, SIGNAL(finished()), SLOT(slotRosterDelimiterRequestFinished()));
27
-+      r->getGroupsDelimiter();
28
-+      // WORKAROUND: Some bad servers (Facebook for example) don't response
29
-+      // on groups delimiter request. Wait timeout and go ahead.
30
-+      r->setTimeout(GROUPS_DELIMITER_TIMEOUT);
31
-+  }
32
-+  else {
33
-+      connect(r, SIGNAL(finished()), SLOT(slotRosterRequestFinished()));
34
-+      r->get();
35
-+      d->roster.flagAllForDelete(); // mod_groups patch
36
-+  }
37
-+
38
-+  r->go(true);
39
-+}
40
-+
41
-+void Client::slotRosterDelimiterRequestFinished()
42
-+{
43
-+  JT_Roster *r = qobject_cast<JT_Roster*>(sender());
44
-+  if(r->success()) {
45
-+      d->roster.setGroupsDelimiter(r->groupsDelimiter());
46
-+      emit rosterGroupsDelimiterRequestFinished(r->groupsDelimiter());
47
-+  }
48
-+
49
-+  r = new JT_Roster(rootTask());
50
-   connect(r, SIGNAL(finished()), SLOT(slotRosterRequestFinished()));
51
-   r->get();
52
-   d->roster.flagAllForDelete(); // mod_groups patch
53
-@@ -1256,13 +1284,35 @@ void LiveRosterItem::setFlagForDelete(bo
54
- //---------------------------------------------------------------------------
55
- // LiveRoster
56
- //---------------------------------------------------------------------------
57
-+class LiveRoster::Private
58
-+{
59
-+public:
60
-+  QString groupsDelimiter;
61
-+};
62
-+
63
- LiveRoster::LiveRoster()
64
--:QList<LiveRosterItem>()
65
-+  : QList<LiveRosterItem>()
66
-+  , d(new LiveRoster::Private)
67
- {
68
- }
69
- 
70
- LiveRoster::~LiveRoster()
71
- {
72
-+  delete d;
73
-+}
74
-+
75
-+LiveRoster::LiveRoster(const LiveRoster &other)
76
-+  : QList<LiveRosterItem>(other)
77
-+  , d(new LiveRoster::Private)
78
-+{
79
-+  d->groupsDelimiter = other.d->groupsDelimiter;
80
-+}
81
-+
82
-+LiveRoster &LiveRoster::operator=(const LiveRoster &other)
83
-+{
84
-+  QList<LiveRosterItem>::operator=(other);
85
-+  d->groupsDelimiter = other.d->groupsDelimiter;
86
-+  return *this;
87
- }
88
- 
89
- void LiveRoster::flagAllForDelete()
90
-@@ -1291,4 +1341,14 @@ LiveRoster::ConstIterator LiveRoster::fi
91
-   return it;
92
- }
93
- 
94
-+void LiveRoster::setGroupsDelimiter(const QString &groupsDelimiter)
95
-+{
96
-+  d->groupsDelimiter = groupsDelimiter;
97
-+}
98
-+
99
-+QString LiveRoster::groupsDelimiter() const
100
-+{
101
-+  return d->groupsDelimiter;
102
-+}
103
-+
104
- }
105
---- psi.orig/iris/src/xmpp/xmpp-im/types.cpp
106
-+++ psi/iris/src/xmpp/xmpp-im/types.cpp
107
-@@ -2846,13 +2846,35 @@ bool RosterItem::fromXml(const QDomEleme
108
- //---------------------------------------------------------------------------
109
- // Roster
110
- //---------------------------------------------------------------------------
111
-+class Roster::Private
112
-+{
113
-+public:
114
-+  QString groupsDelimiter;
115
-+};
116
-+
117
- Roster::Roster()
118
--:QList<RosterItem>()
119
-+  : QList<RosterItem>()
120
-+  , d(new Roster::Private)
121
- {
122
- }
123
- 
124
- Roster::~Roster()
125
- {
126
-+  delete d;
127
-+}
128
-+
129
-+Roster::Roster(const Roster &other)
130
-+  : QList<RosterItem>(other)
131
-+  , d(new Roster::Private)
132
-+{
133
-+  d->groupsDelimiter = other.d->groupsDelimiter;
134
-+}
135
-+
136
-+Roster &Roster::operator=(const Roster &other)
137
-+{
138
-+  QList<RosterItem>::operator=(other);
139
-+  d->groupsDelimiter = other.d->groupsDelimiter;
140
-+  return *this;
141
- }
142
- 
143
- Roster::Iterator Roster::find(const Jid &j)
144
-@@ -2875,6 +2897,16 @@ Roster::ConstIterator Roster::find(const
145
-   return end();
146
- }
147
- 
148
-+void Roster::setGroupsDelimiter(const QString &groupsDelimiter)
149
-+{
150
-+  d->groupsDelimiter = groupsDelimiter;
151
-+}
152
-+
153
-+QString Roster::groupsDelimiter() const
154
-+{
155
-+  return d->groupsDelimiter;
156
-+}
157
-+
158
- 
159
- //---------------------------------------------------------------------------
160
- // FormField
161
---- psi.orig/iris/src/xmpp/xmpp-im/xmpp_client.h
162
-+++ psi/iris/src/xmpp/xmpp-im/xmpp_client.h
163
-@@ -79,7 +79,7 @@ namespace XMPP
164
-       QString resource() const;
165
-       Jid jid() const;
166
- 
167
--      void rosterRequest();
168
-+      void rosterRequest(bool withGroupsDelimiter = true);
169
-       void sendMessage(const Message &, bool want_notify = false);
170
-       void sendSubscription(const Jid &, const QString &, const QString& nick = QString());
171
-       void setPresence(const Status &);
172
-@@ -138,6 +138,7 @@ namespace XMPP
173
-       void activated();
174
-       void disconnected();
175
-       //void authFinished(bool, int, const QString &);
176
-+      void rosterGroupsDelimiterRequestFinished(const QString &);
177
-       void rosterRequestFinished(bool, int, const QString &);
178
-       void rosterItemAdded(const RosterItem &);
179
-       void rosterItemUpdated(const RosterItem &);
180
-@@ -171,6 +172,7 @@ namespace XMPP
181
-       void streamIncomingXml(const QString &);
182
-       void streamOutgoingXml(const QString &);
183
- 
184
-+      void slotRosterDelimiterRequestFinished();
185
-       void slotRosterRequestFinished();
186
- 
187
-       // basic daemons
188
---- psi.orig/iris/src/xmpp/xmpp-im/xmpp_liveroster.h
189
-+++ psi/iris/src/xmpp/xmpp-im/xmpp_liveroster.h
190
-@@ -34,9 +34,19 @@ namespace XMPP
191
-       LiveRoster();
192
-       ~LiveRoster();
193
- 
194
-+      LiveRoster(const LiveRoster &other);
195
-+      LiveRoster &operator=(const LiveRoster &other);
196
-+
197
-       void flagAllForDelete();
198
-       LiveRoster::Iterator find(const Jid &, bool compareRes=true);
199
-       LiveRoster::ConstIterator find(const Jid &, bool compareRes=true) const;
200
-+
201
psi-plus-main-20160309.tar.xz/patches/0340-psi-multirows-tab.diff Deleted
201
 
1
@@ -1,920 +0,0 @@
2
---- psi.orig/options/default.xml
3
-+++ psi/options/default.xml
4
-@@ -510,6 +510,7 @@ QLineEdit#le_status_text {
5
-               <tab-singles type="QString" comment="Tab types that would have been untabbed are given their own tabset. 'C' for chat and 'M' for mucs"/>
6
-               <use-tab-shortcuts type="bool">true</use-tab-shortcuts>
7
-               <show-tab-buttons type="bool">true</show-tab-buttons>
8
-+              <multi-rows comment="Use multi rows mode for chat tab bar" type="bool">true</multi-rows>
9
-           </tabs>
10
-       </ui>
11
-       <shortcuts comment="Shortcuts">
12
---- psi.orig/src/widgets/psitabbar.cpp
13
-+++ psi/src/widgets/psitabbar.cpp
14
-@@ -32,7 +32,7 @@
15
-  * Constructor
16
-  */
17
- PsiTabBar::PsiTabBar(PsiTabWidget *parent)
18
--      : QTabBar(parent)
19
-+      : TabBar(parent)
20
-       , dragsEnabled_(true) {
21
-   //setAcceptDrops(true);
22
- 
23
-@@ -79,7 +79,7 @@ int PsiTabBar::findTabUnder(const QPoint
24
- }
25
- 
26
- void PsiTabBar::mousePressEvent(QMouseEvent *event) {
27
--  QTabBar::mousePressEvent(event);
28
-+  TabBar::mousePressEvent(event);
29
-   event->accept();
30
- }
31
- 
32
-@@ -145,7 +145,7 @@ void PsiTabBar::setDragsEnabled(bool ena
33
- 
34
- void PsiTabBar::paintEvent(QPaintEvent *event)
35
- {
36
--  QTabBar::paintEvent(event);
37
-+  TabBar::paintEvent(event);
38
- };
39
- 
40
- void PsiTabBar::resizeEvent(QResizeEvent * event)
41
---- psi.orig/src/widgets/psitabbar.h
42
-+++ psi/src/widgets/psitabbar.h
43
-@@ -21,12 +21,12 @@
44
- #ifndef _PSITABBAR_H_
45
- #define _PSITABBAR_H_
46
- 
47
--#include <QTabBar>
48
-+#include "tabbar.h"
49
- #include <QPoint>
50
- 
51
- class PsiTabWidget;
52
- 
53
--class PsiTabBar : public QTabBar
54
-+class PsiTabBar : public TabBar
55
- {
56
-   Q_OBJECT
57
- 
58
---- psi.orig/src/widgets/psitabwidget.cpp
59
-+++ psi/src/widgets/psitabwidget.cpp
60
-@@ -38,7 +38,10 @@ PsiTabWidget::PsiTabWidget(QWidget *pare
61
-       : QWidget(parent) {
62
-   tabsPosition_ = QTabWidget::East; // impossible => uninitialised state
63
-   tabBar_ = new PsiTabBar(this);
64
--  tabBar_->setUsesScrollButtons(true);
65
-+
66
-+  bool multiRow = PsiOptions::instance()->getOption("options.ui.tabs.multi-rows", true).toBool();
67
-+  tabBar_->setMultiRow(multiRow);
68
-+  tabBar_->setUsesScrollButtons(!multiRow);
69
-   layout_ = new QVBoxLayout(this);
70
-   layout_->setMargin(0);
71
-   layout_->setSpacing(0);
72
-@@ -55,19 +58,21 @@ PsiTabWidget::PsiTabWidget(QWidget *pare
73
-   downButton_ = new QToolButton(this);
74
-   downButton_->setMinimumSize(3,3);
75
-   downButton_->setFixedWidth(buttonwidth);
76
--  downButton_->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
77
-+  downButton_->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
78
-   menu_ = new QMenu(this);
79
-   downButton_->setMenu(menu_);
80
-   downButton_->setStyleSheet(" QToolButton::menu-indicator { image:none } ");
81
-   connect(menu_, SIGNAL(aboutToShow()), SLOT(menu_aboutToShow()));
82
-   connect(menu_, SIGNAL(triggered(QAction*)), SLOT(menu_triggered(QAction*)));
83
-   barLayout_->addWidget(downButton_);
84
-+  barLayout_->setAlignment(downButton_, Qt::AlignBottom);
85
- 
86
-   closeButton_ = new QToolButton(this);
87
-   closeButton_->setMinimumSize(3,3);
88
-   closeButton_->setFixedWidth(buttonwidth);
89
--  closeButton_->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
90
-+  closeButton_->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
91
-   barLayout_->addWidget(closeButton_);
92
-+  barLayout_->setAlignment(closeButton_, Qt::AlignBottom);
93
-   closeButton_->setText("x");
94
-   downButton_->setArrowType(Qt::DownArrow);
95
-   downButton_->setPopupMode(QToolButton::InstantPopup);
96
-@@ -180,6 +185,7 @@ void PsiTabWidget::addTab(QWidget *widge
97
-       tabBar_->addTab(name);
98
-   setLooks();
99
-   showPage(currentPage());
100
-+  tabBar_->layoutTabs();
101
- }
102
- 
103
- void PsiTabWidget::setLooks()
104
-@@ -190,6 +196,14 @@ void PsiTabWidget::setLooks()
105
-   }
106
- }
107
- 
108
-+void PsiTabWidget::resizeEvent(QResizeEvent *event)
109
-+{
110
-+  QWidget::resizeEvent(event);
111
-+  if (tabBar_->multiRow()) {
112
-+      tabBar_->layoutTabs();
113
-+  }
114
-+}
115
-+
116
- /**
117
-  * Selects the page for the specified widget.
118
-  */
119
---- psi.orig/src/widgets/psitabwidget.h
120
-+++ psi/src/widgets/psitabwidget.h
121
-@@ -22,7 +22,6 @@
122
- #define PSITABWIDGET_H
123
- 
124
- #include <QTabWidget>
125
--#include <QTabBar>
126
- #include <QDragEnterEvent>
127
- #include "psitabbar.h"
128
- 
129
-@@ -80,6 +79,9 @@ signals:
130
-   // context menu on the blank space will have tab==-1
131
-   void tabContextMenu(int tab, QPoint pos, QContextMenuEvent *event);
132
- 
133
-+protected:
134
-+  void resizeEvent(QResizeEvent *event);
135
-+
136
- private slots:
137
-   void mouseDoubleClickTab(int tab);
138
-   void mouseMiddleClickTab(int tab);
139
-@@ -91,7 +93,7 @@ private slots:
140
- 
141
- private:
142
-   QVector<QWidget*> widgets_;
143
--  QTabBar *tabBar_;
144
-+  PsiTabBar *tabBar_;
145
-   QVBoxLayout *layout_;
146
-   QHBoxLayout *barLayout_;
147
-   QStackedLayout *stacked_;
148
---- /dev/null
149
-+++ psi/src/widgets/tabbar.cpp
150
-@@ -0,0 +1,683 @@
151
-+/*
152
-+ * tabbar.cpp
153
-+ * Copyright (C) 2013-2014  Ivan Romanov <drizt@land.ru>
154
-+ *
155
-+ * This library is free software; you can redistribute it and/or
156
-+ * modify it under the terms of the GNU Lesser General Public
157
-+ * License as published by the Free Software Foundation; either
158
-+ * version 2.1 of the License, or (at your option) any later version.
159
-+ *
160
-+ * This library is distributed in the hope that it will be useful,
161
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
162
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
163
-+ * Lesser General Public License for more details.
164
-+ *
165
-+ * You should have received a copy of the GNU Lesser General Public
166
-+ * License along with this library; if not, write to the Free Software
167
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
168
-+ *
169
-+ */
170
-+
171
-+#include "tabbar.h"
172
-+
173
-+#include <QAbstractButton>
174
-+#include <QPixmap>
175
-+#include <QStyleOptionTab>
176
-+#include <QStylePainter>
177
-+#include <QMouseEvent>
178
-+
179
-+class CloseButton : public QAbstractButton
180
-+{
181
-+  Q_OBJECT
182
-+
183
-+public:
184
-+  CloseButton(QWidget *parent = 0);
185
-+
186
-+  QSize sizeHint() const;
187
-+  inline QSize minimumSizeHint() const
188
-+      { return sizeHint(); }
189
-+  void enterEvent(QEvent *event);
190
-+  void leaveEvent(QEvent *event);
191
-+  void paintEvent(QPaintEvent *event);
192
-+};
193
-+
194
-+class TabBar::Private
195
-+{
196
-+public:
197
-+  TabBar *q;
198
-+  Private(TabBar *base)
199
-+  {
200
-+      q = base;
201
psi-plus-main-20160309.tar.xz/patches/8000-psi-extend-plugins-interface.diff Deleted
201
 
1
@@ -1,4778 +0,0 @@
2
---- a/iris/src/xmpp/xmpp-im/client.cpp
3
-+++ b/iris/src/xmpp/xmpp-im/client.cpp
4
-@@ -619,6 +619,7 @@ void Client::send(const QDomElement &x, bool want_notify)
5
-       //printf("bad stanza??\n");
6
-       return;
7
-   }
8
-+  emit stanzaElementOutgoing(e);
9
-   QString out = s.toString();
10
-   //qWarning() << "Out: " << out;
11
-   debug(QString("Client: outgoing: [\n%1]\n").arg(out));
12
---- a/iris/src/xmpp/xmpp-im/xmpp_client.h
13
-+++ b/iris/src/xmpp/xmpp-im/xmpp_client.h
14
-@@ -148,6 +148,7 @@ namespace XMPP
15
-       void debugText(const QString &);
16
-       void xmlIncoming(const QString &);
17
-       void xmlOutgoing(const QString &);
18
-+      void stanzaElementOutgoing(QDomElement &);
19
-       void groupChatJoined(const Jid &);
20
-       void groupChatLeft(const Jid &);
21
-       void groupChatPresence(const Jid &, const Status &);
22
---- a/src/applicationinfo.cpp
23
-+++ b/src/applicationinfo.cpp
24
-@@ -27,6 +27,7 @@
25
- 
26
- #include "psiapplication.h"
27
- #include "applicationinfo.h"
28
-+#include "systeminfo.h"
29
- #include "profiles.h"
30
- #include "homedirmigration.h"
31
- #include "activeprofiles.h"
32
-@@ -82,6 +83,11 @@ QString ApplicationInfo::capsNode()
33
-   return PROG_CAPS_NODE;
34
- }
35
- 
36
-+QString ApplicationInfo::osName()
37
-+{
38
-+  return SystemInfo::instance()->os();
39
-+}
40
-+
41
- QString ApplicationInfo::IPCName()
42
- {
43
-   return PROG_IPC_NAME;
44
---- a/src/applicationinfo.h
45
-+++ b/src/applicationinfo.h
46
-@@ -19,6 +19,7 @@ public:
47
-   static QLatin1String sname();
48
-   static QString version();
49
-   static QString capsNode();
50
-+  static QString osName();
51
-   static QString IPCName();
52
- 
53
-   // URLs
54
---- a/src/chatdlg.cpp
55
-+++ b/src/chatdlg.cpp
56
-@@ -80,6 +80,10 @@
57
- #include <windows.h>
58
- #endif
59
- 
60
-+#ifdef PSI_PLUGINS
61
-+#include "pluginmanager.h"
62
-+#endif
63
-+
64
- #include "psichatdlg.h"
65
- 
66
- static const QString geometryOption = "options.ui.chat.size";
67
-@@ -893,10 +897,26 @@ void ChatDlg::appendMessage(const Message &m, bool local)
68
-   }
69
- 
70
-   MessageView mv(MessageView::Message);
71
--  if (m.containsHTML() && PsiOptions::instance()->getOption("options.html.chat.render").toBool() && !m.html().body().firstChild().isNull()) {
72
--      mv.setHtml(m.html().toString("span"));
73
-+
74
-+  QString body = m.body();
75
-+  HTMLElement htmlElem;
76
-+  if (m.containsHTML())
77
-+      htmlElem = m.html();
78
-+
79
-+#ifdef PSI_PLUGINS
80
-+  QDomElement html = htmlElem.body();
81
-+
82
-+  PluginManager::instance()->appendingChatMessage(account(), jid().full(), body, html, local);
83
-+
84
-+  if(!html.isNull())
85
-+      htmlElem.setBody(html);
86
-+#endif
87
-+
88
-+  if (PsiOptions::instance()->getOption("options.html.chat.render").toBool() && !htmlElem.body().isNull()
89
-+          && !htmlElem.body().firstChild().isNull()) {
90
-+      mv.setHtml(htmlElem.toString("span"));
91
-   } else {
92
--      mv.setPlainText(m.body());
93
-+      mv.setPlainText(body);
94
-   }
95
-   mv.setMessageId(m.id());
96
-   mv.setLocal(local);
97
---- a/src/chatdlg.h
98
-+++ b/src/chatdlg.h
99
-@@ -170,7 +170,11 @@ protected:
100
- 
101
-   void appendMessage(const Message &, bool local = false);
102
-   virtual bool isEncryptionEnabled() const;
103
-+
104
-+public:
105
-   virtual void appendSysMsg(const QString& txt) = 0;
106
-+
107
-+protected:
108
-   virtual void nicksChanged();
109
- 
110
-   QString whoNick(bool local) const;
111
---- a/src/common.cpp
112
-+++ b/src/common.cpp
113
-@@ -64,6 +64,7 @@
114
- #include "applicationinfo.h"
115
- #include "psioptions.h"
116
- #include "activity.h"
117
-+#include "tabdlg.h"
118
- 
119
- Qt::WindowFlags psi_dialog_flags = (Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
120
- 
121
-@@ -428,6 +429,32 @@ void reorderGridLayout(QGridLayout* layout, int maxCols)
122
-   }
123
- }
124
- 
125
-+TabbableWidget* findActiveTab()
126
-+{
127
-+  QWidget* chat = QApplication::activeWindow();
128
-+  TabbableWidget* tw = 0;
129
-+  if(chat) {
130
-+      TabDlg* td = qobject_cast<TabDlg*>(chat);
131
-+      if(td) {
132
-+          tw = td->getCurrentTab();
133
-+      }
134
-+      else {
135
-+          tw = qobject_cast<TabbableWidget*>(chat);
136
-+          if (!tw) {
137
-+              QList<TabDlg*> tmp = chat->findChildren<TabDlg*>(); // all-in-one
138
-+              while(!tmp.isEmpty()) {
139
-+                  TabDlg* td = tmp.takeFirst();
140
-+                  tw = td->getCurrentTab();
141
-+                  if(tw) {
142
-+                      break;
143
-+                  }
144
-+              }
145
-+          }
146
-+      }
147
-+  }
148
-+  return tw;
149
-+}
150
-+
151
- #ifdef HAVE_X11
152
- #include <X11/Xlib.h>
153
- #include <X11/Xutil.h> // needed for WM_CLASS hinting
154
---- a/src/common.h
155
-+++ b/src/common.h
156
-@@ -30,6 +30,7 @@
157
- #include <QGridLayout>
158
- 
159
- class QMenu;
160
-+class TabbableWidget;
161
- 
162
- #include "statuspreset.h"
163
- 
164
-@@ -150,6 +151,7 @@ void clearMenu(QMenu *m); // deletes all items, including submenus, from given Q
165
- void bringToFront(QWidget *w, bool grabFocus = true);
166
- void replaceWidget(QWidget *, QWidget *);
167
- void closeDialogs(QWidget *);
168
-+TabbableWidget* findActiveTab();
169
- #ifdef HAVE_X11
170
- #include <QWidget>
171
- #include <QX11Info>
172
---- a/src/contactlistaccountmenu.cpp
173
-+++ b/src/contactlistaccountmenu.cpp
174
-@@ -22,6 +22,8 @@
175
- 
176
- #include <QPointer>
177
- 
178
-+#include "pluginmanager.h"
179
-+#include "psiiconset.h"
180
- #include "psiaccount.h"
181
- #include "contactlistaccountgroup.h"
182
- #include "accountstatusmenu.h"
183
-@@ -64,6 +66,7 @@ class ContactListAccountMenu::Private : public QObject
184
-   QAction* adminUpdateMotdAction_;
185
-   QAction* adminDeleteMotdAction_;
186
-   QAction *doGroupChatAction_;
187
-+  QMenu* pluginsMenu_;
188
- 
189
- public:
190
-   Private(ContactListAccountMenu* menu, ContactListAccountGroup* _account)
191
-@@ -166,6 +169,12 @@ public:
192
-       menu->addAction(xmlConsoleAction_);
193
-       menu->addSeparator();
194
-       menu->addAction(modifyAccountAction_);
195
-+
196
-+#ifdef PSI_PLUGINS
197
-+      pluginsMenu_ = menu->addMenu(IconsetFactory::icon("psi/plugins").icon(), tr("Plugins"));
198
-+      PluginManager::instance()->addAccountMenu(pluginsMenu_, account->account());
199
-+#endif
200
-+
201
psi-plus-main-20160309.tar.xz/patches/9970-psiplus-join-to-support-muc.diff Deleted
48
 
1
@@ -1,46 +0,0 @@
2
-Entering 'iris'
3
-Entering 'src/libpsi'
4
---- psi.orig/src/mainwin.cpp
5
-+++ psi/src/mainwin.cpp
6
-@@ -1096,7 +1096,7 @@ void MainWin::actOnlineHomeActivated ()
7
- 
8
- void MainWin::actOnlineForumActivated ()
9
- {
10
--  DesktopUtil::openUrl("http://forum.psi-im.org");
11
-+  DesktopUtil::openUrl("http://forum.psi-plus.com");
12
- }
13
- 
14
- void MainWin::actJoinPsiMUCActivated()
15
-@@ -1106,12 +1106,12 @@ void MainWin::actJoinPsiMUCActivated()
16
-       return;
17
-   }
18
- 
19
--  account->actionJoin("psi@conference.psi-im.org");
20
-+  account->actionJoin("psi-dev@conference.jabber.ru");
21
- }
22
- 
23
- void MainWin::actBugReportActivated ()
24
- {
25
--  DesktopUtil::openUrl("http://forum.psi-im.org/forum/2");
26
-+  DesktopUtil::openUrl("http://code.google.com/p/psi-dev/wiki/issues?tm=3");
27
- }
28
- 
29
- void MainWin::actAboutActivated ()
30
---- psi.orig/src/psiactionlist.cpp
31
-+++ psi/src/psiactionlist.cpp
32
-@@ -386,11 +386,11 @@ void PsiActionList::Private::createMainW
33
-       IconAction *actOnlineHome = new IconAction (tr("Home Page (Online)"), tr("&Home Page (Online)"), 0, this);
34
-       actOnlineHome->setWhatsThis (tr("Home Page (Online)"));
35
- 
36
--      IconAction *actOnlineForum = new IconAction (tr("Psi Forum (Online)"), tr("Psi &Forum (Online)"), 0, this);
37
--      actOnlineForum->setWhatsThis (tr("Psi Forum (Online)"));
38
-+      IconAction *actOnlineForum = new IconAction (tr("Psi+ Forum (Online)"), tr("Psi+ &Forum (Online)"), 0, this);
39
-+      actOnlineForum->setWhatsThis (tr("Psi+ Forum (Online)"));
40
- 
41
--      IconAction *actPsiMUC = new IconAction (tr("Join Psi Discussion Room (Online)"), tr("&Join Psi Discussion Room (Online)"), 0, this);
42
--      actOnlineHome->setWhatsThis (tr("Join Psi Discussion Room (Online)"));
43
-+      IconAction *actPsiMUC = new IconAction (tr("Join Psi+ Discussion Room (Online)"), tr("&Join Psi+ Discussion Room (Online)"), 0, this);
44
-+      actOnlineHome->setWhatsThis (tr("Join Psi+ Discussion Room (Online)"));
45
- 
46
-       IconAction *actBugReport = new IconAction (tr("Report a Bug (Online)"), tr("Report a &Bug (Online)"), 0, this);
47
-       actBugReport->setWhatsThis (tr("Report a Bug (Online)"));
48
psi-plus-main-20160309.tar.xz/patches/9980-psi-search-for-psimedia-in-all-plugins-dirs.diff Deleted
64
 
1
@@ -1,62 +0,0 @@
2
---- psi.orig/src/applicationinfo.cpp
3
-+++ psi/src/applicationinfo.cpp
4
-@@ -134,6 +134,17 @@ QStringList ApplicationInfo::dataDirs()
5
-   return  dirs;
6
- }
7
- 
8
-+QStringList ApplicationInfo::pluginDirs()
9
-+{
10
-+  QStringList l;
11
-+  l += resourcesDir() + "/plugins";
12
-+  l += homeDir(ApplicationInfo::DataLocation) + "/plugins";
13
-+#if defined(Q_OS_UNIX)
14
-+  l += libDir() + "/plugins";
15
-+#endif
16
-+  return l;
17
-+}
18
-+
19
- QString ApplicationInfo::getCertificateStoreSaveDir()
20
- {
21
-   QDir certsave(homeDir(DataLocation) + "/certs");
22
---- psi.orig/src/applicationinfo.h
23
-+++ psi/src/applicationinfo.h
24
-@@ -40,6 +40,7 @@ public:
25
-   static QStringList getCertificateStoreDirs();
26
-   static QString getCertificateStoreSaveDir();
27
-   static QStringList dataDirs();
28
-+  static QStringList pluginDirs();
29
- 
30
-   // Namespaces
31
-   static QString optionsNS();
32
---- psi.orig/src/avcall/avcall.cpp
33
-+++ psi/src/avcall/avcall.cpp
34
-@@ -117,7 +117,11 @@ static void ensureLoaded()
35
-           pluginFile = findPlugin("../Plugins", "gstprovider");
36
-           resourcePath = QCoreApplication::applicationDirPath() + "/../Frameworks/gstreamer-0.10";
37
- #else
38
--          pluginFile = findPlugin(ApplicationInfo::libDir() + "/plugins", "gstprovider");
39
-+          foreach(const QString& path, ApplicationInfo::pluginDirs()) {
40
-+              pluginFile = findPlugin(path, "gstprovider");
41
-+              if(!pluginFile.isEmpty())
42
-+                  break;
43
-+          }
44
- #endif
45
-       }
46
- 
47
---- psi.orig/src/pluginmanager.cpp
48
-+++ psi/src/pluginmanager.cpp
49
-@@ -60,13 +60,7 @@ public:
50
-  */
51
- static QStringList pluginDirs()
52
- {
53
--  QStringList l;
54
--  l += ApplicationInfo::resourcesDir() + "/plugins";
55
--  l += ApplicationInfo::homeDir(ApplicationInfo::DataLocation) + "/plugins";
56
--#if defined(Q_OS_UNIX)
57
--  l += ApplicationInfo::libDir() + "/plugins";
58
--#endif
59
--  return l;
60
-+  return ApplicationInfo::pluginDirs();
61
- }
62
- 
63
- /**
64
psi-plus-main-20160309.tar.xz/patches/9990-psiplus-aboutdlg.diff Deleted
117
 
1
@@ -1,115 +0,0 @@
2
---- psi.orig/src/aboutdlg.cpp
3
-+++ psi/src/aboutdlg.cpp
4
-@@ -71,6 +71,52 @@ AboutDlg::AboutDlg(QWidget* parent)
5
-              tr("Developer"));
6
-   ui_.te_authors->setText( authors );
7
- 
8
-+  // fill in About Psi+ tab...
9
-+  QString psiplus;
10
-+  psiplus += details(QString::fromUtf8("Psi+ Project"),
11
-+             "", "psi-dev@conference.jabber.ru", "http://psi-dev.googlecode.com/",
12
-+             tr("Active project members are presents below:"));
13
-+  psiplus += details(QString::fromUtf8("zet"),
14
-+             "vladimir.shelukhin@gmail.com", "", "",
15
-+             tr("Founder, Patcher and MS Windows Packager"));
16
-+  psiplus += details(QString::fromUtf8("rion"),
17
-+             "rion4ik@gmail.com", "", "",
18
-+             tr("Founder and Lead Patcher"));
19
-+  psiplus += details(QString::fromUtf8("majik"),
20
-+             "maksim.maj@gmail.com", "", "",
21
-+             tr("Founder, Designer and Patcher"));
22
-+  psiplus += details(QString::fromUtf8("Dealer_WeARE"),
23
-+             "wadealer@gmail.com", "", "",
24
-+             tr("Lead Patcher and Plugins Writer; Mac OS X Packager"));
25
-+  psiplus += details(QString::fromUtf8("liuch"),
26
-+             "", "", "",
27
-+             tr("Patcher and Plugins Writer"));
28
-+  psiplus += details(QString::fromUtf8("tehnick"),
29
-+            "tehnick-8@mail.ru", "", "",
30
-+            tr("Language coordinator; Debian Packager"));
31
-+  psiplus += details(QString::fromUtf8("KukuRuzo"),
32
-+             "", "", "",
33
-+             tr("Patcher and Plugins Writer"));
34
-+  psiplus += details(QString::fromUtf8("taurus"),
35
-+             "", "", "",
36
-+             tr("Patcher, Plugins Writer and Fedora Packager"));
37
-+  psiplus += details(QString::fromUtf8("ivan1986"),
38
-+             "", "", "",
39
-+             tr("Patcher and Ubuntu Packager"));
40
-+  psiplus += details(QString::fromUtf8("nexor (aka zerkalica)"),
41
-+             "", "", "",
42
-+             tr("Ubuntu Packager"));
43
-+  psiplus += details(QString::fromUtf8("Flint (aka Флинт)"),
44
-+             "", "", "",
45
-+             tr("Mandriva Linux Packager"));
46
-+  psiplus += details(QString::fromUtf8("ivan101"),
47
-+             "ivan101@users.sourceforge.net", "", "",
48
-+             tr("Patcher and Russian localization"));
49
-+  psiplus += details(QString::fromUtf8("Z_God"),
50
-+             "", "", "",
51
-+             tr("Psimedia Patcher and Wiki English localization"));
52
-+  ui_.te_psiplus->setText( psiplus );
53
-+
54
-   // fill in Thanks To tab...
55
-   QString thanks;
56
-   thanks += details(QString::fromUtf8("Frederik Schwarzer"),
57
-@@ -182,7 +228,7 @@ QString AboutDlg::details( QString name,
58
-   if ( !email.isEmpty() )
59
-       ret += nbsp + "E-mail: " + "<a href=\"mailto:" + email + "\">" + email + "</a><br>\n";
60
-   if ( !jabber.isEmpty() )
61
--      ret += nbsp + "XMPP: " + "<a href=\"xmpp:" + jabber + "\">" + jabber + "</a><br>\n";
62
-+      ret += nbsp + "XMPP: " + "<a href=\"xmpp:" + jabber + "?join\">" + jabber + "</a><br>\n";
63
-   if ( !www.isEmpty() )
64
-       ret += nbsp + "WWW: " + "<a href=\"" + www + "\">" + www + "</a><br>\n";
65
-   if ( !desc.isEmpty() )
66
---- psi.orig/src/about.ui
67
-+++ psi/src/about.ui
68
-@@ -8,12 +8,12 @@
69
-    <rect>
70
-     <x>0</x>
71
-     <y>0</y>
72
--    <width>504</width>
73
-+    <width>625</width>
74
-     <height>320</height>
75
-    </rect>
76
-   </property>
77
-   <property name="windowTitle" >
78
--   <string>About Psi</string>
79
-+   <string>About</string>
80
-   </property>
81
-   <layout class="QVBoxLayout" >
82
-    <property name="margin" >
83
-@@ -39,7 +39,7 @@
84
-         <enum>QFrame::Plain</enum>
85
-        </property>
86
-        <property name="psiIconName" stdset="0" >
87
--        <string>psi/logo_48</string>
88
-+        <string>psi/psiplus_logo</string>
89
-        </property>
90
-       </widget>
91
-      </item>
92
-@@ -221,7 +221,23 @@ Copyright © 2001-2014 The Psi Team.&lt;
93
-        </item>
94
-       </layout>
95
-      </widget>
96
--    </widget>
97
-+     <widget class="QWidget" name="tab_psiplus" >
98
-+      <attribute name="title" >
99
-+       <string>About Psi+</string>
100
-+      </attribute>
101
-+      <layout class="QVBoxLayout" >
102
-+       <property name="margin" >
103
-+        <number>9</number>
104
-+       </property>
105
-+       <property name="spacing" >
106
-+        <number>6</number>
107
-+       </property>
108
-+       <item>
109
-+        <widget class="PsiTextView" name="te_psiplus" />
110
-+       </item>
111
-+      </layout>
112
-+     </widget>
113
-+   </widget>
114
-    </item>
115
-    <item>
116
-     <layout class="QHBoxLayout" >
117
psi-plus-main-20160309.tar.xz/patches/9998-psi-plus-migrate-old-home.diff Deleted
13
 
1
@@ -1,11 +0,0 @@
2
---- psi.orig/src/homedirmigration.cpp
3
-+++ psi/src/homedirmigration.cpp
4
-@@ -232,6 +232,8 @@ bool HomeDirMigration::checkOldHomeDir()
5
- {
6
- #if defined HAVE_X11 || defined Q_OS_MAC
7
-   QString base = QDir::homePath();
8
-+  // First it need to check ~/.psi-plus folder for Fedora users.
9
-+  oldHomeDir_.setPath(base + "/.psi-plus");
10
- 
11
-   if (!oldHomeDir_.exists()) {
12
-       oldHomeDir_.setPath(base + "/.psi");
13
psi-plus-main-20160309.tar.xz/patches/9999-psiplus-application-info.diff Deleted
138
 
1
@@ -1,136 +0,0 @@
2
---- a/certs/README
3
-+++ b/certs/README
4
-@@ -4,7 +4,7 @@ Please use PSIDATADIR/certs for local additions.
5
- 
6
- Default value of PSIDATADIR:
7
-   Linux, MacOS X and other Unices
8
--     ~/.psi/ 
9
-+     ~/.local/share/psi+/
10
-   Windows NT, 2000, XP and Server 2003
11
-      %UserProfile%\PsiData\ (usually C:\Documents and Settings\username\PsiData )
12
-   Windows 95, 98 and Me
13
---- a/psi.desktop
14
-+++ b/psi.desktop
15
-@@ -5,11 +5,11 @@ Type=Application
16
- Name=Psi+
17
- GenericName=XMPP Client
18
- Comment=Communicate over the XMPP network
19
--Icon=psi
20
--Exec=psi %U
21
-+Icon=psi-plus
22
-+Exec=psi-plus %U
23
- MimeType=x-scheme-handler/xmpp;
24
- Terminal=false
25
--StartupWMClass=Psi
26
-+StartupWMClass=Psi-plus
27
- Categories=Network;InstantMessaging;Qt;
28
- Keywords=XMPP;Jabber;Chat;InstantMessaging;
29
- 
30
---- a/qcm/conf.qcm
31
-+++ b/qcm/conf.qcm
32
-@@ -81,8 +81,8 @@ public:
33
-       psiGenerateFile(sourceDir + "/.qmake.cache.in", ".qmake.cache", vars);
34
- 
35
- #ifndef Q_OS_WIN
36
--      conf->addExtra(QString("PSI_LIBDIR=%1/psi").arg(conf->getenv("LIBDIR")));
37
--      conf->addExtra(QString("PSI_DATADIR=%1/psi").arg(conf->getenv("DATADIR")));
38
-+      conf->addExtra(QString("PSI_LIBDIR=%1/psi-plus").arg(conf->getenv("LIBDIR")));
39
-+      conf->addExtra(QString("PSI_DATADIR=%1/psi-plus").arg(conf->getenv("DATADIR")));
40
- #endif
41
- 
42
-       QDir(".").mkdir("src");
43
-@@ -90,8 +90,8 @@ public:
44
-       if ( file.open(QIODevice::WriteOnly | QIODevice::Text) ) {
45
-           QTextStream stream( &file );
46
- #ifndef Q_OS_WIN
47
--          stream << "#define PSI_LIBDIR \"" << conf->getenv("LIBDIR") << "/psi\"" << endl;
48
--          stream << "#define PSI_DATADIR \"" << conf->getenv("DATADIR") << "/psi\"" << endl;
49
-+          stream << "#define PSI_LIBDIR \"" << conf->getenv("LIBDIR") << "/psi-plus\"" << endl;
50
-+          stream << "#define PSI_DATADIR \"" << conf->getenv("DATADIR") << "/psi-plus\"" << endl;
51
- #endif
52
-           stream << "#define PSI_VERSION \"" << version << "\"" << endl;
53
-       }
54
---- a/src/applicationinfo.cpp
55
-+++ b/src/applicationinfo.cpp
56
-@@ -42,12 +42,12 @@
57
- //
58
- // PROG_SNAME - read as small name, system name, soname, short name, fs name
59
- 
60
--#define PROG_NAME "Psi"
61
--#define PROG_SNAME "psi"
62
-+#define PROG_NAME "Psi+"
63
-+#define PROG_SNAME "psi+"
64
- #define PROG_VERSION PSI_VERSION
65
- //#define PROG_VERSION "0.15-dev" " (" __DATE__ ")" //CVS Builds are dated
66
- //#define PROG_VERSION "0.15";
67
--#define PROG_CAPS_NODE "http://psi-im.org"
68
-+#define PROG_CAPS_NODE "http://psi-dev.googlecode.com/caps"
69
- #define PROG_IPC_NAME "org.psi-im.Psi"    // must not contain '\\' character on Windows
70
- #define PROG_OPTIONS_NS "http://psi-im.org/options"
71
- #define PROG_STORAGE_NS "http://psi-im.org/storage"
72
---- a/src/homedirmigration.ui
73
-+++ b/src/homedirmigration.ui
74
-@@ -43,7 +43,7 @@ p, li { white-space: pre-wrap; }
75
- &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
76
- p, li { white-space: pre-wrap; }
77
- &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Liberation Serif'; font-size:12pt; font-weight:400; font-style:normal;&quot;&gt;
78
--&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;Copy the existing profile to the new directory required to run Psi. The old profile will not be removed. You can remove it manually later.&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot; font-size:medium; font-weight:600; color:#1a1a1a;&quot;&gt;(Recommended)&lt;/span&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
79
-+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;Copy the existing profile to the new directory required to run Psi+. The old profile will not be removed. You can remove it manually later.&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot; font-size:medium; font-weight:600; color:#1a1a1a;&quot;&gt;(Recommended)&lt;/span&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
80
-      </property>
81
-      <property name="text">
82
-       <string>Import Psi profile</string>
83
-@@ -74,7 +74,7 @@ p, li { white-space: pre-wrap; }
84
- &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
85
- p, li { white-space: pre-wrap; }
86
- &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Liberation Serif'; font-size:12pt; font-weight:400; font-style:normal;&quot;&gt;
87
--&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;Create a new Psi profile. The old profile will not be removed, but you will be unable to choose it.&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot; font-size:medium; font-weight:600; color:#1a1a1a;&quot;&gt;(Not recommended)&lt;/span&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
88
-+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;Create a new Psi+ profile. The old profile will not be removed, but you will be unable to choose it.&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot; font-size:medium; font-weight:600; color:#1a1a1a;&quot;&gt;(Not recommended)&lt;/span&gt;&lt;span style=&quot; font-size:medium; color:#1a1a1a;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
89
-      </property>
90
-      <property name="text">
91
-       <string>Create new profile</string>
92
---- a/src/plugins/psiplugin.pri
93
-+++ b/src/plugins/psiplugin.pri
94
-@@ -14,7 +14,7 @@ greaterThan(QT_MAJOR_VERSION, 4) {
95
-   DEFINES += HAVE_QT5
96
- }
97
- 
98
--target.path = $$(HOME)/.local/share/Psi/plugins
99
-+target.path = $$(HOME)/.local/share/psi+/plugins
100
- INSTALLS += target
101
- 
102
- include(plugins.pri)
103
---- a/src/src.pro
104
-+++ b/src/src.pro
105
-@@ -4,7 +4,7 @@
106
- 
107
- # Configuration
108
- TEMPLATE = app
109
--TARGET   = psi
110
-+TARGET   = psi-plus
111
- CONFIG  += qt thread x11
112
- DESTDIR  = $$top_builddir
113
- 
114
-@@ -43,17 +43,17 @@ unix {
115
- 
116
-   # icons and desktop files
117
-   dt.path=$$PREFIX/share/applications/
118
--  dt.files = ../psi.desktop
119
-+  dt.extra = cp -f ../psi.desktop $(INSTALL_ROOT)$$dt.path/psi-plus.desktop
120
-   icon1.path=$$PREFIX/share/icons/hicolor/16x16/apps
121
--  icon1.extra = cp -f ../iconsets/system/default/psiplus/logo_16.png $(INSTALL_ROOT)$$icon1.path/psi.png
122
-+  icon1.extra = cp -f ../iconsets/system/default/psiplus/logo_16.png $(INSTALL_ROOT)$$icon1.path/psi-plus.png
123
-   icon2.path=$$PREFIX/share/icons/hicolor/32x32/apps
124
--  icon2.extra = cp -f ../iconsets/system/default/psiplus/logo_32.png $(INSTALL_ROOT)$$icon2.path/psi.png
125
-+  icon2.extra = cp -f ../iconsets/system/default/psiplus/logo_32.png $(INSTALL_ROOT)$$icon2.path/psi-plus.png
126
-   icon3.path=$$PREFIX/share/icons/hicolor/48x48/apps
127
--  icon3.extra = cp -f ../iconsets/system/default/psiplus/logo_48.png $(INSTALL_ROOT)$$icon3.path/psi.png
128
-+  icon3.extra = cp -f ../iconsets/system/default/psiplus/logo_48.png $(INSTALL_ROOT)$$icon3.path/psi-plus.png
129
-   icon4.path=$$PREFIX/share/icons/hicolor/64x64/apps
130
--  icon4.extra = cp -f ../iconsets/system/default/psiplus/logo_64.png $(INSTALL_ROOT)$$icon4.path/psi.png
131
-+  icon4.extra = cp -f ../iconsets/system/default/psiplus/logo_64.png $(INSTALL_ROOT)$$icon4.path/psi-plus.png
132
-   icon5.path=$$PREFIX/share/icons/hicolor/128x128/apps
133
--  icon5.extra = cp -f ../iconsets/system/default/psiplus/logo_128.png $(INSTALL_ROOT)$$icon5.path/psi.png
134
-+  icon5.extra = cp -f ../iconsets/system/default/psiplus/logo_128.png $(INSTALL_ROOT)$$icon5.path/psi-plus.png
135
-   INSTALLS += dt icon1 icon2 icon3 icon4 icon5
136
- }
137
- 
138
psi-plus-main-20160309.tar.xz/patches/dev Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/patches/dev/0460-psi-plugins-fixes.patch Deleted
184
 
1
@@ -1,182 +0,0 @@
2
---- git.temp.orig/src/plugins/generic/antievil/antievil.cpp
3
-+++ git.temp/src/plugins/generic/antievil/antievil.cpp
4
-@@ -42,7 +42,7 @@ public:
5
-       return "0.1";
6
-   }
7
- 
8
--  virtual QWidget* options() const
9
-+  virtual QWidget* options()
10
-   {
11
-       return 0;
12
-   }
13
-@@ -92,6 +92,13 @@ public:
14
-       return blocked;
15
-   }
16
- 
17
-+  virtual bool incomingStanza(int account, QDomElement& stanza)
18
-+  {
19
-+      Q_UNUSED(account)
20
-+      Q_UNUSED(stanza)
21
-+      return false;
22
-+  }
23
-+
24
- 
25
-   //-- StanzaSender ----------------------------------------
26
- 
27
-@@ -100,6 +107,9 @@ public:
28
-       stanzaSender = host;
29
-   }
30
- 
31
-+  virtual void applyOptions() {};
32
-+  virtual void restoreOptions() {};
33
-+
34
- 
35
- private:
36
-   StanzaSendingHost* stanzaSender;
37
---- git.temp.orig/src/plugins/generic/consoledump/consoledumpplugin.cpp
38
-+++ git.temp/src/plugins/generic/consoledump/consoledumpplugin.cpp
39
-@@ -39,9 +39,11 @@ public:
40
-   virtual QString name() const;
41
-   virtual QString shortName() const;
42
-   virtual QString version() const;
43
--  virtual QWidget* options() const;
44
-+  virtual QWidget* options();
45
-   virtual bool enable();
46
-   virtual bool disable();
47
-+  virtual void applyOptions() {};
48
-+  virtual void restoreOptions() {};
49
- 
50
-     virtual bool processEvent(int account, const QDomElement& e);
51
-   virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject) ;
52
-@@ -72,7 +74,7 @@ QString ConsoleDumpPlugin::version() con
53
-   return "0.1";
54
- }
55
- 
56
--QWidget* ConsoleDumpPlugin::options() const
57
-+QWidget* ConsoleDumpPlugin::options()
58
- {
59
-   return 0;
60
- }
61
---- git.temp.orig/src/plugins/generic/echo/echoplugin.cpp
62
-+++ git.temp/src/plugins/generic/echo/echoplugin.cpp
63
-@@ -44,12 +44,12 @@ public:
64
-   virtual QString name() const;
65
-   virtual QString shortName() const;
66
-   virtual QString version() const;
67
--  virtual QWidget* options() const;
68
-+  virtual QWidget* options();
69
-   virtual bool enable();
70
-   virtual bool disable();
71
- 
72
-   // EventFilter
73
--    virtual bool processEvent(int account, const QDomElement& e);
74
-+  virtual bool processEvent(int account, const QDomElement& e);
75
-   virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject);
76
- 
77
-   // StanzaSender
78
-@@ -59,7 +59,8 @@ public:
79
-   virtual void setOptionAccessingHost(OptionAccessingHost* host);
80
-   virtual void optionChanged(const QString& option);
81
- 
82
--
83
-+  virtual void applyOptions();
84
-+  virtual void restoreOptions();
85
- 
86
- private:
87
-   bool enabled;
88
-@@ -91,7 +92,7 @@ QString EchoPlugin::version() const
89
-   return "0.1";
90
- }
91
- 
92
--QWidget* EchoPlugin::options() const
93
-+QWidget* EchoPlugin::options()
94
- {
95
-   return 0;
96
- }
97
-@@ -160,6 +161,4 @@ void EchoPlugin::optionChanged(const QSt
98
- {
99
-   Q_UNUSED(option);
100
- }
101
--
102
--
103
- #include "echoplugin.moc"
104
---- git.temp.orig/src/plugins/generic/noughtsandcrosses/noughtsandcrossesplugin.cpp
105
-+++ git.temp/src/plugins/generic/noughtsandcrosses/noughtsandcrossesplugin.cpp
106
-@@ -44,7 +44,7 @@ public:
107
-   virtual QString name() const;
108
-   virtual QString shortName() const;
109
-   virtual QString version() const;
110
--  virtual QWidget* options() const;
111
-+  virtual QWidget* options();
112
-   virtual bool enable();
113
-   virtual bool disable();
114
- 
115
-@@ -52,6 +52,8 @@ public:
116
- 
117
-     virtual bool processEvent(int account, const QDomElement& e);
118
-   virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject);
119
-+  virtual void applyOptions() {};
120
-+  virtual void restoreOptions() {};
121
- 
122
- private slots:
123
-   void stopGame();
124
-@@ -95,7 +97,7 @@ QString NoughtsAndCrossesPlugin::version
125
-   return "0.1";
126
- }
127
- 
128
--QWidget* NoughtsAndCrossesPlugin::options() const
129
-+QWidget* NoughtsAndCrossesPlugin::options()
130
- {
131
-   return 0;
132
- }
133
---- git.temp.orig/src/plugins/generic/null/nullplugin.cpp
134
-+++ git.temp/src/plugins/generic/null/nullplugin.cpp
135
-@@ -34,9 +34,11 @@ public:
136
-   virtual QString name() const;
137
-   virtual QString shortName() const;
138
-   virtual QString version() const;
139
--  virtual QWidget* options() const;
140
-+  virtual QWidget* options();
141
-   virtual bool enable();
142
-   virtual bool disable();
143
-+  virtual void applyOptions() {};
144
-+  virtual void restoreOptions() {};
145
- };
146
- 
147
- Q_EXPORT_PLUGIN(NullPlugin);
148
-@@ -56,7 +58,7 @@ QString NullPlugin::version() const
149
-   return "0.1";
150
- }
151
- 
152
--QWidget* NullPlugin::options() const
153
-+QWidget* NullPlugin::options()
154
- {
155
-   return 0;
156
- }
157
---- git.temp.orig/src/plugins/generic/urlwatcher/urlwatcherplugin.cpp
158
-+++ git.temp/src/plugins/generic/urlwatcher/urlwatcherplugin.cpp
159
-@@ -44,12 +44,14 @@ public:
160
-   virtual QString name() const;
161
-   virtual QString shortName() const;
162
-   virtual QString version() const;
163
--  virtual QWidget* options() const;
164
-+  virtual QWidget* options();
165
-   virtual bool enable();
166
-   virtual bool disable();
167
- 
168
-     virtual bool processEvent(int account, const QDomElement& e);
169
-   virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject) ;
170
-+  virtual void applyOptions() {};
171
-+  virtual void restoreOptions() {};
172
- 
173
- private:
174
-   bool enabled_;
175
-@@ -107,7 +109,7 @@ QString URLWatcherPlugin::version() cons
176
-   return "0.2";
177
- }
178
- 
179
--QWidget* URLWatcherPlugin::options() const
180
-+QWidget* URLWatcherPlugin::options()
181
- {
182
-   return 0;
183
- }
184
psi-plus-main-20160309.tar.xz/patches/dev/fix_historydb_qt5.diff Deleted
72
 
1
@@ -1,70 +0,0 @@
2
---- git.orig/qcm/qjson.qcm
3
-+++ git/qcm/qjson.qcm
4
-@@ -104,6 +104,7 @@ public:
5
-   QString shortname() const { return "qjson"; }
6
-   bool exec()
7
-   {
8
-+#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
9
-       // get the build mode
10
- #ifdef QC_BUILDMODE
11
-       bool release = qc_buildmode_release;
12
-@@ -158,5 +159,8 @@ public:
13
-       }
14
- 
15
-       return false;
16
-+#else
17
-+      return true;
18
-+#endif
19
-   }
20
- };
21
---- git.orig/src/eventdb.cpp
22
-+++ git/src/eventdb.cpp
23
-@@ -30,9 +30,14 @@
24
- #include <QDateTime>
25
- #include <QSqlError>
26
- #include <QSqlDriver>
27
-+#ifndef HAVE_QT5
28
- #include <qjson/parser.h>
29
- #include "qjson/serializer.h"
30
--
31
-+#else
32
-+#include <QJsonArray>
33
-+#include <QJsonDocument>
34
-+#include <QJsonObject>
35
-+#endif
36
- #include "common.h"
37
- #include "applicationinfo.h"
38
- #include "psievent.h"
39
-@@ -1388,8 +1393,14 @@ bool EDBSqLite::appendEvent(const QStrin
40
-                   urlList.append(QVariant(urlItem));
41
-               }
42
-           xepList["jabber:x:oob"] = QVariant(urlList);
43
-+#ifndef HAVE_QT5
44
-           QJson::Serializer serializer;
45
-           extraData = QString::fromUtf8(serializer.serialize(xepList));
46
-+#else
47
-+          QJsonDocument doc(QJsonObject::fromVariantMap(xepList));
48
-+          extraData = QString::fromUtf8(doc.toBinaryData());
49
-+#endif
50
-+
51
-       }
52
-       query->bindValue(":extra_data", extraData);
53
-   }
54
-@@ -1430,9 +1441,17 @@ PsiEvent::Ptr EDBSqLite::getEvent(const
55
-       m.setSpooled(true);
56
-       QString extraStr = record.value("extra_data").toString();
57
-       if (!extraStr.isEmpty()) {
58
-+#ifndef HAVE_QT5
59
-           QJson::Parser parser;
60
-+#endif
61
-           bool fOk;
62
-+#ifndef HAVE_QT5
63
-           QVariantMap extraData = parser.parse(extraStr.toUtf8(), &fOk).toMap();
64
-+#else
65
-+          QJsonDocument doc = QJsonDocument::fromJson(extraStr.toUtf8());
66
-+          fOk = !doc.isNull();
67
-+          QVariantMap extraData = doc.object().toVariantMap();
68
-+#endif
69
-           if (fOk) {
70
-               foreach (const QVariant &urlItem, extraData["jabber:x:oob"].toList()) {
71
-                   QVariantList itemList = urlItem.toList();
72
psi-plus-main-20160309.tar.xz/patches/dev/iris_jingle.patch Deleted
201
 
1
@@ -1,1516 +0,0 @@
2
-diff --git a/include/iris/jingle.h b/include/iris/jingle.h
3
-new file mode 100644
4
-index 0000000..7355178
5
---- /dev/null
6
-+++ b/include/iris/jingle.h
7
-@@ -0,0 +1 @@
8
-+#include "../../src/xmpp/xmpp-im/jingle.h"
9
-diff --git a/src/xmpp/jid/jid.cpp b/src/xmpp/jid/jid.cpp
10
-index d1d33be..9fd001d 100644
11
---- a/src/xmpp/jid/jid.cpp
12
-+++ b/src/xmpp/jid/jid.cpp
13
-@@ -18,7 +18,6 @@
14
-  *
15
-  */
16
- 
17
--//#undef IRIS_XMPP_JID_DEPRECATED
18
- #include "xmpp/jid/jid.h"
19
- 
20
- #include <QCoreApplication>
21
-diff --git a/src/xmpp/jid/jid.h b/src/xmpp/jid/jid.h
22
-index 591cca2..fba722d 100644
23
---- a/src/xmpp/jid/jid.h
24
-+++ b/src/xmpp/jid/jid.h
25
-@@ -23,12 +23,6 @@
26
- 
27
- #include <QString>
28
- 
29
--#ifdef IRIS_XMPP_JID_DEPRECATED
30
--#define IRIS_XMPP_JID_DECL_DEPRECATED Q_DECL_DEPRECATED
31
--#else
32
--#define IRIS_XMPP_JID_DECL_DEPRECATED
33
--#endif
34
--
35
- namespace XMPP 
36
- {
37
-   class Jid
38
-diff --git a/src/xmpp/xmpp-core/protocol.cpp b/src/xmpp/xmpp-core/protocol.cpp
39
-index fe51eb7..7a66aff 100644
40
---- a/src/xmpp/xmpp-core/protocol.cpp
41
-+++ b/src/xmpp/xmpp-core/protocol.cpp
42
-@@ -57,18 +57,6 @@ static QString printArray(const QByteArray &a)
43
-   return s;
44
- }
45
- 
46
--// firstChildElement
47
--//
48
--// Get an element's first child element
49
--static QDomElement firstChildElement(const QDomElement &e)
50
--{
51
--  for(QDomNode n = e.firstChild(); !n.isNull(); n = n.nextSibling()) {
52
--      if(n.isElement())
53
--          return n.toElement();
54
--  }
55
--  return QDomElement();
56
--}
57
--
58
- //----------------------------------------------------------------------------
59
- // Version
60
- //----------------------------------------------------------------------------
61
-@@ -298,7 +286,7 @@ void BasicProtocol::extractStreamError(const QDomElement &e)
62
-   QString text;
63
-   QDomElement appSpec;
64
- 
65
--  QDomElement t = firstChildElement(e);
66
-+  QDomElement t = e.firstChildElement();
67
-   if(t.isNull() || t.namespaceURI() != NS_STREAMS) {
68
-       // probably old-style error
69
-       errCond = -1;
70
-@@ -1453,7 +1441,7 @@ bool CoreProtocol::normalStep(const QDomElement &e)
71
-               return true;
72
-           }
73
-           else if(e.tagName() == "failure") {
74
--              QDomElement t = firstChildElement(e);
75
-+              QDomElement t = e.firstChildElement();
76
-               if(t.isNull() || t.namespaceURI() != NS_SASL)
77
-                   errCond = -1;
78
-               else
79
-diff --git a/src/xmpp/xmpp-core/xmpp_stanza.cpp b/src/xmpp/xmpp-core/xmpp_stanza.cpp
80
-index 99b4c01..2dba0a6 100644
81
---- a/src/xmpp/xmpp-core/xmpp_stanza.cpp
82
-+++ b/src/xmpp/xmpp-core/xmpp_stanza.cpp
83
-@@ -53,6 +53,8 @@ using namespace XMPP;
84
-   both type/condition and code.
85
-   Error text in output XML is always presented in XMPP-style only.
86
- 
87
-+  WARNING: XEP-0086 is DEPRECATED. but this class is still very handy.
88
-+
89
-   All functions will always try to guess missing information based on mappings defined in the JEP.
90
- */
91
- 
92
-@@ -319,23 +321,21 @@ bool Stanza::Error::fromXml(const QDomElement &e, const QString &baseNS)
93
-   type = Private::stringToErrorType(e.attribute("type"));
94
- 
95
-   // condition
96
--  QDomNodeList nl = e.childNodes();
97
-   QDomElement t;
98
-   condition = -1;
99
--  int n;
100
--  for(n = 0; n < nl.count(); ++n) {
101
--      QDomNode i = nl.item(n);
102
--      t = i.toElement();
103
--      if(!t.isNull()) {
104
--          // FIX-ME: this shouldn't be needed
105
--          if(t.namespaceURI() == NS_STANZAS || t.attribute("xmlns") == NS_STANZAS) {
106
--              condition = Private::stringToErrorCond(t.tagName());
107
--              if (condition != -1)
108
--                  break;
109
--          }
110
-+  for (t = e.firstChildElement(); !t.isNull(); t = t.nextSiblingElement()) {
111
-+      // FIX-ME: this shouldn't be needed
112
-+      if(t.namespaceURI() == NS_STANZAS || t.attribute("xmlns") == NS_STANZAS) {
113
-+          condition = Private::stringToErrorCond(t.tagName());
114
-+          if (condition != -1)
115
-+              if (condition == Redirect) {
116
-+                  text = t.text().trimmed();
117
-+              }
118
-+              break;
119
-       }
120
-   }
121
- 
122
-+
123
-   // code
124
-   originalCode = e.attribute("code").toInt();
125
- 
126
-@@ -352,19 +352,19 @@ bool Stanza::Error::fromXml(const QDomElement &e, const QString &baseNS)
127
-   }
128
- 
129
-   // text
130
--  t = e.elementsByTagNameNS(NS_STANZAS, "text").item(0).toElement();
131
--  if(!t.isNull())
132
--      text = t.text().trimmed();
133
--  else
134
--      text = e.text().trimmed();
135
-+  if (condition != Redirect) {
136
-+      t = e.elementsByTagNameNS(NS_STANZAS, "text").item(0).toElement();
137
-+      if(!t.isNull())
138
-+          text = t.text().trimmed();
139
-+      else
140
-+          text = e.text().trimmed();
141
-+  }
142
- 
143
-   // appspec: find first non-standard namespaced element
144
-   appSpec = QDomElement();
145
--  nl = e.childNodes();
146
--  for(n = 0; n < nl.count(); ++n) {
147
--      QDomNode i = nl.item(n);
148
--      if(i.isElement() && i.namespaceURI() != NS_STANZAS) {
149
--          appSpec = i.toElement();
150
-+  for (t = e.firstChildElement(); !t.isNull(); t = t.nextSiblingElement()) {
151
-+      if(t.namespaceURI() != NS_STANZAS) {
152
-+          appSpec = t;
153
-           break;
154
-       }
155
-   }
156
-@@ -396,6 +396,9 @@ QDomElement Stanza::Error::toXml(QDomDocument &doc, const QString &baseNS) const
157
-   errElem.setAttribute("type", stype);
158
-   errElem.appendChild(t = doc.createElementNS(NS_STANZAS, scond));
159
-   t.setAttribute("xmlns", NS_STANZAS);    // FIX-ME: this shouldn't be needed
160
-+  if (condition == Redirect) {
161
-+      t.appendChild(doc.createTextNode(text));
162
-+  }
163
- 
164
-   // old code
165
-   int scode = code();
166
-@@ -403,7 +406,7 @@ QDomElement Stanza::Error::toXml(QDomDocument &doc, const QString &baseNS) const
167
-       errElem.setAttribute("code", scode);
168
- 
169
-   // text
170
--  if(!text.isEmpty()) {
171
-+  if(!text.isEmpty() && condition != Redirect) {
172
-       t = doc.createElementNS(NS_STANZAS, "text");
173
-       t.setAttribute("xmlns", NS_STANZAS);    // FIX-ME: this shouldn't be needed
174
-       t.appendChild(doc.createTextNode(text));
175
-diff --git a/src/xmpp/xmpp-im/client.cpp b/src/xmpp/xmpp-im/client.cpp
176
-index aa077a4..ba88e2d 100644
177
---- a/src/xmpp/xmpp-im/client.cpp
178
-+++ b/src/xmpp/xmpp-im/client.cpp
179
-@@ -70,14 +70,14 @@
180
- //!  \endcode
181
- 
182
- #include <stdarg.h>
183
--#include <qobject.h>
184
-+#include <QObject>
185
- #include <QMap>
186
--#include <qtimer.h>
187
--#include <qpointer.h>
188
--//Added by qt3to4:
189
-+#include <QTimer>
190
-+#include <QPointer>
191
- #include <QList>
192
- #include "xmpp_tasks.h"
193
- #include "xmpp_xmlcommon.h"
194
-+#include "jingle.h"
195
- #include "s5b.h"
196
- #include "xmpp_ibb.h"
197
- #include "xmpp_bitsofbinary.h"
198
-@@ -139,6 +139,7 @@ public:
199
- 
200
-   LiveRoster roster;
201
psi-plus-main-20160309.tar.xz/patches/dev/psi-fix-muc-contacts-bank.diff Deleted
201
 
1
@@ -1,635 +0,0 @@
2
---- git.temp.orig/iris/src/xmpp/xmpp-im/client.cpp
3
-+++ git.temp/iris/src/xmpp/xmpp-im/client.cpp
4
-@@ -407,6 +407,26 @@ QString Client::groupChatNick(const QStr
5
-   return QString();
6
- }
7
- 
8
-+bool Client::groupchatExist(const Jid &j) const
9
-+{
10
-+  if (j.resource().isEmpty()) {
11
-+      foreach (const GroupChat &gc, d->groupChatList) {
12
-+          if (gc.j.compare(j, false))
13
-+              return true;
14
-+      }
15
-+  }
16
-+  return false;
17
-+}
18
-+
19
-+QStringList Client::groupchats() const
20
-+{
21
-+  QStringList lst;
22
-+  foreach (const GroupChat &gc, d->groupChatList)
23
-+      //if (gc.status == GroupChat::Connected)
24
-+          lst.append(gc.j.bare());
25
-+  return lst;
26
-+}
27
-+
28
- /*void Client::start()
29
- {
30
-   if(d->stream->old()) {
31
---- git.temp.orig/iris/src/xmpp/xmpp-im/xmpp_client.h
32
-+++ git.temp/iris/src/xmpp/xmpp-im/xmpp_client.h
33
-@@ -132,6 +132,8 @@ namespace XMPP
34
-       void groupChatLeave(const QString &host, const QString &room, const QString &statusStr = QString());
35
-       void groupChatLeaveAll(const QString &statusStr = QString());
36
-       QString groupChatNick(const QString &host, const QString &room) const;
37
-+      bool groupchatExist(const Jid &j) const;
38
-+      QStringList groupchats() const;
39
- 
40
-   signals:
41
-       void activated();
42
---- git.temp.orig/src/chatdlg.cpp
43
-+++ git.temp/src/chatdlg.cpp
44
-@@ -115,6 +115,9 @@ ChatDlg::ChatDlg(const Jid& jid, PsiAcco
45
-       }
46
-   }
47
- 
48
-+  if (account()->isGCContact(jid))
49
-+      account()->gcContactIncRef(jid);
50
-+
51
-   // Message events
52
-   contactChatState_ = XMPP::StateNone;
53
-   lastChatState_ = XMPP::StateNone;
54
-@@ -164,6 +167,8 @@ void ChatDlg::init()
55
- 
56
- ChatDlg::~ChatDlg()
57
- {
58
-+  if (account()->isGCContact(jid()))
59
-+      account()->gcContactDecRef(jid());
60
-   account()->dialogUnregister(this);
61
- }
62
- 
63
-@@ -442,12 +447,11 @@ void ChatDlg::ensureTabbedCorrectly()
64
- 
65
- void ChatDlg::updateContact(const Jid &j, bool fromPresence)
66
- {
67
--  if (account()->groupchats().contains(j.full()))
68
-+  if (account()->client()->groupchatExist(j))
69
-       return;
70
-   // if groupchat, only update if the resource matches
71
--  if (account()->findGCContact(j) && !jid().compare(j)) {
72
-+  if (account()->isGCContact(j) && !jid().compare(j))
73
-       return;
74
--  }
75
- 
76
-   if (jid().compare(j, false)) {
77
-       QList<UserListItem*> ul = account()->findRelevant(j);
78
---- git.temp.orig/src/infodlg.cpp
79
-+++ git.temp/src/infodlg.cpp
80
-@@ -223,8 +223,7 @@ InfoDlg::InfoDlg(int type, const Jid &j,
81
-   }
82
- 
83
-   // fake UserListItem used when displaying groupchat contact
84
--  GCContact *gcc = pa->findGCContact(j);
85
--  if (gcc) {
86
-+  if (pa->isGCContact(j)) {
87
-       d->userListItem = new UserListItem(false);
88
-       d->userListItem->setJid(j);
89
-       d->userListItem->setName(j.resource());
90
---- git.temp.orig/src/mucmanager.cpp
91
-+++ git.temp/src/mucmanager.cpp
92
-@@ -614,3 +614,98 @@ void MUCManager::destroy_finished()
93
-       emit destroy_error(t->statusCode(), t->statusString());
94
-   }
95
- }
96
-+
97
-+// -----------------------------------------------------------------------------
98
-+
99
-+MUCContactList::MUCContactList()
100
-+{
101
-+}
102
-+
103
-+MUCContactList::~MUCContactList()
104
-+{
105
-+  qDeleteAll(mclist);
106
-+}
107
-+
108
-+bool MUCContactList::contains(const Jid &j) const
109
-+{
110
-+  if (j.resource().isEmpty())
111
-+      return false;
112
-+  return mclist.contains(j.full());
113
-+}
114
-+
115
-+void MUCContactList::mucLeave(const Jid &j)
116
-+{
117
-+  QStringList keys_ = mclist.keys();
118
-+  foreach (const QString &s, keys_) {
119
-+      const Jid cj = Jid(s);
120
-+      if (j.isEmpty() || j.compare(cj, false)) {
121
-+          Status s = status(cj);
122
-+          s.setType(Status::Offline);
123
-+          setStatus(cj, s);
124
-+      }
125
-+  }
126
-+}
127
-+
128
-+void MUCContactList::incRef(const Jid &j)
129
-+{
130
-+  if (j.resource().isEmpty())
131
-+      return;
132
-+
133
-+  MUCContact *mc = mclist.value(j.full());
134
-+  if (!mc) {
135
-+      mc = new MUCContact;
136
-+      mc->refcount = 1;
137
-+      mc->status = Status();
138
-+      mclist[j.full()] = mc;
139
-+  }
140
-+  else
141
-+      ++mc->refcount;
142
-+}
143
-+
144
-+void MUCContactList::decRef(const Jid &j)
145
-+{
146
-+  if (j.resource().isEmpty())
147
-+      return;
148
-+
149
-+  MUCContact *mc = mclist.value(j.full());
150
-+  if (mc && --mc->refcount == 0) {
151
-+          mclist.remove(j.full());
152
-+          delete mc;
153
-+  }
154
-+}
155
-+
156
-+Status MUCContactList::status(const Jid &j) const
157
-+{
158
-+  MUCContact *mc = mclist.value(j.full());
159
-+  if (mc)
160
-+      return mc->status;
161
-+  return Status();
162
-+}
163
-+
164
-+void MUCContactList::setStatus(const Jid &j, Status s)
165
-+{
166
-+  MUCContact *mc = mclist.value(j.full());
167
-+  if (mc) {
168
-+      bool turn = (s.isAvailable() != mc->status.isAvailable());
169
-+      mc->status = s;
170
-+      if (turn) {
171
-+          if (s.isAvailable())
172
-+              incRef(j);
173
-+          else
174
-+              decRef(j);
175
-+      }
176
-+  }
177
-+  else if (s.isAvailable()) {
178
-+      incRef(j);
179
-+      mclist.value(j.full())->status = s;
180
-+  }
181
-+}
182
-+
183
-+QList<Jid> MUCContactList::jids() const
184
-+{
185
-+  QList<Jid> jl;
186
-+  foreach (const QString &s, mclist.keys()) {
187
-+      jl.append(Jid(s));
188
-+  }
189
-+  return jl;
190
-+}
191
---- git.temp.orig/src/mucmanager.h
192
-+++ git.temp/src/mucmanager.h
193
-@@ -25,6 +25,7 @@
194
- 
195
- #include "xmpp_muc.h"
196
- #include "xmpp_jid.h"
197
-+#include "xmpp_status.h"
198
- 
199
- class QString;
200
- namespace XMPP {
201
psi-plus-main-20160309.tar.xz/patches/dev/psi-fix-win32-Qt5.patch Deleted
28
 
1
@@ -1,26 +0,0 @@
2
---- git.orig/iris/tools/tools.pro
3
-+++ git/iris/tools/tools.pro
4
-@@ -1,2 +1,2 @@
5
- TEMPLATE = subdirs
6
--SUBDIRS = nettool icetunnel xmpptest
7
-+#SUBDIRS = nettool icetunnel xmpptest
8
---- git.orig/src/main.cpp
9
-+++ git/src/main.cpp
10
-@@ -512,6 +512,9 @@ int main(int argc, char *argv[])
11
-   // version.
12
-   // see http://www.mozilla.org/security/announce/2007/mfsa2007-23.html
13
-   // for how this problem affected firefox on windows.
14
-+#ifdef HAVE_QT5
15
-+  const QString appPath = QFileInfo(QString::fromLocal8Bit(argv[0])).absoluteDir().absolutePath();
16
-+#endif
17
- 
18
-   PsiCli cli;
19
- 
20
-@@ -548,6 +551,7 @@ int main(int argc, char *argv[])
21
-   // it must be initialized first in order for ApplicationInfo::resourcesDir() to work
22
- #ifdef HAVE_QT5
23
-   qInstallMessageHandler(psiMessageOutput);
24
-+  QCoreApplication::addLibraryPath(appPath);
25
- #else
26
-   qInstallMsgHandler(psiMessageOutput);
27
- #endif
28
psi-plus-main-20160309.tar.xz/patches/dev/psi-nested-groups.diff Deleted
201
 
1
@@ -1,1767 +0,0 @@
2
---- git.temp.orig/options/default.xml
3
-+++ git.temp/options/default.xml
4
-@@ -275,6 +275,7 @@ QLineEdit#le_status_text {
5
-                       <margin type="int">0</margin>
6
-                   </avatar>
7
-               </roster-avatar-frame>
8
-+              <default-groups-delimiter comment="Default nested groups delimiter will be used if no delimiter on the server" type="QString">::</default-groups-delimiter>
9
-           </contactlist>
10
-           <menu comment="Options for the menu">
11
-               <account comment="Options for the account-specific menu">
12
---- git.temp.orig/src/accountmodify.ui
13
-+++ git.temp/src/accountmodify.ui
14
-@@ -7,7 +7,7 @@
15
-     <x>0</x>
16
-     <y>0</y>
17
-     <width>765</width>
18
--    <height>475</height>
19
-+    <height>522</height>
20
-    </rect>
21
-   </property>
22
-   <property name="windowTitle">
23
-@@ -1043,6 +1043,63 @@ When you enable this option you will not
24
-         </widget>
25
-        </item>
26
-        <item>
27
-+        <layout class="QHBoxLayout" name="horizontalLayout_2">
28
-+         <item>
29
-+          <widget class="QLabel" name="label_3">
30
-+           <property name="text">
31
-+            <string>Nested groups delimiter: </string>
32
-+           </property>
33
-+          </widget>
34
-+         </item>
35
-+         <item>
36
-+          <widget class="QLineEdit" name="le_groupsdelimiter">
37
-+           <property name="sizePolicy">
38
-+            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
39
-+             <horstretch>0</horstretch>
40
-+             <verstretch>0</verstretch>
41
-+            </sizepolicy>
42
-+           </property>
43
-+           <property name="maximumSize">
44
-+            <size>
45
-+             <width>64</width>
46
-+             <height>16777215</height>
47
-+            </size>
48
-+           </property>
49
-+           <property name="readOnly">
50
-+            <bool>true</bool>
51
-+           </property>
52
-+          </widget>
53
-+         </item>
54
-+         <item>
55
-+          <spacer name="horizontalSpacer">
56
-+           <property name="orientation">
57
-+            <enum>Qt::Horizontal</enum>
58
-+           </property>
59
-+           <property name="sizeHint" stdset="0">
60
-+            <size>
61
-+             <width>40</width>
62
-+             <height>20</height>
63
-+            </size>
64
-+           </property>
65
-+          </spacer>
66
-+         </item>
67
-+         <item>
68
-+          <widget class="QPushButton" name="pb_groupsdelimiter">
69
-+           <property name="text">
70
-+            <string>Change...</string>
71
-+           </property>
72
-+          </widget>
73
-+         </item>
74
-+         <item>
75
-+          <widget class="QPushButton" name="pb_disablegroupsdelimiter">
76
-+           <property name="text">
77
-+            <string>Disable</string>
78
-+           </property>
79
-+          </widget>
80
-+         </item>
81
-+        </layout>
82
-+       </item>
83
-+       <item>
84
-         <spacer>
85
-          <property name="orientation">
86
-           <enum>Qt::Vertical</enum>
87
-@@ -1123,8 +1180,8 @@ When you enable this option you will not
88
-    <slot>reject()</slot>
89
-    <hints>
90
-     <hint type="sourcelabel">
91
--     <x>346</x>
92
--     <y>439</y>
93
-+     <x>355</x>
94
-+     <y>512</y>
95
-     </hint>
96
-     <hint type="destinationlabel">
97
-      <x>523</x>
98
---- git.temp.orig/src/accountmodifydlg.cpp
99
-+++ git.temp/src/accountmodifydlg.cpp
100
-@@ -35,6 +35,7 @@
101
- #include "psicontactlist.h"
102
- #include "iconaction.h"
103
- #include "actionlineedit.h"
104
-+#include "userlist.h"
105
- 
106
- AccountModifyDlg::AccountModifyDlg(PsiCon *_psi, QWidget *parent)
107
- :QDialog(parent)
108
-@@ -223,6 +224,12 @@ void AccountModifyDlg::init()
109
-   pb_removeBlock->hide();
110
-   pb_addBlock->hide();
111
- 
112
-+  // Misc
113
-+  connect(pb_groupsdelimiter, SIGNAL(clicked()), SLOT(miscChangeGroupsDelimiter()));
114
-+  connect(pb_disablegroupsdelimiter, SIGNAL(clicked()), SLOT(miscDisableGroupsDelimiter()));
115
-+  if (pa && pa->userList())
116
-+      le_groupsdelimiter->setText(pa->userList()->groupsDelimiter());
117
-+
118
-   // QWhatsThis helpers
119
-   cb_plain->setWhatsThis(
120
-       tr("Normally, Psi logs in using the <i>digest</i> authentication "
121
-@@ -504,6 +511,22 @@ void AccountModifyDlg::removeStunHost()
122
-   cb_stunHost->setCurrentIndex(0);
123
- }
124
- 
125
-+void AccountModifyDlg::miscChangeGroupsDelimiter()
126
-+{
127
-+  if (pa) {
128
-+      pa->changeGroupsDelimiter();
129
-+      le_groupsdelimiter->setText(pa->userList()->groupsDelimiter());
130
-+  }
131
-+}
132
-+
133
-+void AccountModifyDlg::miscDisableGroupsDelimiter()
134
-+{
135
-+  if (pa) {
136
-+      pa->disableGroupsDelimiter();
137
-+      le_groupsdelimiter->setText(pa->userList()->groupsDelimiter());
138
-+  }
139
-+}
140
-+
141
- void AccountModifyDlg::save()
142
- {
143
-   /*if(pa && le_name->text().isEmpty()) {
144
---- git.temp.orig/src/accountmodifydlg.h
145
-+++ git.temp/src/accountmodifydlg.h
146
-@@ -57,6 +57,8 @@ private slots:
147
-   void detailsChangePW();
148
- 
149
-   void removeStunHost();
150
-+  void miscChangeGroupsDelimiter();
151
-+  void miscDisableGroupsDelimiter();
152
- 
153
-   void save();
154
- 
155
---- git.temp.orig/src/contactlistaccountgroup.cpp
156
-+++ git.temp/src/contactlistaccountgroup.cpp
157
-@@ -30,14 +30,13 @@
158
- #include "contactlistgroupcache.h"
159
- 
160
- ContactListAccountGroup::ContactListAccountGroup(ContactListModel* model, ContactListGroup* parent, PsiAccount* account)
161
--  : ContactListNestedGroup(model, parent, QString())
162
-+  : ContactListNestedGroup(model, parent, account, QString())
163
-   , isRoot_(!account)
164
--  , account_(account)
165
- {
166
--  if (account_) {
167
-+  if (account) {
168
-       model->groupCache()->addGroup(this);
169
--      connect(account_, SIGNAL(destroyed(QObject*)), SLOT(accountUpdated()));
170
--      connect(account_, SIGNAL(updatedAccount()), SLOT(accountUpdated()));
171
-+      connect(account, SIGNAL(destroyed(QObject*)), SLOT(accountUpdated()));
172
-+      connect(account, SIGNAL(updatedAccount()), SLOT(accountUpdated()));
173
-   }
174
- }
175
- 
176
-@@ -57,11 +56,6 @@ void ContactListAccountGroup::clearGroup
177
-   ContactListNestedGroup::clearGroup();
178
- }
179
- 
180
--PsiAccount* ContactListAccountGroup::account() const
181
--{
182
--  return account_;
183
--}
184
--
185
- ContactListModel::Type ContactListAccountGroup::type() const
186
- {
187
-   return ContactListModel::AccountType;
188
-@@ -140,7 +134,7 @@ void ContactListAccountGroup::accountUpd
189
- 
190
-   model()->updatedItem(root->findGroup(this));
191
- 
192
--  if (account_.isNull() || !account_->enabled()) {
193
-+  if (!account() || !account()->enabled()) {
194
-       clearGroup();
195
-       root->removeAccount(this);
196
-   }
197
-@@ -148,8 +142,8 @@ void ContactListAccountGroup::accountUpd
198
- 
199
- const QString& ContactListAccountGroup::displayName() const
200
- {
201
psi-plus-main-20160309.tar.xz/patches/dev/psi-new-history.patch Deleted
201
 
1
@@ -1,4442 +0,0 @@
2
---- git.orig/admin/build/build_package.sh
3
-+++ git/admin/build/build_package.sh
4
-@@ -82,10 +82,13 @@ build_package_psi() {
5
-       cp $mqtdir/bin/QtNetwork4.dll $arch_prefix
6
-       cp $mqtdir/bin/QtXml4.dll $arch_prefix
7
-       cp $mqtdir/bin/QtGui4.dll $arch_prefix
8
-+      cp $mqtdir/bin/QtSql4.dll $arch_prefix
9
-       mkdir -p $arch_prefix/imageformats
10
-       cp $mqtdir/plugins/imageformats/qgif4.dll $arch_prefix/imageformats
11
-       cp $mqtdir/plugins/imageformats/qjpeg4.dll $arch_prefix/imageformats
12
-       cp $mqtdir/plugins/imageformats/qmng4.dll $arch_prefix/imageformats
13
-+      mkdir -p $arch_prefix/sqldrivers
14
-+      cp $mqtdir/plugins/sqldrivers/qsqlite4.dll
15
-       cp $deps_base/$qca_win_dir/$target_arch/bin/qca2.dll $arch_prefix
16
-       mkdir -p $arch_prefix/crypto
17
-       cp $deps_base/$qca_win_dir/$target_arch/plugins/crypto/qca-gnupg2.dll $arch_prefix/crypto
18
-@@ -126,8 +129,8 @@ build_package_psi() {
19
-           QT_LIB_PATH=$QTDIR/lib
20
-       fi
21
-       cd $psi_base
22
--      export DYLD_FRAMEWORK_PATH=$QT_LIB_PATH:$deps_base/$qca_mac_dir/lib:$deps_base/$growl_dir/Framework
23
--      ./configure --with-qca-inc=$deps_base/$qca_mac_dir/include --with-qca-lib=$deps_base/$qca_mac_dir/lib --with-growl=$deps_base/$growl_dir/Framework --enable-universal
24
-+      export DYLD_FRAMEWORK_PATH=$QT_LIB_PATH:$deps_base/$qca_mac_dir/lib:$deps_base/$growl_dir/Framework:$deps_base/$qjson_mac_dir/lib
25
-+      ./configure --with-qca-inc=$deps_base/$qca_mac_dir/include --with-qca-lib=$deps_base/$qca_mac_dir/lib --with-growl=$deps_base/$growl_dir/Framework --enable-universal --with-qjson-lib=$deps_base/$qjson_mac_dir/lib
26
-       make
27
-   fi
28
- }
29
---- git.orig/admin/build/devconfig.sh
30
-+++ git/admin/build/devconfig.sh
31
-@@ -60,7 +60,7 @@ if [ "$platform" == "win" ]; then
32
-   fi
33
-   mqtdir=`get_msys_path $qtdir`
34
- 
35
--  PATH=$mqtdir/bin:$PATH ./configure.exe --qtdir=$qtdir --release --with-qca-inc=$deps_base/$qca_win_dir/$target_arch/include --with-qca-lib=$deps_base/$qca_win_dir/$target_arch/lib --with-zlib-inc=$deps_base/$zlib_win_dir/$target_arch/include --with-zlib-lib=$deps_base/$zlib_win_dir/$target_arch/lib --with-aspell-inc=$deps_base/$aspell_win_dir/$target_arch/include --with-aspell-lib=$deps_base/$aspell_win_dir/$target_arch/lib
36
-+  PATH=$mqtdir/bin:$PATH ./configure.exe --qtdir=$qtdir --release --with-qca-inc=$deps_base/$qca_win_dir/$target_arch/include --with-qca-lib=$deps_base/$qca_win_dir/$target_arch/lib --with-zlib-inc=$deps_base/$zlib_win_dir/$target_arch/include --with-zlib-lib=$deps_base/$zlib_win_dir/$target_arch/lib --with-aspell-inc=$deps_base/$aspell_win_dir/$target_arch/include --with-aspell-lib=$deps_base/$aspell_win_dir/$target_arch/lib --with-qjson-inc=$deps_base/$qjson_win_dir/$target_arch/include --with-qjson-lib=$deps_base/$qjson_win_dir/$target_arch/lib
37
- 
38
-   rm -f $build_base/devenv
39
-   touch $build_base/devenv
40
-@@ -79,8 +79,8 @@ else
41
-   if [ "$QT_PLUGIN_PATH" == "" ]; then
42
-       QT_PLUGIN_PATH=$QTDIR/plugins
43
-   fi
44
--  export DYLD_FRAMEWORK_PATH=$QT_LIB_PATH:$deps_base/$qca_mac_dir/lib:$deps_base/$growl_dir/Framework
45
--  ./configure --with-qca-inc=$deps_base/$qca_mac_dir/include --with-qca-lib=$deps_base/$qca_mac_dir/lib --with-growl=$deps_base/$growl_dir/Framework --enable-universal
46
-+  export DYLD_FRAMEWORK_PATH=$QT_LIB_PATH:$deps_base/$qca_mac_dir/lib:$deps_base/$growl_dir/Framework:$deps_base/$qjson_mac_dir/lib
47
-+  ./configure --with-qca-inc=$deps_base/$qca_mac_dir/include --with-qca-lib=$deps_base/$qca_mac_dir/lib --with-growl=$deps_base/$growl_dir/Framework --enable-universal --with-qjson-lib=$deps_base/$qjson_mac_dir/lib
48
- 
49
-   # remove some gstbundle problem files
50
-   rm -f $deps_base/$gstbundle_mac_dir/uni/lib/gstreamer-0.10/libgstximagesink.so
51
-@@ -91,7 +91,7 @@ else
52
-   rm -f $build_base/devenv
53
-   touch $build_base/devenv
54
-   echo "export DYLD_LIBRARY_PATH=$deps_base/$gstbundle_mac_dir/uni/lib:\$DYLD_LIBRARY_PATH" >> $build_base/devenv
55
--  echo "export DYLD_FRAMEWORK_PATH=$QT_LIB_PATH:$deps_base/$qca_mac_dir/lib:$deps_base/$growl_dir/Framework:\$DYLD_FRAMEWORK_PATH" >> $build_base/devenv
56
-+  echo "export DYLD_FRAMEWORK_PATH=$QT_LIB_PATH:$deps_base/$qca_mac_dir/lib:$deps_base/$growl_dir/Framework:$deps_base/$qjson_mac_dir/lib:\$DYLD_FRAMEWORK_PATH" >> $build_base/devenv
57
-   echo "export GST_PLUGIN_PATH=$deps_base/$gstbundle_mac_dir/uni/lib/gstreamer-0.10" >> $build_base/devenv
58
-   echo "export GST_REGISTRY_FORK=no" >> $build_base/devenv
59
-   echo "export QT_PLUGIN_PATH=$QT_PLUGIN_PATH:$deps_base/$qca_mac_dir/plugins" >> $build_base/devenv
60
---- git.orig/admin/build/package_info
61
-+++ git/admin/build/package_info
62
-@@ -39,3 +39,11 @@ psimedia_win_dir=psimedia-20120725-win
63
- psimedia_mac_file=psimedia-20120725-mac.tar.bz2
64
- psimedia_mac_url=http://psi-im.org/files/deps/psimedia-20120725-mac.tar.bz2
65
- psimedia_mac_dir=psimedia-20120725-mac
66
-+
67
-+qjson_win_file=qjson-0.8.1-win.zip
68
-+qjson_win_url=http://psi-im.org/files/deps/qjson-0.8.1-win.zip
69
-+qjson_win_dir=qjson-0.8.1-win
70
-+
71
-+qjson_mac_file=qjson-0.8.1-mac.tar.bz2
72
-+qjson_mac_url=http://psi-im.org/files/deps/qjson-0.8.1-mac.tar.bz2
73
-+qjson_mac_dir=qjson-0.8.1-mac
74
---- git.orig/admin/build/prep_dist.sh
75
-+++ git/admin/build/prep_dist.sh
76
-@@ -45,8 +45,8 @@ if [ "$platform" == "mac" ]; then
77
- 
78
-   mkdir -p $target_dist_base
79
- 
80
--  QT_FRAMEWORKS="QtCore QtNetwork QtXml QtGui"
81
--  QT_PLUGINS="imageformats/libqjpeg.dylib imageformats/libqgif.dylib imageformats/libqmng.dylib"
82
-+  QT_FRAMEWORKS="QtCore QtNetwork QtXml QtGui QtSql"
83
-+  QT_PLUGINS="imageformats/libqjpeg.dylib imageformats/libqgif.dylib imageformats/libqmng.dylib sqldrivers/libqsqlite.dylib"
84
-   QCA_PLUGINS="crypto/libqca-ossl.dylib crypto/libqca-gnupg.dylib"
85
- 
86
-   cp -a $psi_base/psi.app $target_dist_base/Psi.app
87
-@@ -57,6 +57,7 @@ if [ "$platform" == "mac" ]; then
88
-   done
89
- 
90
-   install_name_tool -change qca.framework/Versions/2/qca @executable_path/../Frameworks/qca.framework/Versions/2/qca $contentsdir/MacOS/psi
91
-+  install_name_tool -change qjson.framework/Versions/0.8.1/qjson @executable_path/../Frameworks/qjson.framework/Versions/0.8.1/qjson $contentsdir/MacOS/psi
92
- 
93
-   mkdir -p $contentsdir/Frameworks
94
-   for f in $QT_FRAMEWORKS; do
95
-@@ -80,8 +81,14 @@ if [ "$platform" == "mac" ]; then
96
-   cp -a $deps_base/$qca_mac_dir/lib/qca.framework $contentsdir/Frameworks
97
-   cleanup_framework $contentsdir/Frameworks/qca.framework qca 2
98
-   install_name_tool -id @executable_path/../Frameworks/qca.framework/Versions/2/qca $contentsdir/Frameworks/qca.framework/qca
99
-+
100
-+  cp -a $deps_base/$qjson_mac_dir/lib/qjson.framework $contentsdir/Frameworks
101
-+  cleanup_framework $contentsdir/Frameworks/qjson.framework qjson 0.8.1
102
-+  install_name_tool -id @executable_path/../Frameworks/qjson.framework/Versions/0.8.1/qjson $contentsdir/Frameworks/qjson.framework/qjson
103
-+
104
-   for g in $QT_FRAMEWORKS; do
105
-       install_name_tool -change $g.framework/Versions/4/$g @executable_path/../Frameworks/$g.framework/Versions/4/$g $contentsdir/Frameworks/qca.framework/qca
106
-+      install_name_tool -change $g.framework/Versions/4/$g @executable_path/../Frameworks/$g.framework/Versions/4/$g $contentsdir/Frameworks/qjson.framework/qjson
107
-   done
108
- 
109
-   mkdir -p $contentsdir/Plugins/crypto
110
---- git.orig/options/default.xml
111
-+++ git/options/default.xml
112
-@@ -129,6 +129,9 @@
113
-               <chatedit-height type="int">10</chatedit-height>
114
-               <default-jid-mode comment="Default jid mode: barejid | auto" type="QString">barejid</default-jid-mode>
115
-               <default-jid-mode-ignorelist comment="Default autojid mode ignore list: jid1,jid2,..." type="QString"></default-jid-mode-ignorelist>
116
-+              <history comment="Message history options">
117
-+                  <preload-history-size comment="The number of preloaded messages" type="int">5</preload-history-size>
118
-+              </history>
119
-           </chat>
120
-           <save>
121
-               <toolbars-state type="QByteArray"/>
122
-@@ -763,6 +766,9 @@ QLineEdit#le_status_text {
123
-               <video-input type="QString"/>
124
-           </devices>
125
-       </media>
126
-+      <history comment="General history options">
127
-+          <store-muc-private comment="Keep a history of correspondence for MUC private" type="bool">false</store-muc-private>
128
-+      </history>
129
-   </options>
130
-   <accounts comment="Account definitions and options"/>
131
-   <plugins comment="Plugin options"/>
132
---- git.orig/psi.qc
133
-+++ git/psi.qc
134
-@@ -17,6 +17,9 @@
135
-   <dep type='qca'>
136
-     <required/>
137
-   </dep>
138
-+  <dep type='qjson'>
139
-+    <required/>
140
-+  </dep>
141
-   <dep type='zlib'>
142
-     <required/>
143
-   </dep>
144
---- git.orig/qcm/qjson.qcm
145
-+++ git/qcm/qjson.qcm
146
-@@ -0,0 +1,162 @@
147
-+/*
148
-+-----BEGIN QCMOD-----
149
-+name: QJson
150
-+arg: with-qjson-inc=[path],Path to QJson include files
151
-+arg: with-qjson-lib=[path],Path to QJson library or framework files
152
-+-----END QCMOD-----
153
-+*/
154
-+
155
-+// adapted from json.prf
156
-+static QString internal_json_prf(const QString &incdir, const QString &libdir, const QString &frameworkdir)
157
-+{
158
-+  QString out = QString(
159
-+"QJSON_INCDIR = %1\n"
160
-+"QJSON_LIBDIR = %2\n"
161
-+"QJSON_FRAMEWORKDIR = %3\n"
162
-+"\n"
163
-+"CONFIG *= qt\n"
164
-+"\n"
165
-+"LINKAGE =\n"
166
-+"\n"
167
-+"!isEmpty(QJSON_FRAMEWORKDIR): {\n"
168
-+" framework_dir = $$QJSON_FRAMEWORKDIR\n"
169
-+" exists($$framework_dir/qjson.framework) {\n"
170
-+"     QMAKE_FRAMEWORKPATH *= $$framework_dir\n"
171
-+"     LIBS *= -F$$framework_dir\n"
172
-+"     INCLUDEPATH += $$framework_dir/qjson.framework\n"
173
-+"     LINKAGE = -framework qjson\n"
174
-+" }\n"
175
-+"}\n"
176
-+"\n"
177
-+"# else, link normally\n"
178
-+"isEmpty(LINKAGE) {\n"
179
-+" !isEmpty(QJSON_INCDIR):INCLUDEPATH += $$QJSON_INCDIR\n"
180
-+" !isEmpty(QJSON_LIBDIR):LIBS += -L$$QJSON_LIBDIR\n"
181
-+" LINKAGE = -lqjson\n"
182
-+" CONFIG(debug, debug|release) {\n"
183
-+"     windows:LINKAGE = -lqjsond\n"
184
-+"     mac:LINKAGE = -lqjson_debug\n"
185
-+" }\n"
186
-+"}\n"
187
-+"\n"
188
-+"LIBS += $$LINKAGE\n"
189
-+  ).arg(incdir, libdir, frameworkdir);
190
-+  return out;
191
-+}
192
-+
193
-+// set either libdir or frameworkdir, but not both
194
-+static bool qjson_try(Conf *conf, const QString &incdir, const QString &libdir, const QString &frameworkdir, bool release, bool debug, QString *_prf)
195
-+{
196
-+  QString proextra;
197
-+  QString prf = internal_json_prf(incdir, libdir, frameworkdir);
198
-+  proextra =
199
-+  "CONFIG += qt\n"
200
-+  "CONFIG -= debug_and_release debug release\n"
201
psi-plus-main-20160309.tar.xz/patches/dev/psi-plus-add-kde-icon.diff Deleted
201
 
1
@@ -1,229 +0,0 @@
2
---- git.orig/src/psitrayicon.cpp
3
-+++ git/src/psitrayicon.cpp
4
-@@ -4,6 +4,16 @@
5
- #include <QSystemTrayIcon>
6
- #include <QHelpEvent>
7
- 
8
-+#ifdef USE_KDE
9
-+#include <QDBusInterface>
10
-+#ifndef USE_KDE5
11
-+#include <kmenu.h>
12
-+#endif
13
-+static const QString KSNI_SERVICE = "org.kde.StatusNotifierWatcher";
14
-+static const QString KSNI_PATH = "/StatusNotifierWatcher";
15
-+static const QString KSNI_IFACE = "org.kde.StatusNotifierWatcher";
16
-+#endif
17
-+
18
- #include "psitrayicon.h"
19
- #include "iconset.h"
20
- #include "alerticon.h"
21
-@@ -14,18 +24,42 @@
22
- PsiTrayIcon::PsiTrayIcon(const QString &tip, QMenu *popup, QObject *parent)
23
-   : QObject(parent)
24
-   , icon_(NULL)
25
--  , trayicon_(new QSystemTrayIcon())
26
-+#ifdef USE_DBUS
27
-+  , newIcon_(KStatusNotifierItemPtr())
28
-+#endif
29
-+  , trayicon_(QSystemTrayIconPtr())
30
-   , realIcon_(0)
31
- { 
32
--  trayicon_->setContextMenu(popup);
33
--  setToolTip(tip);
34
--  connect(trayicon_,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),SLOT(trayicon_activated(QSystemTrayIcon::ActivationReason)));
35
--  trayicon_->installEventFilter(this);
36
-+  bool newInterface = false;
37
-+#ifdef USE_KDE
38
-+  QDBusInterface iface(KSNI_SERVICE, KSNI_PATH, KSNI_IFACE);
39
-+  if (iface.isValid()) {
40
-+      newInterface = true;
41
-+      newIcon_ = KStatusNotifierItemPtr(new KStatusNotifierItem("Psi+",parent));
42
-+      newIcon_->setStatus(KStatusNotifierItem::Active);
43
-+      newIcon_->setTitle("Psi+");
44
-+#ifndef USE_KDE5
45
-+      newIcon_->setContextMenu(static_cast<KMenu*>(popup));
46
-+#else
47
-+      newIcon_->setContextMenu(popup);
48
-+#endif
49
-+      connect(newIcon_.data(), SIGNAL(activateRequested(bool,QPoint)), SLOT(iconActivated(bool,QPoint)));
50
-+      connect(newIcon_.data(), SIGNAL(secondaryActivateRequested(QPoint)), SLOT(iconActivatedSecondary(QPoint)));
51
-+      setToolTip(tip);
52
-+  }
53
-+#endif
54
-+  if (!newInterface) {
55
-+      trayicon_ = QSystemTrayIconPtr(new QSystemTrayIcon());
56
-+      trayicon_->setContextMenu(popup);
57
-+      setToolTip(tip);
58
-+      connect(trayicon_.data(),SIGNAL(activated(QSystemTrayIcon::ActivationReason)),SLOT(trayicon_activated(QSystemTrayIcon::ActivationReason)));
59
-+      trayicon_->installEventFilter(this);
60
-+  }
61
- }
62
- 
63
- PsiTrayIcon::~PsiTrayIcon()
64
- {
65
--  delete trayicon_;
66
-+  //delete trayicon_;
67
-   if ( icon_ ) {
68
-       icon_->disconnect();
69
-       icon_->stop();
70
-@@ -35,13 +69,29 @@ PsiTrayIcon::~PsiTrayIcon()
71
- 
72
- void PsiTrayIcon::setContextMenu(QMenu* menu)
73
- {
74
--  trayicon_->setContextMenu(menu);
75
-+  if (trayicon_) {
76
-+      trayicon_->setContextMenu(menu);
77
-+  }
78
-+#ifdef USE_KDE
79
-+  else {
80
-+#ifndef USE_KDE5
81
-+      newIcon_->setContextMenu(static_cast<KMenu*>(menu));
82
-+#else
83
-+      newIcon_->setContextMenu(menu);
84
-+#endif
85
-+  }
86
-+#endif
87
- }
88
- 
89
- void PsiTrayIcon::setToolTip(const QString &str)
90
- {
91
- #ifndef HAVE_X11
92
-   trayicon_->setToolTip(str);
93
-+#elif USE_KDE
94
-+  QIcon icon;
95
-+  if(icon_)
96
-+      icon = icon_->icon();
97
-+  newIcon_->setToolTip(icon, "Psi+", str);
98
- #else
99
-   Q_UNUSED(str)
100
- #endif
101
-@@ -90,12 +140,22 @@ bool PsiTrayIcon::isWMDock()
102
- 
103
- void PsiTrayIcon::show()
104
- {
105
--  trayicon_->show();
106
-+  if(trayicon_)
107
-+      trayicon_->show();
108
-+#ifdef USE_KDE
109
-+  if (newIcon_)
110
-+      newIcon_->setStatus(KStatusNotifierItem::Active);
111
-+#endif
112
- }
113
- 
114
- void PsiTrayIcon::hide()
115
- {
116
--  trayicon_->hide();
117
-+  if(trayicon_)
118
-+      trayicon_->hide();
119
-+#ifdef USE_KDE
120
-+  if (newIcon_)
121
-+      newIcon_->setStatus(KStatusNotifierItem::Passive);
122
-+#endif
123
- }
124
- 
125
- 
126
-@@ -197,7 +257,14 @@ void PsiTrayIcon::animate()
127
-       p = makeIcon();
128
-       QPixmapCache::insert( cachedName, p );
129
-   }
130
--  trayicon_->setIcon(p);
131
-+  if (trayicon_) {
132
-+      trayicon_->setIcon(p);
133
-+  }
134
-+#ifdef USE_KDE
135
-+  else {
136
-+      newIcon_->setIconByPixmap(p);
137
-+  }
138
-+#endif
139
- }
140
- 
141
- bool PsiTrayIcon::eventFilter(QObject *obj, QEvent *event)
142
-@@ -208,3 +275,16 @@ bool PsiTrayIcon::eventFilter(QObject *o
143
-   }
144
-   return QObject::eventFilter(obj, event);
145
- }
146
-+
147
-+#ifdef USE_KDE
148
-+void PsiTrayIcon::iconActivated(bool isIt, QPoint point)
149
-+{
150
-+  Q_UNUSED(isIt);
151
-+  emit doubleClicked(point);
152
-+}
153
-+
154
-+void PsiTrayIcon::iconActivatedSecondary(QPoint point) //Middle click
155
-+{
156
-+  emit clicked(point,Qt::MidButton);
157
-+}
158
-+#endif
159
---- git.orig/src/psitrayicon.h
160
-+++ git/src/psitrayicon.h
161
-@@ -5,11 +5,24 @@
162
- #include <QRgb>
163
- #include <QSystemTrayIcon>
164
- 
165
-+#ifdef USE_KDE
166
-+#ifndef USE_KDE5
167
-+#include <kstatusnotifieritem.h>
168
-+#else
169
-+#include <KStatusNotifierItem>
170
-+#endif
171
-+#include <QSharedPointer>
172
-+typedef QSharedPointer<KStatusNotifierItem> KStatusNotifierItemPtr;
173
-+#endif
174
-+
175
-+
176
- class PsiIcon;
177
- class QMenu;
178
- class QPoint;
179
- class QPixmap;
180
- 
181
-+typedef QSharedPointer<QSystemTrayIcon> QSystemTrayIconPtr;
182
-+
183
- class PsiTrayIcon : public QObject
184
- {
185
-   Q_OBJECT
186
-@@ -38,6 +51,10 @@ public slots:
187
- private slots:
188
-   void animate();
189
-   void trayicon_activated(QSystemTrayIcon::ActivationReason);
190
-+#ifdef USE_KDE
191
-+  void iconActivated(bool isIt, QPoint point);
192
-+  void iconActivatedSecondary(QPoint point);
193
-+#endif
194
- 
195
- protected:
196
-   QPixmap makeIcon();
197
-@@ -46,7 +63,10 @@ protected:
198
- 
199
- private:
200
-   PsiIcon* icon_;
201
psi-plus-main-20160309.tar.xz/patches/dev/psi-plus-psimedia.patch Deleted
83
 
1
@@ -1,81 +0,0 @@
2
-diff --git a/psi.qc b/psi.qc
3
-index 1f74092..70c99a6 100644
4
---- a/psi.qc
5
-+++ b/psi.qc
6
-@@ -42,6 +42,7 @@
7
-   <dep type='conf'>
8
-     <required/>
9
-   </dep>
10
-+  <dep type='psimedia'/>
11
-   <dep type='recursiveprl'>
12
-     <required/>
13
-   </dep>
14
-diff --git a/qcm/psimedia.qcm b/qcm/psimedia.qcm
15
-new file mode 100644
16
-index 0000000..cae88b6
17
---- /dev/null
18
-+++ b/qcm/psimedia.qcm
19
-@@ -0,0 +1,34 @@
20
-+/*
21
-+-----BEGIN QCMOD-----
22
-+name: psimedia
23
-+arg: with-psimedia-path=[path],Extra search path to libgstprovider.so
24
-+-----END QCMOD-----
25
-+*/
26
-+
27
-+//----------------------------------------------------------------------------
28
-+// qc_psimedia
29
-+//----------------------------------------------------------------------------
30
-+class qc_psimedia : public ConfObj
31
-+{
32
-+public:
33
-+  qc_psimedia(Conf *c) : ConfObj(c) {}
34
-+  QString name() const { return "psimedia"; }
35
-+  QString shortname() const { return "psimedia"; }
36
-+
37
-+  bool exec()
38
-+  {
39
-+      QString path = conf->getenv("QC_WITH_PSIMEDIA_PATH");
40
-+      if (path.isEmpty()) {
41
-+          return false;
42
-+      }
43
-+
44
-+      conf->addDefine("HAVE_GSTPROVIDER_PATH");
45
-+      QFile file("src/config.h");
46
-+      if ( file.open(QIODevice::Append | QIODevice::Text) ) {
47
-+          QTextStream stream( &file );
48
-+          stream << "#define GSTPROVIDER_PATH \"" << path << "\"" << endl;
49
-+      }
50
-+
51
-+      return true;
52
-+  }
53
-+};
54
-diff --git a/src/avcall/avcall.cpp b/src/avcall/avcall.cpp
55
-index 38fff17..320a4b3 100644
56
---- a/src/avcall/avcall.cpp
57
-+++ b/src/avcall/avcall.cpp
58
-@@ -30,6 +30,7 @@
59
- #include "applicationinfo.h"
60
- #include "psiaccount.h"
61
- #include "psioptions.h"
62
-+#include "../config.h"
63
- 
64
- #define USE_THREAD
65
- 
66
-@@ -108,6 +109,16 @@ static void ensureLoaded()
67
-       QString resourcePath;
68
- 
69
-       pluginFile = qgetenv("PSI_MEDIA_PLUGIN");
70
-+
71
-+#ifdef HAVE_GSTPROVIDER_PATH
72
-+      if(pluginFile.isEmpty())
73
-+      {
74
-+          QFileInfo fi(GSTPROVIDER_PATH);
75
-+          if(fi.exists())
76
-+              pluginFile = GSTPROVIDER_PATH;
77
-+      }
78
-+#endif
79
-+
80
-       if(pluginFile.isEmpty())
81
-       {
82
- #if defined(Q_OS_WIN)
83
psi-plus-main-20160309.tar.xz/patches/dev/psi-win32-crash-dialog.patch Deleted
201
 
1
@@ -1,1581 +0,0 @@
2
-Index: src/tools/crash/crash.pri
3
-===================================================================
4
---- orig/src/tools/crash/crash.pri (revision 944)
5
-+++ work/src/tools/crash/crash.pri (working copy)
6
-@@ -16,6 +16,12 @@
7
-       SOURCES +=  $$PWD/crash.cpp 
8
-   }
9
- }
10
--else {
11
-+
12
-+win32 {
13
-+  SOURCES     += $$PWD/crash_win32.cpp $$PWD/stackwalker.cpp
14
-+  HEADERS     += $$PWD/crash_win32.h $$PWD/stackwalker.h
15
-+}
16
-+
17
-+macx {
18
-   SOURCES += $$PWD/crash_dummy.cpp
19
- }
20
---- orig/src/tools/crash/crash_win32.h 1970-01-01 03:00:00.000000000 +0300
21
-+++ work/src/tools/crash/crash_win32.h 2008-01-23 10:30:52.388649000 +0300
22
-@@ -0,0 +1,123 @@
23
-+/*
24
-+ * crash_win32 -- win32 crash handlers
25
-+ *
26
-+ * Copyright (c) 2008 Ustyugov Roman (qtdevel@gmail.com)
27
-+ *
28
-+ * Permission is hereby granted, free of charge, to any person obtaining a
29
-+ * copy of this software and associated documentation files (the "Software"),
30
-+ * to deal in the Software without restriction, including without limitation
31
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
32
-+ * and/or sell copies of the Software, and to permit persons to whom the
33
-+ * Software is furnished to do so, subject to the following conditions:
34
-+ *
35
-+ * The above copyright notice and this permission notice shall be included
36
-+ * in all copies or substantial portions of the Software.
37
-+ *
38
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
39
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
40
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41
-+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
42
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
43
-+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
44
-+ * SOFTWARE.
45
-+ */
46
-+#ifndef CRASH_WIN32_H
47
-+#define CRASH_WIN32_H
48
-+
49
-+#include "crash.h"
50
-+#include "stackwalker.h"
51
-+#include <QtGui>
52
-+
53
-+namespace Crash {
54
-+
55
-+/**
56
-+ *    Simple dialog to show crash log.
57
-+ *    Must be created in GUI thread.
58
-+ */
59
-+class CrashDialog : public QDialog
60
-+{
61
-+  Q_OBJECT
62
-+
63
-+public:
64
-+  CrashDialog(QString text, QWidget *parent = 0)
65
-+      : QDialog(parent)
66
-+  {
67
-+      //  Create readonly text editor for logging
68
-+      editor_ = new QTextEdit(this);
69
-+      editor_->setText(text);
70
-+      editor_->setReadOnly(true);
71
-+      QGridLayout *mainLayout = new QGridLayout;
72
-+      mainLayout->setContentsMargins(3,3,3,3);
73
-+      setWindowTitle(tr("Crash handler log")); 
74
-+      mainLayout->addWidget(editor_, 0, 0);
75
-+      setLayout(mainLayout);
76
-+      setModal(true);
77
-+  }
78
-+
79
-+private:
80
-+  QTextEdit * editor_;
81
-+};
82
-+
83
-+
84
-+/**
85
-+ *    Simple implementation of stack walker with output accumulation.
86
-+ *    Output may be redirected to file (or crash dialog)
87
-+ */
88
-+class Win32StackWalker : public StackWalker
89
-+{
90
-+private:
91
-+  QString text_;
92
-+
93
-+public:
94
-+  Win32StackWalker() : StackWalker() {}
95
-+
96
-+  BOOL ShowCallstack(
97
-+      HANDLE hThread = GetCurrentThread(),
98
-+      CONTEXT *context = NULL,
99
-+      PReadProcessMemoryRoutine readMemoryFunction = NULL,
100
-+      LPVOID pUserData = NULL
101
-+      )
102
-+  {
103
-+      BOOL res = StackWalker::ShowCallstack(hThread, context, readMemoryFunction, pUserData);
104
-+#if 1
105
-+      //  Write crash log to file.
106
-+      //  Log file will be created in working directory of Psi application
107
-+      //  or in the root of drive "C", if application directory path is undefined.
108
-+      QString path = qApp->applicationDirPath();
109
-+      if (path.isEmpty()) {
110
-+          path = "c:";
111
-+      }
112
-+      path += "/psi_crash.log";
113
-+      QFile crashLog(path);
114
-+      if (crashLog.open(QIODevice::WriteOnly | QIODevice::Append)) {
115
-+          QString log = "\n\n------------------------------------------------------------------------------------------------\n";
116
-+          log += "Log is created at ";
117
-+          log += QDateTime::currentDateTime().toString(Qt::SystemLocaleDate) + "\n";
118
-+          log += "\nCall stack:\n\n";
119
-+          //  Add callstack log
120
-+          log += text_;
121
-+          //  Make right end of line
122
-+          log.replace("\n", "\r\n");
123
-+          crashLog.write(log.toLatin1());
124
-+          crashLog.close();
125
-+      }
126
-+#else
127
-+      //  This code may cause an exception, because
128
-+      //  crash dialog must be created in GUI thread.
129
-+      //  That's why there is more preferable to use file log as written above.
130
-+      CrashDialog cd(text_);
131
-+      cd.resize(640, 512);
132
-+      cd.exec();
133
-+#endif
134
-+      return res;
135
-+  }
136
-+
137
-+  //  Accumulate output in string
138
-+  virtual void OnOutput(LPCSTR szText) {
139
-+      text_ += szText;
140
-+  }
141
-+};
142
-+
143
-+}; // namespace Crash
144
-+
145
-+#endif
146
---- orig/src/tools/crash/crash_win32.cpp   1970-01-01 03:00:00.000000000 +0300
147
-+++ work/src/tools/crash/crash_win32.cpp   2008-01-23 09:47:01.029274000 +0300
148
-@@ -0,0 +1,19 @@
149
-+#include "crash_win32.h"
150
-+
151
-+namespace Crash {
152
-+
153
-+// The exception filter function
154
-+LONG WINAPI ExpFilter(EXCEPTION_POINTERS* pExp)
155
-+{
156
-+  Win32StackWalker sw;
157
-+  sw.ShowCallstack(GetCurrentThread(), pExp->ContextRecord);
158
-+  return EXCEPTION_EXECUTE_HANDLER;
159
-+}
160
-+
161
-+void registerSigsegvHandler(QString progname)
162
-+{
163
-+  //  Enable an application to supersede the top-level exception handler
164
-+  SetUnhandledExceptionFilter(ExpFilter);
165
-+}
166
-+
167
-+}; // namespace Crash
168
---- orig/src/tools/crash/stackwalker.h 1970-01-01 03:00:00.000000000 +0300
169
-+++ work/src/tools/crash/stackwalker.h 2005-11-07 07:07:48.000000000 +0300
170
-@@ -0,0 +1,189 @@
171
-+/**********************************************************************
172
-+ * 
173
-+ * StackWalker.h
174
-+ *
175
-+ *
176
-+ * History:
177
-+ *  2005-07-27   v1    - First public release on http://www.codeproject.com/
178
-+ *  (for additional changes see History in 'StackWalker.cpp'!
179
-+ *
180
-+ **********************************************************************/
181
-+// #pragma once is supported starting with _MCS_VER 1000, 
182
-+// so we need not to check the version (because we only support _MSC_VER >= 1100)!
183
-+#pragma once
184
-+
185
-+#include <windows.h>
186
-+
187
-+// special defines for VC5/6 (if no actual PSDK is installed):
188
-+#if _MSC_VER < 1300
189
-+typedef unsigned __int64 DWORD64, *PDWORD64;
190
-+#if defined(_WIN64)
191
-+typedef unsigned __int64 SIZE_T, *PSIZE_T;
192
-+#else
193
-+typedef unsigned long SIZE_T, *PSIZE_T;
194
-+#endif
195
-+#endif  // _MSC_VER < 1300
196
-+
197
-+class StackWalkerInternal;  // forward
198
-+class StackWalker
199
-+{
200
-+public:
201
psi-plus-main-20160309.tar.xz/patches/dev/psi_new_jingle_rtp.patch Deleted
201
 
1
@@ -1,2126 +0,0 @@
2
-diff --git a/iris b/iris
3
---- a/iris
4
-+++ b/iris
5
-@@ -1 +1 @@
6
--Subproject commit 6373822ebded777f9f26fe53374ae81262dfe2cc
7
-+Subproject commit 6373822ebded777f9f26fe53374ae81262dfe2cc-dirty
8
-diff --git a/src/avcall/avcall.cpp b/src/avcall/avcall.cpp
9
-index c398bab..858ba7d 100644
10
---- a/src/avcall/avcall.cpp
11
-+++ b/src/avcall/avcall.cpp
12
-@@ -131,9 +131,9 @@ static void ensureLoaded()
13
-   }
14
- }
15
- 
16
--static JingleRtpPayloadType payloadInfoToPayloadType(const PsiMedia::PayloadInfo &pi)
17
-+static Jingle::Rtp::PayloadType payloadInfoToPayloadType(const PsiMedia::PayloadInfo &pi)
18
- {
19
--  JingleRtpPayloadType out;
20
-+  Jingle::Rtp::PayloadType out;
21
-   out.id = pi.id();
22
-   out.name = pi.name();
23
-   out.clockrate = pi.clockrate();
24
-@@ -142,7 +142,7 @@ static JingleRtpPayloadType payloadInfoToPayloadType(const PsiMedia::PayloadInfo
25
-   out.maxptime = pi.maxptime();
26
-   foreach(const PsiMedia::PayloadInfo::Parameter &pip, pi.parameters())
27
-   {
28
--      JingleRtpPayloadType::Parameter ptp;
29
-+      Jingle::Rtp::PayloadType::Parameter ptp;
30
-       ptp.name = pip.name;
31
-       ptp.value = pip.value;
32
-       out.parameters += ptp;
33
-@@ -150,7 +150,7 @@ static JingleRtpPayloadType payloadInfoToPayloadType(const PsiMedia::PayloadInfo
34
-   return out;
35
- }
36
- 
37
--static PsiMedia::PayloadInfo payloadTypeToPayloadInfo(const JingleRtpPayloadType &pt)
38
-+static PsiMedia::PayloadInfo payloadTypeToPayloadInfo(const Jingle::Rtp::PayloadType &pt)
39
- {
40
-   PsiMedia::PayloadInfo out;
41
-   out.setId(pt.id);
42
-@@ -160,7 +160,7 @@ static PsiMedia::PayloadInfo payloadTypeToPayloadInfo(const JingleRtpPayloadType
43
-   out.setPtime(pt.ptime);
44
-   out.setMaxptime(pt.maxptime);
45
-   QList<PsiMedia::PayloadInfo::Parameter> list;
46
--  foreach(const JingleRtpPayloadType::Parameter &ptp, pt.parameters)
47
-+  foreach(const Jingle::Rtp::PayloadType::Parameter &ptp, pt.parameters)
48
-   {
49
-       PsiMedia::PayloadInfo::Parameter pip;
50
-       pip.name = ptp.name;
51
-@@ -177,9 +177,9 @@ class AvTransmit : public QObject
52
- 
53
- public:
54
-   PsiMedia::RtpChannel *audio, *video;
55
--  JingleRtpChannel *transport;
56
-+  Jingle::Rtp::Channel *transport;
57
- 
58
--  AvTransmit(PsiMedia::RtpChannel *_audio, PsiMedia::RtpChannel *_video, JingleRtpChannel *_transport, QObject *parent = 0) :
59
-+  AvTransmit(PsiMedia::RtpChannel *_audio, PsiMedia::RtpChannel *_video, Jingle::Rtp::Channel *_transport, QObject *parent = 0) :
60
-       QObject(parent),
61
-       audio(_audio),
62
-       video(_video),
63
-@@ -218,8 +218,8 @@ private slots:
64
-       {
65
-           PsiMedia::RtpPacket packet = audio->read();
66
- 
67
--          JingleRtp::RtpPacket jpacket;
68
--          jpacket.type = JingleRtp::Audio;
69
-+          Session::RtpPacket jpacket;
70
-+          jpacket.type = Session::Audio;
71
-           jpacket.portOffset = packet.portOffset();
72
-           jpacket.value = packet.rawValue();
73
- 
74
-@@ -233,8 +233,8 @@ private slots:
75
-       {
76
-           PsiMedia::RtpPacket packet = video->read();
77
- 
78
--          JingleRtp::RtpPacket jpacket;
79
--          jpacket.type = JingleRtp::Video;
80
-+          Session::RtpPacket jpacket;
81
-+          jpacket.type = Session::Video;
82
-           jpacket.portOffset = packet.portOffset();
83
-           jpacket.value = packet.rawValue();
84
- 
85
-@@ -246,11 +246,11 @@ private slots:
86
-   {
87
-       while(transport->packetsAvailable())
88
-       {
89
--          JingleRtp::RtpPacket jpacket = transport->read();
90
-+          Session::RtpPacket jpacket = transport->read();
91
- 
92
--          if(jpacket.type == JingleRtp::Audio)
93
-+          if(jpacket.type == Session::Audio)
94
-               audio->write(PsiMedia::RtpPacket(jpacket.value, jpacket.portOffset));
95
--          else if(jpacket.type == JingleRtp::Video)
96
-+          else if(jpacket.type == Session::Video)
97
-               video->write(PsiMedia::RtpPacket(jpacket.value, jpacket.portOffset));
98
-       }
99
-   }
100
-@@ -341,7 +341,7 @@ class AvCallManagerPrivate : public QObject
101
- public:
102
-   AvCallManager *q;
103
-   PsiAccount *pa;
104
--  JingleRtpManager *rtpManager;
105
-+  Jingle::Rtp::Manager *rtpManager;
106
-   QList<AvCall*> sessions;
107
-   QList<AvCall*> pending;
108
- 
109
-@@ -362,7 +362,7 @@ public:
110
-   AvCall *q;
111
-   AvCallManagerPrivate *manager;
112
-   bool incoming;
113
--  JingleRtp *sess;
114
-+  Session *sess;
115
-   PsiMedia::RtpSession rtp;
116
-   XMPP::Jid peer;
117
-   AvCall::Mode mode;
118
-@@ -465,11 +465,11 @@ public:
119
-       //   localMediaUpdated()
120
-       int types;
121
-       if(mode == AvCall::Both)
122
--          types = JingleRtp::Audio | JingleRtp::Video;
123
-+          types = Session::Audio | Session::Video;
124
-       else if(mode == AvCall::Audio)
125
--          types = JingleRtp::Audio;
126
-+          types = Session::Audio;
127
-       else // Video
128
--          types = JingleRtp::Video;
129
-+          types = Session::Video;
130
- 
131
-       sess->accept(types);
132
-       start_rtp();
133
-@@ -597,18 +597,18 @@ private:
134
-   {
135
-       if(transmitAudio)
136
-       {
137
--          QList<JingleRtpPayloadType> payloadTypes = sess->remoteAudioPayloadTypes();
138
-+          QList<Jingle::Rtp::PayloadType> payloadTypes = sess->remoteAudioPayloadTypes();
139
-           QList<PsiMedia::PayloadInfo> list;
140
--          foreach(const JingleRtpPayloadType &pt, payloadTypes)
141
-+          foreach(const Jingle::Rtp::PayloadType &pt, payloadTypes)
142
-               list += payloadTypeToPayloadInfo(pt);
143
-           rtp.setRemoteAudioPreferences(list);
144
-       }
145
- 
146
-       if(transmitVideo)
147
-       {
148
--          QList<JingleRtpPayloadType> payloadTypes = sess->remoteVideoPayloadTypes();
149
-+          QList<Jingle::Rtp::PayloadType> payloadTypes = sess->remoteVideoPayloadTypes();
150
-           QList<PsiMedia::PayloadInfo> list;
151
--          foreach(const JingleRtpPayloadType &pt, payloadTypes)
152
-+          foreach(const Jingle::Rtp::PayloadType &pt, payloadTypes)
153
-               list += payloadTypeToPayloadInfo(pt);
154
-           rtp.setRemoteVideoPreferences(list);
155
-       }
156
-@@ -674,14 +674,14 @@ private slots:
157
- 
158
-       if(pAudio)
159
-       {
160
--          JingleRtpPayloadType pt = payloadInfoToPayloadType(*pAudio);
161
--          sess->setLocalAudioPayloadTypes(QList<JingleRtpPayloadType>() << pt);
162
-+          Jingle::Rtp::PayloadType pt = payloadInfoToPayloadType(*pAudio);
163
-+          sess->setLocalAudioPayloadTypes(QList<Jingle::Rtp::PayloadType>() << pt);
164
-       }
165
- 
166
-       if(pVideo)
167
-       {
168
--          JingleRtpPayloadType pt = payloadInfoToPayloadType(*pVideo);
169
--          sess->setLocalVideoPayloadTypes(QList<JingleRtpPayloadType>() << pt);
170
-+          Jingle::Rtp::PayloadType pt = payloadInfoToPayloadType(*pVideo);
171
-+          sess->setLocalVideoPayloadTypes(QList<Jingle::Rtp::PayloadType>() << pt);
172
-       }
173
- 
174
-       if(!incoming)
175
-@@ -716,13 +716,13 @@ private slots:
176
- 
177
-   void sess_error()
178
-   {
179
--      JingleRtp::Error e = sess->errorCode();
180
--      if(e == JingleRtp::ErrorTimeout)
181
-+      Session::Error e = sess->errorCode();
182
-+      if(e == Session::ErrorTimeout)
183
-       {
184
-           errorString = tr("Call negotiation timed out.");
185
-           cleanup();
186
-       }
187
--      else if(e == JingleRtp::ErrorICE)
188
-+      else if(e == Session::ErrorICE)
189
-       {
190
-           errorString = tr("Unable to establish peer-to-peer connection.");
191
-           reject();
192
-@@ -843,7 +843,7 @@ AvCallManagerPrivate::AvCallManagerPrivate(PsiAccount *_pa, AvCallManager *_q) :
193
-   q(_q),
194
-   pa(_pa)
195
- {
196
--  rtpManager = new JingleRtpManager(pa->client());
197
-+  rtpManager = new Jingle::Rtp::Manager(pa->client());
198
-   connect(rtpManager, SIGNAL(incomingReady()), SLOT(rtp_incomingReady()));
199
- }
200
- 
201
psi-plus-main-20160309.tar.xz/patches/extra Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/patches/extra/0220-psi-send-button-context-menu.diff Deleted
201
 
1
@@ -1,1410 +0,0 @@
2
-Заходим в «iris»
3
-Заходим в «src/libpsi»
4
---- a/options/default.xml
5
-+++ b/options/default.xml
6
-@@ -114,6 +114,7 @@
7
-               <use-message-icons type="bool">true</use-message-icons>
8
-               <scaled-message-icons type="bool">false</scaled-message-icons>
9
-               <warn-before-clear type="bool">true</warn-before-clear>
10
-+              <only-paste-template type="bool">false</only-paste-template>
11
-           </chat>
12
-           <save>
13
-               <toolbars-state type="QByteArray"/>
14
---- a/src/chatdlg.ui
15
-+++ b/src/chatdlg.ui
16
-@@ -292,6 +292,9 @@
17
-            <property name="toolTip">
18
-             <string>Send</string>
19
-            </property>
20
-+           <property name="contextMenuPolicy" >
21
-+            <enum>Qt::CustomContextMenu</enum>
22
-+           </property>
23
-           </widget>
24
-          </item>
25
-          <item>
26
---- a/src/groupchatdlg.cpp
27
-+++ b/src/groupchatdlg.cpp
28
-@@ -207,7 +207,7 @@ public:
29
-   QString password;
30
-   QString topic;
31
-   bool nonAnonymous;       // got status code 100 ?
32
--  IconAction *act_find, *act_clear, *act_icon, *act_configure, *act_bookmark;
33
-+  IconAction *act_find, *act_clear, *act_icon, *act_configure, *act_bookmark, *act_ps, *act_templates;
34
- #ifdef WHITEBOARDING
35
-   IconAction *act_whiteboard;
36
- #endif
37
-@@ -606,6 +606,13 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager)
38
- 
39
-   d->state = Private::Connected;
40
- 
41
-+  SendButtonTemplatesMenu* menu = getTemplateMenu();
42
-+  if (menu) {
43
-+      connect(menu, SIGNAL(doPasteAndSend()), this, SLOT(doPasteAndSend()));
44
-+      connect(menu, SIGNAL(doEditTemplates()), this, SLOT(editTemplates()));
45
-+      connect(menu, SIGNAL(doTemplateText(const QString &)), this, SLOT(sendTemp(const QString &)));
46
-+  }
47
-+
48
-   setAcceptDrops(true);
49
- 
50
- #ifndef Q_OS_MAC
51
-@@ -689,6 +696,11 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager)
52
-   connect(bm, SIGNAL(conferencesChanged(QList<ConferenceBookmark>)), SLOT(updateBookmarkIcon()));
53
-   connect(bm, SIGNAL(bookmarksSaved()), SLOT(updateBookmarkIcon()));
54
- 
55
-+  d->act_ps = new IconAction(tr("Paste and Send"), "psi/action_paste_and_send", tr("Paste and Send"), 0, this);
56
-+  connect(d->act_ps, SIGNAL(triggered()), SLOT(doPasteAndSend()));
57
-+
58
-+  d->act_templates = new IconAction(tr("Templates"), "psi/action_templates", tr("Templates"), 0, this);
59
-+  d->act_templates->setMenu(getTemplateMenu());
60
-   ui_.toolbar->setIconSize(QSize(16,16));
61
-   ui_.toolbar->addAction(d->act_clear);
62
-   ui_.toolbar->addAction(d->act_configure);
63
-@@ -697,6 +709,10 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager)
64
- #endif
65
-   ui_.toolbar->addWidget(new StretchWidget(ui_.toolbar));
66
-   ui_.toolbar->addAction(d->act_icon);
67
-+  ((QToolButton *)ui_.toolbar->widgetForAction(d->act_icon))->setPopupMode(QToolButton::InstantPopup);
68
-+  ui_.toolbar->addAction(d->act_templates);
69
-+  ((QToolButton *)ui_.toolbar->widgetForAction(d->act_templates))->setPopupMode(QToolButton::InstantPopup);
70
-+  ui_.toolbar->addAction(d->act_ps);
71
-   ui_.toolbar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
72
- 
73
-   // Common actions
74
-@@ -705,6 +721,7 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager)
75
-   connect(d->act_send,SIGNAL(triggered()), SLOT(mle_returnPressed()));
76
-   ui_.pb_send->setIcon(IconsetFactory::icon("psi/action_button_send").icon());
77
-   connect(ui_.pb_send, SIGNAL(clicked()), SLOT(mle_returnPressed()));
78
-+  connect(ui_.pb_send, SIGNAL(customContextMenuRequested(const QPoint)), SLOT(sendButtonMenu()));
79
-   d->act_close = new QAction(this);
80
-   addAction(d->act_close);
81
-   connect(d->act_close,SIGNAL(triggered()), SLOT(close()));
82
-@@ -763,6 +780,13 @@ GCMainDlg::~GCMainDlg()
83
-   account()->dialogUnregister(this);
84
-   delete d->mucManager;
85
-   delete d;
86
-+
87
-+  SendButtonTemplatesMenu* menu = getTemplateMenu();
88
-+  if (menu) {
89
-+      disconnect(menu, SIGNAL(doPasteAndSend()), this, SLOT(doPasteAndSend()));
90
-+      disconnect(menu, SIGNAL(doEditTemplates()), this, SLOT(editTemplates()));
91
-+      disconnect(menu, SIGNAL(doTemplateText(const QString &)), this, SLOT(sendTemp(const QString &)));
92
-+  }
93
- }
94
- 
95
- void GCMainDlg::ensureTabbedCorrectly()
96
-@@ -1869,6 +1893,8 @@ void GCMainDlg::buildMenu()
97
-   d->pm_settings->addSeparator();
98
- 
99
-   d->pm_settings->addAction(d->act_icon);
100
-+  d->pm_settings->addAction(d->act_templates);
101
-+  d->pm_settings->addAction(d->act_ps);
102
-   d->pm_settings->addAction(d->act_nick);
103
-   d->pm_settings->addAction(d->act_bookmark);
104
- }
105
-@@ -1901,6 +1927,50 @@ void GCMainDlg::setStatusTabIcon(int status)
106
-   setTabIcon(PsiIconset::instance()->statusPtr(jid(), status)->icon());
107
- }
108
- 
109
-+void GCMainDlg::sendButtonMenu()
110
-+{
111
-+  SendButtonTemplatesMenu* menu = getTemplateMenu();
112
-+  if (menu) {
113
-+      menu->setParams(true);
114
-+      menu->exec(QCursor::pos());
115
-+      menu->setParams(false);
116
-+      d->mle()->setFocus();
117
-+  }
118
-+}
119
-+
120
-+void GCMainDlg::editTemplates()
121
-+{
122
-+  if(TabbableWidget::isActiveTab()) {
123
-+      showTemplateEditor();
124
-+  }
125
-+}
126
-+
127
-+void GCMainDlg::doPasteAndSend()
128
-+{
129
-+  if(TabbableWidget::isActiveTab()) {
130
-+      d->mle()->paste();
131
-+      mle_returnPressed();
132
-+      d->act_ps->setEnabled(false);
133
-+      QTimer::singleShot(2000, this, SLOT(psButtonEnabled()));
134
-+  }
135
-+}
136
-+
137
-+void GCMainDlg::psButtonEnabled()
138
-+{
139
-+  d->act_ps->setEnabled(true);
140
-+}
141
-+
142
-+void GCMainDlg::sendTemp(const QString &templText)
143
-+{
144
-+  if(TabbableWidget::isActiveTab()) {
145
-+      if (!templText.isEmpty()) {
146
-+          d->mle()->textCursor().insertText(templText);
147
-+          if (!PsiOptions::instance()->getOption("options.ui.chat.only-paste-template").toBool())
148
-+              mle_returnPressed();
149
-+      }
150
-+  }
151
-+}
152
-+
153
- //----------------------------------------------------------------------------
154
- // GCFindDlg
155
- //----------------------------------------------------------------------------
156
---- a/src/groupchatdlg.h
157
-+++ b/src/groupchatdlg.h
158
-@@ -138,6 +138,11 @@ private slots:
159
-   void openWhiteboard();
160
- #endif
161
-   void chatEditCreated();
162
-+  void sendButtonMenu();
163
-+  void editTemplates();
164
-+  void doPasteAndSend();
165
-+  void sendTemp(const QString &);
166
-+  void psButtonEnabled();
167
- 
168
- public:
169
-   class Private;
170
---- a/src/groupchatdlg.ui
171
-+++ b/src/groupchatdlg.ui
172
-@@ -289,6 +289,9 @@
173
-            <property name="toolTip">
174
-             <string>Send</string>
175
-            </property>
176
-+           <property name="contextMenuPolicy" >
177
-+            <enum>Qt::CustomContextMenu</enum>
178
-+           </property>
179
-           </widget>
180
-          </item>
181
-         </layout>
182
---- a/src/psichatdlg.cpp
183
-+++ b/src/psichatdlg.cpp
184
-@@ -18,6 +18,7 @@
185
- #include <QDragEnterEvent>
186
- #include <QMessageBox>
187
- #include <QDebug>
188
-+#include <QTimer>
189
- 
190
- #include "psicon.h"
191
- #include "psiaccount.h"
192
-@@ -171,6 +172,22 @@ PsiChatDlg::PsiChatDlg(const Jid& jid, PsiAccount* pa, TabManager* tabManager)
193
- {
194
-   connect(account()->psi(), SIGNAL(accountCountChanged()), this, SLOT(updateIdentityVisibility()));
195
-   mCmdManager_.registerProvider(new ChatDlgMCmdProvider(this));
196
-+  SendButtonTemplatesMenu* menu = getTemplateMenu();
197
-+  if (menu) {
198
-+      connect(menu, SIGNAL(doPasteAndSend()), this, SLOT(doPasteAndSend()));
199
-+      connect(menu, SIGNAL(doEditTemplates()), this, SLOT(editTemplates()));
200
-+      connect(menu, SIGNAL(doTemplateText(const QString &)), this, SLOT(sendTemp(const QString &)));
201
psi-plus-main-20160309.tar.xz/patches/haiku Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/patches/haiku/4000-fix-psiplus-build-in-haiku.patch Deleted
201
 
1
@@ -1,498 +0,0 @@
2
---- a/iris/src/jdns/jdns_p.h
3
-+++ b/iris/src/jdns/jdns_p.h
4
-@@ -44,6 +44,8 @@
5
- # define JDNS_OS_SOLARIS
6
- #elif defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__))
7
- # define JDNS_OS_MAC
8
-+#elif defined(__HAIKU__)
9
-+# define JDNS_OS_HAIKU
10
- #endif
11
- 
12
- #ifdef JDNS_OS_WIN
13
---- a/iris/src/jdns/jdns_sys.c
14
-+++ b/iris/src/jdns/jdns_sys.c
15
-@@ -726,8 +726,8 @@ static int my_res_init()
16
- //   a define, so the #ifdef doesn't work.  as a workaround, we'll explicitly
17
- //   specify the platforms that have __res_state_ext
18
- //#ifdef __res_state_ext
19
--#if defined(JDNS_OS_MAC) || defined(JDNS_OS_FREEBSD) || \
20
--    defined(JDNS_OS_NETBSD) || defined (JDNS_OS_SOLARIS)
21
-+#if defined(JDNS_OS_MAC) || defined(JDNS_OS_FREEBSD) || defined(JDNS_OS_NETBSD) \
22
-+  || defined (JDNS_OS_SOLARIS) || defined (JDNS_OS_HAIKU)
23
- # define USE_EXTEXT
24
- #endif
25
- 
26
---- a/iris/src/jdns/qjdns_sock.cpp
27
-+++ b/iris/src/jdns/qjdns_sock.cpp
28
-@@ -46,6 +46,7 @@
29
- 
30
- #ifndef QT_NO_IPV6
31
- # define HAVE_IPV6
32
-+#ifndef Q_OS_HAIKU
33
- # ifndef s6_addr
34
- #  define IPPROTO_IPV6 41
35
-    struct in6_addr
36
-@@ -59,6 +60,7 @@
37
-    };
38
- #  define s6_addr _S6_un._S6_u8
39
- # endif
40
-+#endif
41
- # ifndef IPV6_JOIN_GROUP
42
- #  define IPV6_JOIN_GROUP 12
43
- #  define IPV6_MULTICAST_HOPS 10
44
---- a/src/applicationinfo.cpp
45
-+++ b/src/applicationinfo.cpp
46
-@@ -160,7 +160,7 @@ QString ApplicationInfo::resourcesDir()
47
- {
48
- #if defined(HAVE_X11)
49
-   return PSI_DATADIR;
50
--#elif defined(Q_OS_WIN)
51
-+#elif defined(Q_OS_WIN) || defined(Q_WS_HAIKU)
52
-   return qApp->applicationDirPath();
53
- #elif defined(Q_OS_MAC)
54
-   // FIXME: Clean this up (remko)
55
-@@ -297,6 +297,10 @@ QString ApplicationInfo::homeDir(ApplicationInfo::HomedirType type)
56
-               QMessageBox::information(0, QObject::tr("Conversion Error"), QObject::tr("Configuration data for a previous version of Psi was found, but it was not possible to convert it to work with the current version. Ensure you have appropriate permission and that another copy of Psi is not running, and try again."));
57
-               exit(0);
58
-           }
59
-+#elif defined Q_OS_HAIKU
60
-+          QDir configDir(QDir::homePath() + "/.config/" + sname());
61
-+          QDir cacheDir(QDir::homePath() + "/.cache/" + sname());
62
-+          QDir dataDir(configDir);
63
- #endif
64
-           configDir_ = configDir.path();
65
-           cacheDir_ = cacheDir.path();
66
---- a/src/libpsi/tools/globalshortcut/globalshortcut.pri
67
-+++ b/src/libpsi/tools/globalshortcut/globalshortcut.pri
68
-@@ -2,7 +2,7 @@ HEADERS += $$PWD/globalshortcutmanager.h $$PWD/globalshortcuttrigger.h
69
- SOURCES += $$PWD/globalshortcutmanager.cpp
70
- DEPENDPATH  += $$PWD
71
- 
72
--unix:!mac {
73
-+unix:!mac:!haiku {
74
-   SOURCES += $$PWD/globalshortcutmanager_x11.cpp
75
- }
76
- win32: {
77
-@@ -16,3 +16,6 @@ mac: {
78
-   HEADERS += \
79
-       $$PWD/NDKeyboardLayout.h
80
- }
81
-+haiku: {
82
-+  SOURCES += $$PWD/globalshortcutmanager_haiku.cpp
83
-+}
84
---- a/src/libpsi/tools/tools.pri
85
-+++ b/src/libpsi/tools/tools.pri
86
-@@ -25,7 +25,7 @@ SOURCES += \
87
-   $$PWD/priorityvalidator.cpp \
88
-   $$PWD/iodeviceopener.cpp
89
- 
90
--unix:!mac {
91
-+unix:!mac:!haiku {
92
-   HEADERS += $$PWD/x11info.h
93
-   SOURCES += $$PWD/x11info.cpp
94
- }
95
---- a/src/src.pri
96
-+++ b/src/src.pri
97
-@@ -6,7 +6,7 @@ greaterThan(QT_MAJOR_VERSION, 4) {
98
- 
99
-   unix:!mac:LIBS += -lxcb
100
- }
101
--unix:!mac:DEFINES += HAVE_X11
102
-+unix:!mac:!haiku:DEFINES += HAVE_X11
103
- 
104
- # modules
105
- include($$PWD/protocol/protocol.pri)
106
---- a/src/systeminfo.cpp
107
-+++ b/src/systeminfo.cpp
108
-@@ -26,6 +26,14 @@
109
- #include <windows.h>
110
- #endif
111
- 
112
-+#if defined(Q_WS_HAIKU)
113
-+#include <sys/utsname.h>
114
-+#include <Path.h>
115
-+#include <FindDirectory.h>
116
-+#include <AppFileInfo.h>
117
-+extern "C" const char* __get_haiku_revision();
118
-+#endif
119
-+
120
- #include "systeminfo.h"
121
- 
122
- #if defined(HAVE_X11)
123
-@@ -172,7 +180,7 @@ SystemInfo::SystemInfo() : QObject(QCoreApplication::instance())
124
-   os_str_ = "Unknown";
125
- 
126
-   // Detect
127
--#if defined(HAVE_X11) || defined(Q_OS_MAC)
128
-+#if defined(HAVE_X11) || defined(Q_OS_MAC) || defined(Q_WS_HAIKU)
129
-   time_t x;
130
-   time(&x);
131
-   char str[256];
132
-@@ -225,6 +233,31 @@ SystemInfo::SystemInfo() : QObject(QCoreApplication::instance())
133
-       default:
134
-           os_str_ = "Mac OS X";
135
-   }
136
-+#elif defined(Q_WS_HAIKU)
137
-+  QString strVersion("Haiku");
138
-+  BPath path;
139
-+  if (find_directory(B_BEOS_LIB_DIRECTORY, &path) == B_OK) {
140
-+      path.Append("libbe.so");
141
-+
142
-+      BAppFileInfo appFileInfo;
143
-+      version_info versionInfo;
144
-+      BFile file;
145
-+      if (file.SetTo(path.Path(), B_READ_ONLY) == B_OK
146
-+          && appFileInfo.SetTo(&file) == B_OK
147
-+          && appFileInfo.GetVersionInfo(&versionInfo, 
148
-+              B_APP_VERSION_KIND) == B_OK
149
-+          && versionInfo.short_info[0] != '\0')
150
-+              strVersion = versionInfo.short_info;
151
-+  }
152
-+
153
-+   const char* haikuRevision = __get_haiku_revision();
154
-+       if (haikuRevision != NULL) {
155
-+               os_str_ = "Haiku";
156
-+               os_str_ += " ( " + strVersion + " Rev. ";
157
-+               os_str_ += haikuRevision;
158
-+               os_str_ += ")";
159
-+       }
160
-+
161
- #endif
162
- 
163
- #if defined(Q_OS_WIN)
164
---- /dev/null
165
-+++ b/src/libpsi/tools/globalshortcut/globalshortcutmanager_haiku.cpp
166
-@@ -0,0 +1,333 @@
167
-+/*
168
-+ * globalshortcutmanager_haiku.cpp - Haiku implementation of global shortcuts by Vitaly (Diger)
169
-+ * Based on X11 implementation of global shortcuts
170
-+ * Copyright (C) 2003-2006  Justin Karneges, Maciej Niedzielski
171
-+ *
172
-+ * This program is free software; you can redistribute it and/or
173
-+ * modify it under the terms of the GNU General Public License
174
-+ * as published by the Free Software Foundation; either version 2
175
-+ * of the License, or (at your option) any later version.
176
-+ *
177
-+ * This program is distributed in the hope that it will be useful,
178
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
179
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
180
-+ * GNU General Public License for more details.
181
-+ *
182
-+ * You should have received a copy of the GNU General Public License
183
-+ * along with this library; if not, write to the Free Software
184
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
185
-+ *
186
-+ */
187
-+
188
-+#include "globalshortcutmanager.h"
189
-+#include "globalshortcuttrigger.h"
190
-+
191
-+#include <InterfaceDefs.h>
192
-+
193
-+#include <QWidget>
194
-+#include <QCoreApplication>
195
-+
196
-+
197
-+class HKeyTrigger
198
-+{
199
-+public:
200
-+  virtual ~HKeyTrigger() {}
201
psi-plus-main-20160309.tar.xz/patches/haiku/4010-fix-iconselect-buttons-in-haiku.patch Deleted
37
 
1
@@ -1,35 +0,0 @@
2
---- a/src/widgets/iconselect.cpp
3
-+++ b/src/widgets/iconselect.cpp
4
-@@ -102,6 +102,10 @@ public:
5
- signals:
6
-   void iconSelected(const PsiIcon *);
7
-   void textSelected(QString);
8
-+  
9
-+public slots:
10
-+  void aboutToShow() { iconStart(); }
11
-+  void aboutToHide() { iconStop();  }
12
- 
13
- private:
14
-   void iconStart()
15
-@@ -142,8 +146,8 @@ private:
16
-       }
17
-   }
18
- 
19
--  void enterEvent(QEvent *) { iconStart(); setFocus();  update(); } // focus follows mouse mode
20
--  void leaveEvent(QEvent *) { iconStop(); clearFocus(); update(); }
21
-+  void enterEvent(QEvent *) { setFocus();   update(); } // focus follows mouse mode
22
-+  void leaveEvent(QEvent *) { clearFocus(); update(); }
23
- 
24
- private slots:
25
-   void iconUpdated()
26
-@@ -333,8 +337,8 @@ void IconSelect::setIconset(const Iconset &iconset)
27
-       connect (b, SIGNAL(iconSelected(const PsiIcon *)), menu, SIGNAL(iconSelected(const PsiIcon *)));
28
-       connect (b, SIGNAL(textSelected(QString)), menu, SIGNAL(textSelected(QString)));
29
- 
30
--      //connect (menu, SIGNAL(aboutToShow()), b, SLOT(aboutToShow()));
31
--      //connect (menu, SIGNAL(aboutToHide()), b, SLOT(aboutToHide()));
32
-+      connect (menu, SIGNAL(aboutToShow()), b, SLOT(aboutToShow()));
33
-+      connect (menu, SIGNAL(aboutToHide()), b, SLOT(aboutToHide()));
34
- 
35
-       if (++column >= size) {
36
-           ++row;
37
psi-plus-main-20160309.tar.xz/patches/haiku/4020-fix-screenshotplugin-build-in-haiku.patch Deleted
13
 
1
@@ -1,11 +0,0 @@
2
---- a/src/plugins/generic/screenshotplugin/screenshotplugin.pro
3
-+++ b/src/plugins/generic/screenshotplugin/screenshotplugin.pro
4
-@@ -52,7 +52,7 @@ HEADERS  +=  qxt/core/qxtglobal.h \
5
- SOURCES  +=   qxt/core/qxtglobal.cpp \
6
-       qxt/gui/qxtwindowsystem.cpp
7
- 
8
--unix:!macx {
9
-+unix:!macx:!haiku {
10
-   CONFIG += X11
11
-   SOURCES += qxt/gui/qxtwindowsystem_x11.cpp \
12
-           qxt/gui/x11info.cpp
13
psi-plus-main-20160309.tar.xz/patches/mac Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/patches/mac/3000-brushed-metal.diff Deleted
83
 
1
@@ -1,81 +0,0 @@
2
---- psi.orig/src/chatdlg.cpp
3
-+++ psi/src/chatdlg.cpp
4
-@@ -97,6 +97,11 @@ ChatDlg::ChatDlg(const Jid& jid, PsiAcco
5
-   : TabbableWidget(jid, pa, tabManager)
6
-   , highlightersInstalled_(false)
7
- {
8
-+  if (PsiOptions::instance()->getOption("options.ui.mac.use-brushed-metal-windows").toBool()) {
9
-+          setAttribute(Qt::WA_MacMetalStyle);
10
-+
11
-+  }
12
-+
13
-   pending_ = 0;
14
-   keepOpen_ = false;
15
-   warnSend_ = false;
16
---- psi.orig/src/eventdlg.cpp
17
-+++ psi/src/eventdlg.cpp
18
-@@ -458,6 +458,8 @@ void AttachView::addUrlList(const UrlLis
19
- AddUrlDlg::AddUrlDlg(QWidget *parent)
20
- :QDialog(parent)
21
- {
22
-+  if ( PsiOptions::instance()->getOption("options.ui.mac.use-brushed-metal-windows").toBool() )
23
-+          setAttribute(Qt::WA_MacMetalStyle);
24
-   setupUi(this);
25
- #ifndef Q_OS_MAC
26
-   setWindowIcon(IconsetFactory::icon("psi/www").icon());
27
-@@ -580,6 +582,8 @@ EventDlg::EventDlg(const QString &to, Ps
28
-   : AdvancedWidget<QWidget>(0)
29
- {
30
-   setAttribute(Qt::WA_DeleteOnClose);
31
-+  if ( PsiOptions::instance()->getOption("options.ui.mac.use-brushed-metal-windows").toBool() )
32
-+          setAttribute(Qt::WA_MacMetalStyle);
33
-   d = new Private(this);
34
-   d->composing = true;
35
-   d->psi = psi;
36
---- psi.orig/src/infodlg.cpp
37
-+++ psi/src/infodlg.cpp
38
-@@ -127,6 +127,8 @@ InfoDlg::InfoDlg(int type, const Jid &j,
39
-   : QDialog(parent)
40
- {
41
-   setAttribute(Qt::WA_DeleteOnClose);
42
-+  if ( PsiOptions::instance()->getOption("options.ui.mac.use-brushed-metal-windows").toBool() )
43
-+          setAttribute(Qt::WA_MacMetalStyle);
44
-   setWindowFlags(Qt::Dialog | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint);
45
-   ui_.setupUi(this);
46
-   d = new Private;
47
---- psi.orig/src/psi_profiles.cpp
48
-+++ psi/src/psi_profiles.cpp
49
-@@ -896,6 +896,7 @@ bool OptionsMigration::fromFile(const QS
50
-               migrateBoolEntry(tag, "jidComplete", "options.ui.message.use-jid-auto-completion");
51
-               migrateBoolEntry(tag, "grabUrls", "options.ui.message.auto-grab-urls-from-clipboard");
52
-               migrateBoolEntry(tag, "smallChats", "options.ui.chat.use-small-chats");
53
-+              migrateBoolEntry(tag, "brushedMetal", "options.ui.mac.use-brushed-metal-windows");
54
-               migrateBoolEntry(tag, "chatLineEdit", "options.ui.chat.use-expanding-line-edit");
55
-               migrateBoolEntry(tag, "useTabs", "options.ui.tabs.use-tabs");
56
-               migrateBoolEntry(tag, "putTabsAtBottom", "options.ui.tabs.put-tabs-at-bottom");
57
---- psi.orig/src/tabs/tabdlg.cpp
58
-+++ psi/src/tabs/tabdlg.cpp
59
-@@ -149,6 +149,11 @@ TabDlg::TabDlg(TabManager* tabManager, c
60
-       delegate_->create(this);
61
-   }
62
-
63
-+  if (PsiOptions::instance()->getOption("options.ui.mac.use-brushed-metal-windows").toBool()) {
64
-+          setAttribute(Qt::WA_MacMetalStyle);
65
-+
66
-+  }
67
-+
68
-   // FIXME
69
-   qRegisterMetaType<TabDlg*>("TabDlg*");
70
-   qRegisterMetaType<TabbableWidget*>("TabbableWidget*");
71
---- psi.orig/src/whiteboarding/wbdlg.cpp
72
-+++ psi/src/whiteboarding/wbdlg.cpp
73
-@@ -41,6 +41,9 @@ static const QString geometryOption = "o
74
- //----------------------------------------------------------------------------
75
-
76
- WbDlg::WbDlg(SxeSession* session, PsiAccount* pa) {
77
-+  if ( PsiOptions::instance()->getOption("options.ui.mac.use-brushed-metal-windows").toBool() )
78
-+      setAttribute(Qt::WA_MacMetalStyle);
79
-+
80
-   groupChat_ = session->groupChat();
81
-   pending_ = 0;
82
-   keepOpen_ = false;
83
psi-plus-main-20160309.tar.xz/patches/mac/3020-psi-mac-Makefile.diff Deleted
101
 
1
@@ -1,99 +0,0 @@
2
-diff -urN src/mac/Makefile work/mac/Makefile
3
---- src/mac/Makefile   2010-03-30 17:15:28.000000000 +0400
4
-+++ work/mac/Makefile  2011-01-20 07:17:50.000000000 +0300
5
-@@ -23,25 +23,25 @@
6
- SPARKLEDIR=/Library/Frameworks
7
- PSI_DIR=..
8
-
9
--EXECUTABLE_NAME=psi
10
--NAME=Psi
11
-+EXECUTABLE_NAME=psi-plus
12
-+NAME=Psi+
13
- VOLUME_NAME=$(NAME)
14
--VERSION=0.15-devel_$(shell date +"%Y%m%d")
15
--#VERSION=0.15
16
-+VERSION=0.15.xxx-macosx
17
-
18
--APPFILE_NAME=Psi.app
19
-+APPFILE_NAME=Psi+.app
20
- FILES=$(APPFILE_NAME)
21
- DISK_DIR=disk
22
- ifneq ($(BUILD),no)
23
- DISK_FILES=$(foreach f,$(FILES), $(addprefix $(DISK_DIR)/,$(f)))
24
- endif
25
--MASTER_DMG=$(NAME)-$(VERSION).dmg
26
-+MASTER_DMG=$(EXECUTABLE_NAME)-$(VERSION).dmg
27
-
28
-
29
- # Other variables
30
- QT_FRAMEWORK_VERSION=4
31
--QT_FRAMEWORKS=QtCore QtXml QtNetwork QtGui QtSql QtSvg
32
-+QT_FRAMEWORKS=QtCore QtXml QtXmlPatterns QtNetwork QtGui QtSql QtSvg QtDBus phonon
33
- QT_PLUGINS=imageformats/libqjpeg.dylib imageformats/libqgif.dylib
34
-+PSIPLUS_PLUGINS=`ls ../src/$(EXECUTABLE_NAME).app/Contents/Resources/plugins`
35
-
36
- # The rules
37
- .PHONY: buildall
38
-@@ -68,7 +68,7 @@
39
- build-psi:
40
-   @echo
41
-   @echo --------------------- Building Source Tree --------------------
42
--  $(MAKE) -C $(PSI_DIR)
43
-+# $(MAKE) -C $(PSI_DIR)
44
-   @echo
45
- else
46
- build-psi:
47
-@@ -88,7 +88,7 @@
48
-   mkdir -p "$@/Contents/Frameworks"
49
-   -ditto -rsrc "$(GROWLDIR)/Growl.framework" "$@/Contents/Frameworks/Growl.framework"
50
-   -ditto -rsrc "$(SPARKLEDIR)/Sparkle.framework" "$@/Contents/Frameworks/Sparkle.framework"
51
--  #strip "$@/Contents/MacOS/$(EXECUTABLE_NAME)"
52
-+  strip "$@/Contents/MacOS/$(EXECUTABLE_NAME)"
53
-   #
54
-   #@echo
55
-   #@echo Installing QCA ...
56
-@@ -112,7 +112,7 @@
57
-   @echo
58
-   @echo Installing Qt Frameworks ...
59
-   for f in $(QT_FRAMEWORKS); do \
60
--      ditto -rsrc "$(QTDIR)/lib/$$f.framework" "$@/Contents/Frameworks/$$f.framework"; \
61
-+      ditto -rsrc "/Library/Frameworks/$$f.framework" "$@/Contents/Frameworks/$$f.framework"; \
62
-       rm -rf "$@/Contents/Frameworks/$$f.framework/Headers"; \
63
-       rm -rf "$@/Contents/Frameworks/$$f.framework/$$f""_debug"; \
64
-       rm -rf "$@/Contents/Frameworks/$$f.framework/$$f""_debug.prl"; \
65
-@@ -121,15 +121,16 @@
66
-       rm -rf "$@/Contents/Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f""_debug.prl"; \
67
-       install_name_tool -id "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/Frameworks/$$f.framework/$$f"; \
68
-       for g in $(QT_FRAMEWORKS); do \
69
--          install_name_tool -change "$(QTDIR)/lib/$$g.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$g" "@executable_path/../Frameworks/$$g.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$g" "$@/Contents/Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f"; \
70
-+          install_name_tool -change "$$g.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$g" "@executable_path/../Frameworks/$$g.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$g" "$@/Contents/Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f"; \
71
-       done; \
72
-       for g in $(QT_PLUGINS); do \
73
--          install_name_tool -change "$(QTDIR)/lib/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/Plugins/$$g"; \
74
-+          install_name_tool -change "$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/Plugins/$$g"; \
75
-       done; \
76
--      \# install_name_tool -change "$(QTDIR)/lib/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/Frameworks/libqca.2.dylib"; \
77
--      \# install_name_tool -change "$(QTDIR)/lib/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/Resources/crypto/libqca-openssl.dylib"; \
78
--      install_name_tool -change "$(QTDIR)/lib/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/MacOS/$(EXECUTABLE_NAME)"; \
79
--  done
80
-+      for p in $(PSIPLUS_PLUGINS); do \
81
-+          install_name_tool -change "$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/Resources/plugins/$$p"; \
82
-+      done; \
83
-+      install_name_tool -change "$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "@executable_path/../Frameworks/$$f.framework/Versions/$(QT_FRAMEWORK_VERSION)/$$f" "$@/Contents/MacOS/$(EXECUTABLE_NAME)"; \
84
-+  done; \
85
-
86
- # The rest
87
- $(DISK_DIR)/%: $(PSI_DIR)/%
88
-@@ -150,9 +151,9 @@
89
- $(TEMPLATE_DMG).bz2:
90
-   @echo
91
-   @echo --------------------- Generating empty template --------------------
92
--  mkdir template
93
--  hdiutil create -size 80m "$(TEMPLATE_DMG)" -srcfolder template -format UDRW -volname "$(VOLUME_NAME)" -quiet
94
--  rmdir template
95
-+# mkdir template
96
-+# hdiutil create -size 200m "$(TEMPLATE_DMG)" -srcfolder template -format UDRW -volname "$(VOLUME_NAME)" -quiet
97
-+# rmdir template
98
-   bzip2 "$(TEMPLATE_DMG)"
99
-   @echo
100
-
101
psi-plus-main-20160309.tar.xz/patches/mac/3030-psi-mac-sparkle.diff Deleted
136
 
1
@@ -1,134 +0,0 @@
2
---- psi.orig/mac/Info.plist.in
3
-+++ psi/mac/Info.plist.in
4
-@@ -7,23 +7,25 @@
5
-   <key>CFBundleExecutable</key>
6
-   <string>psi</string>
7
-   <key>CFBundleGetInfoString</key>
8
--  <string>Psi @@VERSION@@ by the Psi team. This program is licensed under the GNU GPL.</string>
9
-+  <string>Psi+ @@VERSION@@ by the Psi+ team. This program is licensed under the GNU GPL.</string>
10
-   <key>CFBundleIconFile</key>
11
-   <string>application.icns</string>
12
-   <key>CFBundleIdentifier</key>
13
--  <string>org.psi-im</string>
14
-+  <string>com.googlecode.psi-dev</string>
15
-   <key>CFBundleInfoDictionaryVersion</key>
16
-   <string>6.0</string>
17
-   <key>CFBundleName</key>
18
--  <string>Psi</string>
19
-+  <string>Psi+</string>
20
-   <key>CFBundlePackageType</key>
21
-   <string>APPL</string>
22
-   <key>CFBundleShortVersionString</key>
23
--  <string>Psi @@VERSION@@</string>
24
-+  <string>Psi+ @@VERSION@@</string>
25
-   <key>CFBundleSignature</key>
26
-   <string>psi</string>
27
-   <key>CFBundleVersion</key>
28
-   <string>@@VERSION@@</string>
29
-+  <key>SUPublicDSAKeyFile</key>
30
-+  <string>dsa_pub.pem</string>
31
-   <key>CSResourcesFileMapped</key>
32
-   <true/>
33
- </dict>
34
---- psi.orig/src/applicationinfo.cpp
35
-+++ psi/src/applicationinfo.cpp
36
-@@ -36,7 +36,7 @@
37
- #define PROG_STORAGE_NS "http://psi-im.org/storage"
38
- #define PROG_FILECACHE_NS "http://psi-im.org/filecache"
39
- #ifdef Q_OS_MAC
40
--#define PROG_APPCAST_URL "http://psi-im.org/appcast/psi-mac.xml"
41
-+#define PROG_APPCAST_URL "http://psi-dev.googlecode.com/files/psi-plus-mac.xml"
42
- #else
43
- #define PROG_APPCAST_URL ""
44
- #endif
45
---- psi.orig/src/mainwin.cpp
46
-+++ psi/src/mainwin.cpp
47
-@@ -89,6 +89,11 @@
48
- #include <x11windowsystem.h>
49
- #endif
50
-
51
-+#include "AutoUpdater/AutoUpdater.h"
52
-+#ifdef HAVE_SPARKLE
53
-+#include "AutoUpdater/SparkleAutoUpdater.h"
54
-+#endif
55
-+
56
- using namespace XMPP;
57
-
58
- static const QString showStatusMessagesOptionPath = "options.ui.contactlist.status-messages.show";
59
-@@ -536,6 +541,9 @@ MainWin::MainWin(bool _onTop, bool _asTo
60
-   d->getAction("help_online_home")->addTo (helpMenu);
61
-   d->getAction("help_online_forum")->addTo (helpMenu);
62
-   d->getAction("help_psi_muc")->addTo (helpMenu);
63
-+#ifdef HAVE_SPARKLE
64
-+  d->getAction("help_update")->addTo (helpMenu);
65
-+#endif
66
-   d->getAction("help_report_bug")->addTo (helpMenu);
67
-   QMenu* diagMenu = new QMenu(tr("Diagnostics"), this);
68
-   helpMenu->addMenu(diagMenu);
69
-@@ -718,6 +724,9 @@ void MainWin::registerAction( IconAction
70
-       { "help_online_home", activated, this, SLOT( actOnlineHomeActivated() ) },
71
-       { "help_online_forum", activated, this, SLOT( actOnlineForumActivated() ) },
72
-       { "help_psi_muc",     activated, this, SLOT( actJoinPsiMUCActivated() ) },
73
-+#ifdef HAVE_SPARKLE
74
-+      { "help_update",     activated, this, SLOT( actCheckUpdateActivated() ) },
75
-+#endif
76
-       { "help_report_bug",  activated, this, SLOT( actBugReportActivated() ) },
77
-       { "help_about",       activated, this, SLOT( actAboutActivated() ) },
78
-       { "help_about_qt",    activated, this, SLOT( actAboutQtActivated() ) },
79
-@@ -972,6 +979,9 @@ void MainWin::buildOptionsMenu()
80
-           << "help_report_bug"
81
-           << "diagnostics"
82
-           << "separator"
83
-+#ifdef HAVE_SPARKLE
84
-+          << "help_update"
85
-+#endif
86
-           << "help_about"
87
-           << "help_about_qt";
88
-
89
-@@ -1097,6 +1105,16 @@ void MainWin::actAboutQtActivated ()
90
-   QMessageBox::aboutQt(this);
91
- }
92
-
93
-+void MainWin::actCheckUpdateActivated()
94
-+{
95
-+#ifdef HAVE_SPARKLE
96
-+  AutoUpdater* autoUpdater;
97
-+  autoUpdater = new SparkleAutoUpdater(ApplicationInfo::getAppCastURL());
98
-+  autoUpdater->checkForUpdates();
99
-+  delete autoUpdater;
100
-+#endif
101
-+}
102
-+
103
- void MainWin::actAboutPsiMediaActivated ()
104
- {
105
-   QString creditText = PsiMedia::creditText();
106
---- psi.orig/src/mainwin.h
107
-+++ psi/src/mainwin.h
108
-@@ -133,6 +133,7 @@ private slots:
109
-   void actOnlineHomeActivated ();
110
-   void actOnlineForumActivated ();
111
-   void actJoinPsiMUCActivated();
112
-+  void actCheckUpdateActivated();
113
-   void actBugReportActivated ();
114
-   void actAboutActivated ();
115
-   void actAboutQtActivated ();
116
---- psi.orig/src/psiactionlist.cpp
117
-+++ psi/src/psiactionlist.cpp
118
-@@ -387,6 +387,9 @@ void PsiActionList::Private::createMainW
119
-       IconAction *actPsiMUC = new IconAction (tr("Join Psi Discussion Room (Online)"), tr("&Join Psi Discussion Room (Online)"), 0, this);
120
-       actOnlineHome->setWhatsThis (tr("Join Psi Discussion Room (Online)"));
121
-
122
-+      IconAction *actCheckUpdate = new IconAction (tr("Check for Updates..."), tr("&Check for Updates..."), 0, this);
123
-+      actCheckUpdate->setWhatsThis (tr("Check for Updates..."));
124
-+
125
-       IconAction *actBugReport = new IconAction (tr("Report a Bug (Online)"), tr("Report a &Bug (Online)"), 0, this);
126
-       actBugReport->setWhatsThis (tr("Report a Bug (Online)"));
127
-
128
-@@ -415,6 +418,7 @@ void PsiActionList::Private::createMainW
129
-           { "help_report_bug",       actBugReport       },
130
-           { "help_about",            actAbout           },
131
-           { "help_about_qt",         actAboutQt         },
132
-+          { "help_update",           actCheckUpdate     },
133
-           { "help_about_psimedia",   actAboutPsiMedia   },
134
-           { "help_diag_qcaplugin",   actDiagQCAPlugin   },
135
-           { "help_diag_qcakeystore", actDiagQCAKeyStore },
136
psi-plus-main-20160309.tar.xz/patches/mac/3040-psi-chat-theme-mac_native.diff Deleted
146
 
1
@@ -1,144 +0,0 @@
2
---- /dev/null
3
-+++ psi/themes/chatview/adium/native_mac/Contents/Info.plist
4
-@@ -0,0 +1,36 @@
5
-+<?xml version="1.0" encoding="UTF-8"?>
6
-+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
7
-+<plist version="1.0">
8
-+<dict>
9
-+  <key>AllowTextColors</key>
10
-+  <false/>
11
-+  <key>CFBundleDevelopmentRegion</key>
12
-+  <string>English</string>
13
-+  <key>CFBundleGetInfoString</key>
14
-+  <string>Native Mac Message Style</string>
15
-+  <key>CFBundleIdentifier</key>
16
-+  <string>nativemac.style</string>
17
-+  <key>CFBundleInfoDictionaryVersion</key>
18
-+  <string>1.2</string>
19
-+  <key>CFBundleName</key>
20
-+  <string>Native Mac</string>
21
-+  <key>CFBundlePackageType</key>
22
-+  <string>AdIM</string>
23
-+  <key>DefaultBackgroundColor</key>
24
-+  <string>ffffff</string>
25
-+  <key>DefaultFontFamily</key>
26
-+  <string>Helvetica</string>
27
-+  <key>DefaultFontSize</key>
28
-+  <integer>9</integer>
29
-+  <key>MessageViewVersion</key>
30
-+  <real>1.1</real>
31
-+  <key>DisableCustomBackground</key>
32
-+  <true/>
33
-+  <key>DefaultVariant</key>
34
-+  <string>Normal</string>
35
-+  <key>DisableCombineConsecutive</key>
36
-+  <true/>
37
-+  <key>ShowsUserIcons</key>
38
-+  <true/>
39
-+</dict>
40
-+</plist>
41
---- /dev/null
42
-+++ psi/themes/chatview/adium/native_mac/Contents/Resources/Main.css
43
-@@ -0,0 +1,53 @@
44
-+body {
45
-+  background-color: #fff;
46
-+  margin: 0;
47
-+  padding: 0;
48
-+  font-family: 'helvetica neue', helvetica, arial, sans-serif;
49
-+  font-size: 14px;
50
-+  text-align: left;
51
-+}
52
-+
53
-+/* Heading */
54
-+div.heading {
55
-+  position: fixed;
56
-+  top: 0;
57
-+  right: 0;
58
-+  padding: 1.25em 0;
59
-+  width: 100%;
60
-+  z-index: 999;
61
-+  color: #fff;
62
-+  border-bottom: 1px solid #666;
63
-+  background: #777;
64
-+  text-shadow: #333 0.1em 0.1em 0.1em
65
-+}
66
-+div.heading .icon { position: absolute; top: 1px; left: 1px; border: 1px solid #333; background: #fff; }
67
-+div.heading img.icon { height: 66px; width: 66px; }
68
-+div.heading .with, div.heading .timestamp {
69
-+  font-weight: bold;
70
-+  font-family: 'myriadd pro', 'myriad', 'lucida grande', 'trebuchet ms', arial, sans-serif;
71
-+  position: relative;
72
-+  left: 4.5em;
73
-+}
74
-+div.heading .with { font-size: 20px; }
75
-+div.heading .timestamp { font-size: 13px; margin: 0 0 0 2.5em; }
76
-+
77
-+/* Main message style */
78
-+dl, dt, dd { margin: 0; display: hidden; }
79
-+dl { border-top: 1px solid #ccc; padding: .7em .8em; }
80
-+dt, dd { display: inline; }
81
-+dt.nickname, dd.timestamp { font-weight: bold; }
82
-+dt.nickname { color: #333; background: none; }
83
-+dd.msg { color: #555; font-family: helvetica, arial, sans-serif; }
84
-+dd.timestamp { float: right; color: #555 }
85
-+dl.item.notice { font-style: italic; text-align: center; }
86
-+dl.item.mine { background: #f5f5f5; }
87
-+
88
-+
89
-+/* Links */
90
-+a:link { color: #c9a874; text-decoration: none; outline: 0 none; }
91
-+a:hover { color: #c6903a; border-bottom: 1px dotted #c6903a; }
92
-+
93
-+@media screen {
94
-+  a:visited, .visited { padding: 4px 0px 0 20px; background-color: transparent; background-repeat: no-repeat; background-position: 0px center; }
95
-+  a:visited, .visited { background-image: url('../img/tick.png'); }
96
-+}
97
-\ No newline at end of file
98
---- /dev/null
99
-+++ psi/themes/chatview/adium/native_mac/Contents/Resources/Status.html
100
-@@ -0,0 +1,5 @@
101
-+<dl class="item notice">
102
-+  <dd class="timestamp">%time%</dd>
103
-+  <dd class="msg">%message%</dd>
104
-+</dl>
105
-+<div id="insert"></div>
106
-\ No newline at end of file
107
---- /dev/null
108
-+++ psi/themes/chatview/adium/native_mac/Contents/Resources/Incoming/Content.html
109
-@@ -0,0 +1,6 @@
110
-+<dl class="item">
111
-+  <dd class="timestamp">%time%</dd>
112
-+  <dt class="nickname">%sender% &nbsp;&raquo;</dt>
113
-+  <dd class="msg">&nbsp;%message%</dd>
114
-+</dl>
115
-+<div id="insert"></div>
116
-\ No newline at end of file
117
---- /dev/null
118
-+++ psi/themes/chatview/adium/native_mac/Contents/Resources/Incoming/Context.html
119
-@@ -0,0 +1,6 @@
120
-+<dl class="item">
121
-+  <dd class="timestamp">%time%</dd>
122
-+  <dt class="nickname">%sender% &nbsp;&raquo;</dt>
123
-+  <dd class="msg">&nbsp;%message%</dd>
124
-+</dl>
125
-+<div id="insert"></div>
126
---- /dev/null
127
-+++ psi/themes/chatview/adium/native_mac/Contents/Resources/Outgoing/Content.html
128
-@@ -0,0 +1,6 @@
129
-+<dl class="item mine">
130
-+  <dd class="timestamp">%time%</dd>
131
-+  <dt class="nickname">%sender% &nbsp;&raquo;</dt>
132
-+  <dd class="msg">&nbsp;%message%</dd>
133
-+</dl>
134
-+<div id="insert"></div>
135
-\ No newline at end of file
136
---- /dev/null
137
-+++ psi/themes/chatview/adium/native_mac/Contents/Resources/Outgoing/Context.html
138
-@@ -0,0 +1,6 @@
139
-+<dl class="item mine">
140
-+  <dd class="timestamp">%time%</dd>
141
-+  <dt class="nickname">%sender% &nbsp;&raquo;</dt>
142
-+  <dd class="msg">&nbsp;%message%</dd>
143
-+</dl>
144
-+<div id="insert"></div>
145
-\ No newline at end of file
146
psi-plus-main-20160309.tar.xz/patches/mac/fix-cocoa-tray-click.diff Deleted
184
 
1
@@ -1,182 +0,0 @@
2
-diff -urpN git.orig/src/CocoaUtilities/CocoaTrayClick.cpp git/src/CocoaUtilities/CocoaTrayClick.cpp
3
---- git.orig/src/CocoaUtilities/CocoaTrayClick.cpp 1970-01-01 03:00:00.000000000 +0300
4
-+++ git/src/CocoaUtilities/CocoaTrayClick.cpp  2015-05-04 11:30:57.000000000 +0400
5
-@@ -0,0 +1,91 @@
6
-+/*
7
-+ * CocoaTrayClick
8
-+ * Copyright (C) 2012, 2015  Khryukin Evgeny
9
-+ *
10
-+ * This program is free software; you can redistribute it and/or
11
-+ * modify it under the terms of the GNU General Public License
12
-+ * as published by the Free Software Foundation; either version 2
13
-+ * of the License, or (at your option) any later version.
14
-+ *
15
-+ * This program is distributed in the hope that it will be useful,
16
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
-+ * GNU General Public License for more details.
19
-+ *
20
-+ * You should have received a copy of the GNU General Public License
21
-+ * along with this library; if not, write to the Free Software
22
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23
-+ *
24
-+ */
25
-+
26
-+#include "CocoaTrayClick.h"
27
-+#include <objc/runtime.h>
28
-+#include <objc/message.h>
29
-+#include <QApplication>
30
-+
31
-+#ifdef DEBUG_OUTPUT
32
-+#include <QDebug>
33
-+#endif
34
-+
35
-+bool dockClickHandler(id /*self*/, SEL /*_cmd*/, ...)
36
-+{
37
-+  CocoaTrayClick::instance()->emitTrayClicked();
38
-+  return true;
39
-+}
40
-+
41
-+
42
-+CocoaTrayClick * CocoaTrayClick::instance()
43
-+{
44
-+  if(!instance_)
45
-+      instance_ = new CocoaTrayClick();
46
-+
47
-+  return instance_;
48
-+}
49
-+
50
-+CocoaTrayClick::CocoaTrayClick()
51
-+  : QObject(qApp)
52
-+{
53
-+  Class cls = objc_getClass("NSApplication");
54
-+  objc_object *appInst = objc_msgSend((objc_object*)cls, sel_registerName("sharedApplication"));
55
-+
56
-+  if(appInst != NULL) {
57
-+      objc_object* delegate = objc_msgSend(appInst, sel_registerName("delegate"));
58
-+      Class delClass = (Class)objc_msgSend(delegate,  sel_registerName("class"));
59
-+      SEL shouldHandle = sel_registerName("applicationShouldHandleReopen:hasVisibleWindows:");
60
-+      if (class_getInstanceMethod(delClass, shouldHandle)) {
61
-+          if (class_replaceMethod(delClass, shouldHandle, (IMP)dockClickHandler, "B@:")) {
62
-+#ifdef DEBUG_OUTPUT
63
-+              qDebug() << "Registered dock click handler (replaced original method)";
64
-+#endif
65
-+          }
66
-+          else {
67
-+#ifdef DEBUG_OUTPUT
68
-+              qDebug() << "Failed to replace method for dock click handler";
69
-+#endif
70
-+          }
71
-+      }
72
-+      else {
73
-+          if (class_addMethod(delClass, shouldHandle, (IMP)dockClickHandler,"B@:")) {
74
-+#ifdef DEBUG_OUTPUT
75
-+              qDebug() << "Registered dock click handler";
76
-+#endif
77
-+          }
78
-+          else {
79
-+#ifdef DEBUG_OUTPUT
80
-+              qDebug() << "Failed to register dock click handler";
81
-+#endif
82
-+          }
83
-+      }
84
-+  }
85
-+}
86
-+
87
-+CocoaTrayClick::~CocoaTrayClick()
88
-+{
89
-+}
90
-+
91
-+void CocoaTrayClick::emitTrayClicked()
92
-+{
93
-+  emit trayClicked();
94
-+}
95
-+
96
-+CocoaTrayClick* CocoaTrayClick::instance_ = NULL;
97
-diff -urpN git.orig/src/CocoaUtilities/CocoaTrayClick.mm git/src/CocoaUtilities/CocoaTrayClick.mm
98
---- git.orig/src/CocoaUtilities/CocoaTrayClick.mm  2014-07-29 14:24:36.000000000 +0400
99
-+++ git/src/CocoaUtilities/CocoaTrayClick.mm   1970-01-01 03:00:00.000000000 +0300
100
-@@ -1,60 +0,0 @@
101
--/*
102
-- * CocoaTrayClick
103
-- * Copyright (C) 2012  Khryukin Evgeny
104
-- *
105
-- * This program is free software; you can redistribute it and/or
106
-- * modify it under the terms of the GNU General Public License
107
-- * as published by the Free Software Foundation; either version 2
108
-- * of the License, or (at your option) any later version.
109
-- *
110
-- * This program is distributed in the hope that it will be useful,
111
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
112
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
113
-- * GNU General Public License for more details.
114
-- *
115
-- * You should have received a copy of the GNU General Public License
116
-- * along with this library; if not, write to the Free Software
117
-- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
118
-- *
119
-- */
120
--
121
--#include "CocoaUtilities/CocoaTrayClick.h"
122
--#include <objc/runtime.h>
123
--#include <QApplication>
124
--#include <QDebug>
125
--#ifdef HAVE_QT5
126
--#include <AppKit/NSApplication.h>
127
--#endif
128
--
129
--void dockClickHandler(id /*self*/, SEL /*_cmd*/)
130
--{
131
--  CocoaTrayClick::instance()->emitTrayClicked();
132
--}
133
--
134
--
135
--CocoaTrayClick * CocoaTrayClick::instance()
136
--{
137
--  if(!instance_)
138
--      instance_ = new CocoaTrayClick();
139
--
140
--  return instance_;
141
--}
142
--
143
--CocoaTrayClick::CocoaTrayClick()
144
--  : QObject(qApp)
145
--{
146
--  Class cls = [[[NSApplication sharedApplication] delegate] class];
147
--  if (!class_addMethod(cls, @selector(applicationShouldHandleReopen:hasVisibleWindows:), (IMP) dockClickHandler, "v@:"))
148
--      qDebug() << "CocoaTrayClick::Private : class_addMethod failed!";
149
--}
150
--
151
--CocoaTrayClick::~CocoaTrayClick()
152
--{
153
--}
154
--
155
--void CocoaTrayClick::emitTrayClicked()
156
--{
157
--  emit trayClicked();
158
--}
159
--
160
--CocoaTrayClick* CocoaTrayClick::instance_ = NULL;
161
-diff -urpN git.orig/src/CocoaUtilities/CocoaUtilities.pri git/src/CocoaUtilities/CocoaUtilities.pri
162
---- git.orig/src/CocoaUtilities/CocoaUtilities.pri 2014-07-29 14:24:36.000000000 +0400
163
-+++ git/src/CocoaUtilities/CocoaUtilities.pri  2015-05-04 12:48:32.000000000 +0400
164
-@@ -8,5 +8,6 @@ HEADERS += \
165
- 
166
- OBJECTIVE_SOURCES += \
167
-   $$PWD/CocoaInitializer.mm \
168
--  $$PWD/cocoacommon.mm \
169
--  $$PWD/CocoaTrayClick.mm
170
-+  $$PWD/cocoacommon.mm
171
-+
172
-+SOURCES += $$PWD/CocoaTrayClick.cpp
173
-diff -urpN git.orig/src/src.pri git/src/src.pri
174
---- git.orig/src/src.pri   2015-05-04 12:46:00.000000000 +0400
175
-+++ git/src/src.pri    2015-05-04 12:57:43.000000000 +0400
176
-@@ -632,6 +632,7 @@ else {
177
- 
178
- mac {
179
-   QMAKE_LFLAGS += -framework Carbon -framework IOKit -framework AppKit
180
-+  QMAKE_LFLAGS += -framework CoreFoundation -lobjc #for cocoatrayclick
181
- }
182
- 
183
- INCLUDEPATH += $$PWD
184
psi-plus-main-20160309.tar.xz/patches/psimedia Deleted
2
 
1
-(directory)
2
psi-plus-main-20160309.tar.xz/patches/psimedia/0010-psimedia-varrate-asterisk.diff Deleted
133
 
1
@@ -1,131 +0,0 @@
2
-diff -ru psimedia-1.0.3/gstprovider/modes.cpp psimedia-1.0.3-hacked/gstprovider/modes.cpp
3
---- psimedia-1.0.3/gstprovider/modes.cpp   2009-03-04 22:26:59.000000000 +0100
4
-+++ psimedia-1.0.3-hacked/gstprovider/modes.cpp    2010-03-05 00:42:20.000000000 +0100
5
-@@ -67,7 +67,7 @@
6
-       p.sampleSize = 16;
7
-       p.channels = 1;
8
-       list += p;
9
--  }
10
-+  }*/
11
-   {
12
-       PAudioParams p;
13
-       p.codec = "speex";
14
-@@ -75,7 +75,7 @@
15
-       p.sampleSize = 16;
16
-       p.channels = 1;
17
-       list += p;
18
--  }*/
19
-+  }
20
-   {
21
-       PAudioParams p;
22
-       p.codec = "speex";
23
-diff -ru psimedia-1.0.3/gstprovider/rtpworker.cpp psimedia-1.0.3-hacked/gstprovider/rtpworker.cpp
24
---- psimedia-1.0.3/gstprovider/rtpworker.cpp   2009-05-17 20:32:59.000000000 +0200
25
-+++ psimedia-1.0.3-hacked/gstprovider/rtpworker.cpp    2010-03-05 00:50:59.000000000 +0100
26
-@@ -969,6 +969,11 @@
27
-
28
- bool RtpWorker::startSend()
29
- {
30
-+  return startSend(16000);
31
-+}
32
-+
33
-+bool RtpWorker::startSend(int rate)
34
-+{
35
-   // file source
36
-   if(!infile.isEmpty() || !indata.isEmpty())
37
-   {
38
-@@ -1055,7 +1060,7 @@
39
-
40
-   if(audiosrc)
41
-   {
42
--      if(!addAudioChain())
43
-+      if(!addAudioChain(rate))
44
-       {
45
-           delete pd_audiosrc;
46
-           pd_audiosrc = 0;
47
-@@ -1192,15 +1197,22 @@
48
-
49
-   // TODO: support more than speex
50
-   int speex_at = -1;
51
-+  int samplerate = -1;
52
-   for(int n = 0; n < remoteAudioPayloadInfo.count(); ++n)
53
-   {
54
-       const PPayloadInfo &ri = remoteAudioPayloadInfo[n];
55
--      if(ri.name.toUpper() == "SPEEX" && ri.clockrate == 16000)
56
-+      if(ri.name.toUpper() == "SPEEX")
57
-       {
58
--          speex_at = n;
59
--          break;
60
-+          if (ri.clockrate > samplerate) {
61
-+            speex_at = n;
62
-+            samplerate = ri.clockrate;
63
-+          }
64
-       }
65
-   }
66
-+  if (samplerate != 16000) {
67
-+    cleanup();
68
-+    startSend(samplerate);
69
-+  }
70
-
71
-   // TODO: support more than theora
72
-   int theora_at = -1;
73
-@@ -1460,9 +1472,13 @@
74
-
75
- bool RtpWorker::addAudioChain()
76
- {
77
-+  return addAudioChain(16000);
78
-+}
79
-+
80
-+bool RtpWorker::addAudioChain(int rate)
81
-+{
82
-   // TODO: support other codecs.  for now, we only support speex 16khz
83
-   QString codec = "speex";
84
--  int rate = 16000;
85
-   int size = 16;
86
-   int channels = 1;
87
-   //QString codec = localAudioParams[0].codec;
88
-@@ -1478,7 +1494,7 @@
89
-   for(int n = 0; n < remoteAudioPayloadInfo.count(); ++n)
90
-   {
91
-       const PPayloadInfo &ri = remoteAudioPayloadInfo[n];
92
--      if(ri.name.toUpper() == "SPEEX" && ri.clockrate == 16000)
93
-+      if(ri.name.toUpper() == "SPEEX" && ri.clockrate == rate)
94
-       {
95
-           pt = ri.id;
96
-           break;
97
-@@ -1683,7 +1699,20 @@
98
-
99
-       gst_caps_unref(caps);
100
-
101
--      localAudioPayloadInfo = QList<PPayloadInfo>() << pi;
102
-+      PPayloadInfo speexnb;
103
-+      speexnb.id = 97;
104
-+      speexnb.name = "SPEEX";
105
-+      speexnb.clockrate = 8000;
106
-+      speexnb.channels = 1;
107
-+      speexnb.ptime = pi.ptime;
108
-+      speexnb.maxptime = pi.maxptime;
109
-+
110
-+      QList<PPayloadInfo> ppil;
111
-+      ppil << pi;
112
-+      ppil << speexnb;
113
-+
114
-+
115
-+      localAudioPayloadInfo = ppil;
116
-       canTransmitAudio = true;
117
-   }
118
-
119
-diff -ru psimedia-1.0.3/gstprovider/rtpworker.h psimedia-1.0.3-hacked/gstprovider/rtpworker.h
120
---- psimedia-1.0.3/gstprovider/rtpworker.h 2009-03-13 20:46:42.000000000 +0100
121
-+++ psimedia-1.0.3-hacked/gstprovider/rtpworker.h  2010-03-05 00:50:37.000000000 +0100
122
-@@ -177,8 +177,10 @@
123
-
124
-   bool setupSendRecv();
125
-   bool startSend();
126
-+  bool startSend(int rate);
127
-   bool startRecv();
128
-   bool addAudioChain();
129
-+  bool addAudioChain(int rate);
130
-   bool addVideoChain();
131
-   bool getCaps();
132
-   bool updateTheoraConfig();
133
psi-plus-main-20160309.tar.xz/patches/psimedia/0020-psimedia-win32-compilation-paths.diff Deleted
62
 
1
@@ -1,60 +0,0 @@
2
-Index: psimedia/gstprovider/gstconf.pri
3
-===================================================================
4
---- psimedia/gstprovider/gstconf.pri   (revision 783)
5
-+++ psimedia/gstprovider/gstconf.pri   (working copy)
6
-@@ -5,29 +5,37 @@
7
-
8
- windows {
9
-   INCLUDEPATH += \
10
--      c:/mingw/include/glib-2.0 \
11
--      c:/mingw/lib/glib-2.0/include \
12
--      c:/msys/1.0/home/gst/include \
13
--      c:/msys/1.0/home/gst/include/liboil-0.3 \
14
--      c:/msys/1.0/home/gst/include/gstreamer-0.10
15
-+      c:/glib/include/glib-2.0 \
16
-+      c:/glib/lib/glib-2.0/include \
17
-+      c:/gstforwin/dxsdk/include \
18
-+      c:/gstforwin/winsdk/include \
19
-+      c:/gstforwin/include \
20
-+      c:/gstforwin/include/liboil-0.3 \
21
-+      c:/gstforwin/include/libxml2 \
22
-+      c:/gstforwin/gstreamer/include/gstreamer-0.10 \
23
-+      c:/gstforwin/gst-plugins-base/include/gstreamer-0.10
24
-   LIBS += \
25
--      -Lc:/msys/1.0/home/gst/lib \
26
--      -lgstreamer-0.10.dll \
27
--      -lgthread-2.0 \
28
--      -lglib-2.0 \
29
--      -lgobject-2.0 \
30
--      -lgstvideo-0.10.dll \
31
--      -lgstbase-0.10.dll \
32
--      -lgstinterfaces-0.10.dll
33
-+      -Lc:/glib/bin \
34
-+      -Lc:/gstforwin/bin \
35
-+      -Lc:/gstforwin/gstreamer/bin \
36
-+      -Lc:/gstforwin/gst-plugins-base/bin \
37
-+      -lgstreamer-0.10-0 \
38
-+      -lgthread-2.0-0 \
39
-+      -lglib-2.0-0 \
40
-+      -lgobject-2.0-0 \
41
-+      -lgstvideo-0.10-0 \
42
-+      -lgstbase-0.10-0 \
43
-+      -lgstinterfaces-0.10-0
44
-
45
-   # qmake mingw seems to have broken prl support, so force these
46
-   win32-g++|contains($$list($$[QT_VERSION]), 4.0.*|4.1.*|4.2.*|4.3.*) {
47
-       LIBS *= \
48
--          -loil-0.3 \
49
--          -lgstaudio-0.10.dll \
50
--          -lgstrtp-0.10.dll \
51
--          -lgstnetbuffer-0.10.dll \
52
--          -lspeexdsp.dll \
53
-+          -Lc:/gstforwin/winsdk/lib \
54
-+          -loil-0.3-0 \
55
-+          -lgstaudio-0.10-0 \
56
-+          -lgstrtp-0.10-0 \
57
-+          -lgstnetbuffer-0.10-0 \
58
-+          -lspeexdsp-1 \
59
-           -lsetupapi \
60
-           -lksuser \
61
-           -lamstrmid \
62
psi-plus-main-20160309.tar.xz/patches/psimedia/0030-psimedia-uvcvideo-fix.diff Deleted
43
 
1
@@ -1,41 +0,0 @@
2
-Index: psimedia/gstprovider/pipeline.cpp
3
-===================================================================
4
---- psimedia/gstprovider/pipeline.cpp  (revision 791)
5
-+++ psimedia/gstprovider/pipeline.cpp  (working copy)
6
-@@ -156,20 +156,23 @@
7
-   GstElement *capsfilter = gst_element_factory_make("capsfilter", NULL);
8
-   GstCaps *caps = gst_caps_new_empty();
9
-
10
--  for(int n = 0; n < widths.count(); ++n)
11
--  {
12
--      GstStructure *cs;
13
--      cs = gst_structure_new("video/x-raw-yuv",
14
--          "width", GST_TYPE_INT_RANGE, 1, widths[n],
15
--          "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
16
--      gst_caps_append_structure(caps, cs);
17
-+//    for(int n = 0; n < widths.count(); ++n)
18
-+//    {
19
-+//        GstStructure *cs;
20
-+//        cs = gst_structure_new("video/x-raw-yuv",
21
-+//            "width", GST_TYPE_INT_RANGE, 1, widths[n],
22
-+//            "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
23
-+//        gst_caps_append_structure(caps, cs);
24
-+//
25
-+//        cs = gst_structure_new("video/x-raw-rgb",
26
-+//            "width", GST_TYPE_INT_RANGE, 1, widths[n],
27
-+//            "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
28
-+//        gst_caps_append_structure(caps, cs);
29
-+//    }
30
-+        caps = gst_caps_from_string("video/x-raw-yuv , width=[320] , "
31
-+          "height=[240] , framerate=[30/1]");
32
-+        g_object_set(G_OBJECT(capsfilter), "caps", caps, NULL);
33
-
34
--      cs = gst_structure_new("video/x-raw-rgb",
35
--          "width", GST_TYPE_INT_RANGE, 1, widths[n],
36
--          "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
37
--      gst_caps_append_structure(caps, cs);
38
--  }
39
--
40
-   GstStructure *cs = gst_structure_new("image/jpeg", NULL);
41
-   gst_caps_append_structure(caps, cs);
42
-
43
psi-plus-main-20160309.tar.xz/patches/psimedia/0040-psimedia-2.6.38-compilation-fix.diff Deleted
102
 
1
@@ -1,100 +0,0 @@
2
-Index: psimedia/gstprovider/deviceenum/deviceenum_unix.cpp
3
-===================================================================
4
---- psimedia/gstprovider/deviceenum/deviceenum_unix.cpp    (revision 808)
5
-+++ psimedia/gstprovider/deviceenum/deviceenum_unix.cpp    (working copy)
6
-@@ -35,7 +35,7 @@
7
- # include <sys/stat.h>
8
- # include <dirent.h>
9
- # include <sys/ioctl.h>
10
--# include <linux/videodev.h>
11
-+# include <linux/videodev2.h>
12
- #endif
13
-
14
- namespace DeviceEnum {
15
-@@ -475,77 +475,6 @@
16
-   return out;
17
- }
18
-
19
--// v4l detection scheme adapted from PWLib (used by Ekiga/Gnomemeeting)
20
--static QList<Item> get_v4l_items()
21
--{
22
--#ifdef Q_OS_LINUX
23
--  QList<Item> out;
24
--
25
--  QList<V4LName> list = get_v4l_names("/sys/class/video4linux", true);
26
--  if(list.isEmpty())
27
--      list = get_v4l_names("/proc/video/dev", false);
28
--
29
--  // if we can't find anything, then do a raw scan for possibilities
30
--  if(list.isEmpty())
31
--  {
32
--      QStringList possible = scan_for_videodevs("/dev");
33
--      foreach(QString str, possible)
34
--      {
35
--          V4LName v;
36
--          v.dev = str;
37
--          list += v;
38
--      }
39
--  }
40
--
41
--  for(int n = 0; n < list.count(); ++n)
42
--  {
43
--      V4LName &v = list[n];
44
--
45
--      // if we already have a friendly name then we'll skip the confirm
46
--      //   in order to save resources.  the only real drawback here that
47
--      //   I can think of is if the device isn't a capture type.  but
48
--      //   what does it mean to have a V4L device that isn't capture??
49
--      if(v.friendlyName.isEmpty())
50
--      {
51
--          int fd = open(QFile::encodeName(v.dev).data(), O_RDONLY | O_NONBLOCK);
52
--          if(fd == -1)
53
--              continue;
54
--
55
--          // get video capabilities and close
56
--          struct video_capability caps;
57
--          memset(&caps, 0, sizeof(caps));
58
--          int ret = ioctl(fd, VIDIOCGCAP, &caps);
59
--          close(fd);
60
--          if(ret == -1)
61
--              continue;
62
--
63
--          if(!(caps.type & VID_TYPE_CAPTURE))
64
--              continue;
65
--
66
--          v.friendlyName = caps.name;
67
--      }
68
--
69
--      Item i;
70
--      i.type = Item::Video;
71
--      i.dir = Item::Input;
72
--      i.name = v.friendlyName;
73
--      i.driver = "v4l";
74
--      i.id = v.dev;
75
--
76
--      // HACK
77
--      if(v.friendlyName == "Labtec Webcam Notebook")
78
--          i.explicitCaptureSize = QSize(640, 480);
79
--
80
--      out += i;
81
--  }
82
--
83
--  return out;
84
--#else
85
--  // return empty list if non-linux
86
--  return QList<Item>();
87
--#endif
88
--}
89
--
90
- static QList<Item> get_v4l2_items()
91
- {
92
- #ifdef Q_OS_LINUX
93
-@@ -636,8 +565,6 @@
94
-   QList<Item> out;
95
-   if(driver.isEmpty() || driver == "v4l2")
96
-       out += get_v4l2_items();
97
--  if(driver.isEmpty() || driver == "v4l")
98
--      out += get_v4l_items();
99
-   return out;
100
- }
101
-
102
psi-plus-main-20160309.tar.xz/patches/psimedia/0050-psimedia-drop-v4lsrc-gst-plugin.diff Deleted
53
 
1
@@ -1,51 +0,0 @@
2
-https://bugs.gentoo.org/show_bug.cgi?id=361419#c5
3
-
4
---- psimedia/gstprovider/devices.cpp   2009-06-09 10:12:11.000000000 +0200
5
-+++ psimedia/gstprovider/devices.cpp   2011-04-02 11:47:21.898041830 +0200
6
-@@ -90,7 +90,6 @@
7
-       element_name == "alsasink" ||
8
-       element_name == "osssrc" ||
9
-       element_name == "osssink" ||
10
--      element_name == "v4lsrc" ||
11
-       element_name == "v4l2src" ||
12
-       element_name == "osxaudiosrc" ||
13
-       element_name == "osxaudiosink" ||
14
-@@ -224,11 +223,6 @@
15
-       if(type == PDevice::VideoIn)
16
-           element_name = "osxvideosrc";
17
-   }
18
--  else if(driver == "v4l")
19
--  {
20
--      if(type == PDevice::VideoIn)
21
--          element_name = "v4lsrc";
22
--  }
23
-   else if(driver == "v4l2")
24
-   {
25
-       if(type == PDevice::VideoIn)
26
-@@ -380,7 +374,7 @@
27
-           bool first = true;
28
-           foreach(const DeviceEnum::Item &i, list)
29
-           {
30
--              if(type == PDevice::VideoIn && (element_name == "v4lsrc" || element_name == "v4l2src"))
31
-+              if(type == PDevice::VideoIn && element_name == "v4l2src")
32
-               {
33
-                   if(!test_video(element_name, i.id))
34
-                       continue;
35
-@@ -444,7 +438,6 @@
36
-   else // PDevice::VideoIn
37
-   {
38
-       drivers
39
--      << "v4l"
40
-       << "v4l2"
41
-       << "osxvideo"
42
-       << "winks";
43
---- psimedia/gstprovider/gstthread.cpp 2009-05-17 19:55:27.000000000 +0200
44
-+++ psimedia/gstprovider/gstthread.cpp 2011-04-02 11:48:28.581514484 +0200
45
-@@ -235,7 +235,6 @@
46
- #elif defined(Q_OS_LINUX)
47
-           reqelem
48
-           << "alsasrc" << "alsasink"
49
--          << "v4lsrc"
50
-           << "v4l2src";
51
- #elif defined(Q_OS_UNIX)
52
-           reqelem
53
psi-plus-main-20160309.tar.xz/version.txt Deleted
4
 
1
@@ -1,1 +0,0 @@
2
-0.16.361
3
\ No newline at end of file
4
psi-plus-resources-1.tar.xz/iconsets/emoticons/Emojis.jisp Changed
psi-plus-resources-1.tar.xz/skins Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/default_skin.png Deleted
psi-plus-resources-1.tar.xz/skins/default_skin.skn Deleted
201
 
1
@@ -1,208 +0,0 @@
2
-<skin version="0.5" author="tux-den" name="Default skin">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#f0f0f0</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#5a5a5a</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#969696</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#ffffff</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#004bb4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#7e0000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#ff0000</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#910000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#00008a</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#336600</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">24</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">false</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">true</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString"></options.ui.chat.css>
38
-        <options.ui.look.contactlist.use-outlined-group-headings type="bool">false</options.ui.look.contactlist.use-outlined-group-headings>
39
-        <options.ui.look.contactlist.use-slim-group-headings type="bool">false</options.ui.look.contactlist.use-slim-group-headings>
40
-        <options.ui.contactlist.toolbars-state type=""></options.ui.contactlist.toolbars-state>
41
-        <options.ui.contactlist.toolbars.m0.actions type="QStringList">
42
-            <item>button_options</item>
43
-            <item>button_status</item>
44
-        </options.ui.contactlist.toolbars.m0.actions>
45
-        <options.ui.contactlist.toolbars.m0.dock.nl type="bool">true</options.ui.contactlist.toolbars.m0.dock.nl>
46
-        <options.ui.contactlist.toolbars.m0.dock.position type="int">3</options.ui.contactlist.toolbars.m0.dock.position>
47
-        <options.ui.contactlist.toolbars.m0.key type="QString">{3688b1b9-77a0-4c52-a45b-06721939e2b1}</options.ui.contactlist.toolbars.m0.key>
48
-        <options.ui.contactlist.toolbars.m0.locked type="bool">true</options.ui.contactlist.toolbars.m0.locked>
49
-        <options.ui.contactlist.toolbars.m0.name type="QString">Кнопки</options.ui.contactlist.toolbars.m0.name>
50
-        <options.ui.contactlist.toolbars.m0.visible type="bool">true</options.ui.contactlist.toolbars.m0.visible>
51
-        <options.ui.contactlist.toolbars.m1.actions type="QStringList">
52
-            <item>view_groups</item>
53
-            <item>menu_add_contact</item>
54
-            <item>menu_disco</item>
55
-            <item>menu_options</item>
56
-            <item>menu_play_sounds</item>
57
-            <item>menu_xml_console</item>
58
-        </options.ui.contactlist.toolbars.m1.actions>
59
-        <options.ui.contactlist.toolbars.m1.dock.nl type="bool">true</options.ui.contactlist.toolbars.m1.dock.nl>
60
-        <options.ui.contactlist.toolbars.m1.dock.position type="int">2</options.ui.contactlist.toolbars.m1.dock.position>
61
-        <options.ui.contactlist.toolbars.m1.key type="QString">{2c44307f-91b3-45ef-aee6-c1b6b910c6f9}</options.ui.contactlist.toolbars.m1.key>
62
-        <options.ui.contactlist.toolbars.m1.locked type="bool">true</options.ui.contactlist.toolbars.m1.locked>
63
-        <options.ui.contactlist.toolbars.m1.name type="QString">Показ контактов</options.ui.contactlist.toolbars.m1.name>
64
-        <options.ui.contactlist.toolbars.m1.visible type="bool">true</options.ui.contactlist.toolbars.m1.visible>
65
-        <options.ui.contactlist.toolbars.m2.actions type="QStringList">
66
-            <item>event_notifier</item>
67
-        </options.ui.contactlist.toolbars.m2.actions>
68
-        <options.ui.contactlist.toolbars.m2.dock.nl type="bool">true</options.ui.contactlist.toolbars.m2.dock.nl>
69
-        <options.ui.contactlist.toolbars.m2.dock.position type="int">3</options.ui.contactlist.toolbars.m2.dock.position>
70
-        <options.ui.contactlist.toolbars.m2.key type="QString">{d4154360-373b-40e4-b1b0-d789a20c098f}</options.ui.contactlist.toolbars.m2.key>
71
-        <options.ui.contactlist.toolbars.m2.locked type="bool">true</options.ui.contactlist.toolbars.m2.locked>
72
-        <options.ui.contactlist.toolbars.m2.name type="QString">Обработка событий</options.ui.contactlist.toolbars.m2.name>
73
-        <options.ui.contactlist.toolbars.m2.visible type="bool">true</options.ui.contactlist.toolbars.m2.visible>
74
-        <options.ui.contactlist.toolbars.m3.actions type=""></options.ui.contactlist.toolbars.m3.actions>
75
-        <options.ui.contactlist.toolbars.m3.dock.nl type=""></options.ui.contactlist.toolbars.m3.dock.nl>
76
-        <options.ui.contactlist.toolbars.m3.dock.position type=""></options.ui.contactlist.toolbars.m3.dock.position>
77
-        <options.ui.contactlist.toolbars.m3.key type=""></options.ui.contactlist.toolbars.m3.key>
78
-        <options.ui.contactlist.toolbars.m3.locked type=""></options.ui.contactlist.toolbars.m3.locked>
79
-        <options.ui.contactlist.toolbars.m3.name type=""></options.ui.contactlist.toolbars.m3.name>
80
-        <options.ui.contactlist.toolbars.m3.visible type=""></options.ui.contactlist.toolbars.m3.visible>
81
-        <options.ui.save.toolbars-state type="QByteArray">AAAA/wAAAAD9AAAAAAAAAJYAAAEfAAAABAAAAAQAAAAIAAAACPwAAAADAAAAAgAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewAyAGMANAA0ADMAMAA3AGYALQA5ADEAYgAzAC0ANAA1AGUAZgAtAGEAZQBlADYALQBjADEAYgA2AGIAOQAxADAAYwA2AGYAOQB9AQAAAAD/////AAAAAAAAAAAAAAADAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7ADMANgA4ADgAYgAxAGIAOQAtADcANwBhADAALQA0AGMANQAyAC0AYQA0ADUAYgAtADAANgA3ADIAMQA5ADMAOQBlADIAYgAxAH0BAAAAAP////8AAAAAAAAAAAAAAAMAAAABAAAAbABtAGEAaQBuAHcAaQBuAC0AdABvAG8AbABiAGEAcgAtAHsAZAA0ADEANQA0ADMANgAwAC0AMwA3ADMAYgAtADQAMABlADQALQBiADEAYgAwAC0AZAA3ADgAOQBhADIAMABjADAAOQA4AGYAfQEAAAAA/////wAAAAAAAAAA</options.ui.save.toolbars-state>
82
-        <options.ui.tabs.grouping type="QString">CM</options.ui.tabs.grouping>
83
-        <options.iconsets.activities type="QString">psiplus-activities-16.jisp</options.iconsets.activities>
84
-        <options.iconsets.clients type="QString">fingerprint.jisp</options.iconsets.clients>
85
-        <options.iconsets.custom-status type=""></options.iconsets.custom-status>
86
-        <options.iconsets.moods type="QString">silk.jisp</options.iconsets.moods>
87
-        <options.iconsets.status type="QString">default</options.iconsets.status>
88
-        <options.iconsets.system type="QString">default</options.iconsets.system>
89
-        <options.ui.chat.avatars.show type="bool">true</options.ui.chat.avatars.show>
90
-        <options.ui.chat.avatars.size type="int">32</options.ui.chat.avatars.size>
91
-        <options.ui.chat.central-toolbar type="bool">true</options.ui.chat.central-toolbar>
92
-        <options.ui.chat.disable-paste-send type="bool">false</options.ui.chat.disable-paste-send>
93
-        <options.ui.chat.use-expanding-line-edit type="bool">false</options.ui.chat.use-expanding-line-edit>
94
-        <options.ui.chat.use-message-icons type="bool">true</options.ui.chat.use-message-icons>
95
-        <options.ui.contactlist.css type="QString">/* frame of avatar - general settings */
96
-/* фрейм с аватаром - общие настройки */
97
-RosterAvatarFrame * {
98
-   margin: 1px;
99
-}
100
-
101
-/* frame of avatar - avatar */
102
-/* фрейм с аватаром - аватар */
103
-QLabel#lb_avatar {
104
-   margin-left: 0px;
105
-   margin-top: 2px;
106
-   margin-bottom: 2px;
107
-   border: 1px solid #949494;
108
-   border-radius: 3px;
109
-}
110
-
111
-/* frame of avatar - nick */
112
-/* фрейм с аватаром - ник */
113
-QLabel#lb_nick {
114
-   margin: 2px;
115
-   margin-right: 1px;
116
-   margin-bottom: 3px;
117
-   border: 1px solid #949494;
118
-   border-radius: 3px;
119
-}
120
-
121
-/* frame of avatar - buttons of PEP and status */
122
-/* фрейм с аватаром - кнопки PEP и статуса */
123
-QToolButton#tb_status, #tb_mood, #tb_activity {
124
-   margin-left: 1px;
125
-   margin-right: 1px;
126
-   margin-bottom: 2px;
127
-   width: 100%;
128
-}
129
-
130
-QToolButton#tb_status {
131
-   margin-top: 0px;
132
-   margin-bottom: 1px;
133
-}
134
-
135
-/* frame of avatar - button of status, arrow */
136
-/* фрейм с аватаром - кнопка статуса, стрелка */
137
-QToolButton#tb_status::menu-indicator {
138
-   background: argb(0,0,0,0);
139
-}
140
-
141
-/* frame of avatar - field of status message */
142
-/* фрейм с аватаром - строка статусного сообщения */
143
-QLineEdit#le_status_text {
144
-   margin-right: 0px;
145
-   margin-bottom: 2px;
146
-}</options.ui.contactlist.css>
147
-        <options.ui.contactlist.enable-groups type="bool">true</options.ui.contactlist.enable-groups>
148
-        <options.ui.contactlist.show.agent-contacts type="bool">true</options.ui.contactlist.show.agent-contacts>
149
-        <options.ui.contactlist.show.offline-contacts type="bool">true</options.ui.contactlist.show.offline-contacts>
150
-        <options.ui.contactlist.show-activity-icons type="bool">true</options.ui.contactlist.show-activity-icons>
151
-        <options.ui.contactlist.show-all-client-icons type="bool">false</options.ui.contactlist.show-all-client-icons>
152
-        <options.ui.contactlist.show-client-icons type="bool">true</options.ui.contactlist.show-client-icons>
153
-        <options.ui.contactlist.show-geolocation-icons type="bool">true</options.ui.contactlist.show-geolocation-icons>
154
-        <options.ui.contactlist.show-group-counts type="bool">true</options.ui.contactlist.show-group-counts>
155
-        <options.ui.contactlist.show-menubar type="bool">false</options.ui.contactlist.show-menubar>
156
-        <options.ui.contactlist.show-mood-icons type="bool">true</options.ui.contactlist.show-mood-icons>
157
-        <options.ui.contactlist.show-status-icons type="bool">true</options.ui.contactlist.show-status-icons>
158
-        <options.ui.contactlist.show-tune-icons type="bool">true</options.ui.contactlist.show-tune-icons>
159
-        <options.ui.contactlist.status-icon-over-avatar type="bool">false</options.ui.contactlist.status-icon-over-avatar>
160
-        <options.ui.contactlist.status-messages.show type="bool">false</options.ui.contactlist.status-messages.show>
161
-        <options.ui.contactlist.status-messages.single-line type="bool">true</options.ui.contactlist.status-messages.single-line>
162
-        <options.ui.contactlist.tooltip.avatar type="bool">true</options.ui.contactlist.tooltip.avatar>
163
-        <options.ui.contactlist.tooltip.client-version type="bool">true</options.ui.contactlist.tooltip.client-version>
164
-        <options.ui.contactlist.tooltip.css type="QString"></options.ui.contactlist.tooltip.css>
165
-        <options.ui.contactlist.tooltip.geolocation type="bool">true</options.ui.contactlist.tooltip.geolocation>
166
-        <options.ui.contactlist.tooltip.last-status type="bool">true</options.ui.contactlist.tooltip.last-status>
167
-        <options.ui.contactlist.tooltip.pgp type="bool">true</options.ui.contactlist.tooltip.pgp>
168
-        <options.ui.contactlist.use-status-change-animation type="bool">true</options.ui.contactlist.use-status-change-animation>
169
-        <options.ui.contactlist.use-transport-icons type="bool">true</options.ui.contactlist.use-transport-icons>
170
-        <options.ui.emoticons.use-emoticons type="bool">true</options.ui.emoticons.use-emoticons>
171
-        <options.ui.mac.use-brushed-metal-windows type=""></options.ui.mac.use-brushed-metal-windows>
172
-        <options.ui.muc.colored-history type="bool">true</options.ui.muc.colored-history>
173
-        <options.ui.save.splitter-state type="QByteArray"></options.ui.save.splitter-state>
174
-        <options.ui.save.tabs-geometry type=""></options.ui.save.tabs-geometry>
175
-        <options.ui.tabs.show-tab-buttons type="bool">true</options.ui.tabs.show-tab-buttons>
176
-        <options.ui.tabs.show-tab-close-buttons type="bool">true</options.ui.tabs.show-tab-close-buttons>
177
-        <options.ui.tabs.use-tabs type="bool">true</options.ui.tabs.use-tabs>
178
-        <options.ui.contactlist.show.self-contact type="bool">true</options.ui.contactlist.show.self-contact>
179
-        <options.ui.notifications.passive-popups.css type="QString"></options.ui.notifications.passive-popups.css>
180
-        <options.ui.contactlist.show-roster-avatar-frame type="bool">false</options.ui.contactlist.show-roster-avatar-frame>
181
-        <options.ui.tabs.show-tab-icons type="bool">true</options.ui.tabs.show-tab-icons>
182
-        <options.ui.muc.show-client-icons type="bool">true</options.ui.muc.show-client-icons>
183
-        <options.ui.contactlist.roster-at-left-when-all-in-one-window type="bool">false</options.ui.contactlist.roster-at-left-when-all-in-one-window>
184
-        <options.ui.tabs.put-tabs-at-bottom type="bool">false</options.ui.tabs.put-tabs-at-bottom>
185
-        <options.ui.look.colors.muc.nick-colors type="QStringList">
186
-            <item>Blue</item>
187
-            <item>Green</item>
188
-            <item>Orange</item>
189
-            <item>Purple</item>
190
-            <item>Red</item>
191
-        </options.ui.look.colors.muc.nick-colors>
192
-        <options.ui.disable-send-button type="bool">false</options.ui.disable-send-button>
193
-        <options.ui.muc.roster-nick-coloring type="bool">false</options.ui.muc.roster-nick-coloring>
194
-        <options.ui.contactlist.roster-avatar-frame.avatar.size type="int">52</options.ui.contactlist.roster-avatar-frame.avatar.size>
195
-        <options.ui.contactlist.roster-avatar-frame.avatar.margin type="int">0</options.ui.contactlist.roster-avatar-frame.avatar.margin>
196
-        <options.ui.chat.use-small-chats type="bool">false</options.ui.chat.use-small-chats>
197
-        <options.iconsets.affiliations type="QString">medals-affiliations.jisp</options.iconsets.affiliations>
198
-        <options.ui.chat.scaled-message-icons type="bool">false</options.ui.chat.scaled-message-icons>
199
-        <options.ui.chat.theme type="QString">psi/classic</options.ui.chat.theme>
200
-        <options.ui.message.show-character-count type="bool">true</options.ui.message.show-character-count>
201
psi-plus-resources-1.tar.xz/skins/mac Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/mac/brushed_metal Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/mac/brushed_metal/brush.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/brushed_metal/brushed_metal.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/brushed_metal/brushed_metal.skn Deleted
201
 
1
@@ -1,314 +0,0 @@
2
-<skin version="0.2.2" author="tux-den" name="Brushed Metal" path="/Applications/Psi+.app/Contents/Resources/skins/mac/brushed_metal">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#d1d1d1</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#444444</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#c9c9c9</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#444444</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#162bc0</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#d2000c</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#6c6c6c</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#ff000b</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#ff0000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#0000ff</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#008000</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#cfcfcf</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">31</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">QToolBar { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ebebeb, stop: 0.4 #e0e0e0, stop: 0.7 #d3d3d3, stop: 1.0 #c9c9c9); border: 1px solid #c8c8c8; border-bottom-color: #ececec; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; min-width: 5ex; padding: 2px; }
38
-
39
-QToolButton:pressed { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #a7a7a7, stop: 0.4 #a7a7a7, stop: 0.7 #a7a7a7, stop: 1.0 #a7a7a7); border: 2px solid #c8c8c8; border-bottom-color: #ececec; border-top-left-radius: 4px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-right-radius: 4px; min-width: 5ex; padding: 2px; }
40
-
41
-QLineEdit { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ebebeb, stop: 0.4 #e0e0e0, stop: 0.7 #d3d3d3, stop: 1.0 #c9c9c9); border: 3px solid #c8c8c8; border-bottom-color: #ececec; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; }
42
-
43
-QTabBar::tab:selected { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #eaf1fb, stop: 0.4 #b7d4f4, stop: 0.5 #7cb6e9, stop: 1.0 #c9f9ff); border: 1px solid #3c3396; border-bottom-color: #55697b; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; padding: 5px; }
44
-
45
-QFrame#log { background-color: #ffffff; border: 1px solid #c8c8c8; border-bottom-color: #ececec; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; min-width: 5ex; padding: 2px; }
46
-
47
-Q3ListView { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ebebeb, stop: 0.4 #ebebeb, stop: 0.7 #ebebeb, stop: 1.0 #ebebeb); border: 1px solid #c8c8c8; border-bottom-color: #ececec; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; min-width: 5ex; padding: 2px; }
48
-
49
-QLabel#lb_status { background: argb(0,0,0,0); border: -1px solid #ffffff; }
50
-
51
-QLabel#lb_client { background: argb(0,0,0,0); border: -1px solid #ffffff; }
52
-
53
-QLabel { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f5f5f5, stop: 0.4 #e0e0e0, stop: 0.7 #d3d3d3, stop: 1.0 #c9c9c9); border: 3px solid #c8c8c8; border-bottom-color: #ececec; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; padding: 1px; }
54
-
55
-QToolButton::menu-indicator { image: none; }
56
-
57
-QTextEdit { background-color: #f5f5f5; border: 3px solid #c8c8c8; border-bottom-color: #c8c8c8; border-top-left-radius: 5px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-right-radius: 5px; }</options.ui.chat.css>
58
-        <options.ui.look.contactlist.use-outlined-group-headings type="bool">true</options.ui.look.contactlist.use-outlined-group-headings>
59
-        <options.ui.look.contactlist.use-slim-group-headings type="bool">true</options.ui.look.contactlist.use-slim-group-headings>
60
-        <options.ui.look.font.chat type="QString">Lucida Grande,12,-1,5,50,0,0,0,0,0</options.ui.look.font.chat>
61
-        <options.ui.look.font.contactlist type="QString">Lucida Grande,11,-1,5,50,0,0,0,0,0</options.ui.look.font.contactlist>
62
-        <options.ui.look.font.message type="QString">Lucida Grande,12,-1,5,50,0,0,0,0,0</options.ui.look.font.message>
63
-        <options.ui.look.font.passive-popup type="QString">Lucida Grande,12,-1,5,50,0,0,0,0,0</options.ui.look.font.passive-popup>
64
-        <options.ui.contactlist.toolbars-state type="QByteArray">AAAA/wAAAAD9AAAAAAAAAOQAAAKsAAAABAAAAAQAAAAIAAAACPwAAAAEAAAAAgAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewBjADMAOABkADkAMwAwADcALQAxADMAZQBkAC0ANAA5AGUAMQAtAGIAZQA3ADMALQAwADIAYwA1AGIAMwA0AGUAZgAyAGQANgB9AQAAAAD/////AAAAAAAAAAAAAAACAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7ADEAMwAwAGIAMwA1ADYAYwAtAGYAZQA3ADUALQA0AGMANAA5AC0AOAA2AGQANQAtADcAYQBkADYAZgAzADUAMwA4AGQANAA2AH0BAAAAAP////8AAAAAAAAAAAAAAAMAAAABAAAAbABtAGEAaQBuAHcAaQBuAC0AdABvAG8AbABiAGEAcgAtAHsANgBkADIAMgBhADkANwBmAC0AMgA3ADYAZgAtADQAMABjADAALQA5AGQAYwAwAC0AMgAwAGIAMgA2ADkANgBmAGMAYwA5AGIAfQEAAAAA/////wAAAAAAAAAAAAAAAwAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewA2ADgAOAA5ADYAOAA5ADYALQAyAGQAMgAzAC0ANAAwAGYAMwAtADkANQBkADcALQA2AGYAZQBjAGQAYgAwADgANwAxADYAMgB9AAAAAAD/////AAAAAAAAAAA=</options.ui.contactlist.toolbars-state>
65
-        <options.ui.contactlist.toolbars.m0.actions type="QStringList">
66
-            <item>spacer</item>
67
-            <item>status_online</item>
68
-            <item>spacer</item>
69
-            <item>status_away</item>
70
-            <item>spacer</item>
71
-            <item>status_xa</item>
72
-            <item>spacer</item>
73
-            <item>status_dnd</item>
74
-            <item>spacer</item>
75
-            <item>status_offline</item>
76
-            <item>spacer</item>
77
-        </options.ui.contactlist.toolbars.m0.actions>
78
-        <options.ui.contactlist.toolbars.m0.dock.nl type="bool">true</options.ui.contactlist.toolbars.m0.dock.nl>
79
-        <options.ui.contactlist.toolbars.m0.dock.position type="int">2</options.ui.contactlist.toolbars.m0.dock.position>
80
-        <options.ui.contactlist.toolbars.m0.key type="QString">{c38d9307-13ed-49e1-be73-02c5b34ef2d6}</options.ui.contactlist.toolbars.m0.key>
81
-        <options.ui.contactlist.toolbars.m0.locked type="bool">true</options.ui.contactlist.toolbars.m0.locked>
82
-        <options.ui.contactlist.toolbars.m0.name type="QString">Status</options.ui.contactlist.toolbars.m0.name>
83
-        <options.ui.contactlist.toolbars.m0.visible type="bool">false</options.ui.contactlist.toolbars.m0.visible>
84
-        <options.ui.contactlist.toolbars.m1.actions type="QStringList">
85
-            <item>spacer</item>
86
-            <item>menu_add_contact</item>
87
-            <item>spacer</item>
88
-            <item>button_options</item>
89
-            <item>spacer</item>
90
-            <item>show_offline</item>
91
-            <item>spacer</item>
92
-        </options.ui.contactlist.toolbars.m1.actions>
93
-        <options.ui.contactlist.toolbars.m1.dock.nl type="bool">true</options.ui.contactlist.toolbars.m1.dock.nl>
94
-        <options.ui.contactlist.toolbars.m1.dock.position type="int">3</options.ui.contactlist.toolbars.m1.dock.position>
95
-        <options.ui.contactlist.toolbars.m1.key type="QString">{6d22a97f-276f-40c0-9dc0-20b2696fcc9b}</options.ui.contactlist.toolbars.m1.key>
96
-        <options.ui.contactlist.toolbars.m1.locked type="bool">true</options.ui.contactlist.toolbars.m1.locked>
97
-        <options.ui.contactlist.toolbars.m1.name type="QString">Кнопки</options.ui.contactlist.toolbars.m1.name>
98
-        <options.ui.contactlist.toolbars.m1.visible type="bool">true</options.ui.contactlist.toolbars.m1.visible>
99
-        <options.ui.contactlist.toolbars.m2.actions type="QStringList">
100
-            <item>spacer</item>
101
-            <item>show_offline</item>
102
-            <item>spacer</item>
103
-            <item>show_statusmsg</item>
104
-            <item>spacer</item>
105
-            <item>menu_join_groupchat</item>
106
-            <item>spacer</item>
107
-            <item>show_agents</item>
108
-            <item>spacer</item>
109
-            <item>enable_groups</item>
110
-            <item>spacer</item>
111
-        </options.ui.contactlist.toolbars.m2.actions>
112
-        <options.ui.contactlist.toolbars.m2.dock.nl type="bool">true</options.ui.contactlist.toolbars.m2.dock.nl>
113
-        <options.ui.contactlist.toolbars.m2.dock.position type="int">2</options.ui.contactlist.toolbars.m2.dock.position>
114
-        <options.ui.contactlist.toolbars.m2.key type="QString">{130b356c-fe75-4c49-86d5-7ad6f3538d46}</options.ui.contactlist.toolbars.m2.key>
115
-        <options.ui.contactlist.toolbars.m2.locked type="bool">true</options.ui.contactlist.toolbars.m2.locked>
116
-        <options.ui.contactlist.toolbars.m2.name type="QString">Показ контактов</options.ui.contactlist.toolbars.m2.name>
117
-        <options.ui.contactlist.toolbars.m2.visible type="bool">false</options.ui.contactlist.toolbars.m2.visible>
118
-        <options.ui.contactlist.toolbars.m3.actions type="QStringList">
119
-            <item>event_notifier</item>
120
-        </options.ui.contactlist.toolbars.m3.actions>
121
-        <options.ui.contactlist.toolbars.m3.dock.nl type="bool">true</options.ui.contactlist.toolbars.m3.dock.nl>
122
-        <options.ui.contactlist.toolbars.m3.dock.position type="int">3</options.ui.contactlist.toolbars.m3.dock.position>
123
-        <options.ui.contactlist.toolbars.m3.key type="QString">{68896896-2d23-40f3-95d7-6fecdb087162}</options.ui.contactlist.toolbars.m3.key>
124
-        <options.ui.contactlist.toolbars.m3.locked type="bool">true</options.ui.contactlist.toolbars.m3.locked>
125
-        <options.ui.contactlist.toolbars.m3.name type="QString">Обработка событий</options.ui.contactlist.toolbars.m3.name>
126
-        <options.ui.contactlist.toolbars.m3.visible type="bool">false</options.ui.contactlist.toolbars.m3.visible>
127
-        <options.ui.save.toolbars-state type="QByteArray">AAAA/wAAAAD9AAAAAAAAANEAAAKfAAAABAAAAAQAAAAIAAAACPwAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7AGMAMwA4AGQAOQAzADAANwAtADEAMwBlAGQALQA0ADkAZQAxAC0AYgBlADcAMwAtADAAMgBjADUAYgAzADQAZQBmADIAZAA2AH0AAAAAAP////8AAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewAxADMAMABiADMANQA2AGMALQBmAGUANwA1AC0ANABjADQAOQAtADgANgBkADUALQA3AGEAZAA2AGYAMwA1ADMAOABkADQANgB9AAAAAAD/////AAAAAAAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7ADYAZAAyADIAYQA5ADcAZgAtADIANwA2AGYALQA0ADAAYwAwAC0AOQBkAGMAMAAtADIAMABiADIANgA5ADYAZgBjAGMAOQBiAH0BAAAAAP////8AAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewA2ADgAOAA5ADYAOAA5ADYALQAyAGQAMgAzAC0ANAAwAGYAMwAtADkANQBkADcALQA2AGYAZQBjAGQAYgAwADgANwAxADYAMgB9AQAAAAD/////AAAAAAAAAAA=</options.ui.save.toolbars-state>
128
-        <options.ui.tabs.grouping type="QString">CM</options.ui.tabs.grouping>
129
-        <options.iconsets.activities type="QString">psiplus-activities.jisp</options.iconsets.activities>
130
-        <options.iconsets.clients type="QString">fingerprint.jisp</options.iconsets.clients>
131
-        <options.iconsets.custom-status type=""></options.iconsets.custom-status>
132
-        <options.iconsets.moods type="QString">silk.jisp</options.iconsets.moods>
133
-        <options.iconsets.status type="QString">oxygen.jisp</options.iconsets.status>
134
-        <options.iconsets.system type="QString">oxygen_sys.jisp</options.iconsets.system>
135
-        <options.ui.chat.avatars.show type="bool">true</options.ui.chat.avatars.show>
136
-        <options.ui.chat.avatars.size type="int">40</options.ui.chat.avatars.size>
137
-        <options.ui.chat.central-toolbar type="bool">true</options.ui.chat.central-toolbar>
138
-        <options.ui.chat.disable-paste-send type="bool">false</options.ui.chat.disable-paste-send>
139
-        <options.ui.chat.use-expanding-line-edit type="bool">true</options.ui.chat.use-expanding-line-edit>
140
-        <options.ui.chat.use-message-icons type="bool">true</options.ui.chat.use-message-icons>
141
-        <options.ui.contactlist.css type="QString">QMainWindow { 
142
-     background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/brushed_metal/brush.png) repeat-x #bebebe; }
143
-
144
-QToolButton {
145
-     background: qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #f4f4f3, stop: 0.3 #f1f1f1, stop: 0.5 #d1d0d0, stop: 0.7 #bbbaba, stop: 1.0 #9d9c9b);
146
-     border: 1px solid #4a4949;
147
-     border-bottom-color: #4a4949;
148
-     border-radius: 4px; 
149
-     width: 25px; 
150
-     height: 21px; 
151
-     margin-bottom: 3px;
152
-}
153
-
154
-QToolButton:pressed {
155
-     background: qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #a09f9e, stop: 0.3 #acabaa, stop: 0.5 #cfcece, stop: 0.7 #cfcece, stop: 1.0 #cfcece);
156
-     border: 1px solid #4a4949;
157
-     border-bottom-color: #4a4949;
158
-     border-radius: 4px; 
159
-     width: 25px; 
160
-     height: 21px; 
161
-}
162
-
163
-QToolButton:checked {
164
-     background: qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #a09f9e, stop: 0.3 #acabaa, stop: 0.5 #cfcece, stop: 0.7 #cfcece, stop: 1.0 #cfcece);
165
-     border: 1px solid #4a4949;
166
-     border-bottom-color: #4a4949;
167
-     border-radius: 4px; 
168
-     width: 25px; 
169
-     height: 21px; 
170
-}
171
-
172
-QLineEdit { 
173
-     background: qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #e6e6e6, stop: 0.1 #ffffff, stop: 0.5 #dededd, stop: 0.8 #fbfbfb, stop: 0.9 #ffffff, stop: 1.0 #e3e3e3); 
174
-border: 1px solid qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #5e5e5e,  stop: 1.0 #838383);
175
-     border-radius: 5px; 
176
-     border-top-left-radius: 0px; 
177
-     border-bottom-left-radius: 0px;
178
-     padding-left: 4px;
179
-     padding-right: 6px;
180
-     color: #2b2b2b;
181
-     margin-top: 4px; 
182
-     margin-left: -1px;
183
-     margin-bottom: 0px; 
184
-}
185
-
186
-PsiToolBar { 
187
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #bebebe, stop: 0.3 #b6b6b6, stop: 0.5 #a8a8a8, stop: 0.7 #9f9f9f, stop: 1.0 #969696); 
188
-      border: 1px solid argb(0,0,0,30);  
189
-      border-bottom-left-radius: 5px; 
190
-      border-bottom-right-radius: 5px; 
191
-      border-top: 0px; 
192
-}
193
-
194
-PsiContactListView { 
195
-     margin-top: 2px; 
196
-     border: 1px solid #656565; 
197
-     border-left: 0px; 
198
-     border-right: 0px; 
199
-}
200
-
201
psi-plus-resources-1.tar.xz/skins/mac/brushed_metal/inf.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/mac/native_mac/NativeMac_tb.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/NativeMac_tb.skn Deleted
201
 
1
@@ -1,1193 +0,0 @@
2
-<skin version="0.1" path="/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac" author="tux-den" name="Native Mac (Bottom tabs)">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#cacfd4</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#272727</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#f3f3f3</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#464646</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#004bb4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#7e0000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#ff0000</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#910000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#00008a</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#336600</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">30</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">
38
-/* ---------- TabDlg --------- */
39
-TabDlg {
40
-   background: argb(0,0,0,0);
41
-   border: none;
42
-}
43
-/* End TabDlg--------- */
44
-
45
-
46
-
47
-
48
-
49
-/* ---------- HeaderFrame --------- */
50
-/* ------------------------ QFrame#headerFrame */
51
-QFrame#headerFrame {
52
-   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d0d0d0, stop: 0.5 #cacaca, stop: 1.0 #c2c2c2) url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/logo_active.png) no-repeat center center;
53
-   border-top: 2px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d0d0d0, stop: 0.5 #d0d0d0, stop: 0.6 #e3e3e3, stop: 1.0 #e3e3e3);
54
-   border-left: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
55
-   border-right: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
56
-   border-radius: 5px;
57
-   border-bottom-left-radius: 0px;
58
-   border-bottom-right-radius: 0px;
59
-}
60
-
61
-QFrame:!active#headerFrame {
62
-   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ededed, stop: 0.5 #eaeaea, stop: 1.0 #e7e7e7) url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/logo_no_active.png) no-repeat center center;
63
-   border-top: 2px solid #f4f4f4;
64
-   border-left: 2px solid #ececec;
65
-   border-right: 2px solid #ececec;
66
-   border-radius: 5px;
67
-   border-bottom-left-radius: 0px;
68
-   border-bottom-right-radius: 0px;
69
-}
70
-/* ------------------------ */
71
-
72
-
73
-/* ------------------------ QToolButton#hideButton */
74
-QToolButton#hideButton {
75
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide.png) center center no-repeat;
76
-   border-bottom: 0px solid #d0d0d0;
77
-   icon-size: 0px;
78
-   margin: 0px;
79
-   margin-top: 0px;
80
-   width: 14px;
81
-   height: 15px;
82
-}
83
-
84
-QToolButton:hover#hideButton {
85
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide_hover.png) no-repeat center argb(0,0,0,0);
86
-}
87
-
88
-QToolButton:hover#hideButton:!active {
89
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide_hover.png) no-repeat center argb(0,0,0,0);
90
-}
91
-
92
-QToolButton:pressed#hideButton {
93
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide_pressed.png) no-repeat center argb(0,0,0,0);
94
-}
95
-/* ------------------------ */
96
-
97
-
98
-/* ------------------------ QToolButton#maximizeButton */
99
-QToolButton#maximizeButton {
100
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize.png) center center no-repeat;
101
-   icon-size: 0px;
102
-   margin: 0px;
103
-   margin-top: 0px;
104
-   width: 14px;
105
-   height: 15px;
106
-}
107
-
108
-QToolButton:hover#maximizeButton {
109
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize_hover.png) no-repeat center argb(0,0,0,0);
110
-}
111
-
112
-QToolButton:!active:hover#maximizeButton {
113
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize_hover.png) no-repeat center argb(0,0,0,0);
114
-}
115
-
116
-QToolButton:pressed#maximizeButton {
117
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize_pressed.png) no-repeat center argb(0,0,0,0);
118
-}
119
-/* ------------------------ */
120
-
121
-
122
-/* ------------------------ QToolButton#closeButton */
123
-QToolButton#closeButton {
124
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close.png) center center no-repeat;
125
-   icon-size: 0px;
126
-   margin: 0px;
127
-   margin-left: 1px;
128
-   margin-top: 0px;
129
-   width: 17px;
130
-   height: 15px;
131
-}
132
-
133
-QToolButton:hover#closeButton {
134
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close_hover.png) no-repeat center argb(0,0,0,0);
135
-   min-width: 14px;
136
-   min-height: 15px;
137
-}
138
-
139
-QToolButton:!active:hover#closeButton {
140
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close_hover.png) no-repeat center argb(0,0,0,0);
141
-   min-width: 14px;
142
-   min-height: 15px;
143
-}
144
-
145
-QToolButton:pressed#closeButton {
146
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close_pressed.png) no-repeat center argb(0,0,0,0);
147
-}
148
-
149
-/* ------------------------ */
150
-
151
-QToolButton:!active#hideButton, QToolButton:!active#closeButton, QToolButton:!active#maximizeButton {
152
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_all_no_active.png) no-repeat center argb(0,0,0,0);
153
-}
154
-/* ------------------------ */
155
-/* End HeaderFrame--------- */
156
-
157
-
158
-
159
-
160
-
161
-/* ---------- TopFrame--------- */
162
-/* ------------------------ QFrame#topFrame */
163
-QFrame#topFrame {
164
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/topframe.png) repeat-x #a7a7a7;
165
-   border-left: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
166
-   border-right: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
167
-   border-top: 0px solid #ffffff;
168
-   margin-left: -10px;
169
-   margin-right: -6px;
170
-}
171
-
172
-QFrame:!active#topFrame {
173
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/topframe_no_active.png) repeat-x #d8d8d8;
174
-   border-left: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
175
-   border-right: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
176
-   margin-left: -10px;
177
-   margin-right: -6px;
178
-}
179
-/* ------------------------ */
180
-
181
-
182
-/* ------------------------ QWidget#avatar */
183
-QWidget#avatar {
184
-   margin-left: 19px;
185
-   margin-bottom: 3px;
186
-}
187
-/* ------------------------ */
188
-
189
-
190
-/* ------------------------ QPushButton#pb_topic */
191
-QPushButton#pb_topic {
192
-   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #fefefe, stop: 0.6 #c8c8c8, stop: 1.0 #b8b8b8);
193
-   border: 1px solid #545454;
194
-   border-radius: 3px;
195
-   margin-bottom: 5px;
196
-   margin-left: 15px;
197
-   height: 20px;
198
-   width: 55px;
199
-}
200
-
201
psi-plus-resources-1.tar.xz/skins/mac/native_mac/NativeMac_tt.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/NativeMac_tt.skn Deleted
201
 
1
@@ -1,1335 +0,0 @@
2
-<skin version="0.1.1" path="/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac" author="tuxden" name="Native Mac (Top tabs)">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#cacfd4</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#272727</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#f3f3f3</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#464646</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#004bb4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#7e0000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#ff0000</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#910000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#00008a</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#336600</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">30</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">
38
-/* ---------- TabDlg --------- */
39
-TabDlg {
40
-   background: argb(0,0,0,0);
41
-   border: none;
42
-}
43
-/* End TabDlg--------- */
44
-
45
-
46
-
47
-
48
-
49
-/* ---------- HeaderFrame --------- */
50
-/* ------------------------ QFrame#headerFrame */
51
-QFrame#headerFrame {
52
-   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d0d0d0, stop: 0.5 #cacaca, stop: 1.0 #c2c2c2) url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/logo_active.png) no-repeat center center;
53
-   border-top: 2px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d0d0d0, stop: 0.5 #d0d0d0, stop: 0.6 #e3e3e3, stop: 1.0 #e3e3e3);
54
-   border-left: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
55
-   border-right: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
56
-   border-radius: 5px;
57
-   border-bottom-left-radius: 0px;
58
-   border-bottom-right-radius: 0px;
59
-}
60
-
61
-QFrame:!active#headerFrame {
62
-   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ededed, stop: 0.5 #eaeaea, stop: 1.0 #e7e7e7) url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/logo_no_active.png) no-repeat center center;
63
-   border-top: 2px solid #f4f4f4;
64
-   border-left: 2px solid #ececec;
65
-   border-right: 2px solid #ececec;
66
-   border-radius: 5px;
67
-   border-bottom-left-radius: 0px;
68
-   border-bottom-right-radius: 0px;
69
-}
70
-/* ------------------------ */
71
-
72
-
73
-/* ------------------------ QToolButton#hideButton */
74
-QToolButton#hideButton {
75
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide.png) center center no-repeat;
76
-   border-bottom: 0px solid #d0d0d0;
77
-   icon-size: 0px;
78
-   margin: 0px;
79
-   margin-left: 0px;
80
-   margin-top: 0px;
81
-   width: 14px;
82
-   height: 15px;
83
-}
84
-
85
-QToolButton:hover#hideButton {
86
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide_hover.png) no-repeat center argb(0,0,0,0);
87
-}
88
-
89
-QToolButton:hover#hideButton:!active {
90
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide_hover.png) no-repeat center argb(0,0,0,0);
91
-}
92
-
93
-QToolButton:pressed#hideButton {
94
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_hide_pressed.png) no-repeat center argb(0,0,0,0);
95
-}
96
-/* ------------------------ */
97
-
98
-
99
-/* ------------------------ QToolButton#maximizeButton */
100
-QToolButton#maximizeButton {
101
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize.png) center center no-repeat;
102
-   icon-size: 0px;
103
-   margin: 0px;
104
-   margin-top: 0px;
105
-   width: 14px;
106
-   height: 15px;
107
-}
108
-
109
-QToolButton:hover#maximizeButton {
110
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize_hover.png) no-repeat center argb(0,0,0,0);
111
-}
112
-
113
-QToolButton:!active:hover#maximizeButton {
114
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize_hover.png) no-repeat center argb(0,0,0,0);
115
-}
116
-
117
-QToolButton:pressed#maximizeButton {
118
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_maximize_pressed.png) no-repeat center argb(0,0,0,0);
119
-}
120
-/* ------------------------ */
121
-
122
-
123
-/* ------------------------ QToolButton#closeButton */
124
-QToolButton#closeButton {
125
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close.png) center center no-repeat;
126
-   icon-size: 0px;
127
-   margin: 0px;
128
-   margin-left: 2px;
129
-   margin-top: 0px;
130
-   width: 17px;
131
-   height: 15px;
132
-}
133
-
134
-QToolButton:hover#closeButton {
135
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close_hover.png) no-repeat center argb(0,0,0,0);
136
-   min-width: 14px;
137
-   min-height: 15px;
138
-}
139
-
140
-QToolButton:!active:hover#closeButton {
141
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close_hover.png) no-repeat center argb(0,0,0,0);
142
-   min-width: 14px;
143
-   min-height: 15px;
144
-}
145
-
146
-QToolButton:pressed#closeButton {
147
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_close_pressed.png) no-repeat center argb(0,0,0,0);
148
-}
149
-
150
-/* ------------------------ */
151
-
152
-QToolButton:!active#hideButton, QToolButton:!active#closeButton, QToolButton:!active#maximizeButton {
153
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/c_toolbutton/c_tb_all_no_active.png) no-repeat center argb(0,0,0,0);
154
-}
155
-/* ------------------------ */
156
-/* End HeaderFrame--------- */
157
-
158
-
159
-
160
-
161
-
162
-/* ---------- TopFrame--------- */
163
-/* ------------------------ QFrame#topFrame */
164
-QFrame#topFrame {
165
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/b_topframe.png) repeat-x #dddddd;
166
-   border-left: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
167
-   border-right: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
168
-   border-top: 0px solid #515151;
169
-   margin-left: -10px;
170
-   margin-right: -6px;
171
-}
172
-
173
-QFrame:!active#topFrame {
174
-   background: url(/Applications/Psi+.app/Contents/Resources/skins/mac/native_mac/images/b_topframe_no_active.png) repeat-x #eeeeee;
175
-   border-left: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
176
-   border-right: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1.0 #bbbbbb);
177
-   margin-left: -10px;
178
-   margin-right: -6px;
179
-}
180
-/* ------------------------ */
181
-
182
-
183
-/* ------------------------ QWidget#avatar */
184
-QWidget#avatar {
185
-   min-width: 60px;
186
-   min-height:25px;
187
-}
188
-/* ------------------------ */
189
-
190
-
191
-/* ------------------------ QPushButton#pb_topic */
192
-QPushButton#pb_topic {
193
-   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #c9c9c9, stop: 0.6 #909090, stop: 1.0 #818181);
194
-   border: 1px solid #404040;
195
-   border-left: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #2c2c2c, stop: 0.5 #222222, stop: 1.0 #2e2e2e);
196
-   border-right: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #2c2c2c, stop: 0.5 #222222, stop: 1.0 #2e2e2e);
197
-   border-radius: 11px;
198
-   margin-left: 12px;
199
-   padding-left: 4px;
200
-   padding-right: 2px;
201
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_all_no_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_close.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_close_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_close_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_hide.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_hide_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_hide_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_maximize.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_maximize_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/c_toolbutton/c_tb_maximize_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/c_tb_all_no_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_close.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_close_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_close_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_hide.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_hide_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_hide_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_maximize.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_maximize_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/g_toolbutton/g_tb_maximize_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/b_topframe.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/b_topframe_no_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/find_user.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/logo_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/logo_no_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/psi_filter_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/psi_filter_no_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/qcombobox.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/res_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/res_no_active.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/topframe.png Deleted
psi-plus-resources-1.tar.xz/skins/mac/native_mac/images/topframe_no_active.png Deleted
psi-plus-resources-1.tar.xz/skins/universal Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/BranchEnd.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/BranchMore.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/ChatEdit.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/ChatLog.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/ChatTopFrame.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/CloseButton.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/CloseButtonHover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/CloseButtonPressed.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/Dot.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/LunnaCat.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/LunnaCat.skn Deleted
201
 
1
@@ -1,1350 +0,0 @@
2
-<skin version="1.1_(2011-06-11)" path="D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1" author="majik" name="LunnaCat">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#2f9fff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#2d9bff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#0a373c</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#0a373c</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#14a0b4</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#0f646e</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#4be1e1</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#32a5b9</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#328296</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#001e1e</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#4bd7ff</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#3c7896</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#9bdcc3</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#006e6e</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#009bff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#00d200</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#37eb73</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#4bd7ff</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#ff0004</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#32a5b9</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#001e1e</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#0a373c</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#37aabe</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#0e2e35</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#001e1e</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">true</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">32</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">true</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">TabDlg {
38
-   background-color: #000000;}
39
-
40
-/* общий фрейм */
41
-QFrame {
42
-   color: #32C8C3;
43
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/ChatTopFrame.png) right bottom;
44
-   background-color: argb(182,200,80,0);
45
-   border: 0px;
46
-   padding: 0px;}
47
-
48
-/* кнопки в шапке окна в режиме без декора */
49
-QToolButton#hideButton {
50
-   width: 16px;
51
-   height: 16px;
52
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/MinimizeButton.png) center no-repeat;
53
-   icon-size: 0px;
54
-   border: 0px;}
55
-
56
-QToolButton#hideButton:hover {
57
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/MinimizeButtonHover.png) center no-repeat;}
58
-
59
-QToolButton#hideButton:pressed {
60
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/MinimizeButtonPressed.png) center no-repeat;}
61
-
62
-QToolButton#maximizeButton {
63
-   width: 16px;
64
-   height: 16px;
65
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/MaximizeButton.png) center no-repeat;
66
-   icon-size: 0px;
67
-   border: 0px;}
68
-
69
-QToolButton#maximizeButton:hover {
70
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/MaximizeButtonHover.png) center no-repeat;}
71
-
72
-QToolButton#maximizeButton:pressed {
73
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/MaximizeButtonPressed.png) center no-repeat;}
74
-
75
-QToolButton#closeButton {
76
-   width: 16px;
77
-   height: 16px;
78
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/CloseButton.png) center no-repeat;
79
-   icon-size: 0px;
80
-   border: 0px;}
81
-
82
-QToolButton#closeButton:hover {
83
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/CloseButtonHover.png) center no-repeat;}
84
-
85
-QToolButton#closeButton:pressed {
86
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/CloseButtonPressed.png) center no-repeat;}
87
-
88
-/* верхний фрейм */
89
-QFrame#topFrame {
90
-   margin: 0px;
91
-   margin-bottom: 2px;
92
-   border: 0px;}
93
-
94
-/* кнопка топика */
95
-QPushButton#pb_topic {
96
-   margin: 0px;
97
-   height: 16px;
98
-   color: #4BD7FF;
99
-   background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4BD7FF, stop: 0.55 #1A474C, stop: 1 #4BD7FF);
100
-   font-weight: bold;
101
-   border: 1px solid #3C7896;
102
-   border-radius: 3px;
103
-   padding: 2px;}
104
-
105
-QPushButton#pb_topic:hover {
106
-   color: #DBD7DF;
107
-   background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #8BF7FF, stop: 0.55 #0F97AC, stop: 1 #8BF7FF);}
108
-
109
-QPushButton#pb_topic:pressed {
110
-   background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4BD7FF, stop: 0.55 #1A474C, stop: 1 #4BD7FF);}
111
-
112
-/* диалог топика */
113
-QWidget#pte_topic {
114
-   color: #32C8C3;
115
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/Tooltip.png) right top;
116
-   background-color: #001E1F;
117
-   border: 1px inset #3C7896;
118
-   border-radius: 3px;}
119
-
120
-/* иконка статуса */
121
-QLabel#lb_status {
122
-   border: 0px;
123
-   background: argb(182,200,80,0);}
124
-
125
-/* топик / джид */
126
-ActionLineEdit#le_topic,#le_jid {
127
-   color: #4BD7FF;
128
-   background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4BD7FF, stop: 0.28 argb(188,255,120,40), stop: 0.8 argb(188,255,120,40), stop: 1 #4BD7FF);
129
-   font-weight: bold;
130
-   border: 1px solid #3C7896;
131
-   border-radius: 3px;
132
-   padding: 2px;}
133
-
134
-/* джид - ниспадающее меню */
135
-QComboBox::drop-down#le_jid {
136
-   height: 20px;
137
-   border-left: 1px solid #2D9BB8;
138
-   background-color: argb(188,255,120,50);}
139
-
140
-QComboBox::down-arrow#le_jid {
141
-   width: 9px;
142
-   image: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/ScrollBarArrowDown.png);}
143
-
144
-QComboBox#le_jid QAbstractItemView {
145
-   color: #4BD7FF;
146
-   selection-background-color: argb(188,255,120,50);
147
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/Tooltip.png);
148
-   background-color: argb(182,200,80,40);
149
-show-decoration-selected: 0;
150
-   border: 1px outset #3C7896;}
151
-
152
-QComboBox::focus#le_jid QAbstractItemView {
153
-   border-color: red;
154
-   border: 1px;}
155
-
156
-/* диалоговое окно букмарок */
157
-QDialog {
158
-   background: url(D:/!Bakup/Portable/Psi/Psi+/skins/LunnaCat_1.1/Tooltip.png) right top;
159
-   background-color: argb(182,200,80,0);}
160
-
161
-QDialog>QFrame {
162
-   color: #4BD7FF;
163
-   background: argb(182,200,80,0);}
164
-
165
-QDialog>QLineEdit {
166
-   color: #4BD7FF;
167
-   background: argb(182,200,80,40);
168
-   border: 1px inset #3C7896;
169
-   border-radius: 3px;}
170
-
171
-QDialog>QCheckBox {
172
-   background: argb(182,200,80,0);}
173
-
174
-/* иконка клиента */
175
-QLabel#lb_client {
176
-   border: 0px;
177
-   background: argb(182,200,80,0);}
178
-
179
-/* счётчик символов */
180
-QLabel#lb_count {
181
-   color: #4BD7FF;
182
-   background: argb(182,200,80,0);
183
-   background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4BD7FF, stop: 0.28 argb(188,255,120,40), stop: 0.8 argb(188,255,120,40), stop: 1 #4BD7FF);
184
-   font-weight: bold;
185
-   border: 1px solid #3C7896;
186
-   border-radius: 3px;
187
-   padding: 2px;}
188
-
189
-/* имя аккаунта */
190
-QLabel#lb_ident {
191
-   color: #0A373C;
192
-   background: argb(188,255,120,0);
193
-   background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #0A373C, stop: 0.18 #4BD7FF, stop: 0.9 #4BD7FF, stop: 1 #0A373C);
194
-   font-weight: bold;
195
-   border: 1px solid #3C7896;
196
-   border-radius: 3px;
197
-   padding: 2px;}
198
-
199
-/* чатлог */
200
-QFrame#log {
201
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/MaximizeButton.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/MaximizeButtonHover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/MaximizeButtonPressed.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/MinimizeButton.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/MinimizeButtonHover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/MinimizeButtonPressed.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/RadioButton.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/RadioButtonHover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/RadioButtonUnchecked.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/RadioButtonUncheckedHover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/Roster.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/ScrollBarArrowDown.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/ScrollBarArrowLeft.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/ScrollBarArrowRight.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/ScrollBarArrowUp.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/SplitterH.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/SplitterHH.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/SplitterHP.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/SplitterV.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/SplitterVH.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/SplitterVP.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/TabBar.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/TabCloseButton.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/TabCloseButtonHover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/TabCloseButtonPressed.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/LunnaCat/Tooltip.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/black_theme Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/black_theme/black_theme.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/black_theme/black_theme.skn Deleted
201
 
1
@@ -1,577 +0,0 @@
2
-<skin version="0.5" author="tux-den" name="Black theme">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#f0f0f0</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#5a5a5a</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#969696</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#ffffff</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#004bb4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#7e0000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#ff000b</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#000000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#000000</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#000000</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#cfcfcf</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">3</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">25</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">QWidget {
38
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #c5c5c5, stop: 0.3 #bfbfbf, stop: 0.5 #b5b5b5, stop: 0.8 #ababab, stop: 1.0 #a6a6a6);
39
-     border: 4px solid #c5c5c5; 
40
-     border-bottom-color: #a6a6a6;
41
-}
42
-
43
-QScrollBar:vertical {
44
-     background-color: #ebebeb;
45
-     border: 2px solid #cdcdcd;
46
-     border-bottom-color: #cdcdcd;
47
-}
48
-
49
-QScrollBar::handle:vertical {
50
-     background-color: #c5c5c5;
51
-     border: 2px solid #f5f5f5;
52
-     border-bottom-color: #f5f5f5;
53
-}
54
-
55
-QScrollBar::add-line:vertical {
56
-     border: 0px; height: 0px;
57
-     subcontrol-position: bottom;
58
-}
59
-
60
-QScrollBar::sub-line:vertical {
61
-     border: 0px; height: 0px;
62
-     subcontrol-position: top;
63
-}
64
-
65
-QScrollBar:horizontall {
66
-     background-color: #ebebeb;
67
-     border: 1px solid #cdcdcd;
68
-     border-bottom-color: #cdcdcd;
69
-}
70
-
71
-QScrollBar::handle:horizontall {
72
-     background-color: #c5c5c5;
73
-     border: 2px solid #f5f5f5;
74
-     border-bottom-color: #f5f5f5;
75
-}
76
-
77
-QScrollBar::add-line:horizontall {
78
-     border: 0px; height: 0px;
79
-     subcontrol-position: bottom;
80
-}
81
-
82
-QScrollBar::sub-line:horizontall {
83
-     border: 0px; height: 0px;
84
-     subcontrol-position: top;
85
-}
86
-
87
-QToolBar {
88
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #c5c5c5, stop: 0.3 #bfbfbf, stop: 0.5 #b5b5b5, stop: 0.8 #ababab, stop: 1.0 #a6a6a6);
89
-     border: 3px solid #c5c5c5; 
90
-     border-bottom-color: #a6a6a6;  
91
-     border-top-left-radius: 4px; 
92
-     border-bottom-left-radius: 4px; 
93
-     border-bottom-right-radius: 4px; 
94
-     border-top-right-radius: 4px; 
95
-}
96
-
97
-QTabBar::tab:selected { 
98
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #eaf1fb, stop: 0.4 #b7d4f4, stop: 0.5 #7cb6e9, stop: 1.0 #c9f9ff); 
99
-     border: 1px solid #3c3396; 
100
-     border-bottom-color: #55697b; 
101
-     border-top-left-radius: 5px; 
102
-     border-bottom-left-radius: 5px; 
103
-     border-bottom-right-radius: 5px; 
104
-     border-top-right-radius: 5px; 
105
-     padding: 5px; 
106
-}
107
-
108
-QToolTip { 
109
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f5f5f5, stop: 0.4 #e0e0e0, stop: 0.7 #d3d3d3, stop: 1.0 #c9c9c9); 
110
-     border: 1.5px solid #c8c8c8; 
111
-     border-bottom-color: #ececec; 
112
-} 
113
-
114
-QToolButton  { 
115
-     background: qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #f4f4f3, stop: 0.3 #f1f1f1, stop: 0.5 #d1d0d0, stop: 0.7 #bbbaba, stop: 1.0 #9d9c9b); 
116
-     border: 1px solid #4a4949; 
117
-     border-bottom-color: #4a4949; 
118
-     border-radius: 4px; 
119
-     width: 30px; 
120
-     height: 22px; 
121
-}
122
-
123
-QToolButton:pressed { 
124
-     background: qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #a09f9e, stop: 0.3 #acabaa, stop: 0.5 #cfcece, stop: 0.7 #cfcece, stop: 1.0 #cfcece); 
125
-     border: 1px solid #4a4949; 
126
-     border-bottom-color: #4a4949; 
127
-     border-top-left-radius: 4px; 
128
-     border-bottom-left-radius: 4px; 
129
-     border-bottom-right-radius: 4px; 
130
-     border-top-right-radius: 4px; 
131
-     width: 30px; 
132
-     height: 22px; 
133
-} 
134
-
135
-QToolButton:checked { 
136
-     background: qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #a09f9e, stop: 0.3 #acabaa, stop: 0.5 #cfcece, stop: 0.7 #cfcece, stop: 1.0 #cfcece); 
137
-     border: 1px solid #4a4949; 
138
-     border-bottom-color: #4a4949; 
139
-     border-top-left-radius: 4px; 
140
-     border-bottom-left-radius: 4px; 
141
-     border-bottom-right-radius: 4px; 
142
-     border-top-right-radius: 4px; 
143
-     width: 30px; 
144
-     height: 22px; 
145
-}
146
-
147
-QPushButton { 
148
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #fcfcfc, stop: 0.3 #f5f5f5, stop: 0.4 #f0efef, stop: 0.5 #e5e6e5, stop: 0.7 #ffffff, stop: 1.0 #ffffff); 
149
-     border: 1.4px solid #5c5c5c; 
150
-     border-bottom-color: #5c5c5c; 
151
-     width: 120px; 
152
-     height: 20px; 
153
-     border-radius: 11px; 
154
-} 
155
-
156
-QPushButton:hover:pressed { 
157
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3c5e1, stop: 0.3 #95bbdf, stop: 0.4 #82b1dd, stop: 0.5 #69a2d7, stop: 0.7 #87b6e3, stop: 1.0 #b3e2f7); 
158
-     border: 1px solid #1b008c; 
159
-     border-bottom-color: #5b5b5b; 
160
-     width: 80px; height: 2px; 
161
-     border-top-left-radius: 11px; 
162
-     border-bottom-left-radius: 11px; 
163
-     border-bottom-right-radius: 11px; 
164
-     border-top-right-radius: 11px; 
165
-}
166
-
167
-QPushButton#pb_topic { 
168
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #fcfcfc, stop: 0.3 #f5f5f5, stop: 0.4 #f0efef, stop: 0.5 #e5e6e5, stop: 0.7 #ffffff, stop: 1.0 #ffffff); 
169
-     border: 1.4px solid #5c5c5c; 
170
-     border-bottom-color: #5c5c5c; 
171
-     width: 65px; 
172
-     height: 20px; 
173
-     border-top-left-radius: 11px; 
174
-     border-bottom-left-radius: 11px; 
175
-     border-bottom-right-radius: 11px; 
176
-     border-top-right-radius: 11px; 
177
-     margin:7px; 
178
-} 
179
-
180
-QPushButton:hover:pressed#pb_topic { 
181
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3c5e1, stop: 0.3 #95bbdf, stop: 0.4 #82b1dd, stop: 0.5 #69a2d7, stop: 0.7 #87b6e3, stop: 1.0 #b3e2f7); 
182
-     border: 1px solid #1b008c; 
183
-     border-bottom-color: #5b5b5b; 
184
-     width: 80px; 
185
-     height: 2px; 
186
-     border-top-left-radius: 11px; 
187
-     border-bottom-left-radius: 11px; 
188
-     border-bottom-right-radius: 11px; 
189
-     border-top-right-radius: 11px; 
190
-}
191
-
192
-QLineEdit { 
193
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f5f5f5, stop: 0.4 #e0e0e0, stop: 0.7 #d3d3d3, stop: 1.0 #c9c9c9); 
194
-     border: 3px solid #c8c8c8; 
195
-     border-bottom-color: #ececec; 
196
-     border-top-left-radius: 5px; 
197
-     border-bottom-left-radius: 5px; 
198
-     border-bottom-right-radius: 5px; 
199
-     border-top-right-radius: 5px;
200
-} 
201
psi-plus-resources-1.tar.xz/skins/universal/blue_skin Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/blue_skin/blue_skin.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/blue_skin/blue_skin.skn Deleted
201
 
1
@@ -1,204 +0,0 @@
2
-<skin version="1.1" path="/home/hryukin/.psi/skins/universal" author="Dealer_WeARE" name="Blue_skin">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#2c9dff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#b5e3ff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#9cbaff</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QString">#00007f</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QString">#375cff</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#ffffff</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#000000</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QString">#000000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QString">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QString">#0055ff</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#4f64c0</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#00007f</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#aa0000</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#5555ff</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#22603e</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#910000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#00008a</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#336600</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#a9b5ff</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#a9bcff</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">true</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">32</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">true</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">QFrame { background-color: #b4ccff; border: 1px solid blue; border-radius: 6px; padding: 2px}
38
-QToolButton { background-color: #e9edff; border: 1px solid blue; border-radius: 4px; padding: 2px}
39
-QToolButton:hover { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e9edff, stop: 1 black)}
40
-QToolButton:pressed { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 black, stop: 1 #e9edff )}
41
-QToolButton:checked {border-top: 2px solid blue; border-left: 2px solid blue; padding-bottom: 1px; padding-right: 1px; background-color: #aebece}
42
-QLabel { background-color: #b5e3ff }
43
-QLabel#lb_status {background-color: #b4ccff; border: 0px; ; border-radius: 0px; padding: 0px }
44
-QLabel#lb_client {background-color: #b4ccff; border: 0px; ; border-radius: 0px; padding: 0px }
45
-QToolBar { background-color: #b5e3ff; border: 1px solid blue; border-radius: 4px; padding: 2px } 
46
-QTextEdit { background-color: #eefeff } 
47
-QLineEdit { background-color: #e9edff; border: 1px solid blue; border-radius: 6px; padding: 2px }
48
-QPushButton { background-color: #e9edff; border: 1px solid blue; border-radius: 4px; } 
49
-QPushButton#pb_topic { border-radius: 0px }
50
-QPushButton:hover:pressed { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 black, stop: 1 #e9edff )}
51
-QPushButton:hover { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e9edff, stop: 1 black)}
52
-Q3ListView * { background-color: #e9edff; }
53
-QFrame#log * { background-color: #eefeff } 
54
-QTabBar::tab { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,  stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,   stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);   border: 2px solid #C4C4C3;  border-bottom-color: #C2C7CB;   border-top-left-radius: 4px;border-top-right-radius: 4px;  min-width: 8ex;  padding: 2px }
55
-QTabBar::tab:selected, QTabBar::tab:hover { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #fafafa, stop: 0.4 #f4f4f4, stop: 0.5 #e7e7e7, stop: 1.0 #fafafa) }
56
-QTabBar::tab:selected { border-color: #9B9B9B;  border-bottom-color: #C2C7CB }
57
-QToolTip {background-color: #a9bcff;   border: 2px solid blue;         padding: 2px;  border-radius: 4px; }
58
-QMenu {background-color: #a9bcff;  border: 1px solid blue}
59
-QMenu::item { background-color: #a9bcff; border: 1px solid transparent; padding: 2px 25px 2px 20px;}
60
-QMenu::item:selected {background-color: #e9edff; border-color: darkblue;}
61
-QMenu::separator { height: 2px; background: lightblue;  }
62
-QMenu::item:checked { background-color: #e9edff }
63
-TabDlg { background-color: #b4ccff; }</options.ui.chat.css>
64
-        <options.ui.look.contactlist.use-outlined-group-headings type="bool">false</options.ui.look.contactlist.use-outlined-group-headings>
65
-        <options.ui.look.contactlist.use-slim-group-headings type="bool">false</options.ui.look.contactlist.use-slim-group-headings>
66
-        <options.ui.look.font.chat type="QString">Sans Serif,9,-1,5,50,0,0,0,0,0</options.ui.look.font.chat>
67
-        <options.ui.look.font.contactlist type="QString">Sans Serif,9,-1,5,50,0,0,0,0,0</options.ui.look.font.contactlist>
68
-        <options.ui.look.font.message type="QString">Sans Serif,9,-1,5,50,0,0,0,0,0</options.ui.look.font.message>
69
-        <options.ui.look.font.passive-popup type="QString">Sans Serif,8,-1,5,50,0,0,0,0,0</options.ui.look.font.passive-popup>
70
-        <options.ui.contactlist.toolbars-state type="QByteArray">AAAA/wAAAAD9AAAAAAAAAOgAAAKnAAAABAAAAAQAAAAIAAAACPwAAAAMAAAAAAAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewA1ADMANQA2ADMAOAAxAGMALQBiADgANwBmAC0ANAA5AGIAMAAtADkAMwBmADAALQBhADgAZgAwADkAMwBmAGQAYQA5AGEAMAB9AwAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAbABtAGEAaQBuAHcAaQBuAC0AdABvAG8AbABiAGEAcgAtAHsAYQAzADIAMgAwADAAMgA4AC0AZQBhAGMAMgAtADQAZQBhAGIALQA5ADAAMABlAC0AMAAzADUAZABkAGYAYQA3AGYANgBiADcAfQMAAAAA/////wAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7AGYAYQA1ADIAYwA1AGEAMAAtADgAYgA5AGMALQA0ADEAZQA2AC0AOABhADIAYgAtAGEANAA5ADgAOAA3ADcAZgA5ADkAMwAwAH0BAAAAAP////8AAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewBkAGMAYwA4ADgAZQBmADkALQA4ADIAMQAwAC0ANAAyADEAZgAtAGIAMgA0AGQALQBiADkAMgBmADQAZgA5ADUANwA1AGIANgB9AQAAAAD/////AAAAAAAAAAAAAAACAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7ADQAZQBkADcAYgBiADAAMgAtADIANQA5AGIALQA0ADgAMwBkAC0AYQA4ADYANQAtADYAMAAzADUAOABhAGQAOABlADIAMwBmAH0BAAAAAP////8AAAAAAAAAAAAAAAMAAAABAAAAbABtAGEAaQBuAHcAaQBuAC0AdABvAG8AbABiAGEAcgAtAHsAYgAxADQAYQA1AGYAYwBiAC0AMwA5AGYANwAtADQAMgA3AGUALQA4ADQANQBjAC0AZgA2ADAAYwA2ADIAMABiAGMAZgBmAGQAfQEAAAAAAAAAsgAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7ADAAOQAzADYANQA5AGEAZgAtADkAZAA0ADgALQA0ADUAMwBhAC0AOQAwAGEANgAtAGQAMwBlADEAMQBmAGYANwBlADUAOABhAH0BAAAAAP////8AAAAAAAAAAAAAAAMAAAABAAAAbABtAGEAaQBuAHcAaQBuAC0AdABvAG8AbABiAGEAcgAtAHsAOQA2AGUAMAAyADIAZAA4AC0ANwA4AGEAMQAtADQAYQBmADMALQA5ADQAOQAzAC0AMQAzADIAMgAxADAANABhAGYAYwBlADUAfQAAAAAA/////wAAAAAAAAAA</options.ui.contactlist.toolbars-state>
71
-        <options.ui.contactlist.toolbars.m0.actions type="QStringList">
72
-            <item>button_options</item>
73
-            <item>separator</item>
74
-            <item>button_status</item>
75
-        </options.ui.contactlist.toolbars.m0.actions>
76
-        <options.ui.contactlist.toolbars.m0.dock.nl type="bool">true</options.ui.contactlist.toolbars.m0.dock.nl>
77
-        <options.ui.contactlist.toolbars.m0.dock.position type="int">3</options.ui.contactlist.toolbars.m0.dock.position>
78
-        <options.ui.contactlist.toolbars.m0.key type="QString">{b14a5fcb-39f7-427e-845c-f60c620bcffd}</options.ui.contactlist.toolbars.m0.key>
79
-        <options.ui.contactlist.toolbars.m0.locked type="bool">true</options.ui.contactlist.toolbars.m0.locked>
80
-        <options.ui.contactlist.toolbars.m0.name type="QString">Buttons</options.ui.contactlist.toolbars.m0.name>
81
-        <options.ui.contactlist.toolbars.m0.visible type="bool">true</options.ui.contactlist.toolbars.m0.visible>
82
-        <options.ui.contactlist.toolbars.m1.actions type="QStringList">
83
-            <item>spacer</item>
84
-            <item>menu_options</item>
85
-            <item>spacer</item>
86
-            <item>menu_account_setup</item>
87
-            <item>spacer</item>
88
-            <item>menu_join_groupchat</item>
89
-            <item>spacer</item>
90
-            <item>set_geoloc</item>
91
-            <item>spacer</item>
92
-            <item>view_groups</item>
93
-            <item>spacer</item>
94
-        </options.ui.contactlist.toolbars.m1.actions>
95
-        <options.ui.contactlist.toolbars.m1.dock.nl type="bool">true</options.ui.contactlist.toolbars.m1.dock.nl>
96
-        <options.ui.contactlist.toolbars.m1.dock.position type="int">2</options.ui.contactlist.toolbars.m1.dock.position>
97
-        <options.ui.contactlist.toolbars.m1.key type="QString">{093659af-9d48-453a-90a6-d3e11ff7e58a}</options.ui.contactlist.toolbars.m1.key>
98
-        <options.ui.contactlist.toolbars.m1.locked type="bool">true</options.ui.contactlist.toolbars.m1.locked>
99
-        <options.ui.contactlist.toolbars.m1.name type="QString">Show contacts</options.ui.contactlist.toolbars.m1.name>
100
-        <options.ui.contactlist.toolbars.m1.visible type="bool">true</options.ui.contactlist.toolbars.m1.visible>
101
-        <options.ui.contactlist.toolbars.m2.actions type="QStringList">
102
-            <item>event_notifier</item>
103
-        </options.ui.contactlist.toolbars.m2.actions>
104
-        <options.ui.contactlist.toolbars.m2.dock.nl type="bool">true</options.ui.contactlist.toolbars.m2.dock.nl>
105
-        <options.ui.contactlist.toolbars.m2.dock.position type="int">3</options.ui.contactlist.toolbars.m2.dock.position>
106
-        <options.ui.contactlist.toolbars.m2.key type="QString">{96e022d8-78a1-4af3-9493-1322104afce5}</options.ui.contactlist.toolbars.m2.key>
107
-        <options.ui.contactlist.toolbars.m2.locked type="bool">true</options.ui.contactlist.toolbars.m2.locked>
108
-        <options.ui.contactlist.toolbars.m2.name type="QString">Event notifier</options.ui.contactlist.toolbars.m2.name>
109
-        <options.ui.contactlist.toolbars.m2.visible type="bool">false</options.ui.contactlist.toolbars.m2.visible>
110
-        <options.ui.contactlist.toolbars.m3.actions type=""></options.ui.contactlist.toolbars.m3.actions>
111
-        <options.ui.contactlist.toolbars.m3.dock.nl type=""></options.ui.contactlist.toolbars.m3.dock.nl>
112
-        <options.ui.contactlist.toolbars.m3.dock.position type=""></options.ui.contactlist.toolbars.m3.dock.position>
113
-        <options.ui.contactlist.toolbars.m3.key type=""></options.ui.contactlist.toolbars.m3.key>
114
-        <options.ui.contactlist.toolbars.m3.locked type=""></options.ui.contactlist.toolbars.m3.locked>
115
-        <options.ui.contactlist.toolbars.m3.name type=""></options.ui.contactlist.toolbars.m3.name>
116
-        <options.ui.contactlist.toolbars.m3.visible type=""></options.ui.contactlist.toolbars.m3.visible>
117
-        <options.ui.save.toolbars-state type="QByteArray">AAAA/wAAAAD9AAAAAAAAAOsAAANpAAAABAAAAAQAAAAIAAAACPwAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewA5ADYAZQAwADIAMgBkADgALQA3ADgAYQAxAC0ANABhAGYAMwAtADkANAA5ADMALQAxADMAMgAyADEAMAA0AGEAZgBjAGUANQB9AAAAAAD/////AAAAAAAAAAAAAAADAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7AGIAMQA0AGEANQBmAGMAYgAtADMAOQBmADcALQA0ADIANwBlAC0AOAA0ADUAYwAtAGYANgAwAGMANgAyADAAYgBjAGYAZgBkAH0BAAAAAP////8AAAAAAAAAAAAAAAMAAAABAAAAbABtAGEAaQBuAHcAaQBuAC0AdABvAG8AbABiAGEAcgAtAHsAMAA5ADMANgA1ADkAYQBmAC0AOQBkADQAOAAtADQANQAzAGEALQA5ADAAYQA2AC0AZAAzAGUAMQAxAGYAZgA3AGUANQA4AGEAfQEAAAAA/////wAAAAAAAAAA</options.ui.save.toolbars-state>
118
-        <options.ui.tabs.grouping type="QString">CM</options.ui.tabs.grouping>
119
-        <options.iconsets.activities type="QString">default</options.iconsets.activities>
120
-        <options.iconsets.clients type="QString">fingerprint.jisp</options.iconsets.clients>
121
-        <options.iconsets.custom-status type=""></options.iconsets.custom-status>
122
-        <options.iconsets.emoticons type="QStringList">
123
-            <item>quip.jisp</item>
124
-        </options.iconsets.emoticons>
125
-        <options.iconsets.moods type="QString">rederick-moods-16.jisp</options.iconsets.moods>
126
-        <options.iconsets.status type="QString">stafex_psi_mod.jisp</options.iconsets.status>
127
-        <options.iconsets.system type="QString">oxygen_sys.jisp</options.iconsets.system>
128
-        <options.ui.chat.avatars.show type="bool">true</options.ui.chat.avatars.show>
129
-        <options.ui.chat.avatars.size type="int">64</options.ui.chat.avatars.size>
130
-        <options.ui.chat.central-toolbar type="bool">true</options.ui.chat.central-toolbar>
131
-        <options.ui.chat.disable-paste-send type="bool">true</options.ui.chat.disable-paste-send>
132
-        <options.ui.chat.use-expanding-line-edit type="bool">false</options.ui.chat.use-expanding-line-edit>
133
-        <options.ui.chat.use-message-icons type="bool">true</options.ui.chat.use-message-icons>
134
-        <options.ui.contactlist.css type="QString">QMainWindow {background-color: #b4ccff}
135
-QToolTip {background-color: #a9bcff;   border: 2px solid blue;         padding: 2px;  border-radius: 4px; }
136
-QToolButton { background-color: #e9edff; border: 1px solid blue; border-radius: 4px; padding: 3px; } 
137
-QToolButton:hover { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e9edff, stop: 1 black)}
138
-QToolButton:checked {border-top: 2px solid blue; border-left: 2px solid blue; padding-bottom: 1px; padding-right: 1px; background-color: #aebece}
139
-QToolButton:pressed { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 black, stop: 1 #e9edff )}
140
-QFrame { background-color: #b5e3ff; border: 1px solid blue; border-radius: 6px; padding: 3px} 
141
-QToolBar { background-color: #b5e3ff; border: 1px solid blue; border-radius: 6px; padding: 4px; margin: 2px; margin-bottom: 1px}
142
-QToolBar > QToolButton { padding-left: 11px; padding-right: 11px; }
143
-QPushButton { background-color: #e9edff; border: 1px solid blue; border-radius: 6px;  padding: 6px; }
144
-QPushButton:hover { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e9edff, stop: 1 black)}
145
-QPushButton:hover:pressed { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 black, stop: 1 #e9edff )}
146
-QToolButton::checked {background-color: #b5c8df; }
147
-QMenu  {background-color: #a9bcff;  border: 1px solid blue}
148
-QMenu::item { background-color: #a9bcff; border: 1px solid transparent; padding: 2px 25px 2px 20px;}
149
-QMenu::item:selected {background-color: #e9edff; border-color: darkblue;}
150
-QMenu::separator { height: 2px; background: lightblue;  }
151
-QMenu::item:checked { background-color: #e9edff }
152
-QLineEdit { background-color: #e9edff; border: 1px solid blue; border-radius: 6px; padding: 2px }
153
-QLabel#lb_avatar { background-color: #b4ccff; border: 0px; padding: 0px;}
154
-QLabel#lb_nick { background-color: #b4ccff; border: 0px}
155
-QTreeView { selection-background-color:  white; selection-color: black }
156
-QStackedWidget { background-color: blue; padding: 0px; border: 0px}</options.ui.contactlist.css>
157
-        <options.ui.contactlist.enable-groups type="bool">true</options.ui.contactlist.enable-groups>
158
-        <options.ui.contactlist.show.agent-contacts type="bool">false</options.ui.contactlist.show.agent-contacts>
159
-        <options.ui.contactlist.show.offline-contacts type="bool">false</options.ui.contactlist.show.offline-contacts>
160
-        <options.ui.contactlist.show-activity-icons type="bool">true</options.ui.contactlist.show-activity-icons>
161
-        <options.ui.contactlist.show-all-client-icons type="bool">false</options.ui.contactlist.show-all-client-icons>
162
-        <options.ui.contactlist.show-client-icons type="bool">true</options.ui.contactlist.show-client-icons>
163
-        <options.ui.contactlist.show-geolocation-icons type="bool">true</options.ui.contactlist.show-geolocation-icons>
164
-        <options.ui.contactlist.show-group-counts type="bool">true</options.ui.contactlist.show-group-counts>
165
-        <options.ui.contactlist.show-menubar type="bool">false</options.ui.contactlist.show-menubar>
166
-        <options.ui.contactlist.show-mood-icons type="bool">true</options.ui.contactlist.show-mood-icons>
167
-        <options.ui.contactlist.show-status-icons type="bool">true</options.ui.contactlist.show-status-icons>
168
-        <options.ui.contactlist.show-tune-icons type="bool">true</options.ui.contactlist.show-tune-icons>
169
-        <options.ui.contactlist.status-icon-over-avatar type="bool">false</options.ui.contactlist.status-icon-over-avatar>
170
-        <options.ui.contactlist.status-messages.show type="bool">true</options.ui.contactlist.status-messages.show>
171
-        <options.ui.contactlist.status-messages.single-line type="bool">false</options.ui.contactlist.status-messages.single-line>
172
-        <options.ui.contactlist.tooltip.avatar type="bool">true</options.ui.contactlist.tooltip.avatar>
173
-        <options.ui.contactlist.tooltip.client-version type="bool">true</options.ui.contactlist.tooltip.client-version>
174
-        <options.ui.contactlist.tooltip.css type="QString">QFrame {background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e9edff, stop: 1 #a9bcff); border: 1px solid blue; }</options.ui.contactlist.tooltip.css>
175
-        <options.ui.contactlist.tooltip.geolocation type="bool">true</options.ui.contactlist.tooltip.geolocation>
176
-        <options.ui.contactlist.tooltip.last-status type="bool">true</options.ui.contactlist.tooltip.last-status>
177
-        <options.ui.contactlist.tooltip.pgp type="bool">true</options.ui.contactlist.tooltip.pgp>
178
-        <options.ui.contactlist.use-status-change-animation type="bool">false</options.ui.contactlist.use-status-change-animation>
179
-        <options.ui.contactlist.use-transport-icons type="bool">true</options.ui.contactlist.use-transport-icons>
180
-        <options.ui.emoticons.use-emoticons type="bool">true</options.ui.emoticons.use-emoticons>
181
-        <options.ui.mac.use-brushed-metal-windows type="bool">false</options.ui.mac.use-brushed-metal-windows>
182
-        <options.ui.muc.colored-history type="bool">true</options.ui.muc.colored-history>
183
-        <options.ui.save.splitter-state type="QByteArray">AAAA/wAAAAAAAAABAAABJwEAAAAGAQAAAAE=</options.ui.save.splitter-state>
184
-        <options.ui.save.tabs-geometry type=""></options.ui.save.tabs-geometry>
185
-        <options.ui.tabs.show-tab-buttons type="bool">true</options.ui.tabs.show-tab-buttons>
186
-        <options.ui.tabs.show-tab-close-buttons type="bool">true</options.ui.tabs.show-tab-close-buttons>
187
-        <options.ui.tabs.use-tabs type="bool">true</options.ui.tabs.use-tabs>
188
-        <options.ui.contactlist.show.self-contact type="bool">false</options.ui.contactlist.show.self-contact>
189
-        <options.ui.notifications.passive-popups.css type="QString">QFrame {background-color: #a9b5ff } QToolButton { background-color: #e9edff; border: 1px solid blue; border-radius: 2px}
190
-QToolButton:hover { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e9edff, stop: 1 black)}
191
-QToolButton:pressed { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 black, stop: 1 #e9edff )}</options.ui.notifications.passive-popups.css>
192
-        <options.ui.contactlist.show-roster-avatar-frame type="bool">true</options.ui.contactlist.show-roster-avatar-frame>
193
-        <options.ui.tabs.show-tab-icons type="bool">true</options.ui.tabs.show-tab-icons>
194
-        <options.ui.muc.show-client-icons type="bool">true</options.ui.muc.show-client-icons>
195
-        <options.ui.contactlist.roster-at-left-when-all-in-one-window type="bool">false</options.ui.contactlist.roster-at-left-when-all-in-one-window>
196
-        <options.ui.tabs.put-tabs-at-bottom type="bool">false</options.ui.tabs.put-tabs-at-bottom>
197
-        <options.ui.look.colors.muc.nick-colors type="QStringList">
198
-            <item></item>
199
-            <item>#aa0000</item>
200
-            <item>#5500ff</item>
201
psi-plus-resources-1.tar.xz/skins/universal/night Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/night/bottom.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/bottom_press.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/gr.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/gree.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/green.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/left.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/left_press.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/logo.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/night.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/night.skn Deleted
201
 
1
@@ -1,984 +0,0 @@
2
-<skin version="0.4" path="C:/Program Files/Psi+/skins/universal/night" author="tux-den" name="Night">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#b1ad84</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#c7caae</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#004209</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#555555</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#ffffff</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#8a8a8a</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#ffffff</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#e6e6e6</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#e6e6e6</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#8d8d8d</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#e6e6e6</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#bebebe</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#cb7273</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#6fb17a</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#939393</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#e6e6e6</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#e6e6e6</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#e6e6e6</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#e6e6e6</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#000000</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">27</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">TabDlg {
38
-   background: #11140f;
39
-   border: none;
40
-}
41
-
42
-PsiTabBar {
43
-   background: url(C:/Program Files/Psi+/skins/universal/night/gr.png) repeat-x qlineargradient(x1: 0, y1: 0, x1: 0, y2: 1, stop: 0 #11140f, stop: 1.0 #000000) ;
44
-   padding-top: 20px;
45
-   border-left: 3px solid #777777;
46
-   border-right: 3px solid #777777;
47
-   border-bottom: 2px solid argb(0,0,100,250);
48
-   alignment: center;
49
-}
50
-
51
-QToolBar {
52
-   background: #525252;
53
-   border: 2px solid #8b8b8b;
54
-   color:  argb(0,0,250,200);
55
-}
56
-
57
-QToolBar#toolbar {
58
-   background: url(C:/Program Files/Psi+/skins/universal/night/gr.png) repeat-x;
59
-   border: 1px solid argb(0,0,100,150);
60
-   border-radius: 3px;
61
-   border-bottom-left-radius: 3px;
62
-   border-bottom-right-radius: 3px;
63
-   padding: 0px;
64
-}
65
-
66
-QWidget#pte_topic {
67
-   background: #525252;
68
-   border: 2px solid #8b8b8b;
69
-   color:  argb(0,0,220,200);
70
-}
71
-
72
-GroupchatTopicDlg {
73
-   background: #11140f;
74
-   border: none
75
-}
76
-
77
-QDialog#MUCConfig {
78
-   background: #11140f;
79
-   border: none;
80
-}
81
-
82
-QLineEdit#le_filter {
83
-   background: #525252;
84
-   border: 2px solid #8b8b8b;
85
-   color:  argb(0,0,220,200)
86
-}
87
-
88
-QWidget#tab_affiliations {
89
-   background: #525252;
90
-   border: 2px solid #8b8b8b;
91
-   color:  argb(0,0,220,200)
92
-}
93
-
94
-QWidget#tab_general {
95
-   background: #525252;
96
-   border: 2px solid #8b8b8b;
97
-   color:  argb(0,0,220,200)
98
-}
99
-
100
-QFrame#tv_affiliations {
101
-   background: #525252;
102
-   border: 2px solid #8b8b8b;
103
-   color:  argb(0,0,220,200);
104
-}
105
-
106
-QFrame#log {
107
-   background: #525252;
108
-   border: 2px solid #8b8b8b;
109
-   color:  argb(0,0,220,200);
110
-   margin-left: 2px;
111
-   margin-right: 2px;
112
-}
113
-
114
-QFrame#topFrame {
115
-   background: #11140f;
116
-   border-left: 3px solid #777777;
117
-   border-right: 3px solid #777777;
118
-   margin-right: 0px;
119
-}
120
-
121
-QDialog {
122
-   background: #525252;
123
-   border: 2px solid #8b8b8b;
124
-   color:  argb(0,0,220,200);
125
-}
126
-
127
-QDialog>QFrame {
128
-   color: #ffffff;
129
-}
130
-
131
-QDialog>QLineEdit {
132
-   background: #525252;
133
-   border: 2px solid #8b8b8b;
134
-   color:  argb(0,0,220,200);
135
-}
136
-
137
-QWidget#bottomFrame {
138
-   background: #11140f;
139
-   border-left: 3px solid #777777;
140
-   border-right: 3px solid #777777;
141
-   border-bottom: 3px solid #777777;
142
-}
143
-
144
-QWidget#bottomFrame>QWidget>QTextEdit {
145
-   background: #525252;
146
-   border: 2px solid #8b8b8b;
147
-   border-radius: 5px;
148
-   color:  #ffffff;
149
-   margin-left: 4px;
150
-   margin-bottom: 4px;
151
-   margin-right: 4px;
152
-}
153
-
154
-QToolButton {
155
-   background: argb(0,0,50,100);
156
-   border: 1px solid #cccccc;
157
-   border-radius: 4px;
158
-   width: 22px;
159
-   height: 18px;
160
-   margin-left: 4px;
161
-   margin-right: 4px;
162
-   margin-top: 2px;
163
-   margin-bottom: 2px;
164
-}
165
-
166
-QToolButton:hover {
167
-   background: argb(0,0,100,150);
168
-   border-radius: 4px; 
169
-}
170
-
171
-QToolButton:pressed {
172
-   background: argb(0,0,250,130);
173
-}
174
-
175
-QToolButton:checked {
176
-   background: argb(0,0,250,130);
177
-   border-radius: 4px;
178
-}
179
-
180
-Q3ListView * {
181
-   background: #525252;
182
-   border: 2px solid #8b8b8b;
183
-   color:  argb(0,0,250,200)
184
-}
185
-
186
-QFrame#lv_users {
187
-   background: argb(0,0,0,0);
188
-   border: 1px solid #777777;
189
-   selection-background-color: argb(0,0,250,200); 
190
-   selection-color: #000000; 
191
-}
192
-
193
-QToolButton::menu-indicator {
194
-   image: none; 
195
-}
196
-
197
-PopupActionButton::menu-indicator {
198
-   image: none; 
199
-}
200
-
201
psi-plus-resources-1.tar.xz/skins/universal/night/right.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/right_press.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_close.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_close_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_close_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_hide.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_hide_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_hide_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_maximize.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_maximize_hover.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/tb_maximize_pressed.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/top.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/night/top_press.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/orange/chat.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/down.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/down_pres.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/left.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/left_pres.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/menu.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/orange.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/psi.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/right.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/right_pres.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/splitter_hor.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/splitter_ver.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/tbar.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/the_orange.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/the_orange.skn Deleted
201
 
1
@@ -1,874 +0,0 @@
2
-<skin version="0.7" path="C:/Program Files/Psi+/skins/universal/orange" author="tux-den" name="the Orange">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#ffffff</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#000000</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#ffffff</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#000000</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#004bb4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#7e0000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#4080c0</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#ff0000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#0000ff</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#008000</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#ffc861</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">true</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">30</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">true</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">QFrame#log {
38
-   border: 0px solid #ffffff;
39
-}
40
-
41
-QLineEdit#le_topic { 
42
-   background-color: argb(0,0,0,0); border: 0px solid argb(0,0,0,30); 
43
-   border-radius: 6px; 
44
-   color: #7b3a00; 
45
-   font-size: 12px; 
46
-   font-weight: bold; 
47
-   padding: 25px; 
48
-   margin-left: -20px; 
49
-} 
50
-  
51
-QToolBar {
52
-   background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffffff, stop: 0.1 #fbfbfb, stop: 0.4 #dee0e6, stop: 0.5 #c2c5d1, stop: 0.6 #c7cad5, stop: 0.7 #e1e3e9, stop: 0.9 #fbfbfb, stop: 1.0 #ffffff); 
53
-   border: 1px solid #b1b1b1; 
54
-}
55
-  
56
-QFrame#topFrame { 
57
-   background: url(C:/Program Files/Psi+/skins/universal/orange/chat.png) repeat-x #ffffff; 
58
-   border-right: 3px; 
59
-} 
60
-  
61
-QFrame#bottomFrame { 
62
-   background: #ffffff; 
63
-   border: 0px solid #ffffff; 
64
-} 
65
-  
66
-QTextEdit { 
67
-   background-color: argb(0,0,0,0); 
68
-   border: 0px solid argb(0,0,0,30); 
69
-   border-radius: 6px; 
70
-   font-size: 12px; 
71
-   color: #000000; 
72
-}
73
-  
74
-QLineEdit#le_topic { 
75
-   background-color: argb(0,0,0,0); 
76
-   border: 0px solid argb(0,0,0,30); 
77
-   border-radius: 6px; color: #7b3a00; 
78
-   font-size: 12px; 
79
-   font-weight: bold; 
80
-   padding: 25px; 
81
-   margin-left: -20px; 
82
-} 
83
-  
84
-QLineEdit#le_jid { 
85
-   background-color: argb(0,0,0,0); 
86
-   border: 0px solid argb(0,0,0,30); 
87
-   border-radius: 6px; color: #7b3a00; 
88
-   font-size: 12px; 
89
-   font-weight: bold; 
90
-   padding: 25px; 
91
-   margin-left: -20px; 
92
-} 
93
-  
94
-QFrame#lv_users { 
95
-   background: argb(0,0,0,0); 
96
-   border: 0px solid #ffffff; 
97
-   border-radius: 6px; font-size: 12px; 
98
-   margin-top: 1px; color: #000000; 
99
-   selection-background-color: argb(40,150,250,100); 
100
-   selection-color: #000000; 
101
-}
102
-  
103
-QSplitter::handle:horizontall { 
104
-   background: url(C:/Program Files/Psi+/skins/universal/orange/splitter_ver.png) no-repeat center #ffffff; 
105
-   height: 10px;
106
-} 
107
-  
108
-QSplitter::handle:vertical { 
109
-   background: url(C:/Program Files/Psi+/skins/universal/orange/splitter_hor.png) no-repeat center #ffffff;
110
-   height: 10px;
111
-} 
112
-  
113
-PsiTabBar { 
114
-   background: url(C:/Program Files/Psi+/skins/universal/orange/tbar.png) repeat-x #ffffff; 
115
-   border: 2px solid argb(20,100,160,180); 
116
-   border-left: 0px; 
117
-   border-right: 0px; 
118
-   border-bottom: 0px;
119
-   alignment: center;
120
-}
121
-
122
-QTabBar::tab:hover { 
123
-   background: argb(20,100,160,100); border: 1px solid argb(20,100,160,100); 
124
-   border-radius: 10px; 
125
-   height: 25px; 
126
-   border-top-left-radius: 0px; 
127
-   border-top-right-radius: 0px; 
128
-   padding-left: 4px; 
129
-}
130
-
131
-QTabBar::tab:selected { 
132
-   background: argb(20,100,160,180); 
133
-   border: 2px solid argb(20,100,160,100); 
134
-   border-top: 0px solid #ffffff; 
135
-   border-radius: 10px; 
136
-   height: 25px; 
137
-   border-top-left-radius: 0px; 
138
-   border-top-right-radius: 0px; 
139
-   color: #ffffff; 
140
-   font-weight: bold; 
141
-   padding-left: 4px; 
142
-}
143
-
144
-QTabBar::tab { 
145
-   background: argb(20,100,160,60); 
146
-   border: 1px solid argb(20,100,160,100); 
147
-   border-radius: 10px; 
148
-   height: 25px; 
149
-   border-top-left-radius: 0px; 
150
-   border-top-right-radius: 0px;
151
-   padding-left: 4px; 
152
-}
153
- 
154
-QLabel#lb_client { 
155
-   background-color: argb(0,0,0,0); 
156
-   border: 0px solid argb(0,0,0,30); 
157
-   border-radius: 6px; 
158
-   color: #7b3a00; 
159
-   font-size: 12px; 
160
-   font-weight: bold; 
161
-   min-width: 10ex; 
162
-} 
163
-  
164
-QLabel#lb_count { 
165
-   background-color: argb(0,0,0,0); 
166
-   border: 0px solid argb(0,0,0,30); 
167
-   color: #7b3a00; 
168
-   font-size: 12px; 
169
-   font-weight: bold; 
170
-   margin-right: 10px; 
171
-} 
172
-  
173
-QLabel#lb_ident { 
174
-   background-color: argb(0,0,0,0); 
175
-   border: 0px solid argb(0,0,0,30); 
176
-   border-radius: 6px; 
177
-   color: #7b3a00; 
178
-   font-size: 12px; 
179
-   font-weight: bold; 
180
-   padding: 15px; 
181
-} 
182
-
183
-QLabel#lb_status { 
184
-   background-color: argb(0,0,0,0); 
185
-   border: 0px solid argb(0,0,0,30); 
186
-   border-radius: 6px; 
187
-   color: #7b3a00; 
188
-   font-size: 12px; 
189
-   font-weight: bold; 
190
-   padding-left: 15px; 
191
-   min-width: 8ex; 
192
-}
193
-
194
-QPushButton { 
195
-   background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #9bdb70, stop: 0.5 #2e990e,stop: 0.7 #0d7908, stop: 1 #006805); 
196
-   width: 105px; 
197
-   height: 22px; 
198
-   color: #ffffff; 
199
-   border: 1px solid #006805; 
200
-   border-radius: 11px; 
201
psi-plus-resources-1.tar.xz/skins/universal/orange/tooltip.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/up.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/orange/up_pres.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/qip_infium Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/qip_infium/qip_infium.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/qip_infium/qip_infium.skn Deleted
201
 
1
@@ -1,388 +0,0 @@
2
-<skin version="0.5" author="tux-den" name="QIP Infium">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#f7fbff</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#00008c</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#f6f8ff</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#110083</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#1e00b4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#0002b3</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#ff0004</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#0a00a2</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#4080c0</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#ff0000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#0000ff</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#008000</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">false</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">24</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">false</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">QFrame#log { 
38
-     background-color: #f5faff; 
39
-     border: 1px solid #a0a0a0; 
40
-     border-bottom-color: #a0a0a0; 
41
-     border-radius: 1px; 
42
-}
43
-
44
-QToolButton:pressed { 
45
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #9c9c9c, stop: 0.4 #e2e2e2, stop: 0.5 #e4e4e4, stop: 0.6 #dedede, stop: 1.0 #e3e3e3); 
46
-     min-height: 1em;  
47
-     border: 1px solid #545454; 
48
-     border-bottom-color: #545454; 
49
-     border-radius: 4px; 
50
-}
51
-
52
-QToolBar {  
53
-     border: 0px solid #ffffff; 
54
-}
55
-
56
-Q3ListView { 
57
-     background-color: #f5faff; 
58
-}
59
-
60
-QWidget#bottomFrame>QWidget>QTextEdit { 
61
-     background-color: #f5faff; 
62
-     border: 1px solid #a0a0a0; 
63
-     border-bottom-color: #a0a0a0; 
64
-     border-radius: 1px; 
65
-}
66
-
67
-QLineEdit#lb_client { 
68
-     background-color: #f0f0f0; 
69
-     border: 1px solid #a0a0a0; 
70
-     border-bottom-color: #ffffff; 
71
-}
72
-
73
-QLineEdit#le_topic { 
74
-     background-color: #f0f0f0; 
75
-     border: 1px solid #a0a0a0; 
76
-     border-bottom-color: #ffffff; 
77
-}
78
-
79
-QLineEdit#le_jid { 
80
-     background-color: #f0f0f0; 
81
-     border: 1px solid #a0a0a0; 
82
-     border-bottom-color: #ffffff; 
83
-}
84
-
85
-QLabel#lb_ident { 
86
-     background-color: #f0f0f0; 
87
-     border: 1px solid #a0a0a0; 
88
-     border-bottom-color: #ffffff; 
89
-}
90
-
91
-QLabel#lb_countl { 
92
-     background-color: #f0f0f0; 
93
-     border: 1px solid #a0a0a0; 
94
-     border-bottom-color: #ffffff; 
95
-}
96
-
97
-QLabel#lb_status { 
98
-     background-color: #f0f0f0; 
99
-     border: 0px solid #a0a0a0; 
100
-     border-bottom-color: #ffffff; 
101
-}
102
-
103
-QTabBar::tab { 
104
-     background-color: #e3e1db; 
105
-     border: 2px solid #C4C4C3; 
106
-     border-bottom-color: #C2C7CB; 
107
-     border-top-left-radius: 4px; 
108
-     border-top-right-radius: 4px; 
109
-     min-width: 8ex; 
110
-     padding: 2px; 
111
-}
112
-
113
-QTabBar::tab:selected, QTabBar::tab:hover { 
114
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,  stop: 0 #fafafa, stop: 0.4 #f4f4f4, stop: 0.5 #e7e7e7, stop: 1.0 #fafafa); 
115
-}
116
-
117
-QTabBar::tab:selected { 
118
-     border-color: #9B9B9B; 
119
-     border-bottom-color: #C2C7CB; 
120
-}
121
-
122
-QLabel#lb_client { 
123
-     border: 0px solid #ffffff; 
124
-}
125
-
126
-QToolButton::menu-indicator {
127
-     image: none; 
128
-}
129
-       
130
-</options.ui.chat.css>
131
-        <options.ui.look.contactlist.use-outlined-group-headings type="bool">false</options.ui.look.contactlist.use-outlined-group-headings>
132
-        <options.ui.look.contactlist.use-slim-group-headings type="bool">false</options.ui.look.contactlist.use-slim-group-headings>
133
-        <options.ui.contactlist.toolbars-state type=""></options.ui.contactlist.toolbars-state>
134
-        <options.ui.contactlist.toolbars.m0.actions type="QStringList">
135
-            <item>button_status</item>
136
-            <item>show_statusmsg</item>
137
-            <item>show_self</item>
138
-        </options.ui.contactlist.toolbars.m0.actions>
139
-        <options.ui.contactlist.toolbars.m0.dock.nl type="bool">true</options.ui.contactlist.toolbars.m0.dock.nl>
140
-        <options.ui.contactlist.toolbars.m0.dock.position type="int">3</options.ui.contactlist.toolbars.m0.dock.position>
141
-        <options.ui.contactlist.toolbars.m0.key type="QString">{d6063d32-ec91-40a9-8cea-2b283c56115d}</options.ui.contactlist.toolbars.m0.key>
142
-        <options.ui.contactlist.toolbars.m0.locked type="bool">true</options.ui.contactlist.toolbars.m0.locked>
143
-        <options.ui.contactlist.toolbars.m0.name type="QString">Кнопки</options.ui.contactlist.toolbars.m0.name>
144
-        <options.ui.contactlist.toolbars.m0.visible type="bool">true</options.ui.contactlist.toolbars.m0.visible>
145
-        <options.ui.contactlist.toolbars.m1.actions type="QStringList">
146
-            <item>show_offline</item>
147
-            <item>enable_groups</item>
148
-            <item>menu_play_sounds</item>
149
-            <item>show_hidden</item>
150
-            <item>menu_file_transfer</item>
151
-            <item>menu_toolbars</item>
152
-            <item>menu_new_message</item>
153
-        </options.ui.contactlist.toolbars.m1.actions>
154
-        <options.ui.contactlist.toolbars.m1.dock.nl type="bool">true</options.ui.contactlist.toolbars.m1.dock.nl>
155
-        <options.ui.contactlist.toolbars.m1.dock.position type="int">2</options.ui.contactlist.toolbars.m1.dock.position>
156
-        <options.ui.contactlist.toolbars.m1.key type="QString">{0b44e443-5ed9-43c9-9dd2-7d2e277219fb}</options.ui.contactlist.toolbars.m1.key>
157
-        <options.ui.contactlist.toolbars.m1.locked type="bool">true</options.ui.contactlist.toolbars.m1.locked>
158
-        <options.ui.contactlist.toolbars.m1.name type="QString">Показ контактов</options.ui.contactlist.toolbars.m1.name>
159
-        <options.ui.contactlist.toolbars.m1.visible type="bool">true</options.ui.contactlist.toolbars.m1.visible>
160
-        <options.ui.contactlist.toolbars.m2.actions type="QStringList">
161
-            <item>button_options</item>
162
-            <item>menu_disco</item>
163
-            <item>menu_add_contact</item>
164
-            <item>menu_account_setup</item>
165
-        </options.ui.contactlist.toolbars.m2.actions>
166
-        <options.ui.contactlist.toolbars.m2.dock.nl type="bool">true</options.ui.contactlist.toolbars.m2.dock.nl>
167
-        <options.ui.contactlist.toolbars.m2.dock.position type="int">3</options.ui.contactlist.toolbars.m2.dock.position>
168
-        <options.ui.contactlist.toolbars.m2.key type="QString">{f814d7eb-c981-43f1-a054-97e39a595fee}</options.ui.contactlist.toolbars.m2.key>
169
-        <options.ui.contactlist.toolbars.m2.locked type="bool">true</options.ui.contactlist.toolbars.m2.locked>
170
-        <options.ui.contactlist.toolbars.m2.name type="QString">Обработка событий</options.ui.contactlist.toolbars.m2.name>
171
-        <options.ui.contactlist.toolbars.m2.visible type="bool">true</options.ui.contactlist.toolbars.m2.visible>
172
-        <options.ui.contactlist.toolbars.m3.actions type=""></options.ui.contactlist.toolbars.m3.actions>
173
-        <options.ui.contactlist.toolbars.m3.dock.nl type=""></options.ui.contactlist.toolbars.m3.dock.nl>
174
-        <options.ui.contactlist.toolbars.m3.dock.position type=""></options.ui.contactlist.toolbars.m3.dock.position>
175
-        <options.ui.contactlist.toolbars.m3.key type=""></options.ui.contactlist.toolbars.m3.key>
176
-        <options.ui.contactlist.toolbars.m3.locked type=""></options.ui.contactlist.toolbars.m3.locked>
177
-        <options.ui.contactlist.toolbars.m3.name type=""></options.ui.contactlist.toolbars.m3.name>
178
-        <options.ui.contactlist.toolbars.m3.visible type=""></options.ui.contactlist.toolbars.m3.visible>
179
-        <options.ui.save.toolbars-state type="QByteArray">AAAA/wAAAAD9AAAAAAAAALwAAALqAAAABAAAAAQAAAAIAAAACPwAAAADAAAAAgAAAAEAAABsAG0AYQBpAG4AdwBpAG4ALQB0AG8AbwBsAGIAYQByAC0AewAwAGIANAA0AGUANAA0ADMALQA1AGUAZAA5AC0ANAAzAGMAOQAtADkAZABkADIALQA3AGQAMgBlADIANwA3ADIAMQA5AGYAYgB9AQAAAAD/////AAAAAAAAAAAAAAADAAAAAQAAAGwAbQBhAGkAbgB3AGkAbgAtAHQAbwBvAGwAYgBhAHIALQB7AGQANgAwADYAMwBkADMAMgAtAGUAYwA5ADEALQA0ADAAYQA5AC0AOABjAGUAYQAtADIAYgAyADgAMwBjADUANgAxADEANQBkAH0BAAAAAP////8AAAAAAAAAAAAAAAMAAAABAAAAbABtAGEAaQBuAHcAaQBuAC0AdABvAG8AbABiAGEAcgAtAHsAZgA4ADEANABkADcAZQBiAC0AYwA5ADgAMQAtADQAMwBmADEALQBhADAANQA0AC0AOQA3AGUAMwA5AGEANQA5ADUAZgBlAGUAfQEAAAAA/////wAAAAAAAAAA</options.ui.save.toolbars-state>
180
-        <options.ui.tabs.grouping type="QString">CM</options.ui.tabs.grouping>
181
-        <options.iconsets.activities type="QString">psiplus-activities-16.jisp</options.iconsets.activities>
182
-        <options.iconsets.clients type="QString">fingerprint.jisp</options.iconsets.clients>
183
-        <options.iconsets.custom-status type=""></options.iconsets.custom-status>
184
-        <options.iconsets.emoticons type="QStringList">
185
-            <item>kolobok_light.jisp</item>
186
-        </options.iconsets.emoticons>
187
-        <options.iconsets.moods type="QString">silk.jisp</options.iconsets.moods>
188
-        <options.iconsets.status type="QString">qipinfium.jisp</options.iconsets.status>
189
-        <options.iconsets.system type="QString">qipinfium_sys.jisp</options.iconsets.system>
190
-        <options.ui.chat.avatars.show type="bool">true</options.ui.chat.avatars.show>
191
-        <options.ui.chat.avatars.size type="int">45</options.ui.chat.avatars.size>
192
-        <options.ui.chat.central-toolbar type="bool">true</options.ui.chat.central-toolbar>
193
-        <options.ui.chat.disable-paste-send type="bool">false</options.ui.chat.disable-paste-send>
194
-        <options.ui.chat.use-expanding-line-edit type="bool">false</options.ui.chat.use-expanding-line-edit>
195
-        <options.ui.chat.use-message-icons type="bool">true</options.ui.chat.use-message-icons>
196
-        <options.ui.contactlist.css type="QString">PopupActionButton { 
197
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #fbfbfb, stop: 0.4 #e9e9e9, stop: 0.5 #e8e8e8, stop: 0.6 #d2d2d2, stop: 1.0 #f7f7f7); 
198
-     min-height: 1em;  
199
-     border: 1px solid #a8a8a8; 
200
-     border-bottom-color: #a8a8a8; 
201
psi-plus-resources-1.tar.xz/skins/universal/sky Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/sky/sky.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/sky/sky.skn Deleted
201
 
1
@@ -1,533 +0,0 @@
2
-<skin version="0.5" author="tux-den" name="Sky">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#f0f0f0</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#5a5a5a</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#969696</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#ffffff</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#004bb4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#7e0000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#4080c0</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#ff0000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#0000ff</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#008000</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">true</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">true</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">25</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">true</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">QFrame#topFrame { 
38
-     background-color: #8ab4f6; 
39
-     border: none;
40
-     border-bottom-color: #8ab4f6; 
41
-     border-radius: 5px;  
42
-}
43
-
44
-QFrame#log { 
45
-     background-color: #ffffff; 
46
-     border: 3px solid #e4e4e4;  
47
-     border-radius: 7px;
48
-     margin-bottom: -2px; 
49
-     padding: 2px;
50
-}
51
-
52
-QToolBar { 
53
-     background-color: #e4e4e4; 
54
-     border: 4px solid #e4e4e4; 
55
-     border-bottom-color: #e4e4e4; 
56
-     border-top-left-radius: 6px; 
57
-     border-top-right-radius: 6px; 
58
-}
59
-
60
-QLineEdit#le_topic { 
61
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f0f0f0, stop: 0.4 #ebebeb, stop: 0.7 #dedede, stop: 1.0 #d9d9d9); 
62
-     border: 1px solid #ffffff; 
63
-     border-bottom-color: #ffffff; 
64
-     border-radius: 3px; 
65
-     padding-left: 3px;
66
-}
67
-
68
-QLineEdit#le_jid { 
69
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f0f0f0, stop: 0.4 #ebebeb, stop: 0.7 #dedede, stop: 1.0 #d9d9d9); 
70
-     border: 1px solid #ffffff; 
71
-     border-bottom-color: #ffffff; 
72
-     border-radius: 3px; 
73
-     padding-left: 3px;
74
-     padding-right: 3px;
75
-}
76
-
77
-QLabel#lb_status { 
78
-     background: argb(0,0,0,0);
79
-     border: none; 
80
-     padding: 0px; 
81
-}
82
-
83
-QLabel#lb_client { 
84
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f0f0f0, stop: 0.4 #ebebeb, stop: 0.7 #dedede, stop: 1.0 #d9d9d9); 
85
-     border: 1px solid #ffffff; 
86
-     border-bottom-color: #ffffff; 
87
-     border-radius: 3px; 
88
-     padding: 2px;  
89
-}
90
-
91
-QLabel#lb_count { 
92
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f0f0f0, stop: 0.4 #ebebeb, stop: 0.7 #dedede, stop: 1.0 #d9d9d9); 
93
-     border: 1px solid #ffffff; 
94
-     border-bottom-color: #ffffff; 
95
-     border-radius: 3px; 
96
-     padding: 2px;  
97
-}
98
-
99
-QLabel#lb_ident { 
100
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f0f0f0, stop: 0.4 #ebebeb, stop: 0.7 #dedede, stop: 1.0 #d9d9d9); 
101
-     border: 1px solid #ffffff; 
102
-     border-bottom-color: #ffffff; 
103
-     border-radius: 3px; 
104
-     padding: 2px;  
105
-}
106
-
107
-QWidget#bottomFrame { 
108
-     background-color: #fefefe; 
109
-     border: 1px solid #8d909c; 
110
-     border-bottom-color: #8d909c; 
111
-     border-radius: 5px; 
112
-}
113
-
114
-QWidget#bottomFrame>QWidget>QTextEdit { 
115
-     background-color: #ececec; 
116
-     border: 3px solid #e4e4e4; 
117
-     border-radius: 4px; 
118
-     margin-left: 10px;
119
-     margin-bottom: 6px;
120
-     padding-left: 3px; 
121
-     padding-top: -2px;
122
-}
123
-
124
-QPushButton#pb_send { 
125
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f0f0f0, stop: 0.4 #ebebeb, stop: 0.7 #dedede, stop: 1.0 #d9d9d9); 
126
-     border: 1px solid #8d909c; 
127
-     border-bottom-color: #8d909c; 
128
-     border-radius: 5px; 
129
-     min-width: 0ex; 
130
-     margin-right: 12px;
131
-     margin-top: 4px;
132
-     margin-left: 14px;
133
-     margin-bottom: 10px;
134
-     width: 30px;  
135
-}
136
-
137
-QPushButton:pressed#pb_send { 
138
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaaaaa, stop: 0.4 #d5d5d5, stop: 0.7 #d5d5d5, stop: 1.0 #c6c6c6); 
139
-     border: 1px solid #717171; 
140
-     border-bottom-color: #717171; 
141
-}
142
-
143
-QPushButton#pb_topic { 
144
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f0f0f0, stop: 0.4 #ebebeb, stop: 0.7 #dedede, stop: 1.0 #d9d9d9); 
145
-     border: 1px solid #8d909c; 
146
-     border-bottom-color: #8d909c; 
147
-     border-radius: 5px; 
148
-     width: 80px; 
149
-     height: 20px;
150
-     margin-right: 5px;
151
-     margin-bottom: 3px;
152
-     margin-top: 2px;
153
-}
154
-
155
-QPushButton:pressed#pb_topic { 
156
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaaaaa, stop: 0.4 #d5d5d5, stop: 0.7 #d5d5d5, stop: 1.0 #c6c6c6); 
157
-     border: 2px solid #717171; 
158
-     border-bottom-color: #717171; 
159
-}
160
-
161
-QToolButton { 
162
-     border: 1px solid #e4e4e4; 
163
-     width: 28px; 
164
-}
165
-
166
-QToolButton:hover { 
167
-     border: 1px solid #cccccc; 
168
-     border-radius: 5px;
169
-}
170
-
171
-QToolButton:pressed  { 
172
-       background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaaaaa, stop: 0.4 #d5d5d5, stop: 0.7 #d5d5d5, stop: 1.0 #c6c6c6); 
173
-     border: 1px solid #cccccc; 
174
-        border-radius: 5px;
175
-}
176
-
177
-QToolButton:checked  { 
178
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaaaaa, stop: 0.4 #d5d5d5, stop: 0.7 #d5d5d5, stop: 1.0 #c6c6c6); 
179
-     border: 1px solid #cccccc; 
180
-     border-radius: 5px;
181
-}
182
-
183
-QToolButton::menu-indicator {
184
-     image: none; 
185
-}
186
-
187
-QWidget#avatar { 
188
-     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ebebeb, stop: 0.4 #e0e0e0, stop: 0.7 #d3d3d3, stop: 1.0 #c9c9c9);  
189
-     border: 3px solid #c8c8c8; 
190
-     border-bottom-color: #ececec; 
191
-     border-radius: 5px; 
192
-     margin-right: 10px;
193
-     margin-left: 0px;
194
-     margin-bottom: 5px;
195
-}
196
-
197
-Q3ListView { 
198
-     background-color: #ffffff; 
199
-     border: 3px solid #e4e4e4; 
200
-     border-radius: 7px;  
201
psi-plus-resources-1.tar.xz/skins/universal/tkabber Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/skins/universal/tkabber/tkabber.png Deleted
psi-plus-resources-1.tar.xz/skins/universal/tkabber/tkabber.skn Deleted
201
 
1
@@ -1,206 +0,0 @@
2
-<skin version="0.3" author="tux-den" name="Tkabber">
3
-    <options>
4
-        <options.ui.look.colors.chat.link-color type="QColor">#0000ff</options.ui.look.colors.chat.link-color>
5
-        <options.ui.look.colors.chat.mailto-color type="QColor">#0000ff</options.ui.look.colors.chat.mailto-color>
6
-        <options.ui.look.colors.contactlist.background type="QColor">#ffffff</options.ui.look.colors.contactlist.background>
7
-        <options.ui.look.colors.contactlist.grouping.header-background type="QColor">#f0f0f0</options.ui.look.colors.contactlist.grouping.header-background>
8
-        <options.ui.look.colors.contactlist.grouping.header-foreground type="QColor">#5a5a5a</options.ui.look.colors.contactlist.grouping.header-foreground>
9
-        <options.ui.look.colors.contactlist.profile.header-background type="QColor">#969696</options.ui.look.colors.contactlist.profile.header-background>
10
-        <options.ui.look.colors.contactlist.profile.header-foreground type="QColor">#ffffff</options.ui.look.colors.contactlist.profile.header-foreground>
11
-        <options.ui.look.colors.contactlist.status.away type="QColor">#004bb4</options.ui.look.colors.contactlist.status.away>
12
-        <options.ui.look.colors.contactlist.status.do-not-disturb type="QColor">#7e0000</options.ui.look.colors.contactlist.status.do-not-disturb>
13
-        <options.ui.look.colors.contactlist.status.offline type="QColor">#646464</options.ui.look.colors.contactlist.status.offline>
14
-        <options.ui.look.colors.contactlist.status.online type="QColor">#000000</options.ui.look.colors.contactlist.status.online>
15
-        <options.ui.look.colors.contactlist.status-messages type="QColor">#808080</options.ui.look.colors.contactlist.status-messages>
16
-        <options.ui.look.colors.messages.highlighting type="QColor">#4080c0</options.ui.look.colors.messages.highlighting>
17
-        <options.ui.look.colors.messages.informational type="QColor">#008000</options.ui.look.colors.messages.informational>
18
-        <options.ui.look.colors.messages.received type="QColor">#0000ff</options.ui.look.colors.messages.received>
19
-        <options.ui.look.colors.messages.sent type="QColor">#ff0000</options.ui.look.colors.messages.sent>
20
-        <options.ui.look.colors.messages.usertext type="QColor">#606060</options.ui.look.colors.messages.usertext>
21
-        <options.ui.look.colors.muc.role-moderator type="QColor">#ff0000</options.ui.look.colors.muc.role-moderator>
22
-        <options.ui.look.colors.muc.role-norole type="QColor">#000000</options.ui.look.colors.muc.role-norole>
23
-        <options.ui.look.colors.muc.role-participant type="QColor">#0000ff</options.ui.look.colors.muc.role-participant>
24
-        <options.ui.look.colors.muc.role-visitor type="QColor">#008000</options.ui.look.colors.muc.role-visitor>
25
-        <options.ui.look.colors.passive-popup.border type="QColor">#5297f9</options.ui.look.colors.passive-popup.border>
26
-        <options.ui.look.colors.tooltip.background type="QColor">#e9ecc7</options.ui.look.colors.tooltip.background>
27
-        <options.ui.look.colors.tooltip.text type="QColor">#000000</options.ui.look.colors.tooltip.text>
28
-        <options.ui.look.contactlist.status-change-animation.color1 type="QColor">#000000</options.ui.look.contactlist.status-change-animation.color1>
29
-        <options.ui.look.contactlist.status-change-animation.color2 type="QColor">#969696</options.ui.look.contactlist.status-change-animation.color2>
30
-        <options.ui.contactlist.disable-scrollbar type="bool">false</options.ui.contactlist.disable-scrollbar>
31
-        <options.ui.contactlist.avatars.avatars-at-left type="bool">false</options.ui.contactlist.avatars.avatars-at-left>
32
-        <options.ui.contactlist.avatars.radius type="int">5</options.ui.contactlist.avatars.radius>
33
-        <options.ui.contactlist.avatars.show type="bool">false</options.ui.contactlist.avatars.show>
34
-        <options.ui.contactlist.avatars.size type="int">24</options.ui.contactlist.avatars.size>
35
-        <options.ui.contactlist.avatars.use-default-avatar type="bool">false</options.ui.contactlist.avatars.use-default-avatar>
36
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
37
-        <options.ui.chat.css type="QString">QPushButton#pb_topic {  
38
-   width: 50px; 
39
-   height:15px; 
40
-   border: 0px solid #C4C4C3; 
41
-   min-width:3ex;  
42
-   padding: 3px;  
43
-   margin: 1px; 
44
-}
45
-
46
-QPushButton:hover#pb_topic { border: 2px solid #C4C4C3; }
47
-
48
-QToolBar { 
49
-   border: 0px solid #C4C4C3; 
50
-   min-width: 13ex;  
51
-   padding: 5px;  
52
-   margin: 1px; 
53
-}
54
-
55
-QTabBar::tab { 
56
-   border: 2px solid #fafafa; 
57
-   border-bottom-color: #a0a0a0;  
58
-   height: 25px; 
59
-}
60
-
61
-QTabBar::tab:selected { 
62
-   background-color: #e4e4e4; 
63
-   border: 2px solid #a0a0a0; 
64
-   border-bottom-color: #d4d4d4; 
65
-   height: 25px; 
66
-}
67
-
68
-QDialog QTabBar::tab {
69
-   width: 85px;
70
-}
71
-</options.ui.chat.css>
72
-        <options.ui.look.contactlist.use-outlined-group-headings type="bool">false</options.ui.look.contactlist.use-outlined-group-headings>
73
-        <options.ui.look.contactlist.use-slim-group-headings type="bool">false</options.ui.look.contactlist.use-slim-group-headings>
74
-        <options.ui.contactlist.toolbars-state type=""></options.ui.contactlist.toolbars-state>
75
-        <options.ui.contactlist.toolbars.m0.actions type="QStringList">
76
-            <item>button_status</item>
77
-        </options.ui.contactlist.toolbars.m0.actions>
78
-        <options.ui.contactlist.toolbars.m0.dock.nl type="bool">true</options.ui.contactlist.toolbars.m0.dock.nl>
79
-        <options.ui.contactlist.toolbars.m0.dock.position type="int">3</options.ui.contactlist.toolbars.m0.dock.position>
80
-        <options.ui.contactlist.toolbars.m0.key type="QString">{211704af-88a4-488c-a46f-b9b658d3ac14}</options.ui.contactlist.toolbars.m0.key>
81
-        <options.ui.contactlist.toolbars.m0.locked type="bool">true</options.ui.contactlist.toolbars.m0.locked>
82
-        <options.ui.contactlist.toolbars.m0.name type="QString">Кнопки</options.ui.contactlist.toolbars.m0.name>
83
-        <options.ui.contactlist.toolbars.m0.visible type="bool">true</options.ui.contactlist.toolbars.m0.visible>
84
-        <options.ui.contactlist.toolbars.m1.actions type="QStringList">
85
-            <item>menu_add_contact</item>
86
-            <item>menu_disco</item>
87
-            <item>menu_join_groupchat</item>
88
-            <item>show_offline</item>
89
-        </options.ui.contactlist.toolbars.m1.actions>
90
-        <options.ui.contactlist.toolbars.m1.dock.nl type="bool">true</options.ui.contactlist.toolbars.m1.dock.nl>
91
-        <options.ui.contactlist.toolbars.m1.dock.position type="int">2</options.ui.contactlist.toolbars.m1.dock.position>
92
-        <options.ui.contactlist.toolbars.m1.key type="QString">{7cbf7939-0cda-4992-9592-1aa9d5359a82}</options.ui.contactlist.toolbars.m1.key>
93
-        <options.ui.contactlist.toolbars.m1.locked type="bool">true</options.ui.contactlist.toolbars.m1.locked>
94
-        <options.ui.contactlist.toolbars.m1.name type="QString">Показ контактов</options.ui.contactlist.toolbars.m1.name>
95
-        <options.ui.contactlist.toolbars.m1.visible type="bool">true</options.ui.contactlist.toolbars.m1.visible>
96
-        <options.ui.contactlist.toolbars.m2.actions type="QStringList">
97
-            <item>event_notifier</item>
98
-        </options.ui.contactlist.toolbars.m2.actions>
99
-        <options.ui.contactlist.toolbars.m2.dock.nl type="bool">true</options.ui.contactlist.toolbars.m2.dock.nl>
100
-        <options.ui.contactlist.toolbars.m2.dock.position type="int">3</options.ui.contactlist.toolbars.m2.dock.position>
101
-        <options.ui.contactlist.toolbars.m2.key type="QString">{010ee98a-6edd-49ce-ae31-ad6c9f210168}</options.ui.contactlist.toolbars.m2.key>
102
-        <options.ui.contactlist.toolbars.m2.locked type="bool">true</options.ui.contactlist.toolbars.m2.locked>
103
-        <options.ui.contactlist.toolbars.m2.name type="QString">Обработка событий</options.ui.contactlist.toolbars.m2.name>
104
-        <options.ui.contactlist.toolbars.m2.visible type="bool">true</options.ui.contactlist.toolbars.m2.visible>
105
-        <options.ui.contactlist.toolbars.m3.actions type=""></options.ui.contactlist.toolbars.m3.actions>
106
-        <options.ui.contactlist.toolbars.m3.dock.nl type=""></options.ui.contactlist.toolbars.m3.dock.nl>
107
-        <options.ui.contactlist.toolbars.m3.dock.position type=""></options.ui.contactlist.toolbars.m3.dock.position>
108
-        <options.ui.contactlist.toolbars.m3.key type=""></options.ui.contactlist.toolbars.m3.key>
109
-        <options.ui.contactlist.toolbars.m3.locked type=""></options.ui.contactlist.toolbars.m3.locked>
110
-        <options.ui.contactlist.toolbars.m3.name type=""></options.ui.contactlist.toolbars.m3.name>
111
-        <options.ui.contactlist.toolbars.m3.visible type=""></options.ui.contactlist.toolbars.m3.visible>
112
-        <options.ui.save.toolbars-state type="QByteArray">AAAA/wAAAAD9AAAAAAAABC0AAAMqAAAABAAAAAQAAAAIAAAACPwAAAADAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAA</options.ui.save.toolbars-state>
113
-        <options.ui.tabs.grouping type="QString">ACM</options.ui.tabs.grouping>
114
-        <options.iconsets.activities type="QString">default</options.iconsets.activities>
115
-        <options.iconsets.clients type="QString">fingerprint.jisp</options.iconsets.clients>
116
-        <options.iconsets.custom-status type=""></options.iconsets.custom-status>
117
-        <options.iconsets.moods type="QString">default</options.iconsets.moods>
118
-        <options.iconsets.status type="QString">tkabber.jisp</options.iconsets.status>
119
-        <options.iconsets.system type="QString">tkabber_sys.jisp</options.iconsets.system>
120
-        <options.ui.chat.avatars.show type="bool">false</options.ui.chat.avatars.show>
121
-        <options.ui.chat.avatars.size type="int">32</options.ui.chat.avatars.size>
122
-        <options.ui.chat.central-toolbar type="bool">false</options.ui.chat.central-toolbar>
123
-        <options.ui.chat.disable-paste-send type="bool">false</options.ui.chat.disable-paste-send>
124
-        <options.ui.chat.use-expanding-line-edit type="bool">false</options.ui.chat.use-expanding-line-edit>
125
-        <options.ui.chat.use-message-icons type="bool">false</options.ui.chat.use-message-icons>
126
-        <options.ui.contactlist.css type="QString">QToolBar { border: 0px solid;  padding: 2px; }
127
-
128
-PopupActionButton { 
129
-   min-height: 1.5em;  
130
-   border: 2px solid #ffffff; 
131
-   border-bottom-color: #a0a0a0; 
132
-   margin: 0px; 
133
-}
134
-
135
-QWidget#avatar { 
136
-   margin: 10px; 
137
-}
138
-
139
-QTreeView { 
140
-     alternate-background-color: #ffffff;
141
-}</options.ui.contactlist.css>
142
-        <options.ui.contactlist.enable-groups type="bool">true</options.ui.contactlist.enable-groups>
143
-        <options.ui.contactlist.show.agent-contacts type="bool">false</options.ui.contactlist.show.agent-contacts>
144
-        <options.ui.contactlist.show.offline-contacts type="bool">false</options.ui.contactlist.show.offline-contacts>
145
-        <options.ui.contactlist.show-activity-icons type="bool">false</options.ui.contactlist.show-activity-icons>
146
-        <options.ui.contactlist.show-all-client-icons type="bool">false</options.ui.contactlist.show-all-client-icons>
147
-        <options.ui.contactlist.show-client-icons type="bool">false</options.ui.contactlist.show-client-icons>
148
-        <options.ui.contactlist.show-geolocation-icons type="bool">false</options.ui.contactlist.show-geolocation-icons>
149
-        <options.ui.contactlist.show-group-counts type="bool">true</options.ui.contactlist.show-group-counts>
150
-        <options.ui.contactlist.show-menubar type="bool">true</options.ui.contactlist.show-menubar>
151
-        <options.ui.contactlist.show-mood-icons type="bool">false</options.ui.contactlist.show-mood-icons>
152
-        <options.ui.contactlist.show-status-icons type="bool">true</options.ui.contactlist.show-status-icons>
153
-        <options.ui.contactlist.show-tune-icons type="bool">false</options.ui.contactlist.show-tune-icons>
154
-        <options.ui.contactlist.status-icon-over-avatar type="bool">false</options.ui.contactlist.status-icon-over-avatar>
155
-        <options.ui.contactlist.status-messages.show type="bool">false</options.ui.contactlist.status-messages.show>
156
-        <options.ui.contactlist.status-messages.single-line type="bool">true</options.ui.contactlist.status-messages.single-line>
157
-        <options.ui.contactlist.tooltip.avatar type="bool">true</options.ui.contactlist.tooltip.avatar>
158
-        <options.ui.contactlist.tooltip.client-version type="bool">true</options.ui.contactlist.tooltip.client-version>
159
-        <options.ui.contactlist.tooltip.css type="QString"></options.ui.contactlist.tooltip.css>
160
-        <options.ui.contactlist.tooltip.geolocation type="bool">true</options.ui.contactlist.tooltip.geolocation>
161
-        <options.ui.contactlist.tooltip.last-status type="bool">true</options.ui.contactlist.tooltip.last-status>
162
-        <options.ui.contactlist.tooltip.pgp type="bool">true</options.ui.contactlist.tooltip.pgp>
163
-        <options.ui.contactlist.use-status-change-animation type="bool">true</options.ui.contactlist.use-status-change-animation>
164
-        <options.ui.contactlist.use-transport-icons type="bool">false</options.ui.contactlist.use-transport-icons>
165
-        <options.ui.emoticons.use-emoticons type="bool">true</options.ui.emoticons.use-emoticons>
166
-        <options.ui.mac.use-brushed-metal-windows type=""></options.ui.mac.use-brushed-metal-windows>
167
-        <options.ui.muc.colored-history type="bool">true</options.ui.muc.colored-history>
168
-        <options.ui.save.splitter-state type="QByteArray"></options.ui.save.splitter-state>
169
-        <options.ui.save.tabs-geometry type="QSize">
170
-            <width>882</width>
171
-            <height>810</height>
172
-        </options.ui.save.tabs-geometry>
173
-        <options.ui.tabs.show-tab-buttons type="bool">false</options.ui.tabs.show-tab-buttons>
174
-        <options.ui.tabs.show-tab-close-buttons type="bool">false</options.ui.tabs.show-tab-close-buttons>
175
-        <options.ui.tabs.use-tabs type="bool">true</options.ui.tabs.use-tabs>
176
-        <options.ui.contactlist.show.self-contact type="bool">false</options.ui.contactlist.show.self-contact>
177
-        <options.ui.notifications.passive-popups.css type="QString"></options.ui.notifications.passive-popups.css>
178
-        <options.ui.contactlist.show-roster-avatar-frame type="bool">false</options.ui.contactlist.show-roster-avatar-frame>
179
-        <options.ui.tabs.show-tab-icons type="bool">false</options.ui.tabs.show-tab-icons>
180
-        <options.ui.muc.show-client-icons type="bool">false</options.ui.muc.show-client-icons>
181
-        <options.ui.contactlist.roster-at-left-when-all-in-one-window type="bool">true</options.ui.contactlist.roster-at-left-when-all-in-one-window>
182
-        <options.ui.tabs.put-tabs-at-bottom type="bool">false</options.ui.tabs.put-tabs-at-bottom>
183
-        <options.ui.look.colors.muc.nick-colors type="QStringList">
184
-            <item>Blue</item>
185
-            <item>Green</item>
186
-            <item>Orange</item>
187
-            <item>Purple</item>
188
-            <item>Red</item>
189
-        </options.ui.look.colors.muc.nick-colors>
190
-        <options.ui.disable-send-button type="bool">true</options.ui.disable-send-button>
191
-        <options.ui.muc.roster-nick-coloring type="bool">false</options.ui.muc.roster-nick-coloring>
192
-        <options.ui.contactlist.roster-avatar-frame.avatar.size type="int">52</options.ui.contactlist.roster-avatar-frame.avatar.size>
193
-        <options.ui.contactlist.roster-avatar-frame.avatar.margin type="int">0</options.ui.contactlist.roster-avatar-frame.avatar.margin>
194
-        <options.ui.chat.use-small-chats type="bool">false</options.ui.chat.use-small-chats>
195
-        <options.iconsets.affiliations type="QString">default</options.iconsets.affiliations>
196
-        <options.ui.chat.scaled-message-icons type="bool">false</options.ui.chat.scaled-message-icons>
197
-        <options.ui.chat.theme type="QString">psi/classic</options.ui.chat.theme>
198
-        <options.ui.message.show-character-count type="bool">true</options.ui.message.show-character-count>
199
-        <options.ui.muc.show-affiliation-icons type="bool">false</options.ui.muc.show-affiliation-icons>
200
-        <options.ui.muc.show-groups type="bool">true</options.ui.muc.show-groups>
201
psi-plus-resources-1.tar.xz/sound Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/sound/attention.wav Deleted
psi-plus-resources-1.tar.xz/sound/chess_error.wav Deleted
psi-plus-resources-1.tar.xz/sound/chess_finish.wav Deleted
psi-plus-resources-1.tar.xz/sound/chess_move.wav Deleted
psi-plus-resources-1.tar.xz/sound/chess_start.wav Deleted
psi-plus-resources-1.tar.xz/sound/email.wav Deleted
psi-plus-resources-1.tar.xz/sound/pepnotify.wav Deleted
psi-plus-resources-1.tar.xz/sound/reminder.wav Deleted
psi-plus-resources-1.tar.xz/sound/watcher.wav Deleted
psi-plus-resources-1.tar.xz/themes Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/themes/chatview Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/themes/chatview/psi Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/images Deleted
2
 
1
-(directory)
2
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/images/ChatLog.png Deleted
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/images/HR.png Deleted
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/images/ScrollBarArrowDown.png Deleted
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/images/ScrollBarArrowUp.png Deleted
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/index.html Deleted
201
 
1
@@ -1,259 +0,0 @@
2
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3
-<html>
4
-<head>
5
-  <style type="text/css" media="screen,print">
6
-
7
-/* скролл-бар*/
8
-body::-webkit-scrollbar {
9
-  width:15px;
10
-  height:15px;}
11
-
12
-/* скролл-бар, кнопки перемотки*/
13
-body::-webkit-scrollbar-button {
14
-  display: block;
15
-  width: 15px;
16
-  height: 15px;}
17
-
18
-/* скролл-бар, вверху стрелка вверх*/
19
-body::-webkit-scrollbar-button:decrement:start {
20
-   background-color: #012F2F;
21
-   background-image: url(images/ScrollBarArrowUp.png);
22
-   border: 1px outset #3C7896;
23
-   border-radius: 3px;
24
-   padding: 2px;}
25
-
26
-/* скролл-бар, вверху стрелка вниз*/
27
-body::-webkit-scrollbar-button:increment:start {
28
-height: 0px;}
29
-
30
-/* скролл-бар, внизу стрелка вверх*/
31
-body::-webkit-scrollbar-button:decrement:end {
32
-   background-color: #031C19;
33
-   background-image: url(images/ScrollBarArrowUp.png);
34
-   border: 1px outset #3C7896;
35
-   border-radius: 3px;
36
-   padding: 2px;}
37
-
38
-/* скролл-бар, внизу стрелка вниз*/
39
-body::-webkit-scrollbar-button:increment:end {
40
-   background-color: #031C19;
41
-   background-image: url(images/ScrollBarArrowDown.png);
42
-   border: 1px outset #3C7896;
43
-   border-radius: 3px;
44
-   padding: 2px;}
45
-
46
-/* скролл-бар, ползунок*/
47
-body::-webkit-scrollbar-thumb {
48
-   background-color: #072A2C;
49
-
50
-   border: 1px outset #3C7896;
51
-   border-radius: 2px;}
52
-
53
-/* скролл-бар, подложка*/
54
-body::-webkit-scrollbar-track-piece {
55
-   margin-top: 1px;
56
-   margin-bottom: 1px;
57
-   background-color: #012123;
58
-   border: 1px inset #3C7896;
59
-   border-radius: 2px;}
60
-
61
-body {
62
-   background: url('images/ChatLog.png') bottom right no-repeat fixed; /* фоновый рисунок чата */
63
-   background-color: #001415; /* цвет фона чата */
64
-   margin: 0;
65
-   width: 100%;
66
-   height: 100%;
67
-   border: 0px;
68
-   padding: 0 0 2px 0;
69
-   text-shadow: 1px 1px 3px #101010;}
70
-
71
-body > div {
72
-   margin:0px 3px 0px 3px;
73
-   line-height:1.4em;
74
-   word-wrap:break-word !important;
75
-   white-space: pre-wrap !important;
76
-   overflow:hidden;}
77
-
78
-body > div img {
79
-   vertical-align: bottom;}
80
-
81
-body > div > img:first-child {
82
-   vertical-align: text-bottom;}
83
-
84
-.msg { /* обычные сообщения */
85
-   color: #32C8C3;}
86
-
87
-.style_time { /* стиль времени */
88
-   font-weight: normal;}
89
-
90
-.style_nick { /* стиль ника */
91
-   font-weight: normal;}
92
-
93
-.alert {  /* хайлайт */
94
-   font-weight: bold;
95
-   color: #9BDCC3;}
96
-
97
-.separator { /* разделитель в конференциях */
98
-   height: 6px;
99
-   background: url('images/HR.png');
100
-   border: 0px;}
101
-
102
-.sent {}
103
-
104
-.received {}
105
-
106
-.infmsg { /* информационные сообщения: тема, статусы... */ }
107
-
108
-.usertext {}
109
-
110
-.nicklink {
111
-   text-decoration:none;
112
-   color:inherit;}
113
-
114
-  </style>
115
-
116
-</head>
117
-
118
-<body>
119
-
120
-<script type="text/javascript">
121
-try {
122
-
123
-window[chatServer.jsNamespace()].theme = function() {
124
-   var nicks = {};
125
-   var nickNumber = 0;
126
-   var chat = window[chatServer.jsNamespace()];
127
-   
128
-   var cssBody = chat.util.findStyleSheet(document.styleSheets[0], "body").style;
129
-   var cssSentMsg = chat.util.findStyleSheet(document.styleSheets[0], ".sent").style;
130
-   var cssReceivedMsg = chat.util.findStyleSheet(document.styleSheets[0], ".received").style;
131
-   var cssInfMsg = chat.util.findStyleSheet(document.styleSheets[0], ".infmsg").style;
132
-   var cssUserText = chat.util.findStyleSheet(document.styleSheets[0], ".usertext").style;
133
-   var cssChatSays = chat.util.findStyleSheet(document.styleSheets[0], ".msg>span:first").style;
134
-   var useMessageIcons, messageIconsSize = 0;
135
-   
136
-   var applyPsiSettings = function() {
137
-       chat.util.updateObject(cssBody, eval("["+shared.session.getFont()+"][0]"));
138
-       cssBody.color = shared.server.getPaletteColor("Text");
139
-       cssSentMsg.color = shared.psiOption("options.ui.look.colors.messages.sent");
140
-       cssReceivedMsg.color = shared.psiOption("options.ui.look.colors.messages.received");
141
-       cssInfMsg.color = shared.psiOption("options.ui.look.colors.messages.informational");
142
-       cssUserText.color = shared.psiOption("options.ui.look.colors.messages.usertext");
143
-       useMessageIcons = shared.psiOption("options.ui.chat.use-message-icons");
144
-       if (shared.psiOption("options.ui.chat.scaled-message-icons")) {
145
-           var d = document.createElement("div");
146
-           d.style.position = "absolute";
147
-           d.style.top = "-1000;";
148
-           d.style.visibility = "hidden";
149
-           d.style.height = "1em";
150
-           shared.chatElement.appendChild(d);
151
-           messageIconsSize = parseInt(document.defaultView.getComputedStyle(d, null).height);
152
-           shared.chatElement.removeChild(d);
153
-       }
154
-   }
155
-   
156
-   var shared = chat.adapter.initSession();
157
-   shared.initTheme({
158
-       chatElement : document.body,
159
-       scroller : new chat.WindowScroller(true),
160
-       templates : {
161
-           message: shared.isMuc?
162
-               "<div class='msg'>%icon%<span style='color:%nickcolor%'>[%time%] %sender%</span> %message%</div>"
163
-               : "<div class='msg'>%icon%<span class='%sentrec%'>[%time%] %sender%</span> %message%</div>",
164
-           messageNC: shared.isMuc?
165
-               "<div style='color:%nickcolor%'>%icon%[%time%] %sender% %message%</div>"
166
-               : "<div class='%sentrec%'>%icon%[%time%] %sender% %message%</div>",
167
-           receivedMessage: shared.isMuc?
168
-               "<div class='msg'>%icon%<span style='color:%nickcolor%'>[%time%] %sender%</span> %alertedmessage%</div>"
169
-               : null,
170
-           spooledMessage: "<div class='infmsg'>%icon%[%time%] %sender% %message%</div>",
171
-           sys: "<div class='infmsg'>%icon%%message%</div>",
172
-           sysMessage: "<div class='infmsg'>%icon%[%time%] *** %message%</div>",
173
-           sysMessageUT: "<div class='infmsg'>%icon%[%time%] *** %message%: <span class='usertext'>%usertext%</span></div>",
174
-           lastMsgDate: "<div class='infmsg'>%icon%*** %date%</div>",
175
-           subject: shared.isMuc?
176
-               "<div class='infmsg'>%icon%[%time%] %message%<div class='usertext'><b>%usertext%</b></div></div>"
177
-               : "<div class='infmsg'>%icon%<b>*** %usertext%</b></div>",
178
-           trackbar: '<hr class=\'separator\' />'
179
-       },
180
-       dateFormat : "hh:mm:ss",
181
-       proxy : function() { //optional
182
-           if (shared.cdata.type == "settings") {
183
-               applyPsiSettings();
184
-               return false;
185
-           } else if (shared.cdata.type == "receipt") {
186
-               var img = document.getElementById("receipt"+shared.cdata.id);
187
-               if (img) {
188
-                   var sizeUri = messageIconsSize?"?w="+messageIconsSize+"&h="+messageIconsSize:"";
189
-                   img.src = "icon:psi/notification_chat_delivery_ok"+sizeUri;
190
-               }
191
-           }
192
-           if (shared.cdata.mtype == "message") {
193
-               var template = shared.cdata.emote && shared.templates.messageNC ||
194
-                   (shared.cdata.spooled && shared.templates.message || null);
195
-               if (template) {
196
-                   shared.appendHtml(template.toString(), shared.cdata.local?true:null);
197
-                   return false;
198
-               }
199
-           }
200
-       },
201
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/load.js Deleted
4
 
1
@@ -1,1 +0,0 @@
2
-chatServer.setMetaData({name: "LunnaCat Classic 1.1"});
3
\ No newline at end of file
4
psi-plus-resources-1.tar.xz/themes/chatview/psi/LunnaCat_Classic/screenshot.png Deleted
psi-plus-resources-1.tar.xz/themes/chatview/psi/new_classic.theme Deleted