<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://blog.gmane.org/gmane.editors.yzis.devel">
    <title>gmane.editors.yzis.devel</title>
    <link>http://blog.gmane.org/gmane.editors.yzis.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1635"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1632"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1631"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1630"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1627"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1626"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1622"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1621"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1620"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1617"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1616"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1615"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1614"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1612"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1610"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1606"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1604"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1602"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1601"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.editors.yzis.devel/1600"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1635">
    <title>vim flaws</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1635</link>
    <description>http://upsilon.cc/~zack/blog/posts/2008/11/from_Vim_to_Emacs_-_part_2/

I'm sure you've all read that by now.

couple things I'm sure that are already being handled... external
spell checking, like aspell. Since that's how kde stuff usually
handles it. external syntax highlighting, etc. in fact as many
external tools as possible instead of writing your own code is
probably beneficial. if sed for example could be used instead of
implenting your own regex system. to prevent ui lock-ups could these
processes be forked? and run in a separate sub process? (kinda like
google chrome runs tabs)

scripting language... raises an interesting point. why don't we offer
the use of existing ones? like python.

I'm not sure how feasible it is or maybe it's already been implemented
that way... but how possible would it be for yzis to be library-ized
so it's vi components could be used basically anywhere. on area (and
I'm not sure how easy this would be) is seeing a vi-clone that could
be interfaced into the more popular ide's like eclipse. one effort
that could bring vi-modes to numerous editor's could bring more
developer's, and would be better for vi-users. vim failed at this.

does anyone know if it would be possible for yzis to be the 'editor'
for kword and other 'office' programs?

I suppose the point is that we should strive to learn from all of
vim's failings and attempt to be better.

</description>
    <dc:creator>Caleb Cushing</dc:creator>
    <dc:date>2008-12-02T00:38:40</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1632">
    <title>Vi mode added to Kate</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1632</link>
    <description>
Hi,

As you know, Erlend said that he would start implementing vi mode in kate.

On his blog, he reports the status (successful):

http://hamberg.no/erlend/2008/11/24/the-vi-input-mode-for-kate-is-done/

Congratulation Erlend !

cheers,

Philippe



</description>
    <dc:creator>Philippe Fremy</dc:creator>
    <dc:date>2008-11-28T09:48:15</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1631">
    <title>re-opening yzis-dev</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1631</link>
    <description>
Hi all,

Due to popular demand, I'm reopening the mailing list yzis-dev-RlpeheQIxx7hvxM+mQhndA&lt; at &gt;public.gmane.org  
(yzis-announce is re-opened too).

It is now hosted on
https://secure.freehackers.org/wws/info/yzis-dev

As I said on yzis-announce, we have started to work again on the KDE 
integration, and the next (alpha) release should contains preliminary work for 
editor embedding.

Thomas
</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-11-28T09:05:14</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1630">
    <title>hosting change / mailing lists closed / forum opened</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1630</link>
    <description>
Hi all,

Some of you reported about problems accessing www.yzis.org and/or the old trac 
site. Those times are hopefully over, we are changing the hosting of yzis.org, 
and I take the opportunity to do something i've been willing to do for long: 
the mailing lists are boring to maintain (we get spam that need to be 
moderated), and not used very much anyway.  So I close them, and I open forums 
on our redmine project : 
http://labs.freehackers.org/projects/yzis/boards

To replace yzis-announce, the 'news' from the redmine site is used : 
http://labs.freehackers.org/projects/yzis/news
and the RSS is
http://labs.freehackers.org/projects/yzis/news?format=atom&amp;key=e33FSFn3IUNWAedq4k0mamZNuGceEiXxrjxuhajV

regards,
Thomas
</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-11-10T01:42:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1627">
    <title>:substitute bug</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1627</link>
    <description>just a quick test I ran on opensuse

version alpha1-8.7

file contents were

test blerg

ran %s/test/blarg/

contents after were

blargblerg

contents should have been

blarg blerg

</description>
    <dc:creator>Caleb Cushing</dc:creator>
    <dc:date>2008-10-25T02:50:31</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1626">
    <title>rendering engine merge - part 2</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1626</link>
    <description>Hi all!

I've just merged the second part of my work on rewriting the render API.
No more major render API changes are planned.
It is quite complete now, and future merges will be focused on optimization 
and unittests + documentation.

Please pull and test it heavily and report bugs!

left TODO :
- hlsearch
- drawbuffer: keep loaded only visible lines
- restore folding
- visual block

Beers,

Panard

</description>
    <dc:creator>Panard</dc:creator>
    <dc:date>2008-10-19T22:10:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1622">
    <title>yzis.org down?</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1622</link>
    <description>Hi,

today yzis.org gives the error message

503 - Service Not Available

Is someone aware of this issue?

Regards,
   Lothar

</description>
    <dc:creator>Lothar Braun</dc:creator>
    <dc:date>2008-09-09T10:00:26</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1621">
    <title>merge of new rendering engine</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1621</link>
    <description>

You might have noticed that the new rendering engine (if i dare call it so) 
has been merged.

Loic ("panard") had written the previous one, and has mostly rewritten it. It 
is not finished yet, but we decided to merge it right now in order to test it 
as soon as possible.

This new engine (hopefully:-) provides a much simpler API for rendering, and 
removes my main concern regarding current yzis code. It will be part of the 
soon-to-come 1.0-alpha2 release. 

Please test, fix, and report.

Thomas
</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-08-26T03:04:30</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1620">
    <title>segfault on make install</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1620</link>
    <description>
Hello,

Using latest cmake (2.6.0), 'make install' will segfault in libyzisrunner. I 
dont know why, and I hope somebody else can find out why.

of course, you can do this meanwhile, but i would like to know the real 
reason.

Thomas

diff -r 704b053c1d8b CMakeLists.txt
--- a/CMakeLists.txt    Tue Aug 26 04:56:59 2008 +0200
+++ b/CMakeLists.txt    Tue Aug 26 04:57:04 2008 +0200
&lt; at &gt;&lt; at &gt; -192,7 +192,7 &lt; at &gt;&lt; at &gt;
 add_subdirectory( libyzis )

 if (ENABLE_LIBYZISRUNNER)
-       add_subdirectory( libyzisrunner )
+    #  add_subdirectory( libyzisrunner )
 endif (ENABLE_LIBYZISRUNNER)

 if (ENABLE_NYZIS)


</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-08-26T02:59:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1617">
    <title>is this list active?</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1617</link>
    <description>is this list active?
i'm trying to figure out where is the community part of yzis...

Aljosa Mohorovic

</description>
    <dc:creator>Aljosa Mohorovic</dc:creator>
    <dc:date>2008-08-08T10:54:16</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1616">
    <title>scripting engine - python question</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1616</link>
    <description>i'm interested to know how difficult would it be to integrate python?
any comments, suggestions where to start, where is lua implementation
in code and anything constructive is appreciated.

Aljosa Mohorovic

</description>
    <dc:creator>Aljosa Mohorovic</dc:creator>
    <dc:date>2008-08-07T15:17:05</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1615">
    <title>My first commit</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1615</link>
    <description>Hello,


I did a commit or at least tried to. I hope this have worked well and what
i've coded is not completly wrong.
Feel free to make any comment on it.




I also have a more general question on my junior task.

I'm currently implementing most of movement command in command mode and it's
going pretty good.
But arrows movements should works in insert mode (at least in vim that
work), and this is not working in current version of yzis. And i don't know
how i could change that. Can anyone help me with this issue.



Thanks all.


David GAYOU
</description>
    <dc:creator>tar nefys</dc:creator>
    <dc:date>2008-07-22T18:27:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1614">
    <title>problems with windows and mail notification for commits</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1614</link>
    <description>

Two things :

First, If anybody here is used to handle cmake/qt under windows, please help 
us. There are several problems, and I have a hard time fixing them. The #1 
problem is to find a way to get qt statically linked. The second one is to 
get a debug version of yzis, in order to... well.... debug it for some 
windows-specific problems.

Information on : http://www.yzis.org/Mailing_lists

Secondly, I have setup a read-only mailing list which get send a mail for 
every push done to the main repository: if a push is made with 10 
changesets/patches, only one mail is sent with the headings for all of them.

Personaly, i'm very happy with the RSS/ATOM at 
http://sources.freehackers.org/hg.cgi/Yzis , but some people asked for this.


greatings,
Thomas
</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-07-16T23:20:40</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1612">
    <title>Old svn of yzis</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1612</link>
    <description>Will the changes from mercurial be added back into the original 
http://svn.freenux.org/home/svn/yzis/trunk or is this now completely dead?

Thanks
</description>
    <dc:creator>Scott Newton</dc:creator>
    <dc:date>2008-07-09T22:50:14</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1610">
    <title>A New Junior</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1610</link>
    <description>Hello,

I'm David GAYOU. Panard is a friend of mine and have explained me some stuff
about yzis. I'd like to join you in developping Yzis.
I had a look on differents website he gived me, particulary on the junior
task page on the wiki. I gonna start with *More movements commands*, if
noone mind about that.
I already have modified the wiki page.


bye ^^



David GAYOU
</description>
    <dc:creator>tar nefys</dc:creator>
    <dc:date>2008-07-01T17:50:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1606">
    <title>QYzis and Kpart/KYzis</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1606</link>
    <description>I noticed when I went through the code today that there is a LOT (almost
all) sharing of code between QYzis and the KPart/KYzis.

The only difference I noticed is that QYzis has the MainWindow embedded
in QYSession.  Is there any interest in trying to separate QYSession and
then having KY* inheret from the QY* classes?  Considering that most of
KDE is QT and the KTE classes that are in KPart are really the bridge
between the Qt drawing parts and the KTE master, it seems like a very
viable solution.  My only problem is that I don't have ENOUGH knowledge
or time to do it on my own.  I'd be willing to help.  

Also, I notice that there are some member variables that start with m_
and the webpage says mCapital style.  Is it OK if I change these to the
new style when I see them?  Minor refactoring is all but I'm a stickler.


Booyah,
Donald

</description>
    <dc:creator>Donald Ephraim Curtis</dc:creator>
    <dc:date>2008-06-28T00:56:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1604">
    <title>Cursor Shape Interface</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1604</link>
    <description>Hello YZis devs,

A quick introduction:  My name is Donald Ephraim Curtis and I am
a lead developer for the Avogadro project
(http://avogadro.openmolecules.net).  I use gvim a lot but I love KDE
and so have been waiting for KDE4 so I could finally get Yzis building
easy (I didn't have time to go through the whole kde-devel thing).  

Anyways,  to get familiar with the code and hopefully contribute some
small patches to the community I took over the "Create cursor shape
interface" TODO item:

http://www.yzis.org/wiki/index.php?title=TODO#Create_cursor_shape_interface

There is a Patch up there now and I put my name as the "Assigned:"
category because I did it.  I'm attaching the patch to this email too.

Anyways, the only thing I did find was that while all the Cursor stuff
is in libyzis the only problem is that there is no way for the non-gui
part of yzis to know when the window is focused or not.  Thus,
applications like QYzis non FocusOut events have to take a little
control of changing the cursor.  I think this is still OK, it just works
by QYzis telling the view to update the cursor shape on focus out and
then restore the cursor on a focus in.  We could also add some commands
to the YView class like; YView::loseFocus or something of that nature.
That's more than I wanted to just do on my first venture.   I hope that
the patch is enough and if you guys have questions I've been trying to
be in the IRC room but I'm not that good about restoring it all the
time.

--
Donald
diff -r aa0fd44b3ff1 libyzis/view.cpp
--- a/libyzis/view.cppThu Jun 26 00:35:16 2008 +0200
+++ b/libyzis/view.cppThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -71,6 +71,7 &lt; at &gt;&lt; at &gt; YView::YView(YBuffer *_b, YSession *sess
           m_drawBuffer(),
           mPreviousChars(""),mLastPreviousChars(""),
           mainCursor(this), scrollCursor(this), workCursor(this), mVisualCursor(this), keepCursor(this),
+  mCursorShape(YViewIface::CursorHidden),
           id(nextId++)
 {
     dbg().SPrintf("YView( %s, cols=%d, lines=%d )", qp(_b-&gt;toString()), cols, lines );
&lt; at &gt;&lt; at &gt; -120,6 +121,8 &lt; at &gt;&lt; at &gt; YView::YView(YBuffer *_b, YSession *sess
     opt_schema = getLocalIntegerOption( "schema" );
     opt_list = getLocalBooleanOption( "list" );
     opt_listchars = getLocalMapOption( "listchars" );
+
+guiCursorChanged(mCursorShape);
 
     abortPaintEvent();
 }
&lt; at &gt;&lt; at &gt; -292,8 +295,38 &lt; at &gt;&lt; at &gt; void YView::updateMode()
 void YView::updateMode()
 {
     QString mode;
+YMode::ModeType mt;
 
     mode = currentMode()-&gt;toString();
+mt = currentMode()-&gt;modeType();
+
+YViewIface::CursorShape newCursorShape = YViewIface::CursorHidden;
+
+switch(mt) {
+case YMode::ModeInsert :
+setCursorShape(YViewIface::CursorVbar);
+break;
+case YMode::ModeReplace :
+setCursorShape(YViewIface::CursorHbar);
+break;
+case YMode::ModeIntro :
+case YMode::ModeEx :
+case YMode::ModeSearch :
+case YMode::ModeSearchBackward :
+setCursorShape(YViewIface::CursorHidden);
+break;
+case YMode::ModeCompletion :
+break;
+case YMode::ModeCommand :
+case YMode::ModeVisual :
+case YMode::ModeVisualLine :
+case YMode::ModeVisualBlock :
+setCursorShape(YViewIface::CursorFilledRect);
+break;
+default:
+break;
+}
+
     if (isRecording())
         mode += _(" { Recording }");
 
&lt; at &gt;&lt; at &gt; -1640,6 +1673,21 &lt; at &gt;&lt; at &gt; YSelection YView::clipSelection( const Y
     return sel.clip( YInterval(scrollCursor.screen(), bottomRight) );
 }
 
+YViewIface::CursorShape YView::cursorShape() const
+{
+return mCursorShape;
+}
+
+void YView::setCursorShape( YViewIface::CursorShape cs )
+{
+if(cs != mCursorShape)
+{
+mCursorShape = cs;
+guiCursorChanged(mCursorShape);
+guiUpdateCursor();
+}
+}
+
 void YView::setPaintAutoCommit( bool enable )
 {
     if ( enable ) {
diff -r aa0fd44b3ff1 libyzis/view.h
--- a/libyzis/view.hThu Jun 26 00:35:16 2008 +0200
+++ b/libyzis/view.hThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -818,6 +818,16 &lt; at &gt;&lt; at &gt; public:
      */
     YSelection clipSelection( const YSelection&amp; sel ) const;
 
+    /**
+     * &lt; at &gt;return the cursors current shape
+     */
+    YViewIface::CursorShape cursorShape() const;
+
+    /**
+     * &lt; at &gt;param cs the cursor shape to assign to this view
+     */
+    void setCursorShape( YViewIface::CursorShape cs );
+
 protected:
 
     void setupKeys();
&lt; at &gt;&lt; at &gt; -844,6 +854,11 &lt; at &gt;&lt; at &gt; private:
      * The buffer we depend on
      */
     YBuffer *mBuffer;
+
+    /**
+     * The Cursor Shape
+     */
+    YViewIface::CursorShape mCursorShape;
 
     /**
       * This is the main cursor, the one which is displayed
diff -r aa0fd44b3ff1 libyzis/viewiface.h
--- a/libyzis/viewiface.hThu Jun 26 00:35:16 2008 +0200
+++ b/libyzis/viewiface.hThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -46,6 +46,14 &lt; at &gt;&lt; at &gt; class YZIS_EXPORT YViewIface
 {
 public:
 
+    enum CursorShape {
+        CursorFilledRect,
+        CursorVbar,
+        CursorHbar,
+        CursorFrameRect,
+        CursorHidden,
+    };
+
     //-------------------------------------------------------
     //                GUI Notifications
     //-------------------------------------------------------
&lt; at &gt;&lt; at &gt; -60,6 +68,12 &lt; at &gt;&lt; at &gt; public:
      * Status bar feedback is handled by YView.
      */
     virtual void guiUpdateCursor() = 0;
+
+
+    /** Tells the GUI that cursor has changed
+     */
+    virtual void guiCursorChanged(YViewIface::CursorShape)
+    {}
 
     /** Called when buffer's filename has changed.
      * Basic feedback is already handled by YView,
diff -r aa0fd44b3ff1 qyzis/qycursor.cpp
--- a/qyzis/qycursor.cppThu Jun 26 00:35:16 2008 +0200
+++ b/qyzis/qycursor.cppThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -31,7 +31,7 &lt; at &gt;&lt; at &gt;
 #define dbg() yzDebug("QYCursor")
 #define err() yzError("QYCursor")
 
-QYCursor::QYCursor( QYView * view, QYEdit* edit, CursorShape shape )
+QYCursor::QYCursor( QYView * view, QYEdit* edit, YViewIface::CursorShape shape )
         : QWidget( edit )
 {
     mView = view;
&lt; at &gt;&lt; at &gt; -49,18 +49,18 &lt; at &gt;&lt; at &gt; QYCursor::~QYCursor()
 QYCursor::~QYCursor()
 {}
 
-QYCursor::CursorShape QYCursor::shape() const
+YViewIface::CursorShape QYCursor::shape() const
 {
     return mCursorShape;
 }
-void QYCursor::setCursorShape( CursorShape shape )
+void QYCursor::setCursorShape( YViewIface::CursorShape shape )
 {
     if ( shape == mCursorShape )
         return ;
     mCursorShape = shape;
     int w = parentWidget()-&gt;fontMetrics().maxWidth();
     int h = parentWidget()-&gt;fontMetrics().lineSpacing();
-    if ( mCursorShape == CursorVbar )
+    if ( mCursorShape == YViewIface::CursorVbar )
         w = 2;
     resize( w, h );
 }
&lt; at &gt;&lt; at &gt; -100,10 +100,10 &lt; at &gt;&lt; at &gt; void QYCursor::paintEvent( QPaintEvent* 
 
     QPainter p( this );
     QRect r = rect();
-    CursorShape s = shape();
+YViewIface::CursorShape s = shape();
     deepdbg() &lt;&lt; "paintEvent(): shape=" &lt;&lt; s &lt;&lt; endl;
     switch ( s ) {
-    case CursorFilledRect :
+case YViewIface::CursorFilledRect :
         p.setPen( cbg );
         p.setBackground( cfg );
         // erase with cell foreground
&lt; at &gt;&lt; at &gt; -112,7 +112,7 &lt; at &gt;&lt; at &gt; void QYCursor::paintEvent( QPaintEvent* 
         p.drawText( rect(), cell.c );
         break;
 
-    case CursorFrameRect :
+case YViewIface::CursorFrameRect :
         p.setPen( cfg );
         p.setBackground( cbg );
         // erase with cell background
&lt; at &gt;&lt; at &gt; -125,12 +125,12 &lt; at &gt;&lt; at &gt; void QYCursor::paintEvent( QPaintEvent* 
         p.drawRect( r );
         break;
 
-    case CursorVbar :
+case YViewIface::CursorVbar :
         r.setWidth( 2 );
         p.fillRect( r, QBrush(cfg) );
         break;
 
-    case CursorHbar:
+case YViewIface::CursorHbar:
         // erase with cell background
         p.eraseRect( r );
         // paint character with cell foreground
&lt; at &gt;&lt; at &gt; -139,7 +139,7 &lt; at &gt;&lt; at &gt; void QYCursor::paintEvent( QPaintEvent* 
         p.fillRect( r, QBrush(cfg) );
         break;
 
-    case CursorHidden:
+case YViewIface::CursorHidden:
         // erase with cell background
         p.eraseRect( r );
         // paint character with cell foreground
&lt; at &gt;&lt; at &gt; -148,14 +148,14 &lt; at &gt;&lt; at &gt; void QYCursor::paintEvent( QPaintEvent* 
     }
 }
 
-YDebugStream&amp; operator&lt;&lt;( YDebugStream&amp; out, const QYCursor::CursorShape &amp; shape )
+YDebugStream&amp; operator&lt;&lt;( YDebugStream&amp; out, const YViewIface::CursorShape &amp; shape )
 {
     switch ( shape ) {
-    case QYCursor::CursorFilledRect : out &lt;&lt; "CursorFilledRect"; break;
-    case QYCursor::CursorVbar : out &lt;&lt; "CursorVbar"; break;
-    case QYCursor::CursorHbar : out &lt;&lt; "CursorHbar"; break;
-    case QYCursor::CursorFrameRect : out &lt;&lt; "CursorFrameRect"; break;
-    case QYCursor::CursorHidden : out &lt;&lt; "CursorHidden"; break;
+    case YViewIface::CursorFilledRect : out &lt;&lt; "CursorFilledRect"; break;
+    case YViewIface::CursorVbar : out &lt;&lt; "CursorVbar"; break;
+    case YViewIface::CursorHbar : out &lt;&lt; "CursorHbar"; break;
+    case YViewIface::CursorFrameRect : out &lt;&lt; "CursorFrameRect"; break;
+    case YViewIface::CursorHidden : out &lt;&lt; "CursorHidden"; break;
     }
     return out;
 }
diff -r aa0fd44b3ff1 qyzis/qycursor.h
--- a/qyzis/qycursor.hThu Jun 26 00:35:16 2008 +0200
+++ b/qyzis/qycursor.hThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -20,6 +20,8 &lt; at &gt;&lt; at &gt;
 #ifndef QYZISCURSOR_H
 #define QYZISCURSOR_H
 
+#include "viewiface.h"
+
 #include &lt;QWidget&gt;
 
 class YDebugStream;
&lt; at &gt;&lt; at &gt; -31,32 +33,25 &lt; at &gt;&lt; at &gt; class QYCursor : public QWidget
     Q_OBJECT
 
 public :
-    enum CursorShape {
-        CursorFilledRect,
-        CursorVbar,
-        CursorHbar,
-        CursorFrameRect,
-        CursorHidden,
-    };
 
-    QYCursor( QYView * view, QYEdit* parent, CursorShape shape );
+    QYCursor( QYView * view, QYEdit* parent, YViewIface::CursorShape shape );
     virtual ~QYCursor();
 
-    void setCursorShape( CursorShape shape );
-    CursorShape shape() const;
+    void setCursorShape( YViewIface::CursorShape shape );
+    YViewIface::CursorShape shape() const;
 
 
 protected :
     virtual void paintEvent( QPaintEvent* pe );
 
 private :
-    CursorShape mCursorShape;
+    YViewIface::CursorShape mCursorShape;
     QYEdit* mEdit;
     QYView* mView;
 
 };
 
-YDebugStream&amp; operator&lt;&lt;( YDebugStream&amp; out, const QYCursor::CursorShape &amp; shape );
+YDebugStream&amp; operator&lt;&lt;( YDebugStream&amp; out, const YViewIface::CursorShape &amp; shape );
 
 #endif
 
diff -r aa0fd44b3ff1 qyzis/qyedit.cpp
--- a/qyzis/qyedit.cppThu Jun 26 00:35:16 2008 +0200
+++ b/qyzis/qyedit.cppThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -63,7 +63,9 &lt; at &gt;&lt; at &gt; QYEdit::QYEdit(QYView * view )
     /* show an edit cursor */
     QWidget::setCursor( Qt::IBeamCursor );
 
-    mCursor = new QYCursor( mView, this, QYCursor::CursorFilledRect );
+    mCursor = new QYCursor( mView, this, YViewIface::CursorFilledRect );
+
+mPreviousCursorShape = view-&gt;cursorShape();
 
     initKeys();
 }
&lt; at &gt;&lt; at &gt; -108,53 +110,13 &lt; at &gt;&lt; at &gt; YCursor QYEdit::translateRealToAbsoluteP
     return translateRealToPosition( p, ceil ) + mView-&gt;getScreenPosition();
 }
 
-QYCursor::CursorShape QYEdit::cursorShape()
+void QYEdit::setCursorShape( YViewIface::CursorShape cs )
 {
-    QYCursor::CursorShape shape;
-    YMode::ModeType m = mView-&gt;modePool()-&gt;currentType();
-    deepdbg() &lt;&lt; "cursorShape(): mode=" &lt;&lt; m &lt;&lt; endl;
-    shape = mCursor-&gt;shape();
-    if ( ! hasFocus() ) {
-        if (mView-&gt;mCommandLine-&gt;hasFocus()) {
-            // command line has focus
-            shape = QYCursor::CursorHidden;
-        } else {
-            // the widget no longer has focus
-            shape = QYCursor::CursorFrameRect;
-        }
-    } else {
-        switch ( m ) {
-        case YMode::ModeInsert :
-            shape = QYCursor::CursorVbar;
-            break;
-        case YMode::ModeReplace :
-            shape = QYCursor::CursorHbar;
-            break;
-        case YMode::ModeIntro:
-        case YMode::ModeEx:
-        case YMode::ModeSearch:
-        case YMode::ModeSearchBackward:
-            shape = QYCursor::CursorHidden;
-            break;
-        case YMode::ModeCompletion :
-            // do not change it
-            break;
-        case YMode::ModeCommand:
-        case YMode::ModeVisual:
-        case YMode::ModeVisualLine:
-        case YMode::ModeVisualBlock:
-            shape = QYCursor::CursorFilledRect;
-            break;
-        }
-    }
-
-    deepdbg() &lt;&lt; "cursorShape(), cursorShape=" &lt;&lt; shape &lt;&lt; endl;
-    return shape;
+mCursor-&gt;setCursorShape( cs );
 }
 
 void QYEdit::updateCursor()
 {
-    mCursor-&gt;setCursorShape( cursorShape() );
     mCursor-&gt;update();
 }
 
&lt; at &gt;&lt; at &gt; -292,12 +254,17 &lt; at &gt;&lt; at &gt; void QYEdit::focusInEvent ( QFocusEvent 
 void QYEdit::focusInEvent ( QFocusEvent * )
 {
     dbg() &lt;&lt; "focusInEvent() for " &lt;&lt; mView-&gt;myBuffer()-&gt;fileNameShort() &lt;&lt; endl;
+mView-&gt;setCursorShape( mPreviousCursorShape );
     YSession::self()-&gt;setCurrentView( mView );
     updateCursor();
 }
 void QYEdit::focusOutEvent ( QFocusEvent * )
 {
     dbg() &lt;&lt; "focusOutEvent() for " &lt;&lt; mView-&gt;myBuffer()-&gt;fileNameShort() &lt;&lt; endl;
+mPreviousCursorShape = mView-&gt;cursorShape();
+if(mPreviousCursorShape != YViewIface::CursorHidden) {
+mView-&gt;setCursorShape( YViewIface::CursorFrameRect );
+}
     updateCursor();
 }
 
&lt; at &gt;&lt; at &gt; -333,6 +300,7 &lt; at &gt;&lt; at &gt; void QYEdit::setCursor( int c, int l )
     if ( !mCursor-&gt;isVisible() )
         mCursor-&gt;show();
 
+mCursor-&gt;update();
     // need for InputMethod (OverTheSpot)
     // setMicroFocusHint( mCursor-&gt;x(), mCursor-&gt;y(), mCursor-&gt;width(), mCursor-&gt;height() );
 }
&lt; at &gt;&lt; at &gt; -480,6 +448,7 &lt; at &gt;&lt; at &gt; QString QYEdit::keysToShortcut( const QS
 
 void QYEdit::registerModifierKeys( const QString&amp; keys )
 {
+Q_UNUSED(keys)
     /*
     KAction* k = new KAction( "", KShortcut( keysToShortcut( keys ) ), signalMapper, SLOT( map() ), actionCollection, keys.ascii() );
     signalMapper-&gt;setMapping( k, keys );
&lt; at &gt;&lt; at &gt; -487,6 +456,7 &lt; at &gt;&lt; at &gt; void QYEdit::registerModifierKeys( const
 }
 void QYEdit::unregisterModifierKeys( const QString&amp; keys )
 {
+Q_UNUSED(keys)
     /*
     QByteArray ke = keys.toUtf8();
     KAction* k = actionCollection-&gt;action( ke.data() );
diff -r aa0fd44b3ff1 qyzis/qyedit.h
--- a/qyzis/qyedit.hThu Jun 26 00:35:16 2008 +0200
+++ b/qyzis/qyedit.hThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -28,6 +28,7 &lt; at &gt;&lt; at &gt;
 #include "drawbuffer.h"
 #include "action.h"
 #include "keys.h"
+#include "view.h"
 
 /* Qt */
 #include &lt;qpainter.h&gt;
&lt; at &gt;&lt; at &gt; -63,14 +64,13 &lt; at &gt;&lt; at &gt; public :
     void setCursor(int c, int l);
     void scroll( int dx, int dy );
 
-    /** Return a cursor shape according to the current mode and focus */
-    QYCursor::CursorShape cursorShape();
-
     /** Adjust the cursor shape.
       *
       * Set the cursor shape returned bye cursorShape() to the current cursor.
       */
     void updateCursor();
+
+    void setCursorShape( YViewIface::CursorShape cs );
 
     /** Called when the mode has changed.
      *
&lt; at &gt;&lt; at &gt; -152,6 +152,8 &lt; at &gt;&lt; at &gt; private :
 
     static QMap&lt;int, YKey&gt; keys;
 
+    YViewIface::CursorShape mPreviousCursorShape;
+
     friend class QYCursor;
     friend class QYView;
 };
diff -r aa0fd44b3ff1 qyzis/qyview.cpp
--- a/qyzis/qyview.cppThu Jun 26 00:35:16 2008 +0200
+++ b/qyzis/qyview.cppThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -86,6 +86,7 &lt; at &gt;&lt; at &gt; QYView::QYView ( YBuffer * buffer, QYSes
 
     mEdit-&gt;show();
     mStatusBar-&gt;show();
+    mCommandLine-&gt;show();
     mEdit-&gt;setFocus();
     setFocusProxy( mEdit );
     mVScroll-&gt;setMaximum( myBuffer()-&gt;lineCount() - 1 );
&lt; at &gt;&lt; at &gt; -293,9 +294,14 &lt; at &gt;&lt; at &gt; void QYView::guiUpdateCursor()
     mEdit-&gt;setCursor(viewCursor().screenX(), viewCursor().screenY());
 }
 
+void QYView::guiCursorChanged(YViewIface::CursorShape cs)
+{
+dbg() &lt;&lt; "guiCursorChanged( " &lt;&lt; cs &lt;&lt; " )";
+mEdit-&gt;setCursorShape(cs);
+}
+
 void QYView::guiUpdateMode()
 {
-    mEdit-&gt;updateCursor();
 }
 
 void QYView::guiHighlightingChanged()
diff -r aa0fd44b3ff1 qyzis/qyview.h
--- a/qyzis/qyview.hThu Jun 26 00:35:16 2008 +0200
+++ b/qyzis/qyview.hThu Jun 26 15:49:27 2008 -0500
&lt; at &gt;&lt; at &gt; -87,6 +87,7 &lt; at &gt;&lt; at &gt; public:
     virtual void guiUpdateFileName();
     virtual void guiUpdateCursor();
     virtual void guiUpdateMode();
+    virtual void guiCursorChanged(YViewIface::CursorShape cs);
     void guiHighlightingChanged();
 
 protected:
</description>
    <dc:creator>Donald Ephraim Curtis</dc:creator>
    <dc:date>2008-06-26T20:59:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1602">
    <title>1.0-alpha1 is released</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1602</link>
    <description>
Hi all,

More information on 
http://www.freehackers.org/blogs/orzel/2008/06/26/release-of-yzis-10-alpha1/


greatings,
Thomas
</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-06-25T23:14:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1601">
    <title>bugtracker :  trac -&gt; redmine</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1601</link>
    <description>

"500 - Internal Server Error" is the message you most often get when going to 
bugs.yzis.org. This is because trac crash far too often, and I wasn't 
restarting lighttpd often enough.

This is why we moved to redmine. Redmine is a great tool and i've been using 
it for few months on other projects with great success. It can import bugs 
from trac, but we didn't do so. There are two reasons for this :

#1 : bugs on bugs.yzis.org are in quite a mess : versions are mixed, most of 
them are too old and unconfirmed, or are related to code that is not in use 
any more.

#2 : in order to keep issues/bugs numbers, you need to start from a fresh 
redmine install, and labs.freehackers.org had already been used to import 
data from the former freehackers mantis-based bugtracker.

So basically, we start from scracth with respect to bugs and wishes.

-&gt; http://labs.freehackers.org/projects/yzis/issues

I thought you might be interested to know.

greatings,
Thomas
</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-06-15T17:49:15</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1600">
    <title>Toward release 1.0alpha1</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1600</link>
    <description>
Hi all,


As some of you might know, I had to finish my Ph.D. and it took me a lot more 
time than previously planned. I’m happy to tell you that it is now finished. 
I’m officially a doctor in the field of applied mathematics, and I have more 
time to dedicate to free software.

One of my first goals is to release the sleeping code for yzis. There sure are 
a lot of issues with this code, and the KDE kpart is still not done, but I 
think we can release basic, working, tested applications. This would mean the 
curses-based nyzis and the qt4-based qyzis, both for linux, MacOS X, windows, 
and maybe some other platforms like the *bsd.

We created a project on freehackers redmine project manager to handle this new 
developement. We expect to release 1.0-alpha1 next week-end (june 22th), and 
keep on testing/fixing bugs until 1.0. Then we should focus on the real fun 
stuff : kpart and other embeddings.

Oh, and, meanwhile, we moved the code from subversion to mercurial.

redmine projects for bug reports : 
http://labs.freehackers.org/projects/show/yzis

view yzis source under merurial (you can also clone the repository from this 
url) : http://sources.freehackers.org/hg.cgi/Yzis/

greatings,
Thomas
</description>
    <dc:creator>Thomas Capricelli</dc:creator>
    <dc:date>2008-06-15T15:46:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.editors.yzis.devel/1585">
    <title>status</title>
    <link>http://comments.gmane.org/gmane.editors.yzis.devel/1585</link>
    <description>is this still an active project?

Aljosa

</description>
    <dc:creator>Aljosa Mohorovic</dc:creator>
    <dc:date>2008-04-23T17:51:12</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.editors.yzis.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.editors.yzis.devel</link>
  </textinput>
</rdf:RDF>
