Simplify code for bidi icons
Most of the RtL icons that we provide are simply mirrors of the LtR ones. Therefore let the code do that by default if no +rtl icon is found. The only RtL icon left for now is for "layout Enumerate" (notice the numbers in it). Also remove useless getPixmap wrapper and several old bidi_xxx icons that were forgotten in previous patch.
@ -568,9 +568,7 @@ dist_images_DATA1X = \
|
||||
images/tab-group-close.svgz \
|
||||
images/copy.svgz \
|
||||
images/cut.svgz \
|
||||
images/depth-decrement+rtl.svgz \
|
||||
images/depth-decrement.svgz \
|
||||
images/depth-increment+rtl.svgz \
|
||||
images/depth-increment.svgz \
|
||||
images/dialog-preferences.svgz \
|
||||
images/dialog-show-new-inset_citation.svgz \
|
||||
@ -612,17 +610,13 @@ dist_images_DATA1X = \
|
||||
images/layout-document.svgz \
|
||||
images/layout-paragraph.svgz \
|
||||
images/layout-toggle_Chunk.svgz \
|
||||
images/layout-toggle_Description+rtl.svgz \
|
||||
images/layout-toggle_Description.svgz \
|
||||
images/layout-toggle_Enumerate+rtl.svgz \
|
||||
images/layout-toggle_Enumerate.svgz \
|
||||
images/layout-toggle_Itemize+rtl.svgz \
|
||||
images/layout-toggle_Itemize.svgz \
|
||||
images/layout-toggle_Labeling+rtl.svgz \
|
||||
images/layout-toggle_Labeling.svgz \
|
||||
images/layout-toggle_List.svgz \
|
||||
images/layout-toggle_LyX-Code.svgz \
|
||||
images/layout-toggle_Section+rtl.svgz \
|
||||
images/layout-toggle_Section.svgz \
|
||||
images/lyxfiles-system.svgz \
|
||||
images/lyxfiles-user.svgz \
|
||||
@ -1860,9 +1854,7 @@ dist_imagesoxygen_DATA1X = \
|
||||
images/oxygen/closetab.svgz \
|
||||
images/oxygen/copy.svgz \
|
||||
images/oxygen/cut.svgz \
|
||||
images/oxygen/depth-decrement+rtl.svgz \
|
||||
images/oxygen/depth-decrement.svgz \
|
||||
images/oxygen/depth-increment+rtl.svgz \
|
||||
images/oxygen/depth-increment.svgz \
|
||||
images/oxygen/dialog-preferences.svgz \
|
||||
images/oxygen/dialog-show-new-inset_citation.svgz \
|
||||
@ -1901,17 +1893,13 @@ dist_imagesoxygen_DATA1X = \
|
||||
images/oxygen/layout-paragraph.svgz \
|
||||
images/oxygen/layout.svgz \
|
||||
images/oxygen/layout-toggle_Chunk.svgz \
|
||||
images/oxygen/layout-toggle_Description+rtl.svgz \
|
||||
images/oxygen/layout-toggle_Description.svgz \
|
||||
images/oxygen/layout-toggle_Enumerate+rtl.svgz \
|
||||
images/oxygen/layout-toggle_Enumerate.svgz \
|
||||
images/oxygen/layout-toggle_Itemize+rtl.svgz \
|
||||
images/oxygen/layout-toggle_Itemize.svgz \
|
||||
images/oxygen/layout-toggle_Labeling+rtl.svgz \
|
||||
images/oxygen/layout-toggle_Labeling.svgz \
|
||||
images/oxygen/layout-toggle_List.svgz \
|
||||
images/oxygen/layout-toggle_LyX-Code.svgz \
|
||||
images/oxygen/layout-toggle_Section+rtl.svgz \
|
||||
images/oxygen/layout-toggle_Section.svgz \
|
||||
images/oxygen/lyx-quit.svgz \
|
||||
images/oxygen/marginalnote-insert.svgz \
|
||||
@ -2071,9 +2059,7 @@ dist_imagesclassic_DATA = \
|
||||
images/classic/tab-group-close.png \
|
||||
images/classic/copy.png \
|
||||
images/classic/cut.png \
|
||||
images/classic/depth-decrement+rtl.png \
|
||||
images/classic/depth-decrement.png \
|
||||
images/classic/depth-increment+rtl.png \
|
||||
images/classic/depth-increment.png \
|
||||
images/classic/dialog-preferences.png \
|
||||
images/classic/dialog-show_mathdelimiter.png \
|
||||
@ -2109,17 +2095,13 @@ dist_imagesclassic_DATA = \
|
||||
images/classic/layout-paragraph.png \
|
||||
images/classic/layout.png \
|
||||
images/classic/layout-toggle_Chunk.png \
|
||||
images/classic/layout-toggle_Description+rtl.png \
|
||||
images/classic/layout-toggle_Description.png \
|
||||
images/classic/layout-toggle_Enumerate+rtl.png \
|
||||
images/classic/layout-toggle_Enumerate.png \
|
||||
images/classic/layout-toggle_Itemize+rtl.png \
|
||||
images/classic/layout-toggle_Itemize.png \
|
||||
images/classic/layout-toggle_Labeling+rtl.png \
|
||||
images/classic/layout-toggle_Labeling.png \
|
||||
images/classic/layout-toggle_List.png \
|
||||
images/classic/layout-toggle_LyX-Code.png \
|
||||
images/classic/layout-toggle_Section+rtl.png \
|
||||
images/classic/layout-toggle_Section.png \
|
||||
images/classic/marginalnote-insert.png \
|
||||
images/classic/master-buffer-update.png \
|
||||
|
@ -17,12 +17,13 @@
|
||||
|
||||
!!Documents compilation process and images conversion
|
||||
|
||||
* LyX now uses utf8 encoding per default for all languages. This does not affect
|
||||
existing documents. Note that LyX also does not touch personal defaults and templates.
|
||||
That is to say, if you still see traditional encoding preset for new documents,
|
||||
you can change that by selecting "Unicode (utf8) [default]" and hitting "Save
|
||||
as Documents Defaults" afterwards. Your personal templates need to be changed manually
|
||||
if desired.
|
||||
* LyX now uses utf8 encoding per default for all languages. This does
|
||||
not affect existing documents. Note that LyX also does not touch
|
||||
personal defaults and templates. That is to say, if you still see
|
||||
traditional encoding preset for new documents, you can change that
|
||||
by selecting "Unicode (utf8) [default]" and hitting "Save as
|
||||
Documents Defaults" afterwards. Your personal templates need to be
|
||||
changed manually if desired.
|
||||
|
||||
* LyX defaults to the "HE8" LaTeX font encoding with Hebrew if the
|
||||
"Culmus" LaTeX fonts are installed.
|
||||
@ -97,6 +98,10 @@
|
||||
|
||||
* date-insert: obsoleted by info-insert date.
|
||||
|
||||
!!!The following LyX function has been added and then removed in 2.4 development cycle.
|
||||
|
||||
* bidi: used as a first solution to provide icons that change
|
||||
direction with language.
|
||||
|
||||
|
||||
!!!The following LyX documents have been moved in 2.4:
|
||||
|
Before Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 205 B |
Before Width: | Height: | Size: 192 B |
Before Width: | Height: | Size: 183 B |
Before Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 238 B |
@ -38,7 +38,8 @@
|
||||
#
|
||||
# BidiItem is like Item, but an alternative icon (with name ending
|
||||
# with "+rtl") will be used <hen the paragraph has a right-to-left
|
||||
# layout.
|
||||
# layout. If this alternative icon does not exist, the LtR icon will
|
||||
# be mirrored instead.
|
||||
#
|
||||
# Layouts adds the layouts combo-box to the toolbar
|
||||
#
|
||||
@ -122,6 +123,7 @@ ToolbarSet
|
||||
BidiItem "Itemized list" "layout-toggle Itemize"
|
||||
BidiItem "Labeled List" "layout-toggle Labeling"
|
||||
BidiItem "Description" "layout-toggle Description"
|
||||
BidiItem "Section" "layout-toggle Section"
|
||||
BidiItem "Increase depth" "depth-increment"
|
||||
BidiItem "Decrease depth" "depth-decrement"
|
||||
Separator
|
||||
|
@ -529,6 +529,7 @@ QString iconName(FuncRequest const & f, bool unknown, QString const & suffix)
|
||||
|
||||
// maybe a suffix?
|
||||
name1 += suffix;
|
||||
name2 += suffix;
|
||||
|
||||
QStringList imagedirs;
|
||||
imagedirs << "images/" << "images/ipa/";
|
||||
@ -580,12 +581,6 @@ QString iconName(FuncRequest const & f, bool unknown, QString const & suffix)
|
||||
}
|
||||
|
||||
|
||||
bool getPixmap(QPixmap & pixmap, QString const & path)
|
||||
{
|
||||
return pixmap.load(path);
|
||||
}
|
||||
|
||||
|
||||
QPixmap getPixmap(QString const & path, QString const & name, QString const & ext)
|
||||
{
|
||||
QString imagedir = path;
|
||||
@ -593,14 +588,14 @@ QPixmap getPixmap(QString const & path, QString const & name, QString const & ex
|
||||
QString fpath = toqstr(fname.absFileName());
|
||||
QPixmap pixmap = QPixmap();
|
||||
|
||||
if (getPixmap(pixmap, fpath)) {
|
||||
if (pixmap.load(fpath)) {
|
||||
return pixmap;
|
||||
}
|
||||
|
||||
QStringList exts = ext.split(",");
|
||||
fpath = ":/" + path + name + ".";
|
||||
for (int i = 0; i < exts.size(); ++i) {
|
||||
if (getPixmap(pixmap, fpath + exts.at(i))) {
|
||||
if (pixmap.load(fpath + exts.at(i))) {
|
||||
return pixmap;
|
||||
}
|
||||
}
|
||||
@ -614,7 +609,7 @@ QPixmap getPixmap(QString const & path, QString const & name, QString const & ex
|
||||
}
|
||||
|
||||
|
||||
QIcon getIcon(FuncRequest const & f, bool unknown, QString const & suffix)
|
||||
QIcon getIcon(FuncRequest const & f, bool unknown, bool rtl)
|
||||
{
|
||||
#if (QT_VERSION >= 0x040600)
|
||||
if (lyxrc.use_system_theme_icons) {
|
||||
@ -631,18 +626,29 @@ QIcon getIcon(FuncRequest const & f, bool unknown, QString const & suffix)
|
||||
}
|
||||
#endif
|
||||
|
||||
QString icon = iconName(f, unknown, suffix);
|
||||
bool flip = false;
|
||||
QString icon;
|
||||
if (rtl) {
|
||||
icon = iconName(f, unknown, "+rtl");
|
||||
// No RTL icon, we'll make it ourselves
|
||||
flip = icon.isEmpty();
|
||||
}
|
||||
if (icon.isEmpty())
|
||||
icon = iconName(f, unknown);
|
||||
if (icon.isEmpty())
|
||||
return QIcon();
|
||||
|
||||
//LYXERR(Debug::GUI, "Found icon: " << icon);
|
||||
QPixmap pixmap = QPixmap();
|
||||
if (!getPixmap(pixmap,icon)) {
|
||||
if (!pixmap.load(icon)) {
|
||||
LYXERR0("Cannot load icon " << icon << " please verify resource system!");
|
||||
return QIcon();
|
||||
}
|
||||
|
||||
return QIcon(pixmap);
|
||||
if (flip)
|
||||
return QIcon(pixmap.transformed(QTransform().scale(-1, 1)));
|
||||
else
|
||||
return QIcon(pixmap);
|
||||
}
|
||||
|
||||
|
||||
|
@ -264,14 +264,9 @@ QString iconName(FuncRequest const & f, bool unknown,
|
||||
/// \return the pixmap for the given path, name and extension.
|
||||
/// in case of errors a warning is produced and an empty pixmap is returned.
|
||||
QPixmap getPixmap(QString const & path, QString const & name, QString const & ext);
|
||||
/// Load the file at \param path and convert it to a pixmap.
|
||||
/// \return true on success otherwise invalidate the pixmap and return false.
|
||||
/// The caller is responsible for error reporting.
|
||||
bool getPixmap(QPixmap & pixmap, QString const & path);
|
||||
|
||||
/// \return an icon for the given action.
|
||||
QIcon getIcon(FuncRequest const & f, bool unknown,
|
||||
QString const & suffix = QString());
|
||||
QIcon getIcon(FuncRequest const & f, bool unknown, bool rtl = false);
|
||||
|
||||
///
|
||||
GuiApplication * theGuiApp();
|
||||
|
@ -131,7 +131,7 @@ Action * GuiToolbar::addItem(ToolbarItem const & item)
|
||||
Action * act = new Action(item.func_, getIcon(*item.func_, false), text,
|
||||
text, this);
|
||||
if (item.type_ == ToolbarItem::BIDICOMMAND)
|
||||
act->setRtlIcon(getIcon(*item.func_, false, "+rtl"));
|
||||
act->setRtlIcon(getIcon(*item.func_, false, true));
|
||||
|
||||
actions_.append(act);
|
||||
return act;
|
||||
|