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.
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 \
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 \
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 \
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 \
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 \
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 \
!!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.
* 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:
#
# 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
#
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
// maybe a suffix?
name1 += suffix;
+ name2 += suffix;
QStringList imagedirs;
imagedirs << "images/" << "images/ipa/";
}
-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;
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;
}
}
}
-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) {
}
#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);
}
/// \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();
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;