Fix loading non-lyx child documents with relative path names, change 'Load' to 'Edit' in the child document dialog. (Bug 4107 and 4111)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19346 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Bo Peng 2007-08-07 18:39:34 +00:00
parent 491a2dbfc4
commit 421acabc01
5 changed files with 20 additions and 16 deletions

View File

@ -100,14 +100,16 @@ docstring const ControlInclude::browse(docstring const & in_name, Type in_type)
}
void ControlInclude::load(string const & file)
void ControlInclude::edit(string const & file)
{
string const ext = support::getExtension(file);
if (ext == "lyx")
kernel().dispatch(FuncRequest(LFUN_BUFFER_CHILD_OPEN, file));
else
// tex file or other text file in verbatim mode
formats.edit(kernel().buffer(), FileName(file), "text");
formats.edit(kernel().buffer(),
FileName(makeAbsPath(file, onlyPath(kernel().buffer().fileName()))),
"text");
}

View File

@ -58,8 +58,9 @@ public:
/// Browse for a file
docstring const browse(docstring const &, Type) const;
/// load a file
void load(std::string const & file);
/// edit the child document, .lyx file will be opened in lyx
/// other formats will be edited by external applications.
void edit(std::string const & file);
/// test if file exist
bool fileExists(std::string const & file);

View File

@ -56,7 +56,7 @@ QIncludeDialog::QIncludeDialog(QInclude * form)
connect(visiblespaceCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
connect(filenameED, SIGNAL(textChanged(const QString &)),
this, SLOT(change_adaptor()));
connect(loadPB, SIGNAL(clicked()), this, SLOT(loadClicked()));
connect(editPB, SIGNAL(clicked()), this, SLOT(editClicked()));
connect(browsePB, SIGNAL(clicked()), this, SLOT(browseClicked()));
connect(typeCO, SIGNAL(activated(int)), this, SLOT(change_adaptor()));
connect(typeCO, SIGNAL(activated(int)), this, SLOT(typeChanged(int)));
@ -168,9 +168,9 @@ void QIncludeDialog::typeChanged(int v)
}
void QIncludeDialog::loadClicked()
void QIncludeDialog::editClicked()
{
form_->load();
form_->edit();
}
@ -336,12 +336,12 @@ void QInclude::browse()
}
void QInclude::load()
void QInclude::edit()
{
if (isValid()) {
string const file = fromqstr(dialog_->filenameED->text());
slotOK();
controller().load(file);
controller().edit(file);
}
}

View File

@ -35,7 +35,7 @@ public:
docstring validate_listings_params();
protected Q_SLOTS:
virtual void change_adaptor();
virtual void loadClicked();
virtual void editClicked();
virtual void browseClicked();
virtual void typeChanged(int v);
/// AFAIK, QValidator only works for QLineEdit so
@ -70,8 +70,9 @@ private:
/// build the dialog
virtual void build_dialog();
/// load the file
void load();
/// edit the child document, .lyx file will be opened in lyx
/// other formats will be edited by external applications.
void edit();
/// browse for a file
void browse();

View File

@ -331,12 +331,12 @@
</widget>
</item>
<item row="1" column="4" >
<widget class="QPushButton" name="loadPB" >
<widget class="QPushButton" name="editPB" >
<property name="toolTip" >
<string>Load the file</string>
<string>Edit the file</string>
</property>
<property name="text" >
<string>&amp;Load</string>
<string>&amp;Edit</string>
</property>
</widget>
</item>
@ -346,7 +346,7 @@
<tabstop>filenameED</tabstop>
<tabstop>browsePB</tabstop>
<tabstop>typeCO</tabstop>
<tabstop>loadPB</tabstop>
<tabstop>editPB</tabstop>
<tabstop>visiblespaceCB</tabstop>
<tabstop>previewCB</tabstop>
<tabstop>captionLE</tabstop>