View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000970 | Scribus | Story Editor / Text Frames | public | 2004-08-14 20:40 | 2005-07-05 09:30 |
Reporter | louisdesjardins | Assigned To | fschmid | ||
Priority | high | Severity | feature | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 1.2.3 | ||||
Fixed in Version | 1.3.0cvs | ||||
Summary | 0000970: Being able to de-hyphenate text | ||||
Description | Once a text have been hyphenated through the Extra>Hyphenate Text command or else if “Check During Typing“ option is checked, it is not possible to de-hyphenate the text. (I should add, easily!*) | ||||
Additional Information | *Actually, there is a way to de-hyphenate but I wouldn't recommend doing that unless you really and desperately need the text to be de-hyphenated : deselect the “Automatic“ option in the Hyphenator Settings menu and then go to Extra>Hyphenate Text and systematically “Skip“ any suggestion Scribus will make. At the end of the process, your text will not be hyphenated anymore! | ||||
Tags | No tags attached. | ||||
Patch | |||||
child of | 0003828 | acknowledged | Metabug: Hyphenation |
|
it's a patch for latest CVS. For testing I used Lorem Ipsum. Hyphenated, saved, dehyphenated and saved as different file. Diff showed no difference at all which must means that it works lossless. |
2005-02-18 16:29
|
|
2005-04-05 06:45
|
dehypenator.patch (2,596 bytes)
Index: scribus.cpp =================================================================== RCS file: /cvs/Scribus/scribus/scribus.cpp,v retrieving revision 1.228.2.243 diff -r1.228.2.243 scribus.cpp > scrActions.insert("extrasDeHyphenateText", new ScrAction(tr("&Dehyphenate Text"), QKeySequence(), this, "extrasDeHyphenateText")); 1380a1385 > connect( scrActions["extrasDeHyphenateText"], SIGNAL(activated()) , this, SLOT(doDeHyphenate()) ); 1629a1635,1636 > scrMenuMgr->addMenuSeparator("View"); 1652c1659,1660 < scrMenuMgr->addMenuItem(scrActions["extrasGenerateTableOfContents"], "Extras"); --- > scrMenuMgr->addMenuItem(scrActions["extrasDeHyphenateText"], "Extras"); > scrMenuMgr->addMenuItem(scrActions["extrasGenerateTableOfContents"], "Extras"); 9943a9958,9970 > void ScribusApp::doDeHyphenate() > { > if (HaveDoc) > { > if (view->SelItem.count() != 0) > { > PageItem *b = view->SelItem.at(0); > if (doc->docHyphenator->Language != b->Language) > doc->docHyphenator->slotNewDict(b->Language); > doc->docHyphenator->slotDeHyphenate(b); > } > } > } Index: scribus.h =================================================================== RCS file: /cvs/Scribus/scribus/scribus.h,v retrieving revision 1.60.2.75 diff -r1.60.2.75 scribus.h 261a262 > void doDeHyphenate(); Index: hyphenator.cpp =================================================================== RCS file: /cvs/Scribus/scribus/hyphenator.cpp,v retrieving revision 1.15.2.6 diff -r1.15.2.6 hyphenator.cpp 204a205 > 362a364,393 > > /*! > \fn void Hyphenator::slotDeHyphenate(PageItem* it) > \brief Remove all Hyphenations from the whole text frame or its selected parts. > \date 2005-04-05 > \author Thomas R. Koll, <tomk32@tomk32.de>, http://verlag.tomk32.de > \param it references \see PageItem - text frame. > \retval None > */ > void Hyphenator::slotDeHyphenate(PageItem* it) > { > uint c; > if ( it->HasSel ) > { > for (c=0; c < it->Ptext.count(); c++ ) { > if (it->Ptext.at(c)->cselect) > it->Ptext.at(c)->cstyle &= 127; > } > } > else > { > for (c=0; c < it->Ptext.count(); c++ ) > it->Ptext.at(c)->cstyle &= 127; > } > qApp->setOverrideCursor(QCursor(ArrowCursor), true); > doc->DoDrawing = true; > it->OwnPage->RefreshItem(it); > > } > Index: hyphenator.h =================================================================== RCS file: /cvs/Scribus/scribus/hyphenator.h,v retrieving revision 1.6 diff -r1.6 hyphenator.h 49a50 > void slotDeHyphenate(PageItem *it); |
|
dehypenator.patch is for cvs1.3 |
2005-04-26 02:51
|
dehyphenator.patch (2,433 bytes)
Index: actionmanager.cpp =================================================================== RCS file: /cvs/Scribus/scribus/Attic/actionmanager.cpp,v retrieving revision 1.1.2.2 diff -r1.1.2.2 actionmanager.cpp 477a478 > scrActions->insert("extrasDeHyphenateText", new ScrAction(tr("&Dehyphenate Text"), QKeySequence(), ScApp, "extrasDeHyphenateText")); Index: hyphenator.cpp =================================================================== RCS file: /cvs/Scribus/scribus/hyphenator.cpp,v retrieving revision 1.15.2.9 diff -r1.15.2.9 hyphenator.cpp 374a375,409 > > /*! > \fn void Hyphenator::slotDeHyphenate(PageItem* it) > \brief Remove all Hyphenations from the whole text frame or its selected parts. > \date 2005-04-05 > \author Thomas R. Koll, <tomk32@tomk32.de> > \param it references \see PageItem - text frame. > \retval None > */ > void Hyphenator::slotDeHyphenate(PageItem* it) > { > doc->DoDrawing = false; > uint c; > if ( it->HasSel ) > { > for (c=0; c < it->itemText.count(); c++ ) { > if (it->itemText.at(c)->cselect) > it->itemText.at(c)->cstyle &= 127; > } > } > else > { > // go to first frame > while (it->BackBox) > it = it->BackBox; > do { > for (c=0; c < it->itemText.count(); c++ ) > it->itemText.at(c)->cstyle &= 127; > } while (it->NextBox); > } > qApp->setOverrideCursor(QCursor(ArrowCursor), true); > doc->DoDrawing = true; > > } > Index: hyphenator.h =================================================================== RCS file: /cvs/Scribus/scribus/hyphenator.h,v retrieving revision 1.6 diff -r1.6 hyphenator.h 49a50 > void slotDeHyphenate(PageItem *it); Index: scribus.cpp =================================================================== RCS file: /cvs/Scribus/scribus/scribus.cpp,v retrieving revision 1.228.2.274 diff -r1.228.2.274 scribus.cpp 1243a1244 > scrMenuMgr->addMenuItem(scrActions["extrasDeHyphenateText"], "Extras"); 9615a9617,9630 > void ScribusApp::doDeHyphenate() > { > if (HaveDoc) > { > if (view->SelItem.count() != 0) > { > PageItem *b = view->SelItem.at(0); > if (doc->docHyphenator->Language != b->Language) > doc->docHyphenator->slotNewDict(b->Language); > doc->docHyphenator->slotDeHyphenate(b); > } > } > } > |
|
Reminder sent to: fschmid Any opinion on this? It needs tweaks so the menu item is only active when a text item is selected, but it seems fairly low impact, and does solve a real user problem. I've had a couple of people ask if it'd work with 1.2.2cvs too, so it's evidently a real issue for some folks. |
|
Ideally, the ability to hyphenate/dehyphenate should be an option in the stylesheet definition. Case: You need *body text hyphenated. You don't want *titles, *lead paragraphs, *subtitles to be hyphenated. For *each, you want to set a stylesheet. Can't include hyphenation at the moment in the style definition. When it will be available, you'll want to be able to change your mind and decide for example that subtitles will be hyphenated. Sorry the initial report for this was not very explicit. This explains better my view on this issue. And, to add to what Craig says, yes, it's a real issue! |
|
Reminder sent to: fschmid Franz, do you think we should apply this - at least to 1.2.2cvs or 1.2.3cvs? Users do need some way to de hyphenate text, and this'll do until we can get some improved text handling in with the new file format. |
2005-07-01 09:46
|
dehyph_122cvs.diff (5,534 bytes)
? Document-1.pdf ? doc/en/tutorials/short-words/Makefile ? doc/en/tutorials/short-words/Makefile.in ? plugins/gettext/odtim/.deps ? plugins/gettext/odtim/.libs ? plugins/gettext/odtim/Makefile ? plugins/gettext/odtim/Makefile.in ? plugins/gettext/odtim/contentreader.lo ? plugins/gettext/odtim/libodtimplugin.la ? plugins/gettext/odtim/odtdia.lo ? plugins/gettext/odtim/odtdia.moc ? plugins/gettext/odtim/odtim.lo ? plugins/gettext/odtim/stylereader.lo ? plugins/scriptplugin/editmacrodialog.cpp ? plugins/scriptplugin/editmacrodialog.h ? plugins/scriptplugin/managemacrosdialog.cpp ? plugins/scriptplugin/managemacrosdialog.h ? plugins/scriptplugin/samples/Makefile ? plugins/scriptplugin/samples/Makefile.in ? plugins/scriptplugin/scripts/Makefile ? plugins/scriptplugin/scripts/Makefile.in Index: hyphenator.cpp =================================================================== RCS file: /cvs/Scribus/scribus/hyphenator.cpp,v retrieving revision 1.19 diff -u -r1.19 hyphenator.cpp --- hyphenator.cpp 18 Apr 2005 21:23:04 -0000 1.19 +++ hyphenator.cpp 1 Jul 2005 11:45:53 -0000 @@ -369,3 +369,31 @@ doc->DoDrawing = true; nb1->OwnPage->RefreshItem(nb1); } + +/*! + \fn void Hyphenator::slotDeHyphenate(PageItem* it) + \brief Remove all Hyphenations from the whole text frame or its selected parts. + \date 2005-01-18 + \author Thomas R. Koll, <tomk32@tomk32.de> + \param it references \see PageItem - text frame. + \retval None + */ +void Hyphenator::slotDeHyphenate(PageItem* it) +{ + uint c; + if ( it->HasSel ) + { + for (c=0; c < it->Ptext.count(); c++ ) { + if (it->Ptext.at(c)->cselect) + it->Ptext.at(c)->cstyle &= 127; + } + } + else + { + for (c=0; c < it->Ptext.count(); c++ ) + it->Ptext.at(c)->cstyle &= 127; + } + qApp->setOverrideCursor(QCursor(ArrowCursor), true); + doc->DoDrawing = true; + it->OwnPage->RefreshItem(it); +} Index: hyphenator.h =================================================================== RCS file: /cvs/Scribus/scribus/hyphenator.h,v retrieving revision 1.6 diff -u -r1.6 hyphenator.h --- hyphenator.h 10 Apr 2004 10:08:59 -0000 1.6 +++ hyphenator.h 1 Jul 2005 11:45:53 -0000 @@ -47,5 +47,6 @@ void slotNewSettings(int Wordlen, bool Autom, bool ACheck, int Num); void slotHyphenateWord(PageItem* it, QString text, int firstC); void slotHyphenate(PageItem *it); + void slotDeHyphenate(PageItem *it); }; #endif Index: scribus.cpp =================================================================== RCS file: /cvs/Scribus/scribus/scribus.cpp,v retrieving revision 1.288 diff -u -r1.288 scribus.cpp --- scribus.cpp 24 Jun 2005 16:31:46 -0000 1.288 +++ scribus.cpp 1 Jul 2005 11:45:55 -0000 @@ -834,6 +834,9 @@ hyph = extraMenu->insertItem( tr("&Hyphenate Text"), this, SLOT(doHyphenate())); extraMenu->setItemEnabled(hyph, 0); SetKeyEntry(50, tr("Hyphenate Text"), hyph, 0); + dehyph = extraMenu->insertItem( tr("&Deyphenate Text"), this, SLOT(doDeHyphenate())); + extraMenu->setItemEnabled(dehyph, 0); + SetKeyEntry(50, tr("Dehyphenate Text"), hyph, 0); settingsMenu = new QPopupMenu(); tip = settingsMenu->insertItem( tr("Toolti&ps"), this, SLOT(ToggleTips())); @@ -2701,6 +2704,7 @@ editMenu->setItemEnabled(edid4, 0); editMenu->setItemEnabled(Sear, 0); extraMenu->setItemEnabled(hyph, 0); + extraMenu->setItemEnabled(dehyph, 0); StilMenu->clear(); WerkTools->KetteAus->setEnabled(false); WerkTools->KetteEin->setEnabled(false); @@ -2719,6 +2723,7 @@ editMenu->setItemEnabled(edid4, 0); editMenu->setItemEnabled(Sear, 0); extraMenu->setItemEnabled(hyph, 0); + extraMenu->setItemEnabled(dehyph, 0); menuBar()->setItemEnabled(Stm, 1); menuBar()->setItemEnabled(Obm, 1); if ((b->isTableItem) && (b->isSingleSel)) @@ -2838,6 +2843,7 @@ editMenu->setItemEnabled(edid4, 0); editMenu->setItemEnabled(Sear, 0); extraMenu->setItemEnabled(hyph, 0); + extraMenu->setItemEnabled(dehyph, 0); menuBar()->setItemEnabled(Stm, 1); menuBar()->setItemEnabled(Obm, 1); ObjMenu->setItemEnabled(ShapeM, 0); @@ -2882,6 +2888,7 @@ editMenu->setItemEnabled(edid4, 0); editMenu->setItemEnabled(Sear, 0); extraMenu->setItemEnabled(hyph, 0); + extraMenu->setItemEnabled(dehyph, 0); menuBar()->setItemEnabled(Stm, 1); menuBar()->setItemEnabled(Obm, 1); StilMenu->clear(); @@ -3886,6 +3893,7 @@ editMenu->setItemEnabled(edid6a, 0); editMenu->setItemEnabled(Sear, 0); extraMenu->setItemEnabled(hyph, 0); + extraMenu->setItemEnabled(dehyph, 0); menuBar()->setItemEnabled(ViMen, 0); menuBar()->setItemEnabled(WinMen, 0); viewMenu->setItemChecked(uGuide, false); @@ -8983,6 +8991,21 @@ doc->Trenner->slotHyphenate(b); slotDocCh(); } + extraMenu->setItemEnabled(dehyph, 1); + } +} + +void ScribusApp::doDeHyphenate() +{ + PageItem *b; + if (HaveDoc) + { + if (doc->ActPage->SelItem.count() != 0) + { + b = doc->ActPage->SelItem.at(0); + doc->Trenner->slotDeHyphenate(b); + slotDocCh(); + } } } Index: scribus.h =================================================================== RCS file: /cvs/Scribus/scribus/scribus.h,v retrieving revision 1.67 diff -u -r1.67 scribus.h --- scribus.h 1 Jun 2005 23:14:04 -0000 1.67 +++ scribus.h 1 Jul 2005 11:45:55 -0000 @@ -246,6 +246,7 @@ void CanUndo(); void configHyphenator(); void doHyphenate(); + void doDeHyphenate(); void slotTest(); void slotTest2(); void PutScrap(QString t); @@ -576,6 +577,7 @@ int LockOb; int exmn; int hyph; + int dehyph; int ORaise; int OLower; int OBack; |
|
I want to merge this for 1.2.2 as well - I think that's much more important than for 1.3 (where we'll fix it properly) anyway. The current patch doesn't quite work right, however. The "dehyphenate" menu item is note always enabled when a text item is selected, hyphenated or unhyphenated. Tom32k, if you can fix that and provide a diff in `diff -u' format that applies cleanly to 1.2.2cvs I'll merge your patch. |
|
Craig, it's not a good idea to apply this patch to the 1.2.2 branch yet, as it will break the string freeze we're in. And the patch here in the Bug is not correct, the code i've put into 1.3.0 is much better. |
|
OK. That makes sense. Unfortunate, but yes especially given the freeze I have to agree. Up to you then - if you like I can try to adapt your 1.3 patch and drop it in after the 1.2.2 release. I do think it's important - we get enough questions on IRC about it to indicate it's causing people real problems. |
|
bumping to 1.2.3 |
|
Closing this again. I don't have time to try to port the patch nor the knowledge to be sure it's correct. |
Date Modified | Username | Field | Change |
---|---|---|---|
2004-08-14 20:40 | louisdesjardins | New Issue | |
2005-02-18 16:23 | TomK32 | Note Added: 0003738 | |
2005-02-18 16:29 | TomK32 | File Added: dehyphenator.tar | |
2005-04-05 06:45 | TomK32 | File Added: dehypenator.patch | |
2005-04-05 06:46 | TomK32 | Note Added: 0004075 | |
2005-04-26 02:51 | TomK32 | File Added: dehyphenator.patch | |
2005-04-26 07:46 |
|
Note Added: 0004414 | |
2005-04-26 07:47 |
|
Status | new => acknowledged |
2005-04-26 10:32 | louisdesjardins | Note Added: 0004417 | |
2005-06-30 13:09 |
|
Note Added: 0005270 | |
2005-06-30 13:12 |
|
Priority | normal => high |
2005-06-30 13:12 |
|
OS | Mandrake => |
2005-06-30 13:12 |
|
OS Version | 10 => |
2005-06-30 13:12 |
|
Platform | Linux => |
2005-06-30 13:12 |
|
Product Version | 1.2CVS => 1.2.2cvs |
2005-06-30 19:57 | fschmid | Status | acknowledged => resolved |
2005-06-30 19:57 | fschmid | Fixed in Version | => 1.3.0cvs |
2005-06-30 19:57 | fschmid | Resolution | open => fixed |
2005-06-30 19:57 | fschmid | Assigned To | => fschmid |
2005-07-01 09:46 |
|
File Added: dehyph_122cvs.diff | |
2005-07-01 09:46 |
|
Status | resolved => assigned |
2005-07-01 09:46 |
|
Assigned To | fschmid => ringerc |
2005-07-01 09:48 |
|
Note Added: 0005308 | |
2005-07-01 10:55 | fschmid | Note Added: 0005312 | |
2005-07-01 11:02 |
|
Note Added: 0005313 | |
2005-07-03 19:00 |
|
Note Added: 0005372 | |
2005-07-03 19:00 |
|
Product Version | 1.2.2cvs => 1.2.3 |
2005-07-05 03:14 |
|
Status | assigned => resolved |
2005-07-05 03:14 |
|
Note Added: 0005389 | |
2005-07-05 03:15 |
|
Assigned To | ringerc => fschmid |
2005-07-05 09:30 | cbradney | Status | resolved => closed |
2006-05-16 22:10 | christoph_s | Relationship added | child of 0003828 |
2015-09-17 20:08 | Kunda | Category | Story Editor / Text Frames => Story Ed/Txt Frames |
2015-09-17 20:12 | Kunda | Category | Story Ed/Txt Frames => Story Editor / Text Frames |