mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
* BufferView:
- dispatch(): transfer LFUN_FILE_INSERT_PLAINTEXT_* to GuiView::dispatch() - insertPlaintextFile(): split in BufferView::insertPlaintextFile() and GuiView::insertPlaintextFile() This patch get rid of FileDialog use in BufferView. Remains Buffer, Converters and LyXFunc. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21930 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
4b465cfc26
commit
0743f576cb
@ -59,7 +59,6 @@
|
|||||||
|
|
||||||
#include "frontends/alert.h"
|
#include "frontends/alert.h"
|
||||||
#include "frontends/Delegates.h"
|
#include "frontends/Delegates.h"
|
||||||
#include "frontends/FileDialog.h"
|
|
||||||
#include "frontends/FontMetrics.h"
|
#include "frontends/FontMetrics.h"
|
||||||
#include "frontends/Painter.h"
|
#include "frontends/Painter.h"
|
||||||
#include "frontends/Selection.h"
|
#include "frontends/Selection.h"
|
||||||
@ -894,16 +893,6 @@ Update::flags BufferView::dispatch(FuncRequest const & cmd)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_FILE_INSERT_PLAINTEXT_PARA:
|
|
||||||
// FIXME UNICODE
|
|
||||||
insertPlaintextFile(FileName(to_utf8(cmd.argument())), true);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LFUN_FILE_INSERT_PLAINTEXT:
|
|
||||||
// FIXME UNICODE
|
|
||||||
insertPlaintextFile(FileName(to_utf8(cmd.argument())), false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LFUN_FONT_STATE:
|
case LFUN_FONT_STATE:
|
||||||
cur.message(cur.currentState());
|
cur.message(cur.currentState());
|
||||||
break;
|
break;
|
||||||
@ -1955,28 +1944,8 @@ void BufferView::setGuiDelegate(frontend::GuiBufferViewDelegate * gui)
|
|||||||
|
|
||||||
|
|
||||||
// FIXME: Move this out of BufferView again
|
// FIXME: Move this out of BufferView again
|
||||||
docstring BufferView::contentsOfPlaintextFile(FileName const & fname,
|
docstring BufferView::contentsOfPlaintextFile(FileName const & fname)
|
||||||
bool asParagraph)
|
|
||||||
{
|
{
|
||||||
if (fname.empty()) {
|
|
||||||
FileDialog dlg(_("Select file to insert"),
|
|
||||||
( asParagraph
|
|
||||||
? LFUN_FILE_INSERT_PLAINTEXT_PARA
|
|
||||||
: LFUN_FILE_INSERT_PLAINTEXT) );
|
|
||||||
|
|
||||||
FileDialog::Result result =
|
|
||||||
dlg.open(from_utf8(buffer().filePath()),
|
|
||||||
FileFilterList(), docstring());
|
|
||||||
|
|
||||||
if (result.first == FileDialog::Later)
|
|
||||||
return docstring();
|
|
||||||
|
|
||||||
if (result.second.empty())
|
|
||||||
return docstring();
|
|
||||||
|
|
||||||
return contentsOfPlaintextFile(FileName(to_utf8(result.second)), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!fname.isReadableFile()) {
|
if (!fname.isReadableFile()) {
|
||||||
docstring const error = from_ascii(strerror(errno));
|
docstring const error = from_ascii(strerror(errno));
|
||||||
docstring const file = makeDisplayPath(fname.absFilename(), 50);
|
docstring const file = makeDisplayPath(fname.absFilename(), 50);
|
||||||
@ -2013,7 +1982,7 @@ docstring BufferView::contentsOfPlaintextFile(FileName const & fname,
|
|||||||
|
|
||||||
void BufferView::insertPlaintextFile(FileName const & f, bool asParagraph)
|
void BufferView::insertPlaintextFile(FileName const & f, bool asParagraph)
|
||||||
{
|
{
|
||||||
docstring const tmpstr = contentsOfPlaintextFile(f, asParagraph);
|
docstring const tmpstr = contentsOfPlaintextFile(f);
|
||||||
|
|
||||||
if (tmpstr.empty())
|
if (tmpstr.empty())
|
||||||
return;
|
return;
|
||||||
@ -2025,6 +1994,9 @@ void BufferView::insertPlaintextFile(FileName const & f, bool asParagraph)
|
|||||||
cur.innerText()->insertStringAsParagraphs(cur, tmpstr);
|
cur.innerText()->insertStringAsParagraphs(cur, tmpstr);
|
||||||
else
|
else
|
||||||
cur.innerText()->insertStringAsLines(cur, tmpstr);
|
cur.innerText()->insertStringAsLines(cur, tmpstr);
|
||||||
|
|
||||||
|
updateMetrics();
|
||||||
|
buffer_.changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -241,8 +241,7 @@ public:
|
|||||||
void setGuiDelegate(frontend::GuiBufferViewDelegate *);
|
void setGuiDelegate(frontend::GuiBufferViewDelegate *);
|
||||||
|
|
||||||
///
|
///
|
||||||
docstring contentsOfPlaintextFile(support::FileName const & f,
|
docstring contentsOfPlaintextFile(support::FileName const & f);
|
||||||
bool asParagraph);
|
|
||||||
// Insert plain text file (if filename is empty, prompt for one)
|
// Insert plain text file (if filename is empty, prompt for one)
|
||||||
void insertPlaintextFile(support::FileName const & f, bool asParagraph);
|
void insertPlaintextFile(support::FileName const & f, bool asParagraph);
|
||||||
///
|
///
|
||||||
|
@ -1070,6 +1070,44 @@ void GuiView::insertLyXFile(docstring const & fname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GuiView::insertPlaintextFile(docstring const & fname,
|
||||||
|
bool asParagraph)
|
||||||
|
{
|
||||||
|
BufferView * bv = view();
|
||||||
|
if (!bv)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// FIXME UNICODE
|
||||||
|
FileName filename(to_utf8(fname));
|
||||||
|
|
||||||
|
if (!filename.empty()) {
|
||||||
|
bv->insertPlaintextFile(filename, asParagraph);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FileDialog dlg(_("Select file to insert"), (asParagraph ?
|
||||||
|
LFUN_FILE_INSERT_PLAINTEXT_PARA : LFUN_FILE_INSERT_PLAINTEXT));
|
||||||
|
|
||||||
|
FileDialog::Result result = dlg.open(from_utf8(bv->buffer().filePath()),
|
||||||
|
FileFilterList(), docstring());
|
||||||
|
|
||||||
|
if (result.first == FileDialog::Later)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// FIXME UNICODE
|
||||||
|
filename.set(to_utf8(result.second));
|
||||||
|
|
||||||
|
// check selected filename
|
||||||
|
if (filename.empty()) {
|
||||||
|
// emit message signal.
|
||||||
|
message(_("Canceled."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bv->insertPlaintextFile(filename, asParagraph);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool GuiView::dispatch(FuncRequest const & cmd)
|
bool GuiView::dispatch(FuncRequest const & cmd)
|
||||||
{
|
{
|
||||||
BufferView * bv = view();
|
BufferView * bv = view();
|
||||||
@ -1107,6 +1145,14 @@ bool GuiView::dispatch(FuncRequest const & cmd)
|
|||||||
case LFUN_FILE_INSERT:
|
case LFUN_FILE_INSERT:
|
||||||
insertLyXFile(cmd.argument());
|
insertLyXFile(cmd.argument());
|
||||||
break;
|
break;
|
||||||
|
case LFUN_FILE_INSERT_PLAINTEXT_PARA:
|
||||||
|
insertPlaintextFile(cmd.argument(), true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LFUN_FILE_INSERT_PLAINTEXT:
|
||||||
|
insertPlaintextFile(cmd.argument(), false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
case LFUN_TOOLBAR_TOGGLE: {
|
case LFUN_TOOLBAR_TOGGLE: {
|
||||||
string const name = cmd.getArg(0);
|
string const name = cmd.getArg(0);
|
||||||
|
@ -236,6 +236,9 @@ private:
|
|||||||
///
|
///
|
||||||
void insertLyXFile(docstring const & fname);
|
void insertLyXFile(docstring const & fname);
|
||||||
///
|
///
|
||||||
|
void insertPlaintextFile(docstring const & fname,
|
||||||
|
bool asParagraph);
|
||||||
|
///
|
||||||
Inset * getOpenInset(std::string const & name) const;
|
Inset * getOpenInset(std::string const & name) const;
|
||||||
|
|
||||||
/// Is the dialog currently visible?
|
/// Is the dialog currently visible?
|
||||||
|
@ -3411,7 +3411,7 @@ void InsetTabular::doDispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
case LFUN_FILE_INSERT_PLAINTEXT: {
|
case LFUN_FILE_INSERT_PLAINTEXT: {
|
||||||
// FIXME UNICODE
|
// FIXME UNICODE
|
||||||
docstring const tmpstr = cur.bv().contentsOfPlaintextFile(
|
docstring const tmpstr = cur.bv().contentsOfPlaintextFile(
|
||||||
FileName(to_utf8(cmd.argument())), false);
|
FileName(to_utf8(cmd.argument())));
|
||||||
if (tmpstr.empty())
|
if (tmpstr.empty())
|
||||||
break;
|
break;
|
||||||
cur.recordUndoInset(INSERT_UNDO);
|
cur.recordUndoInset(INSERT_UNDO);
|
||||||
|
Loading…
Reference in New Issue
Block a user