View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0011988 | Scribus | User Interface | public | 2014-01-17 21:39 | 2015-11-22 13:56 |
Reporter | JLuc | Assigned To | cbradney | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | 1.5.0svn | ||||
Target Version | 1.5.1 | Fixed in Version | 1.5.1svn | ||
Summary | 0011988: Preselected glyphs hint bubble should also display the unicode name of the glyph and the name of the font | ||||
Description | In the favorite glyphs palette, there is a hint on each preselected glyph : it displays the Unicode code of the glyph. It would help a lot to display also - the name of the font. - the unicode name of the glyph. For example 0x273F is also known as "BLACK FLORETTE" Usefull also for totally blank glyphs (SOFT HYPHEN, NON BREAKING THIN SPACE, ...) AMOF scribus allready knows all unicode names as can be seen in the table that opens when clicking on the "Magnifiying Glass" button of the favorite glyphs palette. see also http://www.unicode.org/ucd/#UCDinXML http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt http://www.fileformat.info/info/unicode/char/273f/index.htm https://github.com/fontforge/libuninameslist | ||||
Tags | patch | ||||
Patch | Yes | ||||
|
the request is good... but i would not implement it as a tooltip. one of both: - show the information below each glyph (probably the best way to do it). - add a separate area where you add the information about the current item. |
|
ale, if you could provide the structure template for how to add text below each glyph and a separate area to add the info for the current item...then it's just a question of compiling that info for each glyph. So most of legwork of this patch would be researching and data-entry for each glyph. |
|
Added m_statusLabel for the glyph description |
|
Awesome! Will compile and test now |
|
Here is a screencast of the patch implemented: https://www.dropbox.com/s/w9vxyswspmc0qxg/GlyphInsertPatch.m4v?dl=0 |
|
SimonAW, perhaps we can also address 0012032 while you're tweeking this ? |
|
And 0011952 |
|
That looks nice. Could the text also introduce the glyph's font name ? |
|
Jluc, where should it introduce the fonts name ? |
|
Kunda What is it you dont understand exactly ? The prefered glyphs can be of various fonts. As for now, it is not possible (in the glyphs palette) to know which is the font for a prefered glyph. This is an issue when wanting to get to the same font so as to get another glyph of same font, or when wanting to be sure this is the exact wanted glyph. With simonaw's patch, a long text below the box explains which is the glyph. That's nice, but this very same area should also mention the name of the font. I wish to rise another issue : I'm surprised that there is a long english sentence to describe the glyph. There are about 120737 defined unicode glyphs. Will scribus define 120,737 sentence to describe them all ? And how will these long english explanations be translated ? Is there a public repo with all explanations and translations ? In case there is no satisfying answer to the previous questions, it would be way more simple and more robust to mention the plain name of the unicode glyph (instead of the long sentence describing it). That unicode name does not need to be translated. |
|
120,737! holy smokes, that's an enormous amount. |
|
@JLuc regarding the font name I can have a look. Regarding the glyph description there is a text file "unicodenameslist.txt" in share/scribus describing /only/ 17'824. I don't know who is maintaining this file but maybe there is some official version that also comes in various translated languages? |
|
New Patch, New Screenshot |
|
V3 |
|
Simon, compiles :) Nice update :) Found a bug: https://www.dropbox.com/s/30q4n8aiimihm8s/charpallet-v3.m4v that second char (apostrophe) won't insert to textbox when I double clicked on it. |
|
@SimonAW...void CharSelect::slot_selectionChanged( const QItemSelection& sel, const QItemSelection& ) { QModelIndexList indexes = sel.indexes(); if ( indexes.size() == 0 ) return; QModelIndex index = indexes.at(0); if ( !index.isValid() ) return; QVariant tmp = index.data(Qt::StatusTipRole); if ( !tmp.canConvert(QMetaType::QStringList) ) { m_statusLabel->setText(QString()); return; } QStringList lst = tmp.toStringList(); m_statusLabel->setText( QString("< p >< b >%1< /b >< /p >< p >Font: %2< /p>").arg( m_unicodeSearchModel->descriptionFromHex( lst.at(0) ) ).arg( lst.at(1) ) ); } Scribus code style wants this to be like this: void CharSelect::slot_selectionChanged(const QItemSelection& sel, const QItemSelection&) { QModelIndexList indexes = sel.indexes(); if (indexes.size() == 0) return; QModelIndex index = indexes.at(0); if (!index.isValid()) return; QVariant tmp = index.data(Qt::StatusTipRole); if (!tmp.canConvert(QMetaType::QStringList)) { m_statusLabel->setText(QString()); return; } QStringList lst(tmp.toStringList()); m_statusLabel->setText(QString("< p >< b >%1< /b >< /p >< p >Font: %2< /p >").arg(m_unicodeSearchModel->descriptionFromHex(lst.at(0))).arg(lst.at(1))); } Note extra spaces around < p > to avoid mantis reformatting. {s on new lines tabs are spaced at 4 chars returns on new lines FYI I have committed a fix to remove the deprecated QString::sprintf() in chartablemodel.cpp. |
|
jluc, 7:01 PM <Kunda> do you know anything about if this file is translated in to other languages 7:01 PM <Kunda> ? 7:02 PM <Kunda> this is the comment: http://bugs.scribus.net/view.php?id=11988#c35718 7:02 PM <MrB> http://unicode.org/Public/UNIDATA/NamesList.txt 7:02 PM <MrB> http://unicode.org/charts/charindex.html 7:03 PM <mrscribe> Title: Character Name Index (at unicode.org) 7:05 PM <MrB> I am not aware of any translations of this list.. apart from this US version I found here http://unicode.org/notes/tn24/ just now.. 7:05 PM <mrscribe> Title: UTN # 24: Sample American English Translation of Unicode Names List (at unicode.org) 7:05 PM <Kunda> do these words need to be translated ? 7:05 PM <Kunda> unicode character names 7:06 PM <MrB> no idea.. we wouldnt add it to the translation files, no 7:06 PM <Kunda> just shows all the words in english 7:06 PM <Kunda> good 7:06 PM <MrB> no idea if InDesign comes with a French version of the list or not 7:07 PM <MrB> but no, we are not translating that stuff |
|
@cbradney I didn't consider this patch final because I didn't expect coming this far. So this is why it was not styled according to the coding style guidelines. Sorry. |
|
simonaw, did you see the bug shown in the screencast? Can you recreate ? |
|
@SimonAW.. that's ok... just saying |
|
Thanks to SimonAW, we figured out that what I encoutnered wasn't a bug so much. The problem pre-exists the patch. It was a 'combined' glyph that expects to be combined with another glyph. I think for now the patch that SimonAW proposes could be submitted for review and hopefully committed. The Glyph/Char palette is low priority in regards to what is pending for the 1.5.1 release. Perhaps we can all get on the same page as to what the actual roadmap is. |
|
Work has been done, lets get an updated patch and I'll commit it |
|
In case these "long sentences" are the official unicode name, then they dont have to be translated. http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt seem to provide a (partial or complete) list. Strangely name for 00C6 is "LATIN CAPITAL LETTER AE", not "latin capitale letter ae (ash)" but i cant draw any conclusion of that apparent mismatch. This patch is great and will improve usability of character palette ! |
|
SimonAw : Craig B is ready to merge your patch. He waits now for your "final" patch, that is the rewriten patch according to scribus styles guidelines. Thanks in advance ! |
|
@JLuc Sorry, was very busy lately. If you can wait I will submit the new patch in the evening. Thanks. |
|
0011988_glyph-description-status-label_v4.patch (5,535 bytes)
diff --git a/scribus/chartablemodel.cpp b/scribus/chartablemodel.cpp index e59d1ab..5c866c6 100644 --- a/scribus/chartablemodel.cpp +++ b/scribus/chartablemodel.cpp @@ -62,6 +62,15 @@ QVariant CharTableModel::data(const QModelIndex &index, int role) const return "Unicode:\n0x"+tmp; } + // status tip + if ( role == Qt::StatusTipRole ) + { + QString tmp = QString("%1").arg(currentChar, 4, 16, QChar('0')).toUpper(); + QStringList lst; + lst << tmp << currentFont; + return lst; + } + // pixmap if (role == Qt::DecorationRole) { diff --git a/scribus/ui/charselect.cpp b/scribus/ui/charselect.cpp index 49265a4..aeab896 100644 --- a/scribus/ui/charselect.cpp +++ b/scribus/ui/charselect.cpp @@ -39,12 +39,14 @@ CharSelect::CharSelect(QWidget* parent) : ScrPaletteBase(parent, "CharSelect"), m_userTableModel = new CharTableModel(this, 6, m_doc, PrefsManager::instance()->appPrefs.itemToolPrefs.textFont); loadUserContent(ScPaths::getApplicationDataDir() + "charpalette.ucp"); + m_unicodeSearchModel = new UnicodeSearchModel(this); + m_userTable->setModel(m_userTableModel); m_userTable->setAcceptDrops(true); // signals and slots connections connect(m_userTable, SIGNAL(selectChar(uint, QString)), this, SLOT(userNewChar(uint, QString))); - connect(m_userTableModel, SIGNAL(selectionChanged(QItemSelectionModel*)), m_userTable, SLOT(modelSelectionChanged(QItemSelectionModel*))); + connect(m_userTable->selectionModel(), SIGNAL(selectionChanged(const QItemSelection& ,const QItemSelection&)), this, SLOT(slot_selectionChanged(const QItemSelection&, const QItemSelection&)) ); connect(m_userTableModel, SIGNAL(rowAppended()), m_userTable, SLOT(resizeLastRow())); connect(unicodeButton, SIGNAL(chosenUnicode(const QString &)), m_userTableModel, SLOT(appendUnicode(const QString &))); connect(hideButton, SIGNAL(toggled(bool)), this, SLOT(hideButton_toggled(bool))); @@ -156,6 +158,31 @@ void CharSelect::slot_insertUserSpecialChar(QChar ch, QString font) m_doc->changed(); } +void CharSelect::slot_selectionChanged( const QItemSelection& sel, const QItemSelection& ) +{ + QModelIndexList indexes = sel.indexes(); + if ( indexes.size() == 0 ) + return; + + QModelIndex index = indexes.at(0); + if ( !index.isValid() ) + return; + + // we retrieve a QStringList of two elements from data() encapsulated in a + // QVariant, so we should make sure first that we can convert to QStringList. + // Otherwise clear the status label + QVariant tmp = index.data(Qt::StatusTipRole); + if ( !tmp.canConvert(QMetaType::QStringList) ) + { + m_statusLabel->setText(QString()); + return; + } + + QStringList lst = tmp.toStringList(); + m_statusLabel->setText("<p><b>" + QString("%1").arg(m_unicodeSearchModel->descriptionFromHex(lst.at(0))).toUpper() + + "</b><br>" + QString(tr("Font: %2")).arg(lst.at(1)) + "</p>"); +} + void CharSelect::openEnhanced() { if (m_enhanced) @@ -317,6 +344,7 @@ void CharSelect::uniClearButton_clicked() ) { m_userTableModel->setCharacters(CharClassDef()); + m_statusLabel->setText(QString()); } } diff --git a/scribus/ui/charselect.h b/scribus/ui/charselect.h index ace4ac8..15d3f56 100644 --- a/scribus/ui/charselect.h +++ b/scribus/ui/charselect.h @@ -10,6 +10,7 @@ for which a new license (GPL+exception) is in place. #include "scribusapi.h" #include "scrpalettebase.h" #include "chartablemodel.h" +#include "unicodesearch.h" #include "ui_charselect.h" class PageItem; @@ -64,6 +65,7 @@ private: ScribusDoc* m_doc; //! \brief m_userTable model CharTableModel * m_userTableModel; + UnicodeSearchModel *m_unicodeSearchModel; CharSelectEnhanced * m_enhanced; @@ -86,6 +88,7 @@ private slots: void slot_insertSpecialChar(); void slot_insertSpecialChars(const QString & chars); void slot_insertUserSpecialChar(QChar, QString font); + void slot_selectionChanged( const QItemSelection&, const QItemSelection& ); void uniLoadButton_clicked(); void uniSaveButton_clicked(); void uniClearButton_clicked(); diff --git a/scribus/ui/charselect.ui b/scribus/ui/charselect.ui index 55fe90e..1b0e3d7 100644 --- a/scribus/ui/charselect.ui +++ b/scribus/ui/charselect.ui @@ -81,6 +81,13 @@ </property> </widget> </item> + <item row="2" column="0"> + <widget class="QLabel" name="m_statusLabel"> + <property name="text"> + <string/> + </property> + </widget> + </item> </layout> </widget> <customwidgets> diff --git a/scribus/ui/unicodesearch.cpp b/scribus/ui/unicodesearch.cpp index 22a2841..c7df3ad 100644 --- a/scribus/ui/unicodesearch.cpp +++ b/scribus/ui/unicodesearch.cpp @@ -117,6 +117,16 @@ UnicodeSearchModel::~UnicodeSearchModel() { } +QString UnicodeSearchModel::descriptionFromHex(const QString& hex) +{ + foreach( UnicodeStruct I, m_unicode ) + { + if ( I.hex == hex ) + return I.description; + } + return QString(); +} + int UnicodeSearchModel::rowCount(const QModelIndex & /*parent*/) const { return m_unicode.count(); diff --git a/scribus/ui/unicodesearch.h b/scribus/ui/unicodesearch.h index 53a9b8f..b5a374b 100644 --- a/scribus/ui/unicodesearch.h +++ b/scribus/ui/unicodesearch.h @@ -82,6 +82,9 @@ class UnicodeSearchModel : public QAbstractTableModel //! \brief Return hex-key for the row of given index. See m_keys. QString hexData(const QModelIndex & index); + //! \brief Return character unicode description from hex code + QString descriptionFromHex(const QString& hex); + private: //! \brief Easier to use QPair-like replacement |
|
|
|
So. Sorry for the delay. Let's see what this patch brings... I also added a status label clear on clearing the char palette. |
|
Thanks for all the work on this patch. Committed by Craig in r20254/5 |
|
Tested, fixed for the time being. Once we have a complete list of Unicode names, someone please open a new report. |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-01-17 21:39 | JLuc | New Issue | |
2014-01-17 21:39 | JLuc | Tag Attached: easyhack | |
2014-07-04 19:10 | JLuc | Tag Detached: easyhack | |
2014-07-05 00:05 | Kunda | Target Version | => 1.5.1 |
2014-07-05 00:05 | Kunda | Summary | The preselected glyphs hint bubble should display the name of the font => The preselected glyphs hint bubble should display the UNICODE NAME of the glyph and the name of the font |
2014-07-14 16:15 | Kunda | Relationship added | related to 0011952 |
2014-08-29 13:25 | ale | Note Added: 0033364 | |
2014-08-29 19:21 | Kunda | Note Added: 0033366 | |
2014-08-29 19:39 | Kunda | Relationship added | related to 0012032 |
2015-06-26 21:24 | Kunda | Relationship added | has duplicate 0011067 |
2015-06-27 06:20 | JLuc | Patch | => No |
2015-06-27 06:20 | JLuc | Description Updated | |
2015-06-27 06:24 | JLuc | Description Updated | |
2015-06-27 06:25 | JLuc | Status | new => confirmed |
2015-07-05 19:35 | JLuc | Summary | The preselected glyphs hint bubble should display the UNICODE NAME of the glyph and the name of the font => The preselected glyphs hint bubble should also display the unicode name of the glyph and the name of the font |
2015-07-05 19:36 | JLuc | Description Updated | |
2015-07-06 19:34 | simonaw | File Added: char-palette-with-status.png | |
2015-07-06 19:34 | simonaw | File Added: 0011988_glyph-description-status-label.patch | |
2015-07-06 19:35 | simonaw | Tag Attached: patch | |
2015-07-06 19:35 | simonaw | Note Added: 0035667 | |
2015-07-06 20:07 | Kunda | Note Added: 0035668 | |
2015-07-06 21:00 | Kunda | Note Added: 0035671 | |
2015-07-07 01:20 | Kunda | Patch | No => Yes |
2015-07-07 01:20 | Kunda | Summary | The preselected glyphs hint bubble should also display the unicode name of the glyph and the name of the font => [Patch] Preselected glyphs hint bubble should also display the unicode name of the glyph and the name of the font |
2015-07-07 01:22 | Kunda | Note Added: 0035673 | |
2015-07-07 01:24 | Kunda | Note Added: 0035674 | |
2015-07-07 08:00 | JLuc | Note Added: 0035680 | |
2015-07-08 13:58 | Kunda | Note Added: 0035687 | |
2015-07-08 17:17 | JLuc | Note Added: 0035695 | |
2015-07-09 12:38 | Kunda | Note Added: 0035709 | |
2015-07-09 17:22 | JLuc | Note Edited: 0035695 | |
2015-07-09 19:17 | simonaw | Note Added: 0035718 | |
2015-07-09 21:03 | simonaw | File Deleted: char-palette-with-status.png | |
2015-07-09 21:04 | simonaw | File Deleted: 0011988_glyph-description-status-label.patch | |
2015-07-09 21:04 | simonaw | File Added: 0011988_glyph-description-status-label_v2.patch | |
2015-07-09 21:07 | simonaw | File Added: char-palette-v2.png | |
2015-07-09 21:07 | simonaw | Note Added: 0035721 | |
2015-07-09 21:30 | simonaw | File Deleted: 0011988_glyph-description-status-label_v2.patch | |
2015-07-09 21:30 | simonaw | File Added: 0011988_glyph-description-status-label_v3.patch | |
2015-07-09 21:30 | simonaw | Note Added: 0035723 | |
2015-07-09 22:36 | Kunda | Note Added: 0035724 | |
2015-07-09 23:09 | cbradney | Note Added: 0035727 | |
2015-07-09 23:20 | Kunda | Note Edited: 0035727 | |
2015-07-09 23:31 | Kunda | Note Edited: 0035727 | |
2015-07-09 23:31 | Kunda | Note Edited: 0035727 | |
2015-07-10 00:11 | Kunda | Note Added: 0035729 | |
2015-07-10 00:11 | Kunda | Note Edited: 0035729 | |
2015-07-10 11:22 | simonaw | Note Added: 0035733 | |
2015-07-10 12:08 | Kunda | Note Added: 0035737 | |
2015-07-10 16:25 | cbradney | Note Added: 0035740 | |
2015-07-11 01:28 | Kunda | Note Added: 0035754 | |
2015-07-11 16:30 | cbradney | Note Added: 0035758 | |
2015-07-13 09:06 | JLuc | Note Added: 0035762 | |
2015-07-14 22:20 | JLuc | Description Updated | |
2015-07-14 22:27 | cbradney | Assigned To | => cbradney |
2015-07-14 22:27 | cbradney | Status | confirmed => assigned |
2015-07-14 22:42 | JLuc | Note Added: 0035788 | |
2015-07-14 22:42 | JLuc | Note Edited: 0035762 | |
2015-07-15 07:46 | simonaw | Note Added: 0035790 | |
2015-07-16 21:16 | simonaw | File Deleted: 0011988_glyph-description-status-label_v3.patch | |
2015-07-16 21:16 | simonaw | File Deleted: char-palette-v2.png | |
2015-07-16 21:16 | simonaw | File Added: 0011988_glyph-description-status-label_v4.patch | |
2015-07-16 21:26 | simonaw | File Added: char_palette.png | |
2015-07-16 21:27 | simonaw | Note Added: 0035807 | |
2015-07-16 21:50 | cbradney | Status | assigned => resolved |
2015-07-16 21:50 | cbradney | Fixed in Version | => 1.5.1svn |
2015-07-16 21:50 | cbradney | Resolution | open => fixed |
2015-07-16 23:22 | Kunda | Note Added: 0035808 | |
2015-07-17 07:16 | christoph_s | Note Added: 0035817 | |
2015-07-17 07:16 | christoph_s | Status | resolved => closed |
2015-11-22 13:56 | jghali | Summary | [Patch] Preselected glyphs hint bubble should also display the unicode name of the glyph and the name of the font => Preselected glyphs hint bubble should also display the unicode name of the glyph and the name of the font |