diff --git a/data/gui/chat_control.ui b/data/gui/chat_control.ui
new file mode 100644
index 000000000..de3208afb
--- /dev/null
+++ b/data/gui/chat_control.ui
@@ -0,0 +1,831 @@
+
+
+
+
+
+
+ 110
+ 1
+ 10
+ 10
+
+
+ 110
+ 1
+ 10
+ 10
+
+
diff --git a/data/gui/groupchat_control.ui b/data/gui/groupchat_control.ui
new file mode 100644
index 000000000..cfc5ed4ae
--- /dev/null
+++ b/data/gui/groupchat_control.ui
@@ -0,0 +1,428 @@
+
+
+
+
+
+ True
+ 3
+ vertical
+
+
+ True
+ 1
+ 3
+ 3
+
+
+ True
+
+
+ True
+
+
+ True
+ gtk-missing-image
+
+
+ False
+ False
+ 5
+ 0
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ 5
+ vertical
+
+
+ True
+ 0
+ <span weight="heavy" size="large">room jid</span>
+ True
+
+
+ 0
+
+
+
+
+ True
+ 0
+ label
+ True
+ True
+
+
+ 1
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ False
+ False
+ 0
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ none
+
+
+ True
+ gtk-missing-image
+ 1
+
+
+
+
+ False
+ False
+ 0
+
+
+
+
+ False
+ 0
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ none
+ False
+
+
+ True
+ gtk-bold
+ 1
+
+
+
+
+ False
+ 1
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ vertical
+
+
+ False
+ 2
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ none
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ gtk-edit
+ 1
+
+
+
+
+ False
+ False
+ 3
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ none
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ gtk-properties
+ 1
+
+
+
+
+ False
+ False
+ 4
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ True
+ none
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ gtk-add
+ 1
+
+
+
+
+ False
+ False
+ 5
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ none
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ gtk-justify-fill
+ 1
+
+
+
+
+ False
+ False
+ 6
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ vertical
+
+
+ False
+ 7
+
+
+
+
+ True
+ True
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ none
+ False
+
+
+ True
+ 0
+ 0
+
+
+ True
+ gtk-execute
+ 1
+
+
+
+
+
+
+ False
+ False
+ 8
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+
+
+
+
+
+ 9
+
+
+
+
+ True
+ True
+ True
+
+
+ True
+ 0
+ 0
+
+
+ True
+ 2
+
+
+ True
+ gtk-jump-to
+
+
+ False
+ False
+ 0
+
+
+
+
+ True
+ _Send
+ True
+
+
+ False
+ False
+ 1
+
+
+
+
+
+
+
+
+ False
+ False
+ 10
+
+
+
+
+ False
+ 2
+
+
+
+
+ True
+ True
+ 3
+ 495
+ True
+
+
+ 0
+ True
+ vertical
+ 6
+
+
+ True
+ vertical
+ 6
+
+
+ 200
+ 60
+ True
+ True
+ automatic
+ automatic
+ in
+
+
+
+
+
+ 0
+
+
+
+
+ True
+ True
+ never
+ never
+ in
+
+
+
+
+
+ False
+ 1
+
+
+
+
+ 0
+
+
+
+
+ False
+ False
+
+
+
+
+ 100
+ True
+ True
+ never
+ automatic
+ in
+
+
+ True
+ True
+ 1
+ False
+
+
+
+
+ False
+ False
+
+
+
+
+ 1
+
+
+
+
diff --git a/data/gui/message_window.ui b/data/gui/message_window.ui
index 4caa87728..c39ecd494 100644
--- a/data/gui/message_window.ui
+++ b/data/gui/message_window.ui
@@ -14,1410 +14,64 @@
True
True
True
-
-
- True
- 3
- vertical
- 1
-
-
- True
-
-
- True
- vertical
-
-
- True
- 3
- 3
-
-
- True
-
-
- True
-
-
- True
- 5
- gtk-missing-image
-
-
- False
- False
- 5
- 0
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- vertical
-
-
- True
- 0
- <span weight="heavy" size="large">Contact name</span>
- True
-
-
- 0
-
-
-
-
- True
- 0
- label
- True
- True
-
-
-
- 1
-
-
-
-
- 1
-
-
-
-
- True
- 4
-
-
- True
- None
- 1
-
-
- 0
-
-
-
-
- True
- None
- 1
-
-
- 1
-
-
-
-
- True
- None
- 1
-
-
- 2
-
-
-
-
- True
- False
-
-
- True
- None
- 1
-
-
-
-
- False
- False
- 3
-
-
-
-
- True
- None
- 1
-
-
- 4
-
-
-
-
- True
- None
- 1
-
-
- 5
-
-
-
-
- 11
- True
-
-
-
-
-
- 6
-
-
-
-
- False
- False
- 2
-
-
-
-
- True
- False
-
-
- True
- None
-
-
-
-
- False
- False
- 3
-
-
-
-
-
-
-
-
- False
- False
- 0
-
-
-
-
- True
- vertical
-
-
- 60
- True
- 3
- automatic
- automatic
- in
-
-
-
-
-
- 0
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- none
- False
-
-
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-dialog-authentication
- 1
-
-
-
-
- False
- 0
-
-
-
-
- True
- True
- 3
- never
- never
- in
-
-
-
-
-
- 1
-
-
-
-
- False
- 1
-
-
-
-
- 1
-
-
-
-
- True
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Show a list of emoticons (Alt+M)
- none
- False
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-missing-image
- 1
-
-
-
-
- False
- 0
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Show a list of formattings
- none
- False
-
-
- True
- gtk-bold
- 1
-
-
-
-
- False
- 1
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- vertical
-
-
- False
- 2
-
-
-
-
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- True
- Add this contact to roster (Ctrl+D)
- none
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-add
- 1
-
-
-
-
- False
- False
- 3
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Send a file (Ctrl+F)
- none
- False
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 1
-
-
-
-
- False
- 4
-
-
-
-
- True
- True
- True
- Toggle audio session
- none
-
-
- True
- gtk-missing-image
- 1
-
-
-
-
- False
- 5
-
-
-
-
- True
- True
- True
- Toggle video session
- none
-
-
- True
- gtk-missing-image
- 1
-
-
-
-
- False
- 6
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Invite contacts to the conversation (Ctrl+G)
- none
- False
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-missing-image
- 1
-
-
-
-
- False
- 7
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Show the contact's profile (Ctrl+I)
- none
- False
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-info
- 2
-
-
-
-
- False
- 8
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Browse the chat history (Ctrl+H)
- none
- False
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-justify-fill
- 1
-
-
-
-
- False
- 9
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- vertical
-
-
- False
- 10
-
-
-
-
- True
- True
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Show a menu of advanced functions (Alt+D)
- none
- False
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-execute
- 1
-
-
-
-
- False
- 11
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
-
-
- 12
-
-
-
-
- True
- True
- True
-
-
- True
- 0
- 0
-
-
- True
- 2
-
-
- True
- gtk-jump-to
-
-
- False
- False
- 0
-
-
-
-
- True
- _Send
- True
-
-
- False
- False
- 1
-
-
-
-
-
-
-
-
- False
- 13
-
-
-
-
- False
- 2
-
-
-
-
- 0
-
-
-
-
- True
- vertical
- 6
-
-
- True
-
-
- 0
-
-
-
-
- True
- 4
- 3
- 6
- 6
-
-
- 1
- True
- True
- True
-
-
-
-
- 2
- True
- True
- True
-
-
- 1
- 2
-
-
-
-
- 3
- True
- True
- True
-
-
- 2
- 3
-
-
-
-
- 4
- True
- True
- True
-
-
- 1
- 2
-
-
-
-
- 5
- True
- True
- True
-
-
- 1
- 2
- 1
- 2
-
-
-
-
- 6
- True
- True
- True
-
-
- 2
- 3
- 1
- 2
-
-
-
-
- 7
- True
- True
- True
-
-
- 2
- 3
-
-
-
-
- 8
- True
- True
- True
-
-
- 1
- 2
- 2
- 3
-
-
-
-
- 9
- True
- True
- True
-
-
- 2
- 3
- 2
- 3
-
-
-
-
- *
- True
- True
- True
-
-
- 3
- 4
-
-
-
-
- 0
- True
- True
- True
-
-
- 1
- 2
- 3
- 4
-
-
-
-
- #
- True
- True
- True
-
-
- 2
- 3
- 3
- 4
-
-
-
-
- False
- 1
-
-
-
-
- True
- 0
- Sound volume:
-
-
- False
- 2
-
-
-
-
- 110
- True
- True
- adjustment2
- 0
- bottom
-
-
- False
- 3
-
-
-
-
- True
- 0
- Mic volume:
-
-
- False
- 4
-
-
-
-
- True
- True
- adjustment1
- 0
- bottom
-
-
- False
- 5
-
-
-
-
- True
-
-
- 6
-
-
-
-
- False
- 1
-
-
-
-
- 0
-
-
-
-
-
-
- True
- False
-
-
- True
- 4
-
-
- True
- gtk-missing-image
-
-
- False
- False
- 0
-
-
-
-
- True
- 0
- True
- end
-
-
- 1
-
-
-
-
- 20
- 20
- True
- True
- False
- none
-
-
- True
- 6
- gtk-close
- 1
-
-
-
-
- False
- False
- 2
-
-
-
-
-
-
- False
-
-
-
-
- True
- 3
- vertical
-
-
- True
- 1
- 3
- 3
-
-
- True
-
-
- True
-
-
- True
- gtk-missing-image
-
-
- False
- False
- 5
- 0
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- 5
- vertical
-
-
- True
- 0
- <span weight="heavy" size="large">room jid</span>
- True
-
-
- 0
-
-
-
-
- True
- 0
- label
- True
- True
-
-
- 1
-
-
-
-
- 1
-
-
-
-
-
-
-
-
- False
- False
- 0
-
-
-
-
- True
- True
- 3
- 495
-
-
- 0
- True
- vertical
- 6
-
-
- True
- vertical
- 6
-
-
- 200
- 60
- True
- True
- automatic
- automatic
- in
-
-
-
-
-
- 0
-
-
-
-
- True
- True
- never
- never
- in
-
-
-
-
-
- False
- 1
-
-
-
-
- 0
-
-
-
-
- False
- False
-
-
-
-
- 100
- True
- False
- never
- automatic
- in
-
-
- True
- True
- 1
- False
-
-
-
-
- False
- False
-
-
-
-
- 1
-
-
-
-
- True
-
-
- True
-
-
- True
- False
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Show a list of emoticons (Alt+M)
- none
-
-
- True
- gtk-missing-image
- 1
-
-
-
-
- False
- False
- 0
-
-
-
-
- False
- 0
-
-
-
-
- True
- False
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Show a list of formattings
- none
- False
-
-
- True
- gtk-bold
- 1
-
-
-
-
- False
- 1
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- False
- 2
-
-
-
-
- True
- False
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Change your nickname (Ctrl+N)
- none
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-edit
- 1
-
-
-
-
- False
- False
- 3
-
-
-
-
- True
- False
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Change the room's subject (Alt+T)
- none
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-properties
- 1
-
-
-
-
- False
- False
- 4
-
-
-
-
- True
- False
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- True
- Bookmark this room (Ctrl+B)
- none
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-add
- 1
-
-
-
-
- False
- False
- 5
-
-
-
-
- True
- False
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Browse the chat history (Ctrl+H)
- none
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- gtk-justify-fill
- 1
-
-
-
-
- False
- False
- 6
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
- False
- 7
-
-
-
-
- True
- False
- False
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- Show a menu of advanced functions (Alt+D)
- none
- False
-
-
- True
- 0
- 0
-
-
- True
- gtk-execute
- 1
-
-
-
-
-
-
- False
- False
- 8
-
-
-
-
- True
- GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
-
-
-
-
-
- 9
-
-
-
-
- True
- True
- False
-
-
- True
- 0
- 0
-
-
- True
- 2
-
-
- True
- gtk-jump-to
-
-
- False
- False
- 0
-
-
-
-
- True
- _Send
- True
-
-
- False
- False
- 1
-
-
-
-
-
-
-
-
- False
- False
- 10
-
-
-
-
- False
- 2
-
-
-
-
- 1
-
-
-
-
- True
- False
-
-
- True
- 4
-
-
- True
- gtk-missing-image
-
-
- False
- False
- 0
-
-
-
-
- True
- True
-
-
- False
- False
- 1
-
-
-
-
- 20
- 20
- True
- True
- False
- none
-
-
- True
- 6
- gtk-close
- 1
-
-
-
-
- False
- False
- 2
-
-
-
-
-
-
- 1
- False
-
-
-
- 110
- 1
- 10
- 10
-
-
- 110
- 1
- 10
- 10
+
+ True
+ False
+
+
+ True
+ 4
+
+
+ True
+ gtk-missing-image
+
+
+ False
+ False
+ 0
+
+
+
+
+ True
+ 0
+ True
+ end
+
+
+ 1
+
+
+
+
+ 20
+ 20
+ True
+ True
+ True
+ none
+
+
+ True
+ 6
+ gtk-close
+ 1
+
+
+
+
+ False
+ False
+ 2
+
+
+
+
diff --git a/src/chat_control.py b/src/chat_control.py
index 32c53fae6..d0b7d600d 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -240,7 +240,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
contact = c
MessageControl.__init__(self, type_id, parent_win, widget_name,
- contact, acct, resource = resource)
+ contact, acct, resource=resource)
widget = self.xml.get_object('history_button')
id_ = widget.connect('clicked', self._on_history_menuitem_activate)
@@ -587,7 +587,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
def _on_message_textview_key_press_event(self, widget, event):
# Ctrl [+ Shift] + Tab are not forwarded to notebook. We handle it here
- if self.widget_name == 'muc_child_vbox':
+ if self.widget_name == 'groupchat_control':
if event.keyval not in (gtk.keysyms.ISO_Left_Tab, gtk.keysyms.Tab):
self.last_key_tabs = False
if event.state & gtk.gdk.SHIFT_MASK:
@@ -1244,7 +1244,7 @@ class ChatControl(ChatControlBase):
def __init__(self, parent_win, contact, acct, session, resource = None):
ChatControlBase.__init__(self, self.TYPE_ID, parent_win,
- 'chat_child_vbox', contact, acct, resource)
+ 'chat_control', contact, acct, resource)
self.gpg_is_active = False
# for muc use:
diff --git a/src/groupchat_control.py b/src/groupchat_control.py
index c13f22732..267c2917e 100644
--- a/src/groupchat_control.py
+++ b/src/groupchat_control.py
@@ -199,7 +199,7 @@ class GroupchatControl(ChatControlBase):
def __init__(self, parent_win, contact, acct, is_continued=False):
ChatControlBase.__init__(self, self.TYPE_ID, parent_win,
- 'muc_child_vbox', contact, acct)
+ 'groupchat_control', contact, acct)
self.is_continued=is_continued
self.is_anonymous = True
diff --git a/src/message_control.py b/src/message_control.py
index 2cc1b3b4a..4d83ce763 100644
--- a/src/message_control.py
+++ b/src/message_control.py
@@ -60,8 +60,8 @@ class MessageControl:
gajim.last_message_time[self.account][self.get_full_jid()] = 0
- self.xml = gtkgui_helpers.get_gtk_builder('message_window.ui', widget_name)
- self.widget = self.xml.get_object(widget_name)
+ self.xml = gtkgui_helpers.get_gtk_builder('%s.ui' % widget_name)
+ self.widget = self.xml.get_object('%s_vbox' % widget_name)
def get_full_jid(self):
fjid = self.contact.jid
diff --git a/src/message_window.py b/src/message_window.py
index 079798f66..67dda9e54 100644
--- a/src/message_window.py
+++ b/src/message_window.py
@@ -125,9 +125,6 @@ class MessageWindow(object):
self._on_notebook_key_press)
self.handlers[id_] = self.notebook
- # Remove the pages from xml file
- while self.notebook.get_n_pages():
- self.notebook.remove_page(0)
# Tab customizations
pref_pos = gajim.config.get('tabs_position')
if pref_pos == 'bottom':