trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: January 2014

Re: [trinity-devel] Final inspection for KDE-TDE/kde/tde rebranding issues

From: Jim <zlists@...>
Date: Thu, 16 Jan 2014 19:24:39 -0400
On Thu, Jan 16, 2014 at 15:30 (-0600), Darrell Anderson wrote:

>>I'm not really clear on what it is you want to search for.

> Here is a sample of the type of multiple line strings I want to 
> search:

> TQWhatsThis::add( clickRaiseOn, i18n("When this option is enabled, 
> the active window will be brought to the"
>                                     " front when you click 
> somewhere into the window contents. To change"
>                                     " it for inactive windows, you 
> need to change the settings"
>                                     " in the Actions tab.") );

> The important point is the string is multiple lines. The only known 
> constants are the first line contains a call to TQWhatsThis and the 
> end of the string is a semi-colon.

> More than likely, the last two characters are known: a closing 
> parentheses and a semi-colon.

The shell command I sent out this morning already narrowed it down to
the TQWhatsThis calls which have kde in them.  Admittedly, I gave you
the list of files, and not the actual string.

> I want to run a comprehensive check against the entire source tree 
> looking inside these types of strings for references to "KDE" or 
> "kde."
That's what I (think I) did.  Except I showed the files, not the strings.


> This example string does not contain a KDE/kde reference.  I would 
> not want this particular string to bubble up in my search. Only 
> those multiple line strings that contain "KDE or "kde."
Makes sense.

> There are legitimate strings where KDE/kde should be left as is, 
> such as accreditations to past developers.

> I don't want to perform a search-and-replace. I only want to 
> perform a search. I want to manually read any remaining KDE/kde 
> remnants in context to decide whether to update to TDE/tde.

> grep won't do the job.
Not by itself, but sed and tr are its friends.

> Something likely could be wrangled out of the -A option. but I
> suspect that kind of script would be slow, needing to continually
> test whether the last line contains a closing parentheses and a
> semi-colon.

Consider this:

cd <top-level-dir-of-the-files-you-want-to-search>
find . -type f | while read f
do
    if tr $'\n' ' ' < $f \
        | sed 's/"[ \t][ \t]*"/ /g' \
	| grep -o 'TQWhatsThis[^"]*"[^"]*[kK][Dd][Ee][^"]*"'
    then 
        echo THE ABOVE CAME FROM $f
	echo
    fi
done

This would output stuff like

TQWhatsThis::add(m_fontpath,  			i18n("When using font embedding you can select additional directories where  KDE should search for embeddable font files. By default, the X server  font path is used, so adding those directories is not needed. The default  search path should be sufficient in most cases."
THE ABOVE CAME FROM ./main/tdelibs/tdeprint/management/kmconfigfonts.cpp

Is that the sort of thing that would help you?  Admittedly the line
breaks and spacing have changed, but I'm guessing that doesn't matter
to you.

If you like it, be very careful with your copy/paste operation.


> I also want to perform the same type of search against TQTooTip 
> multiple line strings.
Change 'WhatsThis' to 'ToolTip' (I assume you meant 'tool' and not 'too')
in the grep line above.


> There are also multiple line strings in *.ui files containing 
> What's This and Tooltip strings. There the usage is different:

> <property name="whatsThis" stdset="0">
>   <string>Enter the command you wish to execute or the address of 
> the resource you want to open. This can be a remote URL like 
> "www.kde.org" or a local one like "~/.tderc".</string>
> </property>

> <property name="toolTip" stdset="0">
>   <string>Slow processors perform poorly with effects</string>
> </property>

> In the *.ui files the known constants are <property name=xxx > and 
> </property>.
Not <string> and </string> ??
If <string> is always after <property ...> in the strings you want,
and there is no other <tag>, you could give this a whirl:

find . -type f | while read f
do
    if tr $'\n' ' ' < $f \
        | sed 's/"[ \t][ \t]*"/ /g' \
	| grep -o '<property name="whatsThis"[^>]*> *<string>[^<]*[kK][Dd][Ee][^>]*>'
    then 
        echo THE ABOVE CAME FROM $f
	echo
    fi
done

On the file main/tdelibs/tdehtml/kjserrordlg.ui that outputs

<property name="whatsThis" stdset="0">         <string>This dialog provides you with notification and details of scripting errors that occur on web pages.  In many cases it is due to an error in the web site as designed by its author.  In other cases it is the result of a programming error in Konqueror.  If you suspect the former, please contact the webmaster of the site in question.  Conversely if you suspect an error in Konqueror, please file a bug report at http://bugs.kde.org/.  A test case which illustrates the problem will be appreciated.</string>


Is that helpful?


I won't spend more time on this now in case I am still barking up the
wrong tree.  If, indeed, I am barking in the wrong place, and you
have the energy to try to explain once more, please do and I'll see
what I can come up with.


				Jim