Detailed view of Expert Config Page



This post is a detailed view of the my first GSOC process. I don’t post entries to the blogs often, so the ones I post are generally long posts. One of the reasons of the opening this blog was to provide information for the new contributors(like me). For better transition to being productive. I did a lot of small mistakes which are blocking the development. I thought telling these mistakes or some challenges to the others should be useful. I will publish them later. So anyway get ready to a long post.


I was hoping to get a boost on development and better understanding the LibreOffice Code when I first applied to the GSOC. I wasn’t have a great experience on coding. Most of the work I did before was some School projects. Biggest one was implementing  a graph algorithms visualizer with Python. So we can say I am not experienced at all.

Because of my lack of experience I wasn’t very productive during the project. Half of my time spent on learning things and the other half spent on implementing the things I learned. I was a learner mostly. It was enough for me to finishing the main goals of the project. I did lots of things first time in my life. I used a profiler first time, which is a cool thing in my friend group. 🙂 Lots of things like that. So my personal goal is accomplished somehow. I get a great boost for understanding the code. 🙂

That’s enough trash talk I think. Let’s talk about the project. 🙂

Project Details

First, screenshots(because we love screenshots , aren’t we all?):




The page is now handles about 25K lines of options. It shows all of them and edits them back. Libreoffice has a about:config utility as expected from the GSOC project. Yes it is working but it is not in enough quality I think. At least not enough for me. I will continue to work especially on this page.

Current situation with technical details.

  • Page is currently a tab page.(SfxTabPage)
  • Takes the options using UNO API with a recursive function. Basically it is a tree traversal algorithm.(it is named preorder depth-first traversal as I remember)
  • Uses  “OptHeaderTabListBox” for showing the options. It is basically a “SvSimpleTable”.
  • Edit button opens a new dialog(value dialog) and checks the given string according to the type of the option. If it is correct stores it in a vector for saving it later.
  • value dialog handles list types as comma separated string.(i.e if list is has “0,1,2”, it will show them to you as “0,1,2,”. Expects new value as same format.)
  • boolean types are toggled with edit button no new dialog opens.
  • If you try to enter a string instead of a integer type(short,long,hyper) you simply cannot. It controls the key inputs for integer types.
  • If you write a number which exceeds the range of the number it is controlled for integers. But if you do this for float,double or in a list type the value will be 0. Need some work on there a little more.
  • Page loads about 6 seconds. It was 20 minutes on first working load. Still not perfect but I can definitely say better :).
  • Page don’t have a filterbar yet. Which is important when you talk about 25K lines of options.
  • Page has visual problems. Values are so long, tab page is not enough for that long. Thinking to move it as a Dialog to advanced page.
  • There is a default button which doesn’t work for now.
  • Value dialog has a custom edit widget. I planned to use a custom multi edit but couldn’t make it work. So for the time being I used a custom edit.

So yes, It works but also need more work for quality. Which I plan to make the page better in following weeks.

Thats it for now.


Yazı çok uzun. Daha sonra ayrı bir girdi olarak göndereceğim. İngilizcesinden takip etmeye çalışabilirsiniz şimdilik. 🙂



Detailed view of Expert Config Page” üzerine 3 düşünce

  1. Ralph Aichinger

    I absolutely love this “about:config”-type interface, hoping the regular options dialog will be cleaned up and simplified as soon as this feature works flawlessly. The options dialog is really needlessly complex.

    One thing though: In trying out this expert config, what I disliked most was the fixed size of the options dialog. Is there hope that the options dialog will be resizable, eventually?

  2. Noel Grandin

    Nice. You want to look at the Label code for how it renders text when there is not enough space e.g. it shrinks something like “very very long piece of text” to “very….text”, on the assumption that the beginning and the end of the text is most useful.

    But otherwise, nice work! I hack on LO, and it truly is a monster, with quite a long learning curve. But it also has extremely friendly and helpful people 🙂


Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın: Logosu hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s