Convert internal_path() to unicode (partially). Fix bug 3114:

http://bugzilla.lyx.org/show_bug.cgi?id=3114

* os.h
  - new docstring adapted internal_path()

* qt_helpers.[Ch]:
  - new QString adapted internal_path()

All other files: use that.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16744 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Abdelrazak Younes 2007-01-18 12:30:07 +00:00
parent 3d2184730a
commit 0c496dc535
10 changed files with 70 additions and 28 deletions

View File

@ -455,7 +455,8 @@ void QExternal::apply()
{
InsetExternalParams params = controller().params();
params.filename.set(internal_path(fromqstr(dialog_->fileED->text())),
// FIXME: UNICODE
params.filename.set(to_utf8(internal_path(dialog_->fileED->text())),
kernel().bufferFilepath());
params.settemplate(controller().getTemplate(

View File

@ -270,7 +270,8 @@ void QGraphics::apply()
{
InsetGraphicsParams & igp = controller().params();
igp.filename.set(internal_path(fromqstr(dialog_->filename->text())),
// FIXME: UNICODE
igp.filename.set(to_utf8(internal_path(dialog_->filename->text())),
kernel().bufferFilepath());
// the bb section

View File

@ -103,7 +103,7 @@ void QInclude::apply()
{
InsetCommandParams params = controller().params();
params["filename"] = from_utf8(internal_path(fromqstr(dialog_->filenameED->text())));
params["filename"] = internal_path(dialog_->filenameED->text());
params.preview(dialog_->previewCB->isChecked());
int const item = dialog_->typeCO->currentIndex();

View File

@ -176,12 +176,6 @@ QString const external_path_list(string const & input)
}
string const internal_path(QString const & input)
{
return lyx::support::os::internal_path(fromqstr(input));
}
string const internal_path_list(QString const & input)
{
return lyx::support::os::internal_path_list(fromqstr(input));
@ -254,8 +248,10 @@ void PrefKeyboard::apply(LyXRC & rc) const
{
// FIXME: can derive CB from the two EDs
rc.use_kbmap = keymapCB->isChecked();
rc.primary_kbmap = internal_path(firstKeymapED->text());
rc.secondary_kbmap = internal_path(secondKeymapED->text());
// FIXME: UNICODE
rc.primary_kbmap = to_utf8(internal_path(firstKeymapED->text()));
rc.secondary_kbmap = to_utf8(internal_path(secondKeymapED->text()));
}
@ -683,13 +679,14 @@ PrefPaths::PrefPaths(QPrefs * form, QWidget * parent)
void PrefPaths::apply(LyXRC & rc) const
{
rc.document_path = internal_path(workingDirED->text());
rc.template_path = internal_path(templateDirED->text());
rc.backupdir_path = internal_path(backupDirED->text());
rc.tempdir_path = internal_path(tempDirED->text());
// FIXME: UNICODE
rc.document_path = to_utf8(internal_path(workingDirED->text()));
rc.template_path = to_utf8(internal_path(templateDirED->text()));
rc.backupdir_path = to_utf8(internal_path(backupDirED->text()));
rc.tempdir_path = to_utf8(internal_path(tempDirED->text()));
rc.path_prefix = internal_path_list(pathPrefixED->text());
// FIXME: should be a checkbox only
rc.lyxpipes = internal_path(lyxserverDirED->text());
rc.lyxpipes = to_utf8(internal_path(lyxserverDirED->text()));
}
@ -707,7 +704,7 @@ void PrefPaths::update(LyXRC const & rc)
void PrefPaths::select_templatedir()
{
docstring file(form_->controller().browsedir(
qstring_to_ucs4(templateDirED->text()),
internal_path(templateDirED->text()),
_("Select a document templates directory")));
if (!file.empty())
templateDirED->setText(toqstr(file));
@ -717,7 +714,7 @@ void PrefPaths::select_templatedir()
void PrefPaths::select_tempdir()
{
docstring file(form_->controller().browsedir(
qstring_to_ucs4(tempDirED->text()),
internal_path(tempDirED->text()),
_("Select a temporary directory")));
if (!file.empty())
tempDirED->setText(toqstr(file));
@ -727,7 +724,7 @@ void PrefPaths::select_tempdir()
void PrefPaths::select_backupdir()
{
docstring file(form_->controller().browsedir(
qstring_to_ucs4(backupDirED->text()),
internal_path(backupDirED->text()),
_("Select a backups directory")));
if (!file.empty())
backupDirED->setText(toqstr(file));
@ -737,7 +734,7 @@ void PrefPaths::select_backupdir()
void PrefPaths::select_workingdir()
{
docstring file(form_->controller().browsedir(
qstring_to_ucs4(workingDirED->text()),
internal_path(workingDirED->text()),
_("Select a document directory")));
if (!file.empty())
workingDirED->setText(toqstr(file));
@ -747,7 +744,7 @@ void PrefPaths::select_workingdir()
void PrefPaths::select_lyxpipe()
{
docstring file(form_->controller().browse(
qstring_to_ucs4(lyxserverDirED->text()),
internal_path(lyxserverDirED->text()),
_("Give a filename for the LyX server pipe")));
if (!file.empty())
lyxserverDirED->setText(toqstr(file));
@ -810,8 +807,9 @@ void PrefSpellchecker::apply(LyXRC & rc) const
// FIXME: remove isp_use_esc_chars
rc.isp_esc_chars = fromqstr(escapeCharactersED->text());
rc.isp_use_esc_chars = !rc.isp_esc_chars.empty();
// FIXME: UNICODE
// FIXME: remove isp_use_pers_dict
rc.isp_pers_dict = internal_path(persDictionaryED->text());
rc.isp_pers_dict = to_utf8(internal_path(persDictionaryED->text()));
rc.isp_use_pers_dict = !rc.isp_pers_dict.empty();
rc.isp_accept_compound = compoundWordCB->isChecked();
rc.isp_use_input_encoding = inputEncodingCB->isChecked();
@ -849,7 +847,8 @@ void PrefSpellchecker::update(LyXRC const & rc)
void PrefSpellchecker::select_dict()
{
docstring file(form_->controller().browsedict(qstring_to_ucs4(persDictionaryED->text())));
docstring file(form_->controller().browsedict(
internal_path(persDictionaryED->text())));
if (!file.empty())
persDictionaryED->setText(toqstr(file));
}
@ -1606,7 +1605,8 @@ void PrefPrinter::apply(LyXRC & rc) const
rc.print_oddpage_flag = fromqstr(printerOddED->text());
rc.print_collcopies_flag = fromqstr(printerCollatedED->text());
rc.print_landscape_flag = fromqstr(printerLandscapeED->text());
rc.print_to_file = internal_path(printerToFileED->text());
// FIXME: UNICODE
rc.print_to_file = to_utf8(internal_path(printerToFileED->text()));
rc.print_extra_options = fromqstr(printerExtraED->text());
rc.print_spool_printerprefix = fromqstr(printerSpoolPrefixED->text());
rc.print_paper_dimension_flag = fromqstr(printerPaperSizeED->text());
@ -1677,8 +1677,9 @@ PrefUserInterface::PrefUserInterface(QPrefs * form, QWidget * parent)
void PrefUserInterface::apply(LyXRC & rc) const
{
rc.ui_file = internal_path(uiFileED->text());
rc.bind_file = internal_path(bindFileED->text());
// FIXME: UNICODE
rc.ui_file = to_utf8(internal_path(uiFileED->text()));
rc.bind_file = to_utf8(internal_path(bindFileED->text()));
rc.use_lastfilepos = restoreCursorCB->isChecked();
rc.load_session = loadSessionCB->isChecked();
if (loadWindowSizeCB->isChecked()) {
@ -1723,7 +1724,9 @@ void PrefUserInterface::update(LyXRC const & rc)
void PrefUserInterface::select_ui()
{
docstring file(form_->controller().browseUI(qstring_to_ucs4(uiFileED->text())));
docstring const name =
internal_path(uiFileED->text());
docstring file(form_->controller().browseUI(name));
if (!file.empty())
uiFileED->setText(toqstr(file));
}
@ -1731,7 +1734,9 @@ void PrefUserInterface::select_ui()
void PrefUserInterface::select_bind()
{
docstring file(form_->controller().browsebind(qstring_to_ucs4(bindFileED->text())));
docstring const name =
internal_path(bindFileED->text());
docstring file(form_->controller().browsebind(name));
if (!file.empty())
bindFileED->setText(toqstr(file));
}

View File

@ -17,6 +17,7 @@
#include "lengthcommon.h"
#include "gettext.h"
#include "support/os.h"
#include "support/lstrings.h"
#include "support/convert.h"
@ -179,4 +180,10 @@ docstring const formatted(docstring const & text, int w)
}
docstring const internal_path(QString const & input)
{
return lyx::support::os::internal_path(qstring_to_ucs4(input));
}
} // namespace lyx

View File

@ -59,6 +59,9 @@ QString const qt_(char const * str, const char * comment = 0);
*/
QString const qt_(std::string const & str);
///
docstring const internal_path(QString const & input);
} // namespace lyx
#endif // QTHELPERS_H

View File

@ -14,6 +14,8 @@
#ifndef OS_H
#define OS_H
#include "support/docstring.h"
#include <string>
@ -50,6 +52,9 @@ std::string external_path(std::string const & p);
/// Converts a host OS style path to unix style.
std::string internal_path(std::string const & p);
/// Converts a host OS style path to unix style.
docstring internal_path(docstring const & p);
/// Converts a unix style path list to host OS style.
std::string external_path_list(std::string const & p);

View File

@ -211,6 +211,13 @@ string internal_path(string const & p)
}
docstring internal_path(docstring const & p)
{
// FIXME UNICODE
return from_utf8(convert_path(to_utf8(p), PathStyle(posix)));
}
string external_path_list(string const & p)
{
return convert_path_list(p, PathStyle(posix));

View File

@ -70,6 +70,12 @@ string internal_path(string const & p)
}
docstring internal_path(docstring const & p)
{
return p;
}
string external_path_list(string const & p)
{
return p;

View File

@ -240,6 +240,13 @@ string internal_path(string const & p)
}
docstring internal_path(docstring const & p)
{
// FIXME UNICODE
return from_utf8(subst(get_long_path(to_utf8(p)), "\\", "/"));
}
string external_path_list(string const & p)
{
return subst(p, '/', '\\');