You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.9 KiB
97 lines
2.9 KiB
/* ============================================================
|
|
*
|
|
* This file is a part of digiKam project
|
|
* http://www.digikam.org
|
|
*
|
|
* Date : 2007-27-08
|
|
* Description : an tool bar action object to display logo
|
|
*
|
|
* Copyright (C) 2007-2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
|
|
*
|
|
* This program is free software; you can redistribute it
|
|
* and/or modify it under the terms of the GNU General
|
|
* Public License as published by the Free Software Foundation;
|
|
* either version 2, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* ============================================================ */
|
|
|
|
// TQt includes.
|
|
|
|
#include <tqtooltip.h>
|
|
#include <tqpixmap.h>
|
|
|
|
// KDE includes.
|
|
|
|
#include <kurllabel.h>
|
|
#include <ktoolbar.h>
|
|
#include <kiconloader.h>
|
|
#include <kapplication.h>
|
|
#include <kstandarddirs.h>
|
|
#include <klocale.h>
|
|
|
|
// Local includes.
|
|
|
|
#include "daboutdata.h"
|
|
#include "dlogoaction.h"
|
|
|
|
namespace Digikam
|
|
{
|
|
|
|
DLogoAction::DLogoAction(TQObject* parent, const char* name)
|
|
: KAction(parent, name)
|
|
{
|
|
setText("digikam.org");
|
|
setIcon("digikam");
|
|
}
|
|
|
|
int DLogoAction::plug(TQWidget *widget, int index)
|
|
{
|
|
if (kapp && !kapp->authorizeKAction(name()))
|
|
return -1;
|
|
|
|
if ( widget->inherits( "KToolBar" ) )
|
|
{
|
|
KToolBar *bar = (KToolBar *)widget;
|
|
int id = getToolButtonID();
|
|
KURLLabel *pixmapLogo = new KURLLabel(Digikam::webProjectUrl(), TQString(), bar);
|
|
pixmapLogo->setMargin(0);
|
|
pixmapLogo->setScaledContents(false);
|
|
pixmapLogo->tqsetSizePolicy(TQSizePolicy(TQSizePolicy::Minimum, TQSizePolicy::Minimum));
|
|
TQToolTip::add(pixmapLogo, i18n("Visit digiKam project website"));
|
|
KGlobal::dirs()->addResourceType("banner-digikam", KGlobal::dirs()->kde_default("data") + "digikam/data");
|
|
TQString directory = KGlobal::dirs()->findResourceDir("banner-digikam", "banner-digikam.png");
|
|
pixmapLogo->setPixmap(TQPixmap( directory + "banner-digikam.png" ));
|
|
pixmapLogo->setFocusPolicy(TQ_NoFocus);
|
|
|
|
bar->insertWidget(id, pixmapLogo->width(), pixmapLogo);
|
|
bar->alignItemRight(id);
|
|
|
|
addContainer(bar, id);
|
|
|
|
connect(bar, TQT_SIGNAL(destroyed()),
|
|
this, TQT_SLOT(slotDestroyed()));
|
|
|
|
connect(pixmapLogo, TQT_SIGNAL(leftClickedURL(const TQString&)),
|
|
this, TQT_SLOT(slotProcessURL(const TQString&)));
|
|
|
|
return containerCount() - 1;
|
|
}
|
|
|
|
int containerId = KAction::plug( widget, index );
|
|
|
|
return containerId;
|
|
}
|
|
|
|
void DLogoAction::slotProcessURL(const TQString& url)
|
|
{
|
|
KApplication::kApplication()->invokeBrowser(url);
|
|
}
|
|
|
|
} // namespace Digikam
|