Fix memory leaks in the way pcre is used.
Remove additional string copy from QByteArray.

Don't leak the string that defines the regex and since QByteArray's are
null terminated and contiguous in memory, we don't need to copy them.
Merge branch 'release_31' into development

Fix memory leaks in the way pcre is used.
Merge branch 'release_31' into development

Remove additional string copy from QByteArray.
Make mpConsole in Host into a QPointer.

QPointer is set to null when the thing it points to is deleted.
Don't access mpConsole if it is null.
Merge branch 'release_31' into development

Make mpConsole in Host into a QPointer.
Don't access mpConsole if it is null.
Make HostManager a member of mudlet (the class).

This approach, rather than using a global singleton, makes it so that its
lifetime is better understood.
Merge branch 'release_31' into development

Make HostManager a member of mudlet (the class).
Use auto instead of typedefs for iterators.
Merge pull request #172 from ahmedcharles/auto

Use auto instead of typedefs for iterators.
BugFix: Fix-up various iconic issues.

In four places (one a twin entry) the resource path was given as:
":/icons/icons/<icon>.png" when it should have been: ":/icons/<icon>.png",
additionally as one of these uses was for a dialog box where it closed
that box and committed any changes made with no option to cancel without
undoing them I feel it would be more appropriate to use an "apply" icon
(a green tick) rather than the originally intended "dialog-close" (a
white cross on a red filled in circle).

The main application was assigned the 16x16 icon but this appears blurry
on the system task switching control (on at least Linux and Windows)
platforms.  Using the 48x48 icon appears much better and has been
changed in mudlet::mudlet().  The central debug console was not assigned
an icon so in the system task switcher it appeared as a plain icon
(at least in Linux) - I have created a suitable icon (putting a quarter
size bug on the bottom right quarter of the mudlet 48x48 icon).
Similarly I have created one for the profile_preferences.ui form with
a superimposed spanner and actually used the mudlet_notepad one that was
already present but not used for the profile notes editor.  This makes
if a bit easy to tell which window is which when swapping between them
by keyboard!

When the profile_preferences.ui has the "Use Mudlet on a netbook"
feature set, the icon that appears on the Main Toolbar to toggle in
and out of "fullscreen" mode is the Oxygen "dialog-cancel" one, however
there is a specific icon "view-fullscreen" which more closely relates
to the function of this control, I have included it and changed to that
one.  As the control is actually a toggle I also have included the
corresponding "view-restore" image as well which it might be possible
to code to use...

On the "replay" toolbar the "replay speed down" icon was spelt as
"port.png" rather than "import.png" so the downward pointing double
arrow was not shown, leaving an empty button in some situations.

Within the Trigger Editor it has been commented by users that the icon
labelled "save" and featuring a disc symbol does not actually write
anything in a permanent manner and though the tooltip does warn of this
I believe a more coherant use could be made by replacing some of the
icons.  Building on the top tool bar "item" and "group" use of a page
and a folder respectively I have used the executing and error/stop
sub-icons from the oxygen "printer-printing" and "printer-error" images
and placed them on top of a page image to replace the
tag-checkbox-checked amd tag-checkbox for the item enabled/disabled
treeWidget icons, a second pair rendered in grey scale becomes the
ancestor disabled pair and one with a "bug" to the same scale represents
code that cannot be Lua compiled.  Combining both executing and error
sub-icons ontop of a pair of circular arrows on top of a page replaces
the activate/deactive toolbar button and the circular executing sub-icon
recoloured from green to orange with an arrow indicating the affixing of
the sub-icon onto a page becomes the slightly previously misleading
"save" (code) button next to it on the top toolbar.  In the special case
of a "circular" Alias a variant of this in red with a red cross over the
arrow is used as it indicates that the "code" cannot be affixed to the
"page", which does represent the fact that the page can't be saved until
it is fixed.  As a nice side effect, that extends the page metaphor, is
the oxygen "document-import" and "document-export" icons that,
particularly in the export case, emphasises that only the selected page
(or folder) IS what is exported.  Also, as we no longer use the oxygen
"save" (disk) icon to write the code into the system, we can now use
it for the save profile (replacing the double disc "save all" icon)
which sits more nicely alongside the "save as" (disc with a pencil
writing a new label) icon that is already used.  Finally, the delete
item used the oxygen "edit-delete-shred" image but that uses a
"crumpled" page which although perhaps appropriate does look visually
at odds with the clean straight edges of the other "page" icons.
As there didn't seem to be a "document-delete" image in the Oxygen set
I had to make one to match.

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
whitespace
potential remove
BugFix: Fix-up various iconic issues.

In four places (one a twin entry) the resource path was given as:
":/icons/icons/<icon>.png" when it should have been: ":/icons/<icon>.png",
additionally as one of these uses was for a dialog box where it closed
that box and committed any changes made with no option to cancel without
undoing them I feel it would be more appropriate to use an "apply" icon
(a green tick) rather than the originally intended "dialog-close" (a
white cross on a red filled in circle).

A missing "else" in dlgTriggerEditor::saveAlias() meant that the grey
check-box indicating an alias that would be active if the parent were
to be enabled was always seen even if it was actually active.

The main application was assigned the 16x16 icon but this appears blurry
on the system task switching control (on at least Linux and Windows)
platforms.  Using the 48x48 icon appears much better and has been
changed in mudlet::mudlet().  The central debug console was not assigned
an icon so in the system task switcher it appeared as a plain icon
(at least in Linux) - I have created a suitable icon (putting a quarter
size bug on the bottom right quarter of the mudlet 48x48 icon).
Similarly I have created one for the profile_preferences.ui form with
a superimposed spanner and actually used the mudlet_notepad one that was
already present but not used for the profile notes editor.  This makes
if a bit easy to tell which window is which when swapping between them
by keyboard!

When the profile_preferences.ui has the "Use Mudlet on a netbook"
feature set, the icon that appears on the Main Toolbar to toggle in
and out of "fullscreen" mode is the Oxygen "dialog-cancel" one, however
there is a specific icon "view-fullscreen" which more closely relates
to the function of this control, I have included it and changed to that
one.  As the control is actually a toggle I also have included the
corresponding "view-restore" image as well which it might be possible
to code to use...

On the "replay" toolbar the "replay speed down" icon was spelt as
"port.png" rather than "import.png" so the downward pointing double
arrow was not shown, leaving an empty button in some situations.

In the TConsole constructor, the tool-tip "next result" is supplied to
both the mpBufferSearchUp and Down controls.  Also, the Oxygen Icon
set has specific go-up-search and go-down-search images which seem
particularly suited to these functions rather than the green double
arrow icons that have been renamed "import" and "export" for Mudlet, I
changed the code to use the search ones.  Nearby on-screen and in code
the button to toggle time-stamps on and off is the generic "information"
icon, I have replaced this with one I made from the Oxygen
"format-list-ordered" image and replaced the single blue integers to the
left of the lines that indicate text with orange "0:00:0#" to more
closely model Mudlet's use, it is called "timestamped_lines".

The code that adjusts the Main Toolbar (and corresponding Toolbars in
the "Trigger" editor) Icons sizes and the treeWidget Icons in the latter
only, only updates the Trigger Editor for THAT Profile Active when the
Profile Preferences dialog is activated - however these are global
settings and changes should be sent to ALL profiles' Trigger Editors if
more than one profile is open.  Also the initialisation code in the
constructor for the Trigger Editor did not respect the design decision
to include the Icon Title under the Icon Image for large size icons.  By
using the Qt Signal/Slot system I have re-coded this section to update
all profiles when the global icon sizes are changed in ANY of them.

Within the Trigger Editor it has been commented by users that the icon
labelled "save" and featuring a disc symbol does not actually write
anything in a permanent manner and though the tooltip does warn of this
I believe a more coherant use could be made by replacing some of the
icons.  Building on the top tool bar "item" and "group" use of a page
and a folder respectively I have used the executing and error/stop
sub-icons from the oxygen "printer-printing" and "printer-error" images
and placed them on top of a page image to replace the
tag-checkbox-checked amd tag-checkbox for the item enabled/disabled
treeWidget icons, a second pair rendered in grey scale becomes the
ancestor disabled pair and one with a "bug" to the same scale represents
code that cannot be Lua compiled.  Combining both executing and error
sub-icons ontop of a pair of circular arrows on top of a page replaces
the activate/deactive toolbar button and the circular executing sub-icon
recoloured from green to orange with an arrow indicating the affixing of
the sub-icon onto a page becomes the slightly previously misleading
"save" (code) button next to it on the top toolbar.  In the special case
of a "circular" Alias a variant of this in red with a red cross over the
arrow is used as it indicates that the "code" cannot be affixed to the
"page", which does represent the fact that the page can't be saved until
it is fixed.  As a nice side effect, that extends the page metaphor, is
the oxygen "document-import" and "document-export" icons that,
particularly in the export case, emphasises that only the selected page
(or folder) IS what is exported.  Also, as we no longer use the oxygen
"save" (disk) icon to write the code into the system, we can now use
it for the save profile (replacing the double disc "save all" icon)
which sits more nicely alongside the "save as" (disc with a pencil
writing a new label) icon that is already used.  Finally, the delete
item used the oxygen "edit-delete-shred" image but that uses a
"crumpled" page which although perhaps appropriate does look visually
at odds with the clean straight edges of the other "page" icons.
As there didn't seem to be a "document-delete" image in the Oxygen set
I had to make one to match.

Finally(!) in most places where an Icon is specified a fixed QString
that refers to the location in the resource file is needed.
QStringLiteral() is a macro that allows the implict conversion from
const char to a QString to be done at compile time rather than run-time.
Also the result can be stored in read only memory.  Also it helps to
explicitly mark a string that is NOT to be translated by tr() which will
help in the future if we ever attempt to translate Mudlet into languages
other than en-US (yippee - as an Englishman I won't have to put up with
color rather than colour everywhere!)  If anyone is brave enough to set
the Q_NO_CAST_FROM_ASCII/Q_NO_CAST_TO_ASCII macros they will get to see
how many strings will have to be either wrapped in QStringLiteral or
tr() - not counting error messages in the Lua stuff in std::string form
that will have to be redone into QString until the point of conversion
to/from utf-8 into or out of the Lua subsystem so that it can also be
translated!!!

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
BugFix: Fix 2 new/modified slot_ funct'ns to use passed args not globals.

Though presently the argument supplied to the modified/renamed icon size
setting: dlgTriggerEditor::slot_setToolbarIconSize( int ) and the new:
dlgTriggerEditor::slot_setTreeWidgetIconSize( int ) ARE the globals
used to store this information, this is not implicit in their declared
purpose, so it is best to actually use the supplied value!

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
Fixes: Some dialog icon issues

The Window Icons were not being used for profile_preferences dialog or
for the Central Debug console.  In the former it transpires the icon
was loaded from a relative file reference and not from the resource
file (and also for the icon for mudlet_custom_exit_properties) file;
and in the latter it was being set by code from the mudlet class which
just did not work - as it is being used as the central widget inside
a QMainWindow widget and THAT is what has to have the icon set!

Also, fix the fact that the profile preference was not opened in the
first tab but the third.

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>