Source Code (Use browser search to find items of interest.)
Class Index
kdesktop'KBackgroundDockWidget (./kdebase/kdesktop/bgmanager.h:34)
class KBackgroundDockWidget
: public KDockWindow
{
Q_OBJECT
public:
KBackgroundDockWidget();
void setCommon(bool);
void setExport(bool);
protected:
virtual void dropEvent(QDropEvent *e);
virtual void mousePressEvent(QMouseEvent *e);
virtual void dragEnterEvent(QDragEnterEvent *e);
public slots:
void slotModeSelected(int);
void slotBackgroundSettings();
void slotAdvancedSettings();
void slotCommon();
void slotExport();
void slotUndock();
signals:
void changeWallpaper();
void wallpaperDropped(QString wallpaper, int mode);
void unDocked();
void commonChanged(bool);
void exportChanged(bool);
private:
bool m_bExport, m_bCommon;
int m_Export, m_Common;
QString m_Wallpaper;
KPopupMenu *m_pMainMenu, *m_pModeMenu;
};
/**
* Internal struct for KBackgroundManager.
*/
kdesktop'KBackgroundDockWidget::KBackgroundDockWidget() (./kdebase/kdesktop/bgmanager.cc:53)
KBackgroundDockWidget::KBackgroundDockWidget()
{
m_bCommon = m_bExport = false;
m_pMainMenu = new KPopupMenu(this);
m_pMainMenu->insertTitle(SmallIcon("background"), i18n("Desktop Background"));
m_pMainMenu->insertItem(i18n("Background Settings"), this,
SLOT(slotBackgroundSettings()));
m_pMainMenu->insertItem(i18n("Advanced Settings"), this,
SLOT(slotAdvancedSettings()));
m_pMainMenu->insertSeparator();
m_Common = m_pMainMenu->insertItem(i18n("Common Background"),
this, SLOT(slotCommon()));
m_Export = m_pMainMenu->insertItem(i18n("Export Background"),
this, SLOT(slotExport()));
m_pMainMenu->insertSeparator();
m_pMainMenu->insertItem(i18n("Undock"), this, SLOT(slotUndock()));
m_pModeMenu = new KPopupMenu(this);
m_pModeMenu->insertTitle(SmallIcon("background"), i18n("Arrangement"));
m_pModeMenu->insertItem(i18n("Centred"), KBackgroundSettings::Centred);
m_pModeMenu->insertItem(i18n("Tiled"), KBackgroundSettings::Tiled);
m_pModeMenu->insertItem(i18n("CenterTiled"), KBackgroundSettings::CenterTiled);
m_pModeMenu->insertItem(i18n("Maxpect"), KBackgroundSettings::CentredMaxpect);
m_pModeMenu->insertItem(i18n("Scaled"), KBackgroundSettings::Scaled);
connect(m_pModeMenu, SIGNAL(activated(int)), SLOT(slotModeSelected(int)));
setPixmap(SmallIcon("background"));
setAlignment(AlignCenter);
setAcceptDrops(true);
QToolTip::add(this, i18n("Desktop Background"));
QWhatsThis::add(this, i18n(
"<qt><h2>Desktop background control</h2>\n"
"You can control some features of the desktop background with \n"
"this dock window. You can:\n"
"<ul><li>Left click on it. This will change the wallpaper if \n"
"you are using multi wallpaper mode.</li>\n"
"<li>Right click on it. This will give you a context menu where \n"
"you can set export, common and docking mode.</li>\n"
"<li>Drop an image onto it. This will set the image as the desktop \n"
"wallpaper.</li></ul></qt>"));
}
/*
* Drag enter event: accept if it's an image.
*/
kdesktop'KBackgroundDockWidget::dragEnterEvent() (./kdebase/kdesktop/bgmanager.cc:101)
void KBackgroundDockWidget::dragEnterEvent(QDragEnterEvent *e)
{
if (QUriDrag::canDecode(e))
e->accept(rect());
else
e->ignore(rect());
}
/*
* Handle a wallpaper dropped on the docking icon.
*/
kdesktop'KBackgroundDockWidget::dropEvent() (./kdebase/kdesktop/bgmanager.cc:112)
void KBackgroundDockWidget::dropEvent(QDropEvent *e)
{
QStringList uris;
if (QUriDrag::decodeLocalFiles(e, uris) && (uris.count() > 0)) {
m_Wallpaper = *uris.begin();
m_pModeMenu->popup(mapToGlobal(e->pos()));
m_pModeMenu->exec();
}
}
kdesktop'KBackgroundDockWidget::mousePressEvent() (./kdebase/kdesktop/bgmanager.cc:124)
void KBackgroundDockWidget::mousePressEvent(QMouseEvent *e)
{
if (e->button() == LeftButton) {
emit changeWallpaper();
return;
}
if (e->button() == RightButton) {
m_pMainMenu->popup(mapToGlobal(e->pos()));
m_pMainMenu->exec();
}
}
kdesktop'KBackgroundDockWidget::slotModeSelected() (./kdebase/kdesktop/bgmanager.cc:137)
void KBackgroundDockWidget::slotModeSelected(int m)
{
emit wallpaperDropped(m_Wallpaper, m);
}
kdesktop'KBackgroundDockWidget::slotUndock() (./kdebase/kdesktop/bgmanager.cc:143)
void KBackgroundDockWidget::slotUndock()
{
emit unDocked();
}
kdesktop'KBackgroundDockWidget::slotCommon() (./kdebase/kdesktop/bgmanager.cc:149)
void KBackgroundDockWidget::slotCommon()
{
m_bCommon = !m_bCommon;
m_pMainMenu->setItemChecked(m_Common, m_bCommon);
emit commonChanged(m_bCommon);
}
kdesktop'KBackgroundDockWidget::slotExport() (./kdebase/kdesktop/bgmanager.cc:157)
void KBackgroundDockWidget::slotExport()
{
m_bExport = !m_bExport;
m_pMainMenu->setItemChecked(m_Export, m_bExport);
emit exportChanged(m_bExport);
}
kdesktop'KBackgroundDockWidget::setCommon() (./kdebase/kdesktop/bgmanager.cc:165)
void KBackgroundDockWidget::setCommon(bool common)
{
m_bCommon = common;
m_pMainMenu->setItemChecked(m_Common, m_bCommon);
}
kdesktop'KBackgroundDockWidget::setExport() (./kdebase/kdesktop/bgmanager.cc:172)
void KBackgroundDockWidget::setExport(bool _export)
{
m_bExport = _export;
m_pMainMenu->setItemChecked(m_Export, m_bExport);
}
kdesktop'KBackgroundDockWidget::slotBackgroundSettings() (./kdebase/kdesktop/bgmanager.cc:179)
void KBackgroundDockWidget::slotBackgroundSettings()
{
KShellProcess proc;
proc << "kcmshell Desktop/background";
proc.start(KShellProcess::DontCare);
}
kdesktop'KBackgroundDockWidget::slotAdvancedSettings() (./kdebase/kdesktop/bgmanager.cc:187)
void KBackgroundDockWidget::slotAdvancedSettings()
{
KShellProcess proc;
proc << "kcmshell Desktop/advanced";
proc.start(KShellProcess::DontCare);
}
/**** KBackgroundManager ****/