On 02/05/14 11:48, Sushant Raikar wrote:
> Yes, I did compile LyX successfully,
Great!

Be aware of its embedded debugging feature:

  lyx -dbg this,that,whatever

will enable debugging on the terminal of those comma-separated list of 
components. This is one or more of [1] (need to enter the symbolic name, not 
the number, e.g., lyx -dbg gui).

> I ported the patch to the latest code base, by ported I mean just copied the 
> relevant code and updated the corresponding files.
> It compiled! it ran!

Good!

> but it is having trouble connecting. "binding" works properly but 
> "connecting" says command blocked!

I was expected some glitch :-)...
> Also there are many things in the patch of which I understood the working 
> logically, but didn't understand programmatically.

feel free to post specific questions, I should still remember :-)...
> ex. what does the "d" pointer stand for in BufferView!

That's a design pattern to encapsulate the implementation of a class from its 
interface.

In C++, you would encapsulate by making private fields of the class private, 
e.g.,

class A  {
  private:
    int x;    // x cannot be access from outside methods of A
};

However, still whenever I change the implementation, e.g., rename x to xx, it 
will cause a re-compilation of all the modules depending on this header file, 
which is a great burden in a large project such as LyX, especially with header 
files used widely across many modules (how long does it take for you to 
recompile LyX ?)
With the private pattern, you have ideally smth like:

a.h:
class A  {
  class Private;
  private:
    Private *d;
};

a.cpp:
class A::Private {
  int x;
};

Now I can change whatever in A::Private, but the a.h header file won't change 
at all :-)!
Drawback is that now all the methods of A will need to do:

  d->x

to access x.

Is that clear?

> I will try going through it again! and list out all the difficulties I face 
> and ask it on the mailing list or to you.

the more you ask, the more you'll likely get explanations :-)...
>
> I am little bit comfortable now with git. I am working on separate branch 
> locally, How do I make this branch remote?

are you accessing the repo in read-only / anonymous mode, or did you clone with 
your own R/W access to the gsoc repo ? (Vincent should have granted you R/W 
access, right?)
> Btw  I have updated the wiki page with my proposal contents.

Great, thanks!

As for the insert image scenario, we can safely assume that, for now, we won't 
need to transfer the image at all. When user inserts an image, she dispatches 
an LFUN that creates an Inset containing the path to the image. If we dispatch 
that on the other side, the image will be displayed correctly only if on that 
same side the file is already in-place. For now, we don't care about this, and 
user will have to copy the file by other means. Of course, that's among the 
add-ons we can think of later, *after* the main concurrent editing is done, if 
there's time.

    T.

[1]

$ lyx -dbg
List of supported debug flags:
         0         none  No debugging messages
         1         info  General information
         2         init  Program initialisation
         4          key  Keyboard events handling
         8          gui  GUI handling
        16       parser  Lyxlex grammar parser
        32        lyxrc  Configuration files reading
        64        kbmap  Custom keyboard definition
       128        latex  LaTeX generation/execution
       256       mathed  Math editor
       512         font  Font handling
      1024       tclass  Textclass files reading
      2048        lyxvc  Version control
      4096    lyxserver  External control interface
      8192         undo  Undo/Redo mechanism
     16384       action  User commands
     32768       lyxlex  The LyX Lexer
     65536       depend  Dependency information
    131072       insets  LyX Insets
    262144        files  Files used by LyX
    524288     workarea  Workarea events
   1048576    insettext  Insettext/tabular messages
   2097152     graphics  Graphics conversion and loading
   4194304      changes  Change tracking
   8388608     external  External template/inset messages
  16777216     painting  RowPainter profiling
  33554432    scrolling  Scrolling debugging
  67108864       macros  Math macros
 134217728          rtl  RTL/Bidi
 268435456       locale  Locale/Internationalisation
 536870912    selection  Selection copy/paste mechanism
1073741824         find  Find and replace mechanism
2147483648        debug  Developers' general debug messages
4294967295          any  All debugging messages

Reply via email to