00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
#include <qlayout.h>
00027
#include <qtabwidget.h>
00028
#include <qcombobox.h>
00029
#include <qcheckbox.h>
00030
#include <qpoint.h>
00031
#include <qobjectlist.h>
00032
#include <qvgroupbox.h>
00033
00034
#include <klocale.h>
00035
#include <kdeversion.h>
00036
#include <kfiledialog.h>
00037
#include <kinstance.h>
00038
#include <koFilterManager.h>
00039
#include <koTemplates.h>
00040
#include <koDocument.h>
00041
#include <kmainwindow.h>
00042
00043
#include "koTemplateChooseDia.h"
00044
#include <kdebug.h>
00045
00046
#include <kpushbutton.h>
00047
#include <kjanuswidget.h>
00048
#include <kglobalsettings.h>
00049
#include <ktextedit.h>
00050
#include <kfileiconview.h>
00051
#include <kfileitem.h>
00052
#include <kmessagebox.h>
00053
#include <qapplication.h>
00054
#include <qtooltip.h>
00055
#include <kapplication.h>
00056
00057
class MyFileDialog :
public KFileDialog
00058 {
00059
public :
00060 MyFileDialog(
00061
const QString& startDir=0,
00062
const QString& filter =0,
00063
QWidget *parent=0,
00064
const char *name=0,
00065
bool modal=0)
00066 : KFileDialog (startDir, filter, parent, name, modal) {}
00067
00068 KURL currentURL()
00069 {
00070 setResult( QDialog::Accepted );
00071
return KFileDialog::selectedURL();
00072 }
00073
00074
00075
bool checkURL()
00076 {
00077
bool ok =
true;
00078 KURL url = currentURL();
00079
if ( url.isLocalFile() )
00080 {
00081 ok = QFile::exists( url.path() );
00082
if ( !ok ) {
00083
00084 KMessageBox::error(
this, i18n(
"The file %1 doesn't exist." ).arg( url.path() ) );
00085 }
00086 }
00087
return ok;
00088 }
00089
protected:
00090
00091
00092
virtual void accept() {
00093
if ( checkURL() )
00094 KFileDialog::accept();
00095 }
00096
00097
virtual void reject() {
00098 KFileDialog::reject();
00099 emit cancelClicked();
00100 }
00101
00102 };
00103
00104
00105
00106
00107
00108
class KoTemplateChooseDiaPrivate {
00109
public:
00110 KoTemplateChooseDiaPrivate(
const QCString& templateType, KInstance* global,
00111
const QCString &format,
const QString &nativePattern,
00112
const QString &nativeName,
00113
const KoTemplateChooseDia::DialogType &dialogType) :
00114 m_templateType(templateType), m_global(global), m_format(format),
00115 m_nativePattern(nativePattern), m_nativeName(nativeName),
00116 m_dialogType(dialogType), tree(0L), m_mainwidget(0L)
00117 {
00118 m_returnType = KoTemplateChooseDia::Empty;
00119 m_nostartupdlg =
false;
00120 tree = 0;
00121 m_nodiag = 0;
00122 }
00123
00124 ~KoTemplateChooseDiaPrivate() {}
00125
00126
QCString m_templateType;
00127 KInstance* m_global;
00128
QCString m_format;
00129
QString m_nativePattern;
00130
QString m_nativeName;
00131
KoTemplateChooseDia::DialogType m_dialogType;
00132 KoTemplateTree *tree;
00133
00134
QString m_templateName;
00135
QString m_fullTemplateName;
00136
KoTemplateChooseDia::ReturnType m_returnType;
00137
00138
bool m_nostartupdlg;
00139
00140
00141
QWidget *m_mainwidget;
00142
00143
00144
QCheckBox *m_nodiag;
00145
00146
00147 KJanusWidget * m_jwidget;
00148 KFileIconView *m_recent;
00149
QVGroupBox * boxdescription;
00150 KTextEdit * textedit;
00151
00152
00153 MyFileDialog *m_filedialog;
00154
00155
00156
QTabWidget* tabWidget;
00157
QWidget* newTab;
00158
QWidget* existingTab;
00159
QWidget* recentTab;
00160
00161 };
00162
00163
00164
00165
00166
00167
00168 KoTemplateChooseDia::KoTemplateChooseDia(
QWidget *parent,
const char *name, KInstance* global,
00169
const QCString &format,
const QString &nativePattern,
00170
const QString &nativeName,
const DialogType &dialogType,
00171
const QCString& templateType) :
00172 KDialogBase(parent, name, true, i18n("Open
Document"), KDialogBase::Ok | KDialogBase::Cancel,
00173 KDialogBase::Ok) {
00174
00175 d =
new KoTemplateChooseDiaPrivate(
00176 templateType,
00177 global,
00178 format,
00179 nativePattern,
00180 nativeName,
00181 dialogType);
00182
00183
QPushButton* ok = actionButton( KDialogBase::Ok );
00184
QPushButton* cancel = actionButton( KDialogBase::Cancel );
00185 cancel->setAutoDefault(
false);
00186 ok->setDefault(
true);
00187
00188
00189
if (!templateType.isNull() && !templateType.isEmpty() && dialogType!=NoTemplates)
00190 d->tree=
new KoTemplateTree(templateType, global,
true);
00191
00192 d->m_mainwidget=makeMainWidget();
00193
00194 d->m_templateName =
"";
00195 d->m_fullTemplateName =
"";
00196 d->m_returnType = Cancel;
00197
00198 setupDialog();
00199
00200 }
00201
00202 KoTemplateChooseDia::~KoTemplateChooseDia()
00203 {
00204
delete d->tree;
00205
delete d;
00206 d=0L;
00207 }
00208
00209
static bool cancelQuits() {
00210
bool onlyDoc = !
KoDocument::documentList() ||
KoDocument::documentList()->count() <= 1;
00211
bool onlyMainWindow = !KMainWindow::memberList || KMainWindow::memberList->count() <= 1;
00212
return onlyDoc && onlyMainWindow && kapp->instanceName() !=
"koshell";
00213 }
00214
00215
00216
00217 KoTemplateChooseDia::ReturnType KoTemplateChooseDia::choose(KInstance* global,
QString &file,
00218
const QCString &format,
const QString &nativePattern,
00219
const QString &nativeName,
00220
const KoTemplateChooseDia::DialogType &dialogType,
00221
const QCString& templateType) {
00222
00223
KoTemplateChooseDia *dlg =
new KoTemplateChooseDia( 0,
"Choose", global, format, nativePattern,
00224 nativeName, dialogType, templateType);
00225
00226
KoTemplateChooseDia::ReturnType rt = Cancel;
00227
00228
if (dlg->
noStartupDlg())
00229 {
00230
00231 file = dlg->
getFullTemplate();
00232 rt = dlg->
getReturnType();
00233 }
00234
else
00235 {
00236 dlg->resize( 700, 480 );
00237
if ( dlg->exec() == QDialog::Accepted )
00238 {
00239 file = dlg->
getFullTemplate();
00240 rt = dlg->
getReturnType();
00241 }
00242 }
00243
00244
delete dlg;
00245
if ( rt == Cancel && dialogType == Everything && cancelQuits() )
00246
00247 kapp->quit();
00248
00249
return rt;
00250 }
00251
00252
bool KoTemplateChooseDia::noStartupDlg()
const {
00253
return d->m_nostartupdlg;
00254 }
00255
00256
00257 QString KoTemplateChooseDia::getTemplate()
const{
00258
return d->m_templateName;
00259 }
00260
00261 QString KoTemplateChooseDia::getFullTemplate()
const{
00262
return d->m_fullTemplateName;
00263 }
00264
00265 KoTemplateChooseDia::ReturnType KoTemplateChooseDia::getReturnType()
const {
00266
return d->m_returnType;
00267 }
00268
00269 KoTemplateChooseDia::DialogType KoTemplateChooseDia::getDialogType()
const {
00270
return d->m_dialogType;
00271 }
00272
00273
00274
00275
void KoTemplateChooseDia::setupRecentDialog(
QWidget * widgetbase,
QGridLayout * layout)
00276 {
00277
00278 d->m_recent =
new KoTCDRecentFilesIconView(widgetbase,
"recent files");
00279
00280 d->m_recent->setSorting( static_cast<QDir::SortSpec>( QDir::Time | QDir::Reversed ) );
00281 layout->addWidget(d->m_recent,0,0);
00282
00283
QString oldGroup = d->m_global->config()->group();
00284 d->m_global->config()->setGroup(
"RecentFiles" );
00285
00286
int i = 0;
00287
QString value;
00288
do {
00289
QString key=
QString(
"File%1" ).arg( i );
00290 value=d->m_global->config()->readPathEntry( key );
00291
if ( !value.isEmpty() ) {
00292 KURL url(value);
00293 KFileItem *item =
new KFileItem( KFileItem::Unknown, KFileItem::Unknown, url );
00294 d->m_recent->insertItem(item);
00295 }
00296 i++;
00297 }
while ( !value.isEmpty() || i<=10 );
00298
00299 d->m_global->config()->setGroup( oldGroup );
00300 d->m_recent->showPreviews();
00301
00302 connect(d->m_recent, SIGNAL( doubleClicked (
QIconViewItem * ) ),
00303
this, SLOT( recentSelected( QIconViewItem * ) ) );
00304
00305 }
00306
00307
00308
00309
void KoTemplateChooseDia::setupFileDialog(
QWidget * widgetbase,
QGridLayout * layout)
00310 {
00311
QString dir = QString::null;
00312
QPoint point( 0, 0 );
00313
00314 d->m_filedialog=
new MyFileDialog(dir,
00315 QString::null,
00316 widgetbase,
00317
"file dialog",
00318
false);
00319
00320 layout->addWidget(d->m_filedialog,0,0);
00321 d->m_filedialog->reparent( widgetbase , point );
00322
00323
00324
QObjectList *l = d->m_filedialog->queryList(
"QPushButton" );
00325 QObjectListIt it( *l );
00326
QObject *obj;
00327
while ( (obj = it.current()) != 0 ) {
00328 ++it;
00329 ((
QPushButton*)obj)->hide();
00330 }
00331
delete l;
00332
00333 d->m_filedialog->setSizeGripEnabled ( FALSE );
00334 d->m_filedialog->setMimeFilter(
00335 KoFilterManager::mimeFilter( d->m_format, KoFilterManager::Import ));
00336
00337 connect(d->m_filedialog, SIGNAL( okClicked() ),
00338
this, SLOT (
slotOk() ));
00339
00340 connect(d->m_filedialog, SIGNAL( cancelClicked() ),
00341
this, SLOT ( slotCancel() ));
00342
00343 }
00344
00345
00346
00347
void KoTemplateChooseDia::setupTemplateDialog(
QWidget * widgetbase,
QGridLayout * layout)
00348 {
00349
00350 d->m_jwidget =
new KJanusWidget(
00351 widgetbase,
00352
"kjanuswidget",
00353 KJanusWidget::IconList);
00354 layout->addWidget(d->m_jwidget,0,0);
00355
00356 d->boxdescription =
new QVGroupBox(
00357 i18n(
"Selected Template"),
00358 widgetbase,
00359
"boxdescription");
00360 layout->addWidget(d->boxdescription, 1, 0 );
00361
00362
00363 KConfigGroup grp( d->m_global->config(),
"TemplateChooserDialog" );
00364
int templateNum = grp.readEntry(
"TemplateTab" ).toInt();
00365
QString templateName = grp.readPathEntry(
"TemplateName" );
00366
00367
00368 QIconViewItem * itemtoselect = 0;
00369
00370
00371
int entriesnumber = 0;
00372
00373
for ( KoTemplateGroup *group = d->tree->first(); group!=0L; group=d->tree->next() )
00374 {
00375
if (group->isHidden())
00376
continue;
00377
00378
QFrame * frame = d->m_jwidget->addPage (
00379 group->name(),
00380 group->name(),
00381 group->first()->loadPicture());
00382
00383
QGridLayout * layout =
new QGridLayout(frame);
00384
KoTCDIconCanvas *canvas =
new KoTCDIconCanvas( frame );
00385 layout->addWidget(canvas,0,0);
00386
00387 canvas->setBackgroundColor( colorGroup().base() );
00388 canvas->setResizeMode(QIconView::Adjust);
00389 canvas->setWordWrapIconText(
true );
00390 canvas->show();
00391
00392 QIconViewItem * tempitem = canvas->
load(group, templateName);
00393
if (tempitem)
00394 itemtoselect = tempitem;
00395
00396 canvas->sort();
00397 canvas->setSelectionMode(QIconView::Single);
00398
00399 connect( canvas, SIGNAL( clicked ( QIconViewItem * ) ),
00400
this, SLOT( currentChanged( QIconViewItem * ) ) );
00401
00402 connect( canvas, SIGNAL( doubleClicked( QIconViewItem * ) ),
00403
this, SLOT( chosen(QIconViewItem *) ) );
00404
00405 entriesnumber++;
00406 }
00407
00408 d->boxdescription->setInsideMargin ( 3 );
00409 d->boxdescription->setInsideSpacing ( 3 );
00410
00411 d->textedit =
new KTextEdit( d->boxdescription );
00412 d->textedit->setReadOnly(1);
00413 d->textedit->setText(descriptionText(i18n(
"Empty Document"), i18n(
"Creates an empty document")));
00414 d->textedit->setLineWidth(0);
00415 d->textedit->setMaximumHeight(50);
00416
00417
00418
if (!entriesnumber)
00419 d->m_jwidget->hide();
00420
00421
00422
if (entriesnumber >= templateNum)
00423 d->m_jwidget->showPage(templateNum);
00424
00425
00426 currentChanged(itemtoselect);
00427
00428
00429
QString translatedstring = i18n(
"Always start %1 with the selected template").arg(d->m_nativeName);
00430
00431 d->m_nodiag =
new QCheckBox ( translatedstring , widgetbase);
00432 layout->addWidget(d->m_nodiag, 2, 0);
00433
QString startwithoutdialog = grp.readEntry(
"NoStartDlg" );
00434 d->m_nodiag->setChecked( startwithoutdialog ==
QString(
"yes") );
00435 }
00436
00437
00438
00439
void KoTemplateChooseDia::setupDialog()
00440 {
00441
00442 QGridLayout *maingrid=
new QGridLayout( d->m_mainwidget, 1, 1, 2, 6);
00443 KConfigGroup grp( d->m_global->config(),
"TemplateChooserDialog" );
00444
00445
if (d->m_dialogType == Everything)
00446 {
00447
00448
00449
if (grp.readEntry(
"NoStartDlg" ) ==
QString(
"yes") )
00450 {
00451 d->m_nostartupdlg =
true;
00452 d->m_returnType = Empty;
00453
00454
00455
if (grp.readEntry(
"LastReturnType") ==
QString(
"Empty") )
00456
return;
00457
00458
00459 d->m_templateName = grp.readPathEntry(
"TemplateName" );
00460 d->m_fullTemplateName = grp.readPathEntry(
"FullTemplateName" );
00461
00462
00463
if (!QFile::exists(d->m_fullTemplateName))
00464
return;
00465
00466
if (d->m_fullTemplateName.length() < 2)
00467
return;
00468
00469 d->m_returnType = Template;
00470
return;
00471 }
00472
00473
if ( cancelQuits() )
00474 setButtonCancelText(i18n(
"&Quit"));
00475
00476 d->tabWidget =
new QTabWidget( d->m_mainwidget,
"tabWidget" );
00477 maingrid->addWidget( d->tabWidget, 0, 0 );
00478
00479
00480 d->newTab =
new QWidget( d->tabWidget,
"newTab" );
00481 d->tabWidget->insertTab( d->newTab, i18n(
"&Create Document" ) );
00482 QGridLayout * newTabLayout =
new QGridLayout( d->newTab, 1, 1, KDialogBase::marginHint(), KDialogBase::spacingHint());
00483
00484
00485 d->existingTab =
new QWidget( d->tabWidget,
"existingTab" );
00486 d->tabWidget->insertTab( d->existingTab, i18n(
"Open &Existing Document" ) );
00487 QGridLayout * existingTabLayout =
new QGridLayout( d->existingTab, 1, 1, 0, KDialog::spacingHint());
00488
00489
00490 d->recentTab =
new QWidget( d->tabWidget,
"recentTab" );
00491 d->tabWidget->insertTab( d->recentTab, i18n(
"Open &Recent Document" ) );
00492 QGridLayout * recentTabLayout =
new QGridLayout( d->recentTab, 1, 1, KDialogBase::marginHint(), KDialog::spacingHint());
00493
00494 setupTemplateDialog(d->newTab, newTabLayout);
00495 setupFileDialog(d->existingTab, existingTabLayout);
00496 setupRecentDialog(d->recentTab, recentTabLayout);
00497
00498
QString tabhighlighted = grp.readEntry(
"LastReturnType");
00499
if ( tabhighlighted ==
"Template" )
00500 d->tabWidget->setCurrentPage(0);
00501
else if (tabhighlighted ==
"File" )
00502 d->tabWidget->setCurrentPage(2);
00503
else
00504 d->tabWidget->setCurrentPage(1);
00505 }
00506
else
00507 {
00508
00509
if (d->m_dialogType == NoTemplates)
00510 {
00511 setupFileDialog(d->m_mainwidget, maingrid);
00512 }
00513
00514
if (d->m_dialogType == OnlyTemplates)
00515 {
00516 setCaption(i18n(
"Create Document" ));
00517 setupTemplateDialog(d->m_mainwidget, maingrid);
00518 }
00519 }
00520 }
00521
00522
00523
00524
void KoTemplateChooseDia::currentChanged( QIconViewItem * item)
00525 {
00526
if (item)
00527 {
00528
QIconView* canvas = item->iconView();
00529
00530
00531 d->textedit->setText( descriptionText(
00532 item->text(),
00533 ((KoTCDIconViewItem *) item)->getDescr()
00534 ));
00535
00536
00537
if (canvas)
00538 canvas->setSelected(item,1,0);
00539
00540
00541 d->m_templateName = item->text();
00542 d->m_fullTemplateName = ((KoTCDIconViewItem *) item)->getFName();
00543 }
00544 }
00545
00546
00547
00548
void KoTemplateChooseDia::chosen(QIconViewItem * item)
00549 {
00550
00551
if (item)
00552 {
00553 currentChanged(item);
00554
slotOk();
00555 }
00556 }
00557
00558
00559
00560
void KoTemplateChooseDia::recentSelected( QIconViewItem * item)
00561 {
00562
if (item)
00563 {
00564
slotOk();
00565 }
00566 }
00567
00568
00569
00570 void KoTemplateChooseDia::slotOk()
00571 {
00572
00573
if (collectInfo())
00574 {
00575
00576 KConfigGroup grp( d->m_global->config(),
"TemplateChooserDialog" );
00577
static const char*
const s_returnTypes[] = { 0 ,
"Template",
"File",
"Empty" };
00578
if ( d->m_returnType <= Empty )
00579 {
00580 grp.writeEntry(
"LastReturnType", QString::fromLatin1(s_returnTypes[d->m_returnType]) );
00581
if (d->m_returnType == Template)
00582 {
00583 grp.writeEntry(
"TemplateTab", d->m_jwidget->activePageIndex() );
00584
#if KDE_IS_VERSION(3,1,3)
00585
grp.writePathEntry(
"TemplateName", d->m_templateName );
00586 grp.writePathEntry(
"FullTemplateName", d->m_fullTemplateName);
00587
#else
00588
grp.writeEntry(
"TemplateName", d->m_templateName );
00589 grp.writeEntry(
"FullTemplateName", d->m_fullTemplateName);
00590
#endif
00591
}
00592
00593
if (d->m_nodiag)
00594 {
00595
if (d->m_nodiag->isChecked())
00596 grp.writeEntry(
"NoStartDlg",
"yes");
00597
else
00598 grp.writeEntry(
"NoStartDlg",
"no");
00599 }
00600 }
00601
else
00602 {
00603 kdWarning(30003) <<
"Unsupported template chooser result: " << d->m_returnType << endl;
00604 grp.writeEntry(
"LastReturnType", QString::null );
00605 }
00606 KDialogBase::slotOk();
00607 }
00608 }
00609
00610
00611
00612
bool KoTemplateChooseDia::collectInfo()
00613 {
00614
00615
00616
00617
bool newTabSelected =
false;
00618
if ( d->m_dialogType == Everything)
00619
if ( d->tabWidget->currentPage() == d->newTab )
00620 newTabSelected =
true;
00621
00622
00623
if ( d->m_dialogType==OnlyTemplates || newTabSelected )
00624 {
00625
00626
if (d->m_templateName.length() > 0)
00627 d->m_returnType = Template;
00628
else
00629 d->m_returnType=Empty;
00630
00631
return true;
00632 }
00633
else if ( d->m_dialogType != OnlyTemplates )
00634 {
00635
00636
if (d->m_dialogType == Everything && d->tabWidget->currentPage() == d->recentTab)
00637 {
00638
00639 KFileItem * item = d->m_recent->currentFileItem();
00640
if (! item)
00641
return false;
00642 KURL url = item->url();
00643
if(url.isLocalFile() && !QFile::exists(url.path()))
00644 {
00645 KMessageBox::error(
this, i18n(
"The file %1 doesn't exist." ).arg( url.path() ) );
00646
return false;
00647 }
00648 d->m_fullTemplateName = url.url();
00649 d->m_returnType = File;
00650 }
00651
else
00652 {
00653
00654 KURL url = d->m_filedialog->currentURL();
00655 d->m_fullTemplateName = url.url();
00656 d->m_returnType = File;
00657
return d->m_filedialog->checkURL();
00658 }
00659
return true;
00660 }
00661
00662 d->m_returnType=Empty;
00663
return false;
00664 }
00665
00666
00667
00668
QString KoTemplateChooseDia::descriptionText(
const QString &name,
const QString &description)
00669 {
00670
QString descrText(i18n(
"Name:"));
00671 descrText +=
" " + name;
00672 descrText +=
"\n";
00673 descrText += i18n(
"Description:");
00674
if (description.isEmpty())
00675 descrText +=
" " + i18n(
"No description available");
00676
else
00677 descrText +=
" " + description;
00678
return descrText;
00679 }
00680
00681
00682
00683 QIconViewItem * KoTCDIconCanvas::load( KoTemplateGroup *group,
const QString& name)
00684 {
00685 QIconViewItem * itemtoreturn = 0;
00686
00687
for (KoTemplate *t=group->first(); t!=0L; t=group->next()) {
00688
if (t->isHidden())
00689
continue;
00690 QIconViewItem *item =
new KoTCDIconViewItem(
00691
this,
00692 t->name(),
00693 t->loadPicture(),
00694 t->description(),
00695 t->file());
00696
00697
if (name == t->name())
00698 {
00699 itemtoreturn = item;
00700 }
00701
00702 item->setKey(t->name());
00703 item->setDragEnabled(
false);
00704 item->setDropEnabled(
false);
00705 }
00706
00707
return itemtoreturn;
00708 }
00709
00710
00711
00712 KoTCDRecentFilesIconView::~KoTCDRecentFilesIconView()
00713 {
00714 removeToolTip();
00715 }
00716
00717
void KoTCDRecentFilesIconView::showToolTip( QIconViewItem* item )
00718 {
00719 removeToolTip();
00720
if ( !item )
00721
return;
00722
00723
00724
00725
00726
00727
00728
const KFileItem *fi = ( (KFileIconViewItem*)item )->fileInfo();
00729
QString toolTipText = fi->url().prettyURL( 0, KURL::StripFileProtocol );
00730 toolTip =
new QLabel( QString::fromLatin1(
" %1 ").arg(toolTipText), 0,
00731
"myToolTip",
00732 WStyle_StaysOnTop | WStyle_Customize | WStyle_NoBorder | WStyle_Tool | WX11BypassWM );
00733 toolTip->setFrameStyle( QFrame::Plain | QFrame::Box );
00734 toolTip->setLineWidth( 1 );
00735 toolTip->setAlignment( AlignLeft | AlignTop );
00736 toolTip->move( QCursor::pos() +
QPoint( 14, 14 ) );
00737 toolTip->adjustSize();
00738
QRect screen = QApplication::desktop()->screenGeometry(
00739 QApplication::desktop()->screenNumber(QCursor::pos()));
00740
if (toolTip->x()+toolTip->width() > screen.right()) {
00741 toolTip->move(toolTip->x()+screen.right()-toolTip->x()-toolTip->width(), toolTip->y());
00742 }
00743
if (toolTip->y()+toolTip->height() > screen.bottom()) {
00744 toolTip->move(toolTip->x(), screen.bottom()-toolTip->y()-toolTip->height()+toolTip->y());
00745 }
00746 toolTip->setFont( QToolTip::font() );
00747 toolTip->setPalette( QToolTip::palette(), TRUE );
00748 toolTip->show();
00749 }
00750
00751
void KoTCDRecentFilesIconView::removeToolTip()
00752 {
00753
delete toolTip;
00754 toolTip = 0;
00755 }
00756
00757 void KoTCDRecentFilesIconView::hideEvent(
QHideEvent *ev )
00758 {
00759 removeToolTip();
00760 KFileIconView::hideEvent( ev );
00761 }
00762
00763
#include "koTemplateChooseDia.moc"