After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 586145 - Side Tabs
Side Tabs
Status: RESOLVED OBSOLETE
Product: empathy
Classification: Core
Component: Chat
unspecified
Other Linux
: Normal enhancement
: ---
Assigned To: empathy-maint
empathy-maint
: 595376 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-06-17 17:06 UTC by Ben Tobin
Modified: 2018-05-22 13:31 UTC
See Also:
GNOME target: ---
GNOME version: Unversioned Enhancement


Attachments
Add a preference for setting the tab position on chat windows (15.49 KB, patch)
2011-07-29 01:39 UTC, Neil Roberts
none Details | Review
Add a preference for setting the tab position on chat windows (15.48 KB, patch)
2011-07-29 01:47 UTC, Neil Roberts
reviewed Details | Review
empathy-chat-window: Don't expand tabs when they are vertical (3.91 KB, patch)
2011-08-08 13:37 UTC, Neil Roberts
reviewed Details | Review
Remove m4/gsettings.m4 (3.81 KB, patch)
2011-08-10 00:09 UTC, Neil Roberts
none Details | Review
Add a preference for setting the tab position on chat windows (10.87 KB, patch)
2011-08-10 00:09 UTC, Neil Roberts
none Details | Review
empathy-chat-window: Don't expand tabs when they are vertical (3.69 KB, patch)
2011-08-10 00:10 UTC, Neil Roberts
none Details | Review
Add a GSetting to change the tab position on chat windows (8.32 KB, patch)
2011-09-29 22:52 UTC, Neil Roberts
reviewed Details | Review
empathy-chat: enable different tab positions (5.57 KB, patch)
2014-03-18 15:15 UTC, Andres Gomez
none Details | Review
empathy-chat: Add a GSetting to change the tab position on chat windows (6.25 KB, patch)
2014-03-18 15:23 UTC, Andres Gomez
none Details | Review

Description Ben Tobin 2009-06-17 17:06:56 UTC
I'd like to request a feature: One feature that Pidgin has, and that some people feel strongly about, is the ability to have chat tabs appear on the side of the pane instead of the top.
Comment 1 Pierre-Luc Beaudoin 2009-06-17 17:27:17 UTC
Rather than side tabs, why not a treeview (à la xchat)?
Comment 2 Ben Tobin 2009-06-17 17:36:22 UTC
I'm not familiar with the tree view as used in xchat, but some quick googling makes me think that it doesn't provide the same functionality as the side tabs I was referring to.  In this case, I simply mean that in the chat window, it would be nice to be able to switch between multiple ongoing chats with different people by selecting tabs located on the side rather than the top.

I can't think of hierarchical structure that would apply to that.
Comment 3 Will Thompson 2009-09-16 15:34:19 UTC
*** Bug 595376 has been marked as a duplicate of this bug. ***
Comment 4 Matěj Cepl 2009-09-17 05:17:08 UTC
I cannot seem to be able to rename this bug. Could be called

option to turn around empathy chat window to have tabs vertically on the left side of the window (aka side tabs)

I searched for this bug before filing mine but I couldn't find it.
Comment 5 Neil Roberts 2011-07-28 19:14:49 UTC
Is there any progress on this feature? It's surely pretty easy to implement and it would make Empathy massively more useful to me at least. With the tabs at the top it's unusable once you've got about 4 tabs.
Comment 6 Neil Roberts 2011-07-29 01:39:57 UTC
Created attachment 192846 [details] [review]
Add a preference for setting the tab position on chat windows

This adds a GSetting with the corresponding control in the preferences
dialog to choose the position of the tabs in a chat window. This is
useful so that the user can position the tabs vertically which allows
a lot more channels to be displayed before scrolling is needed.

The setting is stored as an new enum type. This needs support from the
gsettings build rules which needs an updated gsettings.m4. This patch
copies in the latest version from glib.
Comment 7 Neil Roberts 2011-07-29 01:47:24 UTC
Created attachment 192847 [details] [review]
Add a preference for setting the tab position on chat windows

Minor fix, oops
Comment 8 Neil Roberts 2011-08-08 13:37:15 UTC
Created attachment 193418 [details] [review]
empathy-chat-window: Don't expand tabs when they are vertical

When the tabs are displayed on the left or right of the window, the
'expand' and 'fill' properties are set to FALSE. Otherwise it looks
really ugly when there are only a few tabs and they are made really
tall. The window listens to notifications on the 'tab-pos' property
for the notebook so it can update the properties on the tabs.
Comment 9 Danielle Madeley 2011-08-08 22:28:04 UTC
Review of attachment 192847 [details] [review]:

While I can appreciate the use of side tabs so you can display more names, I'm not that wild about a preference that adds 4 options for displaying your tabs. I think I'd strongly prefer simple Top and Left.

Please separate the upgrade of gsettings.m4 into a separate patch. Alternatively, do we even need this any more? Can we just use the system version?

::: data/Makefile.am
@@ +74,3 @@
 	$(gsettings_files)		\
+	$(gsettings_ENUM_FILES)		\
+	$(srcdir)/org.gnome.Empathy.enums.xml \

Is this stored in a variable we can use?

::: data/empathy-enums.h
@@ +21,3 @@
+#ifndef __EMPATHY_ENUMS_H__
+#define __EMPATHY_ENUMS_H__
+

G_BEGIN_DECLS

@@ +29,3 @@
+  EMPATY_TAB_POSITION_BOTTOM
+} EmpathyTabPosition;
+

G_END_DECLS
Comment 10 Danielle Madeley 2011-08-08 22:32:03 UTC
Review of attachment 192847 [details] [review]:

::: data/empathy-enums.h
@@ +28,3 @@
+  EMPATY_TAB_POSITION_TOP,
+  EMPATY_TAB_POSITION_BOTTOM
+} EmpathyTabPosition;

Also, we should point out this is the same as GtkPositionType, or better still, can we use GtkPositionType instead of defining our own enum?
Comment 11 Danielle Madeley 2011-08-08 22:33:25 UTC
Review of attachment 193418 [details] [review]:

::: src/empathy-chat-window.c
@@ +1958,3 @@
+	 * vertical */
+
+

Don't need this GValue (see below).

@@ +1977,3 @@
+	gtk_container_child_set_property (GTK_CONTAINER (priv->notebook),
+					  GTK_WIDGET (chat),
+		case GTK_POS_LEFT:

gtk_container_child_set (notebook, chat
  "tab-expand", expand,
  "tab-fill", fill,
  NULL);
Comment 12 Neil Roberts 2011-08-10 00:01:47 UTC
Thanks for the review. I'm just about to push some updated patches.

It does seem to work to just delete gsettings.m4 so that it will pick up the one installed by glib instead so I've added a third patch to do that.

I've removed the 'right' and 'bottom' options from the UI but left them in for the configuration option seeing as it doesn't seem to do any harm there. I wonder if we should even consider not having the option at all in the UI and just make people set it from dconf? It is kind of an esoteric option. Or maybe we could do something even smarter and automatically switch to side tabs whenever having the tabs at the top would make it scroll. It seems to me that it's never really useful to have scrolling tabs as the tabs are needed for a quick glance to see what channels have new messages. If we could just get it to switch automatically then it would just 'do the right thing'. Any thoughts?

> Is this stored in a variable we can use?

It doesn't automatically get put in a variable but I suppose we could make one. It seems to work to not bother disting the file however so I've just removed that from the patch. This matches what gnome-settings-daemon does.

> Also, we should point out this is the same as GtkPositionType, or
> better still, can we use GtkPositionType instead of defining our own
> enum?

I've added a comment about that. To use GtkPositionType we would have
to get GTK to install an enum spec for it which it doesn't currently
do. It might be worth asking them if they could do that?

> G_BEGIN_DECLS

I don't think it makes sense to add this because the header doesn't
declare any functions. Also the header is never actually included
anywhere - it's solely used as something to pass to
gsettings_ENUM_FILES. G_BEGIN_DECLS is only really needed for public
headers so that it can be compiled with C++, right? I just copied what
gnome-settings-daemon does.

> Don't need this GValue (see below).

Ok, I've changed it like you suggested. The GValue was just there
because that's what the old code did.
Comment 13 Neil Roberts 2011-08-10 00:09:30 UTC
Created attachment 193508 [details] [review]
Remove m4/gsettings.m4

The copy of gsettings.m4 included in the git repo is out of date so it
does not support generating enum files. This patch just removes the
file so that aclocal will use the one installed by glib instead.
Comment 14 Neil Roberts 2011-08-10 00:09:48 UTC
Created attachment 193509 [details] [review]
Add a preference for setting the tab position on chat windows

Updated patch
Comment 15 Neil Roberts 2011-08-10 00:10:09 UTC
Created attachment 193510 [details] [review]
empathy-chat-window: Don't expand tabs when they are vertical

Updated patch
Comment 16 Danielle Madeley 2011-08-11 22:57:02 UTC
Codewise this is fine.

Guillaume, what do you think about having the preference appear in the UI? Or as a hidden preference?
Comment 17 Guillaume Desmottes 2011-08-15 07:11:11 UTC
(In reply to comment #16)
> Guillaume, what do you think about having the preference appear in the UI? Or
> as a hidden preference?

I don't really have a strong opinion on this. I wouldn't mind adding a preference, I think.
Comment 18 Neil Roberts 2011-09-19 17:12:37 UTC
Ping. Any news on the patches? As far as I understand from the messages everyone is happy for them to be committed? The gsettings.m4 patch conflicts with the one landed in bug 659377 but I guess we can just skip that patch if the local copy has been updated anyway. It seems like it would make sense to just delete it though.
Comment 19 Guillaume Desmottes 2011-09-20 08:41:02 UTC
We are currently in hard code freeze so those patches can't be merged until we branch for 3.2 (should be soon).

I tried your branch and hit this error when opening the preferences dialog:

** (empathy:21253): CRITICAL **: GtkBuilder Error (/home/cassidy/gnome/empathy/src/empathy-preferences.ui): Duplicate object ID 'box1' on line 634 (previously on line 91)


Anyway, as GNOME 3 is moving to offering a more coherent user experience and reducing UI preferences, I think we shouldn't add a preferences right now, at least until we got some input from design guys. We can keep the gsettings as a 'advanced/hidden' option though. Maybe that could be an option in gnome-tweak-tool?
Comment 20 Neil Roberts 2011-09-29 22:52:24 UTC
Created attachment 197830 [details] [review]
Add a GSetting to change the tab position on chat windows

I've combined the two patches into one and removed the UI side of
it. The GSettings patch should no longer be needed.
Comment 21 Guillaume Desmottes 2011-09-30 09:19:36 UTC
Review of attachment 197830 [details] [review]:

So tried your branch and now get this error when starting empathy or empathy-chat.

GLib-GIO-CRITICAL **: Settings schema 'org.gnome.Empathy.conversation' is not installed

So I guess there is something wrong in your schema. 

    <key name="tab-position" enum="org.gnome.Empathy.EmpathyTabPosition">
Are you sure that's correct? Shouldn't we define a 'type' attribute as well? I didn't find the doc to deal with such enum in gsettings.
Comment 22 Andres Gomez 2014-03-18 15:15:40 UTC
Created attachment 272280 [details] [review]
empathy-chat: enable different tab positions

Fixes:
Comment 23 Andres Gomez 2014-03-18 15:16:46 UTC
This patch was getting rotten here and I'm also interested in side tabs.

I've just removed the split enumeration file and add the enumeration itself into the GSettings schema file.
Comment 24 Andres Gomez 2014-03-18 15:23:14 UTC
Created attachment 272283 [details] [review]
empathy-chat: Add a GSetting to change the tab position on chat windows

Based on the previous work by Neil Roberts <neil@linux.intel.com>.

This adds a GSetting to choose the position of the tabs in a chat
window. This is useful so that the user can position the tabs
vertically which allows a lot more channels to be displayed before
scrolling is needed. There is no corresponding preference for the
setting on the assumption that it is a bit of an obscure feature.

Fixes:
Comment 25 Andres Gomez 2014-03-18 15:24:44 UTC
Comment on attachment 272283 [details] [review]
empathy-chat: Add a GSetting to change the tab position on chat windows

Actually, let's give Neil the credit for this patch.
Comment 26 Vadim Rutkovsky 2014-03-23 10:28:58 UTC
(In reply to comment #24)
> This adds a GSetting to choose the position of the tabs in a chat
> window. This is useful so that the user can position the tabs
> vertically which allows a lot more channels to be displayed before
> scrolling is needed. There is no corresponding preference for the
> setting on the assumption that it is a bit of an obscure feature.
Thanks, Andres, worked for me perfectly. Can the tabs pane also be resizable?
Comment 27 Andres Gomez 2014-03-31 12:12:18 UTC
(In reply to comment #26)
> (In reply to comment #24)
> > This adds a GSetting to choose the position of the tabs in a chat
> > window. This is useful so that the user can position the tabs
> > vertically which allows a lot more channels to be displayed before
> > scrolling is needed. There is no corresponding preference for the
> > setting on the assumption that it is a bit of an obscure feature.
> Thanks, Andres, worked for me perfectly. Can the tabs pane also be resizable?

Actually, not :(.

See bug 727383.
Comment 28 José María Casanova Crespo 2014-06-06 11:13:14 UTC
I've recompiled with the attachment 272283 [details] [review] and it worked fine. Would it be possible to have this feature in next release.
Comment 29 Nathaniel McCallum 2014-07-24 14:39:46 UTC
Please merge this. This feature is essential for anyone with a high number of chat rooms!
Comment 30 Andres Gomez 2014-10-17 09:06:13 UTC
Pinging again about this bug.

I can push this patch but I would really appreciate some of empathy developers to review and mark as "commit-now" first.
Comment 31 GNOME Infrastructure Team 2018-05-22 13:31:25 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/empathy/issues/79.