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/tab-group-close.svgz \
|
||||||
images/copy.svgz \
|
images/copy.svgz \
|
||||||
images/cut.svgz \
|
images/cut.svgz \
|
||||||
images/depth-decrement+rtl.svgz \
|
|
||||||
images/depth-decrement.svgz \
|
images/depth-decrement.svgz \
|
||||||
images/depth-increment+rtl.svgz \
|
|
||||||
images/depth-increment.svgz \
|
images/depth-increment.svgz \
|
||||||
images/dialog-preferences.svgz \
|
images/dialog-preferences.svgz \
|
||||||
images/dialog-show-new-inset_citation.svgz \
|
images/dialog-show-new-inset_citation.svgz \
|
||||||
@ -612,17 +610,13 @@ dist_images_DATA1X = \
|
|||||||
images/layout-document.svgz \
|
images/layout-document.svgz \
|
||||||
images/layout-paragraph.svgz \
|
images/layout-paragraph.svgz \
|
||||||
images/layout-toggle_Chunk.svgz \
|
images/layout-toggle_Chunk.svgz \
|
||||||
images/layout-toggle_Description+rtl.svgz \
|
|
||||||
images/layout-toggle_Description.svgz \
|
images/layout-toggle_Description.svgz \
|
||||||
images/layout-toggle_Enumerate+rtl.svgz \
|
images/layout-toggle_Enumerate+rtl.svgz \
|
||||||
images/layout-toggle_Enumerate.svgz \
|
images/layout-toggle_Enumerate.svgz \
|
||||||
images/layout-toggle_Itemize+rtl.svgz \
|
|
||||||
images/layout-toggle_Itemize.svgz \
|
images/layout-toggle_Itemize.svgz \
|
||||||
images/layout-toggle_Labeling+rtl.svgz \
|
|
||||||
images/layout-toggle_Labeling.svgz \
|
images/layout-toggle_Labeling.svgz \
|
||||||
images/layout-toggle_List.svgz \
|
images/layout-toggle_List.svgz \
|
||||||
images/layout-toggle_LyX-Code.svgz \
|
images/layout-toggle_LyX-Code.svgz \
|
||||||
images/layout-toggle_Section+rtl.svgz \
|
|
||||||
images/layout-toggle_Section.svgz \
|
images/layout-toggle_Section.svgz \
|
||||||
images/lyxfiles-system.svgz \
|
images/lyxfiles-system.svgz \
|
||||||
images/lyxfiles-user.svgz \
|
images/lyxfiles-user.svgz \
|
||||||
@ -1860,9 +1854,7 @@ dist_imagesoxygen_DATA1X = \
|
|||||||
images/oxygen/closetab.svgz \
|
images/oxygen/closetab.svgz \
|
||||||
images/oxygen/copy.svgz \
|
images/oxygen/copy.svgz \
|
||||||
images/oxygen/cut.svgz \
|
images/oxygen/cut.svgz \
|
||||||
images/oxygen/depth-decrement+rtl.svgz \
|
|
||||||
images/oxygen/depth-decrement.svgz \
|
images/oxygen/depth-decrement.svgz \
|
||||||
images/oxygen/depth-increment+rtl.svgz \
|
|
||||||
images/oxygen/depth-increment.svgz \
|
images/oxygen/depth-increment.svgz \
|
||||||
images/oxygen/dialog-preferences.svgz \
|
images/oxygen/dialog-preferences.svgz \
|
||||||
images/oxygen/dialog-show-new-inset_citation.svgz \
|
images/oxygen/dialog-show-new-inset_citation.svgz \
|
||||||
@ -1901,17 +1893,13 @@ dist_imagesoxygen_DATA1X = \
|
|||||||
images/oxygen/layout-paragraph.svgz \
|
images/oxygen/layout-paragraph.svgz \
|
||||||
images/oxygen/layout.svgz \
|
images/oxygen/layout.svgz \
|
||||||
images/oxygen/layout-toggle_Chunk.svgz \
|
images/oxygen/layout-toggle_Chunk.svgz \
|
||||||
images/oxygen/layout-toggle_Description+rtl.svgz \
|
|
||||||
images/oxygen/layout-toggle_Description.svgz \
|
images/oxygen/layout-toggle_Description.svgz \
|
||||||
images/oxygen/layout-toggle_Enumerate+rtl.svgz \
|
images/oxygen/layout-toggle_Enumerate+rtl.svgz \
|
||||||
images/oxygen/layout-toggle_Enumerate.svgz \
|
images/oxygen/layout-toggle_Enumerate.svgz \
|
||||||
images/oxygen/layout-toggle_Itemize+rtl.svgz \
|
|
||||||
images/oxygen/layout-toggle_Itemize.svgz \
|
images/oxygen/layout-toggle_Itemize.svgz \
|
||||||
images/oxygen/layout-toggle_Labeling+rtl.svgz \
|
|
||||||
images/oxygen/layout-toggle_Labeling.svgz \
|
images/oxygen/layout-toggle_Labeling.svgz \
|
||||||
images/oxygen/layout-toggle_List.svgz \
|
images/oxygen/layout-toggle_List.svgz \
|
||||||
images/oxygen/layout-toggle_LyX-Code.svgz \
|
images/oxygen/layout-toggle_LyX-Code.svgz \
|
||||||
images/oxygen/layout-toggle_Section+rtl.svgz \
|
|
||||||
images/oxygen/layout-toggle_Section.svgz \
|
images/oxygen/layout-toggle_Section.svgz \
|
||||||
images/oxygen/lyx-quit.svgz \
|
images/oxygen/lyx-quit.svgz \
|
||||||
images/oxygen/marginalnote-insert.svgz \
|
images/oxygen/marginalnote-insert.svgz \
|
||||||
@ -2071,9 +2059,7 @@ dist_imagesclassic_DATA = \
|
|||||||
images/classic/tab-group-close.png \
|
images/classic/tab-group-close.png \
|
||||||
images/classic/copy.png \
|
images/classic/copy.png \
|
||||||
images/classic/cut.png \
|
images/classic/cut.png \
|
||||||
images/classic/depth-decrement+rtl.png \
|
|
||||||
images/classic/depth-decrement.png \
|
images/classic/depth-decrement.png \
|
||||||
images/classic/depth-increment+rtl.png \
|
|
||||||
images/classic/depth-increment.png \
|
images/classic/depth-increment.png \
|
||||||
images/classic/dialog-preferences.png \
|
images/classic/dialog-preferences.png \
|
||||||
images/classic/dialog-show_mathdelimiter.png \
|
images/classic/dialog-show_mathdelimiter.png \
|
||||||
@ -2109,17 +2095,13 @@ dist_imagesclassic_DATA = \
|
|||||||
images/classic/layout-paragraph.png \
|
images/classic/layout-paragraph.png \
|
||||||
images/classic/layout.png \
|
images/classic/layout.png \
|
||||||
images/classic/layout-toggle_Chunk.png \
|
images/classic/layout-toggle_Chunk.png \
|
||||||
images/classic/layout-toggle_Description+rtl.png \
|
|
||||||
images/classic/layout-toggle_Description.png \
|
images/classic/layout-toggle_Description.png \
|
||||||
images/classic/layout-toggle_Enumerate+rtl.png \
|
images/classic/layout-toggle_Enumerate+rtl.png \
|
||||||
images/classic/layout-toggle_Enumerate.png \
|
images/classic/layout-toggle_Enumerate.png \
|
||||||
images/classic/layout-toggle_Itemize+rtl.png \
|
|
||||||
images/classic/layout-toggle_Itemize.png \
|
images/classic/layout-toggle_Itemize.png \
|
||||||
images/classic/layout-toggle_Labeling+rtl.png \
|
|
||||||
images/classic/layout-toggle_Labeling.png \
|
images/classic/layout-toggle_Labeling.png \
|
||||||
images/classic/layout-toggle_List.png \
|
images/classic/layout-toggle_List.png \
|
||||||
images/classic/layout-toggle_LyX-Code.png \
|
images/classic/layout-toggle_LyX-Code.png \
|
||||||
images/classic/layout-toggle_Section+rtl.png \
|
|
||||||
images/classic/layout-toggle_Section.png \
|
images/classic/layout-toggle_Section.png \
|
||||||
images/classic/marginalnote-insert.png \
|
images/classic/marginalnote-insert.png \
|
||||||
images/classic/master-buffer-update.png \
|
images/classic/master-buffer-update.png \
|
||||||
|
@ -17,12 +17,13 @@
|
|||||||
|
|
||||||
!!Documents compilation process and images conversion
|
!!Documents compilation process and images conversion
|
||||||
|
|
||||||
* LyX now uses utf8 encoding per default for all languages. This does not affect
|
* LyX now uses utf8 encoding per default for all languages. This does
|
||||||
existing documents. Note that LyX also does not touch personal defaults and templates.
|
not affect existing documents. Note that LyX also does not touch
|
||||||
That is to say, if you still see traditional encoding preset for new documents,
|
personal defaults and templates. That is to say, if you still see
|
||||||
you can change that by selecting "Unicode (utf8) [default]" and hitting "Save
|
traditional encoding preset for new documents, you can change that
|
||||||
as Documents Defaults" afterwards. Your personal templates need to be changed manually
|
by selecting "Unicode (utf8) [default]" and hitting "Save as
|
||||||
if desired.
|
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
|
* LyX defaults to the "HE8" LaTeX font encoding with Hebrew if the
|
||||||
"Culmus" LaTeX fonts are installed.
|
"Culmus" LaTeX fonts are installed.
|
||||||
@ -97,6 +98,10 @@
|
|||||||
|
|
||||||
* date-insert: obsoleted by info-insert date.
|
* 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:
|
!!!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
|
# BidiItem is like Item, but an alternative icon (with name ending
|
||||||
# with "+rtl") will be used <hen the paragraph has a right-to-left
|
# 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
|
# Layouts adds the layouts combo-box to the toolbar
|
||||||
#
|
#
|
||||||
@ -122,6 +123,7 @@ ToolbarSet
|
|||||||
BidiItem "Itemized list" "layout-toggle Itemize"
|
BidiItem "Itemized list" "layout-toggle Itemize"
|
||||||
BidiItem "Labeled List" "layout-toggle Labeling"
|
BidiItem "Labeled List" "layout-toggle Labeling"
|
||||||
BidiItem "Description" "layout-toggle Description"
|
BidiItem "Description" "layout-toggle Description"
|
||||||
|
BidiItem "Section" "layout-toggle Section"
|
||||||
BidiItem "Increase depth" "depth-increment"
|
BidiItem "Increase depth" "depth-increment"
|
||||||
BidiItem "Decrease depth" "depth-decrement"
|
BidiItem "Decrease depth" "depth-decrement"
|
||||||
Separator
|
Separator
|
||||||
|
@ -529,6 +529,7 @@ QString iconName(FuncRequest const & f, bool unknown, QString const & suffix)
|
|||||||
|
|
||||||
// maybe a suffix?
|
// maybe a suffix?
|
||||||
name1 += suffix;
|
name1 += suffix;
|
||||||
|
name2 += suffix;
|
||||||
|
|
||||||
QStringList imagedirs;
|
QStringList imagedirs;
|
||||||
imagedirs << "images/" << "images/ipa/";
|
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)
|
QPixmap getPixmap(QString const & path, QString const & name, QString const & ext)
|
||||||
{
|
{
|
||||||
QString imagedir = path;
|
QString imagedir = path;
|
||||||
@ -593,14 +588,14 @@ QPixmap getPixmap(QString const & path, QString const & name, QString const & ex
|
|||||||
QString fpath = toqstr(fname.absFileName());
|
QString fpath = toqstr(fname.absFileName());
|
||||||
QPixmap pixmap = QPixmap();
|
QPixmap pixmap = QPixmap();
|
||||||
|
|
||||||
if (getPixmap(pixmap, fpath)) {
|
if (pixmap.load(fpath)) {
|
||||||
return pixmap;
|
return pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList exts = ext.split(",");
|
QStringList exts = ext.split(",");
|
||||||
fpath = ":/" + path + name + ".";
|
fpath = ":/" + path + name + ".";
|
||||||
for (int i = 0; i < exts.size(); ++i) {
|
for (int i = 0; i < exts.size(); ++i) {
|
||||||
if (getPixmap(pixmap, fpath + exts.at(i))) {
|
if (pixmap.load(fpath + exts.at(i))) {
|
||||||
return pixmap;
|
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 (QT_VERSION >= 0x040600)
|
||||||
if (lyxrc.use_system_theme_icons) {
|
if (lyxrc.use_system_theme_icons) {
|
||||||
@ -631,18 +626,29 @@ QIcon getIcon(FuncRequest const & f, bool unknown, QString const & suffix)
|
|||||||
}
|
}
|
||||||
#endif
|
#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())
|
if (icon.isEmpty())
|
||||||
return QIcon();
|
return QIcon();
|
||||||
|
|
||||||
//LYXERR(Debug::GUI, "Found icon: " << icon);
|
//LYXERR(Debug::GUI, "Found icon: " << icon);
|
||||||
QPixmap pixmap = QPixmap();
|
QPixmap pixmap = QPixmap();
|
||||||
if (!getPixmap(pixmap,icon)) {
|
if (!pixmap.load(icon)) {
|
||||||
LYXERR0("Cannot load icon " << icon << " please verify resource system!");
|
LYXERR0("Cannot load icon " << icon << " please verify resource system!");
|
||||||
return QIcon();
|
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.
|
/// \return the pixmap for the given path, name and extension.
|
||||||
/// in case of errors a warning is produced and an empty pixmap is returned.
|
/// 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);
|
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.
|
/// \return an icon for the given action.
|
||||||
QIcon getIcon(FuncRequest const & f, bool unknown,
|
QIcon getIcon(FuncRequest const & f, bool unknown, bool rtl = false);
|
||||||
QString const & suffix = QString());
|
|
||||||
|
|
||||||
///
|
///
|
||||||
GuiApplication * theGuiApp();
|
GuiApplication * theGuiApp();
|
||||||
|
@ -131,7 +131,7 @@ Action * GuiToolbar::addItem(ToolbarItem const & item)
|
|||||||
Action * act = new Action(item.func_, getIcon(*item.func_, false), text,
|
Action * act = new Action(item.func_, getIcon(*item.func_, false), text,
|
||||||
text, this);
|
text, this);
|
||||||
if (item.type_ == ToolbarItem::BIDICOMMAND)
|
if (item.type_ == ToolbarItem::BIDICOMMAND)
|
||||||
act->setRtlIcon(getIcon(*item.func_, false, "+rtl"));
|
act->setRtlIcon(getIcon(*item.func_, false, true));
|
||||||
|
|
||||||
actions_.append(act);
|
actions_.append(act);
|
||||||
return act;
|
return act;
|
||||||
|