00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include <qregexp.h>
00022
#include <qstring.h>
00023
#include <qiconset.h>
00024
#include <qpixmap.h>
00025
00026
#include <assert.h>
00027
#include <kiconloader.h>
00028
#include <kdebug.h>
00029
00030
#include "kguiitem.h"
00031
00032
class KGuiItem::KGuiItemPrivate
00033 {
00034
public:
00035 KGuiItemPrivate()
00036 {
00037 m_enabled =
true;
00038 m_hasIcon =
false;
00039 }
00040
00041 KGuiItemPrivate(
const KGuiItemPrivate &rhs )
00042 {
00043 ( *this ) = rhs;
00044 }
00045
00046 KGuiItemPrivate &operator=(
const KGuiItemPrivate &rhs )
00047 {
00048 m_text = rhs.m_text;
00049 m_iconSet = rhs.m_iconSet;
00050 m_iconName = rhs.m_iconName;
00051 m_toolTip = rhs.m_toolTip;
00052 m_whatsThis = rhs.m_whatsThis;
00053 m_statusText = rhs.m_statusText;
00054 m_enabled = rhs.m_enabled;
00055 m_hasIcon = rhs.m_hasIcon;
00056
00057
return *
this;
00058 }
00059
00060
QString m_text;
00061
QString m_toolTip;
00062
QString m_whatsThis;
00063
QString m_statusText;
00064
QString m_iconName;
00065
QIconSet m_iconSet;
00066
bool m_hasIcon : 1;
00067
bool m_enabled : 1;
00068 };
00069
00070
00071 KGuiItem::KGuiItem() {
00072 d =
new KGuiItemPrivate;
00073 }
00074
00075 KGuiItem::KGuiItem(
const QString &text,
const QString &iconName,
00076
const QString &toolTip,
const QString &whatsThis )
00077 {
00078 d =
new KGuiItemPrivate;
00079 d->m_text = text;
00080 d->m_toolTip = toolTip;
00081 d->m_whatsThis =
whatsThis;
00082 setIconName( iconName );
00083 }
00084
00085 KGuiItem::KGuiItem(
const QString &text,
const QIconSet &iconSet,
00086
const QString &toolTip,
const QString &whatsThis )
00087 {
00088 d =
new KGuiItemPrivate;
00089 d->m_text = text;
00090 d->m_toolTip = toolTip;
00091 d->m_whatsThis =
whatsThis;
00092 setIconSet( iconSet );
00093 }
00094
00095 KGuiItem::KGuiItem(
const KGuiItem &rhs )
00096 : d( 0 )
00097 {
00098 ( *this ) = rhs;
00099 }
00100
00101 KGuiItem &KGuiItem::operator=(
const KGuiItem &rhs )
00102 {
00103
if ( d == rhs.d )
00104
return *
this;
00105
00106 assert( rhs.d );
00107
00108
delete d;
00109 d =
new KGuiItemPrivate( *rhs.d );
00110
00111
return *
this;
00112 }
00113
00114 KGuiItem::~KGuiItem()
00115 {
00116
delete d;
00117 }
00118
00119
QString KGuiItem::text()
const
00120
{
00121
return d->m_text;
00122 }
00123
00124
00125
QString KGuiItem::plainText()
const
00126
{
00127
int len = d->m_text.length();
00128
00129
if (len == 0)
00130
return d->m_text;
00131
00132
00133
QString stripped;
00134
00135
int resultLength = 0;
00136 stripped.setLength(len);
00137
00138
const QChar* data = d->m_text.unicode();
00139
for (
int pos = 0; pos < len; pos++ )
00140 {
00141
if ( data[ pos ] !=
'&' )
00142 stripped[ resultLength++ ] = data[ pos ];
00143
else if ( pos + 1 < len && data[ pos + 1 ] ==
'&' )
00144 stripped[ resultLength++ ] = data[ pos++ ];
00145 }
00146
00147 stripped.truncate(resultLength);
00148
00149
return stripped;
00150 }
00151
00152
QIconSet KGuiItem::iconSet( KIcon::Group group,
int size,
KInstance* instance )
const
00153
{
00154
if( d->m_hasIcon )
00155 {
00156
if( !d->m_iconName.isEmpty())
00157 {
00158
00159
return instance->
iconLoader()->
loadIconSet( d->m_iconName, group, size );
00160
00161
00162
00163
00164
00165
00166
00167
00168 }
00169
else
00170 {
00171
return d->m_iconSet;
00172 }
00173 }
00174
else
00175
return QIconSet();
00176 }
00177
00178
QString KGuiItem::iconName()
const
00179
{
00180
return d->m_iconName;
00181 }
00182
00183
QString KGuiItem::toolTip()
const
00184
{
00185
return d->m_toolTip;
00186 }
00187
00188
QString KGuiItem::whatsThis()
const
00189
{
00190
return d->m_whatsThis;
00191 }
00192
00193
bool KGuiItem::isEnabled()
const
00194
{
00195
return d->m_enabled;
00196 }
00197
00198
bool KGuiItem::hasIcon()
const
00199
{
00200
return d->m_hasIcon;
00201 }
00202
00203
void KGuiItem::setText(
const QString &text ) {
00204 d->m_text=text;
00205 }
00206
00207
void KGuiItem::setIconSet(
const QIconSet &iconset )
00208 {
00209 d->m_iconSet = iconset;
00210 d->m_iconName = QString::null;
00211 d->m_hasIcon = !iconset.isNull();
00212 }
00213
00214
void KGuiItem::setIconName(
const QString &iconName )
00215 {
00216 d->m_iconName = iconName;
00217 d->m_iconSet =
QIconSet();
00218 d->m_hasIcon = !iconName.isEmpty();
00219 }
00220
00221
void KGuiItem::setToolTip(
const QString &toolTip )
00222 {
00223 d->m_toolTip = toolTip;
00224 }
00225
00226
void KGuiItem::setWhatsThis(
const QString &whatsThis )
00227 {
00228 d->m_whatsThis =
whatsThis;
00229 }
00230
00231
void KGuiItem::setEnabled(
bool enabled )
00232 {
00233 d->m_enabled = enabled;
00234 }
00235
00236
00237