Hi Xueqing,

On Tue, 2013-04-16 at 21:42 -0500, Ashley Shan wrote

> My name is Xueqing Shan, and I am a freshman in Vanderbilt University
> in Tennessee planning to participate in Google Summer of Code. I am
> particularly interested in this project of LyX: "UI improvements and
> non-linear writing enhancements". I looked at your blog posts and have
> some ideas. I have sent my ideas to LyX developers' mailing list, but
> I think it's a better idea to contact you directly since you have done
> a lot of preliminary work. I would greatly appreciate if you can share
> your thoughts with me or give me some suggestions.

It is wonderful to hear from you and I am glad that you are excited
about this project. I've read over your thoughts and will respond to
them fully.

However, I am currently buried in a project deadline and will not have
time to respond till this weekend. What follows are my brief thoughts.
As I said, I will respond more fully when I am able.

> So here's what I'm thinking. There are two options for a student
> developer working on this project:

> 1. Continue to work on the existing project. I saw the source code for
> the outliner. So if I am about to work on the existing project and
> completing the outliner and the corkboard, I wish I could know more
> details about the progress and design of them. By the way, I haven't
> found any code about the corkboard you mentioned in your blog.

The code for both the corkboard and the outliner are available from the
Luanchpad repository:

https://code.launchpad.net/~lyx-outline-devel/lyx-outline/lyx-outline.devel

The outliner and corkboard can be found in the /src/frontends/qt4
folder. The code for the corkboard is in Corkboard.h and Corkboard.cpp.
The code for the outliner is in the OutlineView.h and OutlineView.cpp.

There is also a supporting class called DataManager (.h, .cpp). The UI
is provided by widgets, which have class names similar to Corkboard.h
and Corkboard.cpp.
> 
> 2. Start a brand new idea or make significant changes to the outliner
> and the corkboard. I have been thinking maybe we can combine
> functionalities of the outliner and the corkboard, making elements in
> the outliner moveable, so the user can drag and insert and edit
> directly in the outline view (and in the actual document at the same
> time). 

At present, this is planned. They are linked through the underlying
model, and drag/drop has been implemented (though it needs to be cleaned
up). It would be good if we could move it to a QGraphicsScene linked to
the underlying document model. Additionally, the way which we process
changes in the document and link the text to the model also needs to be
updated. Right now, it scans the whole text and creates the model each
time a major update is completed.

There has been some talk about allowing signals and slots into the core
of LyX, that might be one option.
> 
> Another brand new idea of mine is to have a "draft" interface for
> writing, and this interface must allows the user to drag and rearrange
> sentences and phrases. Sentences are separated by newline characters
> and dots, while the separation of phrases requires a little bit more
> work to implement an algorithm to smartly determine pieces of
> thoughts. From my personal writing experience and my conversations
> with my humanities-major friends, such an interface would be much
> better than the traditional white blank Microsoft Word window.
> 
This sounds very interesting, could you expand more of what you have in
mind. Is there something similar you might be able to point me at so I
can get a better grip on the functionality?
> 
> Would you prefer a student developer to work on existing code or start
> a new idea?
> 
Either would be wonderful. I've had full intentions for refining the
existing code and releasing an update, but have not had time to do so.
If you are interested in exploring your own ideas, though, I am happy to
discuss those further as well.

Cheers,

Rob

PS, more to follow.

Reply via email to