[prev in list] [next in list] [prev in thread] [next in thread]
List: kwrite-devel
Subject: Re: Review Request 119028: Added the closeViewSpace to the KTextEditor::MainWindow class.
From: Miquel_Sabaté_Solà <mikisabate () gmail ! com>
Date: 2014-06-30 18:58:25
Message-ID: 20140630185825.17520.75475 () probe ! kde ! org
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
> On June 30, 2014, 4:28 p.m., Michal Humpula wrote:
> > @Dominik: is it still possible to add new methods to the interface?
> >
> > To bad, when drafting the splitView I didn't think of more general abstraction \
> > like group of views. Methods like "splitView" and "closeViewSpace" seems to \
> > enable only one way to implement grouping of views. Oh, well, let's hope there \
> > will be KF6 one day:o)
>
> Christoph Cullmann wrote:
> We can add still functions, as they are non-virtual, as we use the "ugly" but BC \
> hack of internal invokeMethod.
I wasn't sure about this either. That's a relief :)
> On June 30, 2014, 4:28 p.m., Michal Humpula wrote:
> > src/include/ktexteditor/mainwindow.h, line 155
> > <https://git.reviewboard.kde.org/r/119028/diff/1/?file=285415#file285415line155>
> >
> > I would recommend passing KTextEditor::View here, to let app know, which \
> > ViewSpace is to be closed. Worst case scenario, the implementation would have to \
> > call activeView() before calling closeViewSpace.
>
> Miquel Sabaté Solà wrote:
> Yes, that was my initial take on this :) But then I realized that I only needed to \
> close the current view. If we pass a view, then in the application you have to pick \
> the viewspace that contains the given view. This is quite easy to do for Kate.
> I'll wait for more opinions on this ;)
>
> Christoph Cullmann wrote:
> The question is: should not "closeView" be fixed instead. Somehow, the current \
> behavior looks like a bug, I would think that it shall close the viewspace, if the \
> last view got closed there (and no other document is around).
> If not, I would vote for calling the new function:
>
> "closeSplitView", which matches the splitView operation, which creates it.
I also thought about this but I think it's ok to keep "closeView" as it is. If we say \
that "closeView" closes the viewspace, it's going to be messy, because there are \
multiple applications using the katepart with a different understanding of "group of \
views". So, I think that we should keep "closeView" as it is (closing a single view), \
and let the "let's close a group of views" function handle groups of views (so every \
application will have a different take on this). Thus, to me, it's a semantic \
difference that we should keep :)
In regards to the name, I called it "closeViewSpace" because it's how it's called in \
Kate. I agree, I should rename it to "closeSplitView". But, should it take a "view" \
parameter as Michal said? I honestly don't know :)
- Miquel
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119028/#review61294
-----------------------------------------------------------
On June 30, 2014, 11:51 a.m., Miquel Sabaté Solà wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119028/
> -----------------------------------------------------------
>
> (Updated June 30, 2014, 11:51 a.m.)
>
>
> Review request for Kate.
>
>
> Repository: ktexteditor
>
>
> Description
> -------
>
> This is a method that I needed in order to implement the "close" command in \
> vi-mode. The close command in vim closes the current "window". This concept of \
> "window" is basically a splitted view. That's why other commands in vi-mode such as \
> "split" and "vsplit" have been implemented by just splitting the current view. \
> However, it's not possible to close a splitted view. The only thing that is close \
> is the "closeView" method, but it's not really what we want, since calling this \
> function will result in the image that I have uploaded. Therefore, before this \
> patch, the KatePart allowed the creation of splitted views, but it didn't allow the \
> deletion of splitted views (and that's inconsistent imho).
> With this function, now we can close splitted views as expected. In Kate \
> (frameworks branch), the implementation of this function is trivial because the \
> KateMainWindow class has access to the KateViewManager class (through \
> m_viewManager).
>
> Diffs
> -----
>
> src/include/ktexteditor/mainwindow.h fda80a2
> src/utils/mainwindow.cpp 1231f9a
>
> Diff: https://git.reviewboard.kde.org/r/119028/diff/
>
>
> Testing
> -------
>
> Manual testing.
>
>
> File Attachments
> ----------------
>
> closeView in action
> https://git.reviewboard.kde.org/media/uploaded/files/2014/06/30/fa7ce216-cc21-4647-8f72-f663374623c4__kate.png
>
>
> Thanks,
>
> Miquel Sabaté SolÃ
>
>
[Attachment #5 (text/html)]
<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;"> <tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/119028/">https://git.reviewboard.kde.org/r/119028/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <p style="margin-top: 0;">On June 30th, 2014, 4:28 p.m. UTC, <b>Michal \
Humpula</b> wrote:</p> <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;"> <pre style="white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">@Dominik: is it still possible to add new methods to the interface?
To bad, when drafting the splitView I didn't think of more general abstraction \
like group of views. Methods like "splitView" and \
"closeViewSpace" seems to enable only one way to implement grouping of \
views. Oh, well, let's hope there will be KF6 one day:o)</pre> </blockquote>
<p>On June 30th, 2014, 6:38 p.m. UTC, <b>Christoph Cullmann</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">We can add still \
functions, as they are non-virtual, as we use the "ugly" but BC hack of \
internal invokeMethod.</pre> </blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I wasn't sure about \
this either. That's a relief :)</pre> <br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <p style="margin-top: 0;">On June 30th, 2014, 4:28 p.m. UTC, <b>Michal \
Humpula</b> wrote:</p> <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/119028/diff/1/?file=285415#file285415line155" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/include/ktexteditor/mainwindow.h</a> <span style="font-weight: \
normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
">public:</pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">155</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="kt">bool</span> <span class="nf">closeViewSpace</span><span \
class="p">();</span></pre></td> </tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I would recommend \
passing KTextEditor::View here, to let app know, which ViewSpace is to be closed. \
Worst case scenario, the implementation would have to call activeView() before \
calling closeViewSpace.</pre> </blockquote>
<p>On June 30th, 2014, 4:43 p.m. UTC, <b>Miquel Sabaté Solà </b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Yes, that was my initial \
take on this :) But then I realized that I only needed to close the current view. If \
we pass a view, then in the application you have to pick the viewspace that contains \
the given view. This is quite easy to do for Kate.
I'll wait for more opinions on this ;)</pre>
</blockquote>
<p>On June 30th, 2014, 6:39 p.m. UTC, <b>Christoph Cullmann</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The question is: should \
not "closeView" be fixed instead. Somehow, the current behavior looks like \
a bug, I would think that it shall close the viewspace, if the last view got closed \
there (and no other document is around).
If not, I would vote for calling the new function:
"closeSplitView", which matches the splitView operation, which creates \
it.</pre> </blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I also \
thought about this but I think it's ok to keep "closeView" as it is. If \
we say that "closeView" closes the viewspace, it's going to be messy, \
because there are multiple applications using the katepart with a different \
understanding of "group of views". So, I think that we should keep \
"closeView" as it is (closing a single view), and let the "let's \
close a group of views" function handle groups of views (so every application \
will have a different take on this). Thus, to me, it's a semantic difference that \
we should keep :)
In regards to the name, I called it "closeViewSpace" because it's how \
it's called in Kate. I agree, I should rename it to "closeSplitView". \
But, should it take a "view" parameter as Michal said? I honestly don't \
know :)</pre> <br />
<p>- Miquel</p>
<br />
<p>On June 30th, 2014, 11:51 a.m. UTC, Miquel Sabaté Solà wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;"> <tr>
<td>
<div>Review request for Kate.</div>
<div>By Miquel Sabaté Solà .</div>
<p style="color: grey;"><i>Updated June 30, 2014, 11:51 a.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
ktexteditor
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">This is a method that I needed in order to implement the \
"close" command in vi-mode. The close command in vim closes the current \
"window". This concept of "window" is basically a splitted view. \
That's why other commands in vi-mode such as "split" and \
"vsplit" have been implemented by just splitting the current view. However, \
it's not possible to close a splitted view. The only thing that is close is the \
"closeView" method, but it's not really what we want, since calling \
this function will result in the image that I have uploaded. Therefore, before this \
patch, the KatePart allowed the creation of splitted views, but it didn't allow \
the deletion of splitted views (and that's inconsistent imho).
With this function, now we can close splitted views as expected. In Kate (frameworks \
branch), the implementation of this function is trivial because the KateMainWindow \
class has access to the KateViewManager class (through m_viewManager).</pre> </td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">Manual testing.</pre> </td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>src/include/ktexteditor/mainwindow.h <span style="color: \
grey">(fda80a2)</span></li>
<li>src/utils/mainwindow.cpp <span style="color: grey">(1231f9a)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/119028/diff/" style="margin-left: \
3em;">View Diff</a></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments \
</h1>
<ul>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2014/06/30/fa7ce216-cc21-4647-8f72-f663374623c4__kate.png">closeView \
in action</a></li>
</ul>
</td>
</tr>
</table>
</div>
</body>
</html>
_______________________________________________
KWrite-Devel mailing list
KWrite-Devel@kde.org
https://mail.kde.org/mailman/listinfo/kwrite-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic