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.
417 lines
15 KiB
417 lines
15 KiB
/*
|
|
* Copyright (C) 2006
|
|
* Siraj Razick <siraj@kdemail.net>
|
|
* PhobosK <phobosk@mail.kbfx.org>
|
|
* see Also AUTHORS
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU Library General Public License version 2 as
|
|
* published by the Free Software Foundation
|
|
*
|
|
* 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
|
|
*
|
|
* You should have received a copy of the GNU Library General Public
|
|
* License along with this program; if not, write to the
|
|
* Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#include "kbfxconfigapp.h"
|
|
|
|
KbfxConfigApp::KbfxConfigApp ( TQWidget* parent, const char* name, WFlags fl )
|
|
: KbfxConfigDlgMain ( parent,name,fl )
|
|
{
|
|
// m_KbfxVersion = tr2i18n("<p align='center'>Running KBFX version: " APPLICATION_VERSION "</p>");
|
|
m_KbfxVersion = tr2i18n ( "<p align='center'>%1</p>" );
|
|
m_KbfxVersion2 = tr2i18n ( "You are running: <b>KBFX " APPLICATION_VERSION "</b>" );
|
|
m_KbfxNewsBrowserError = tr2i18n ( "<br><p align='center'><font color='#ff0000'>"
|
|
"The connection to the KBFX News Section on www.kbfx.org is broken."
|
|
"</font><br><br>"
|
|
"If you want you can check the latest news for KBFX from here:"
|
|
"<br><a href='http://www.kbfx.org/'>KBFX News</a></p>" );
|
|
m_KbfxLogoButton = tr2i18n ( "<font size='+1'><b>KBFX start button</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"You have 3 options to select for your KBFX start button."
|
|
"You have to select <i>(Normal, Pressed, Hover)</i> images. <br>"
|
|
"Down below you can also see a preview of the images you have selected." );
|
|
m_KbfxLogoAbout = tr2i18n ( "<font size='+1'><b>About KBFX</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"Here you can find information about the KBFX Project and all the people involved in it." );
|
|
m_KbfxLogoFonts = tr2i18n ( "<font size='+1'><b>KBFX font settings</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"Here you can set the fonts of the current theme.<br>"
|
|
"If you don't have any 'kbfxfontrc' file don't worry about that.<br>"
|
|
"When done just hit 'Apply' button and KBFX will save the 'kbfxfontrc' file." );
|
|
m_KbfxLogoLayout = tr2i18n ( "<font size='+1'><b>KBFX Layout</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"Here you can configure the Look and Feel of your KBFX menu.<br>"
|
|
"The most important settings that are used with the '<strong>Make it...</strong>' buttons are marked with '<strong>*</strong>'<br>"
|
|
"Have in mind that the Layout of the theme also depends on the sizes of the images!<br>" );
|
|
m_KbfxLogoPlugins = tr2i18n ( "<font size='+1'><b>KBFX Plugins</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"Here you can select what plugins will be enabled and in which panel of the KBFX menu." );
|
|
m_KbfxLogoStyle = tr2i18n ( "<font size='+1'><b>Menu Type</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"Please select which kind of menu you would like to use." );
|
|
m_KbfxLogoThemes = tr2i18n ( "<font size='+1'><b>KBFX Themes</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"To keep it simple place all your themes inside one folder.<br>"
|
|
"Then create different folders inside that folder with different names.<br>"
|
|
"KBFX will then read those folders as themes." );
|
|
m_KbfxLogoTooltip = tr2i18n ( "<font size='+1'><b>KBFX tooltip settings</b><br></font>"
|
|
"<b>Tip! </b>"
|
|
"Here you can configure the behaviour of KBFX's own tooltip." );
|
|
m_KbfxNewsBrowserAddress = "http://www.kbfx.org/news/";
|
|
InitForm();
|
|
}
|
|
|
|
KbfxConfigApp::~KbfxConfigApp()
|
|
{}
|
|
|
|
void KbfxConfigApp::InitForm()
|
|
{
|
|
lb_Main->clear();
|
|
|
|
/* initialize Themes page */
|
|
lb_Main->insertItem ( img_themes, tr2i18n ( "Themes" ), THEMES );
|
|
KbfxConfigDlgThemes *pageThemes = new KbfxConfigDlgThemes();
|
|
ws_Main->addWidget ( pageThemes, THEMES );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgThemesChanged() ),
|
|
pageThemes, TQT_SLOT ( ChangeForm() ) );
|
|
emit KbfxConfigDlgThemesChanged();
|
|
connect ( pageThemes->KbfxGetMoreThemes, TQT_SIGNAL ( clicked() ),
|
|
this, TQT_SLOT ( KbfxGetMoreThemesClicked() ) );
|
|
connect ( this, TQT_SIGNAL ( KbfxThemeDoInstall ( TQString & ) ),
|
|
pageThemes, TQT_SLOT ( KbfxThemeInstall ( TQString & ) ) );
|
|
|
|
/* initialize Button page */
|
|
lb_Main->insertItem ( img_button, tr2i18n ( "Start Button" ), BUTTON );
|
|
KbfxConfigDlgButton *pageButton = new KbfxConfigDlgButton();
|
|
ws_Main->addWidget ( pageButton, BUTTON );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgButtonChanged() ),
|
|
pageButton, TQT_SLOT ( ChangeForm() ) );
|
|
emit KbfxConfigDlgButtonChanged();
|
|
|
|
/* initialize Fonts page */
|
|
lb_Main->insertItem ( img_fonts, tr2i18n ( "Fonts" ), FONTS );
|
|
KbfxConfigDlgFonts *pageFonts = new KbfxConfigDlgFonts();
|
|
ws_Main->addWidget ( pageFonts, FONTS );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgFontsChanged() ),
|
|
pageFonts, TQT_SLOT ( ChangeForm() ) );
|
|
emit KbfxConfigDlgFontsChanged();
|
|
|
|
/* initialize Layout Page */
|
|
lb_Main->insertItem ( img_search, tr2i18n ( "Layout" ), LAYOUT );
|
|
KbfxConfigDlgLayout *pageLayout = new KbfxConfigDlgLayout();
|
|
ws_Main->addWidget ( pageLayout, LAYOUT );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgLayoutChanged() ),
|
|
pageLayout, TQT_SLOT ( ChangeForm() ) );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgLayoutLeft() ),
|
|
pageLayout, TQT_SLOT ( LayoutFormLeft() ) );
|
|
emit KbfxConfigDlgLayoutChanged();
|
|
|
|
/* initialize Plugins Page */
|
|
lb_Main->insertItem ( img_plugins, tr2i18n ( "Plugins" ), PLUGINS );
|
|
KbfxConfigDlgPlugins *pagePlugins = new KbfxConfigDlgPlugins();
|
|
ws_Main->addWidget ( pagePlugins, PLUGINS );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgPluginsChanged() ),
|
|
pagePlugins, TQT_SLOT ( ChangeForm() ) );
|
|
emit KbfxConfigDlgPluginsChanged();
|
|
|
|
/* initialize Tooltip page */
|
|
lb_Main->insertItem ( img_tooltip, tr2i18n ( "Tooltip" ), TOOLTIP );
|
|
KbfxConfigDlgTooltip *pageTooltip = new KbfxConfigDlgTooltip();
|
|
ws_Main->addWidget ( pageTooltip, TOOLTIP );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgTooltipChanged() ),
|
|
pageTooltip, TQT_SLOT ( ChangeForm() ) );
|
|
emit KbfxConfigDlgTooltipChanged();
|
|
|
|
/* initialize Menu Style page */
|
|
lb_Main->insertItem ( img_style, tr2i18n ( "Menu Style" ), STYLE );
|
|
KbfxConfigDlgStyle *pageStyle = new KbfxConfigDlgStyle();
|
|
ws_Main->addWidget ( pageStyle, STYLE );
|
|
connect ( this, TQT_SIGNAL ( KbfxConfigDlgStyleChanged() ),
|
|
pageStyle, TQT_SLOT ( ChangeForm() ) );
|
|
emit KbfxConfigDlgStyleChanged();
|
|
|
|
/* initialize About page */
|
|
lb_Main->insertItem ( img_about, tr2i18n ( "About" ), ABOUT );
|
|
KbfxConfigDlgAbout *pageAbout = new KbfxConfigDlgAbout();
|
|
ws_Main->addWidget ( pageAbout,ABOUT );
|
|
pageAbout->KbfxLabelVersion->setText ( m_KbfxVersion2 );
|
|
|
|
connect ( btn_Default, TQT_SIGNAL ( clicked() ),
|
|
this, TQT_SLOT ( btn_DefaultClicked() ) );
|
|
connect ( btn_Help, TQT_SIGNAL ( clicked() ),
|
|
this, TQT_SLOT ( btn_HelpClicked() ) );
|
|
connect ( lb_Main, TQT_SIGNAL ( highlighted ( int ) ),
|
|
this, TQT_SLOT ( KbfxMenuItemChanged ( int ) ) );
|
|
connect ( btn_SaveApply, TQT_SIGNAL ( clicked() ),
|
|
this, TQT_SLOT ( btn_SaveApplyClicked() ) );
|
|
|
|
m_KbfxPage = THEMES;
|
|
lb_Main->setCurrentItem ( THEMES );
|
|
ws_Main->raiseWidget ( THEMES );
|
|
}
|
|
|
|
/* process help for each page */
|
|
void KbfxConfigApp::btn_HelpClicked()
|
|
{
|
|
if ( m_KbfxPage == THEMES )
|
|
kapp->invokeHelp ( "kbfx_themes", "kbfxconfigapp" );
|
|
if ( m_KbfxPage == BUTTON )
|
|
kapp->invokeHelp ( "kbfx_button", "kbfxconfigapp" );
|
|
if ( m_KbfxPage == FONTS )
|
|
kapp->invokeHelp ( "kbfx_fonts", "kbfxconfigapp" );
|
|
if ( m_KbfxPage == LAYOUT )
|
|
kapp->invokeHelp ( "kbfx_layout", "kbfxconfigapp" );
|
|
if ( m_KbfxPage == PLUGINS )
|
|
kapp->invokeHelp ( "kbfx_plugins", "kbfxconfigapp" );
|
|
if ( m_KbfxPage == TOOLTIP )
|
|
kapp->invokeHelp ( "kbfx_tooltip", "kbfxconfigapp" );
|
|
if ( m_KbfxPage == STYLE )
|
|
kapp->invokeHelp ( "kbfx_style", "kbfxconfigapp" );
|
|
if ( m_KbfxPage == ABOUT)
|
|
kapp->invokeHelp ( "kbfx_about", "kbfxconfigapp" );
|
|
}
|
|
|
|
/* process default options for each page */
|
|
void KbfxConfigApp::btn_DefaultClicked()
|
|
{
|
|
switch ( ws_Main->id ( ws_Main->visibleWidget() ) )
|
|
{
|
|
case THEMES: /* Themes page */
|
|
{
|
|
ConfigInit().m_SpinxThemeBasePath = ConfigInit().m_SpinxThemeBasePathDefault;
|
|
ConfigInit().m_UserSpinxThemeBasePath = ConfigInit().m_UserSpinxThemeBasePathDefault;
|
|
ConfigInit().m_SpinxThemeName = ConfigInit().m_SpinxThemeNameDefault;
|
|
ConfigInit().m_SpinxDudeBlink = ConfigInit().m_SpinxDudeBlinkDefault;
|
|
ConfigInit().m_SpinxDudeImage = ConfigInit().m_SpinxDudeImageDefault;
|
|
ConfigInit().m_KbfxWatcher = ConfigInit().m_KbfxWatcherDefault;
|
|
ConfigInit().m_KbfxShowOldThemes = ConfigInit().m_KbfxShowOldThemesDefault;
|
|
emit KbfxConfigDlgThemesChanged();
|
|
break;
|
|
}
|
|
case BUTTON: /* Button page */
|
|
{
|
|
ConfigInit().m_KbfxNormalButtonPath = ConfigInit().m_KbfxNormalButtonPathDefault;
|
|
ConfigInit().m_KbfxHoverButtonPath = ConfigInit().m_KbfxHoverButtonPathDefault;
|
|
ConfigInit().m_KbfxPressedButtonPath = ConfigInit().m_KbfxPressedButtonPathDefault;
|
|
ConfigInit().m_ToolBarResize = ConfigInit().m_ToolBarResizeDefault;
|
|
ConfigInit().m_fadeTime = ConfigInit().m_fadeTimeDefault;
|
|
emit KbfxConfigDlgButtonChanged();
|
|
break;
|
|
}
|
|
case FONTS: /* Fonts page */
|
|
{
|
|
ConfigInit().readFontrc ( ConfigInit().m_SpinxThemeBasePath,
|
|
ConfigInit().m_SpinxThemeName,
|
|
FALSE );
|
|
emit KbfxConfigDlgFontsChanged();
|
|
break;
|
|
}
|
|
case STYLE: /* Style page */
|
|
{
|
|
ConfigInit().m_KbfxMenuType = ConfigInit().m_KbfxMenuTypeDefault;
|
|
emit KbfxConfigDlgStyleChanged();
|
|
break;
|
|
}
|
|
case TOOLTIP: /* Tooltip page */
|
|
{
|
|
ConfigInit().m_ToolTip = ConfigInit().m_ToolTipDefault;
|
|
ConfigInit().m_ToolTipAnimation = ConfigInit().m_ToolTipAnimationDefault;
|
|
ConfigInit().m_ToolTipText = ConfigInit().m_ToolTipTextDefault;
|
|
ConfigInit().m_ToolTipAvatar = ConfigInit().m_ToolTipAvatarDefault;
|
|
ConfigInit().m_SpinxTooltipDudebox = ConfigInit().m_SpinxTooltipDudeboxDefault;
|
|
ConfigInit().m_SpinxTooltipMask = ConfigInit().m_SpinxTooltipMaskDefault;
|
|
ConfigInit().m_SpinxTooltipWindow = ConfigInit().m_SpinxTooltipWindowDefault;
|
|
ConfigInit().m_SpinxTooltipLogo = ConfigInit().m_SpinxTooltipLogoDefault;
|
|
emit KbfxConfigDlgTooltipChanged();
|
|
break;
|
|
}
|
|
case LAYOUT: /* Layout page */
|
|
{
|
|
ConfigInit().readThemerc ( ConfigInit().m_SpinxThemeBasePath,
|
|
ConfigInit().m_SpinxThemeName,
|
|
FALSE );
|
|
emit KbfxConfigDlgLayoutChanged();
|
|
break;
|
|
}
|
|
case PLUGINS: /* Plugins page */
|
|
{
|
|
ConfigInit().m_pluginsLeft = ConfigInit().m_pluginsLeftDefault;
|
|
ConfigInit().m_pluginsRight = ConfigInit().m_pluginsRightDefault;
|
|
emit KbfxConfigDlgPluginsChanged();
|
|
break;
|
|
}
|
|
case ABOUT: /* About page */
|
|
{
|
|
KMessageBox::information ( 0, tr2i18n ( "No default settings here ;)" ) );
|
|
break;
|
|
}
|
|
default: /* Default Action Switch should never be reached */
|
|
kdDebug() << "Default action switch for default clicked..." << endl;
|
|
}
|
|
}
|
|
|
|
void KbfxConfigApp::KbfxMenuItemChanged ( int index )
|
|
{
|
|
/*
|
|
* switch is used in case we want to add special code
|
|
* for certain page before raiseWidget is called
|
|
*/
|
|
|
|
|
|
if( m_KbfxPage == LAYOUT )
|
|
{
|
|
emit KbfxConfigDlgLayoutLeft();
|
|
}
|
|
|
|
m_KbfxPage = index;
|
|
|
|
switch ( index )
|
|
{
|
|
case THEMES: /* Themes page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoThemes);
|
|
ws_Main->raiseWidget ( THEMES );
|
|
emit KbfxConfigDlgThemesChanged();
|
|
break;
|
|
}
|
|
case BUTTON: /* Button page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoButton);
|
|
ws_Main->raiseWidget ( BUTTON );
|
|
emit KbfxConfigDlgButtonChanged();
|
|
break;
|
|
}
|
|
case FONTS: /* Fonts page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoFonts);
|
|
ws_Main->raiseWidget ( FONTS );
|
|
emit KbfxConfigDlgFontsChanged();
|
|
break;
|
|
}
|
|
case STYLE: /* Style page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoStyle);
|
|
ws_Main->raiseWidget ( STYLE );
|
|
emit KbfxConfigDlgStyleChanged();
|
|
break;
|
|
}
|
|
case TOOLTIP: /* Tooltip page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoTooltip);
|
|
ws_Main->raiseWidget ( TOOLTIP );
|
|
emit KbfxConfigDlgTooltipChanged();
|
|
break;
|
|
}
|
|
case LAYOUT: /* Layout page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoLayout);
|
|
ws_Main->raiseWidget ( LAYOUT );
|
|
emit KbfxConfigDlgLayoutChanged();
|
|
break;
|
|
}
|
|
case PLUGINS: /* Plugins page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoPlugins);
|
|
ws_Main->raiseWidget ( PLUGINS );
|
|
break;
|
|
}
|
|
case ABOUT: /* About page */
|
|
{
|
|
KbfxLogoText->setText(m_KbfxLogoAbout);
|
|
ws_Main->raiseWidget ( ABOUT );
|
|
break;
|
|
}
|
|
default: /* default action switch should never be reached */
|
|
kdDebug() << "Default action switch for menu changed..." << endl;
|
|
}
|
|
}
|
|
|
|
void KbfxConfigApp::KbfxNewsBrowserOpenURLRequest ( const KURL &url, const KParts::URLArgs & )
|
|
{
|
|
kdDebug() << "Starting Konqueror ... "<< endl;
|
|
KRun::runCommand ( "konqueror " + url.url() );
|
|
|
|
return ;
|
|
}
|
|
|
|
void KbfxConfigApp::KbfxNewsBrowserCompleted()
|
|
{
|
|
kio->KbfxKioDownloadEnd();
|
|
}
|
|
|
|
void KbfxConfigApp::browserInit()
|
|
{
|
|
/* initialize NewsBrowser widget */
|
|
kio = new KbfxKioDownload();
|
|
connect ( kio, TQT_SIGNAL ( KbfxKioDownloadReady() ),
|
|
this, TQT_SLOT ( KbfxNewsBrowserLoad() ) );
|
|
kio->KbfxKioDownloadStart ( m_KbfxNewsBrowserAddress );
|
|
}
|
|
|
|
void KbfxConfigApp::KbfxNewsBrowserLoad()
|
|
{
|
|
if ( kio->KbfxBrowserError() ) KBFXNewsBrowser->setText ( m_KbfxNewsBrowserError );
|
|
else
|
|
{
|
|
browser = new KHTMLPart ( KBFXNewsBrowser );
|
|
browser->openURL ( kio->KbfxBrowserTmpFile() );
|
|
browser->view()->resize ( KBFXNewsBrowser->width(), KBFXNewsBrowser->height() );
|
|
browser->view()->setVScrollBarMode ( TQScrollView::AlwaysOff );
|
|
browser->view()->setHScrollBarMode ( TQScrollView::AlwaysOff );
|
|
browser->view()->setFocusPolicy ( TQ_NoFocus );
|
|
browser->view()->show();
|
|
|
|
connect ( browser->browserExtension(),
|
|
TQT_SIGNAL ( openURLRequest ( const KURL &, const KParts::URLArgs & ) ),
|
|
this,
|
|
TQT_SLOT ( KbfxNewsBrowserOpenURLRequest ( const KURL &, const KParts::URLArgs & ) ) );
|
|
connect ( browser, TQT_SIGNAL ( completed() ),
|
|
this, TQT_SLOT ( KbfxNewsBrowserCompleted() ) );
|
|
}
|
|
}
|
|
|
|
void KbfxConfigApp::KbfxGetMoreThemesClicked()
|
|
{
|
|
KRun::runCommand ( "konqueror 'http://www.kbfx.org/news/new_themes.html'" );
|
|
|
|
return ;
|
|
}
|
|
|
|
void KbfxConfigApp::KbfxThemeInstall ( TQString & themeURL )
|
|
{
|
|
emit KbfxThemeDoInstall ( themeURL );
|
|
}
|
|
|
|
|
|
void KbfxConfigApp::btn_SaveApplyClicked()
|
|
{
|
|
if( m_KbfxPage == LAYOUT )
|
|
{
|
|
emit KbfxConfigDlgLayoutLeft();
|
|
}
|
|
|
|
ConfigInit().write();
|
|
ConfigInit().writeThemerc ( ConfigInit().m_SpinxThemeName );
|
|
ConfigInit().writeFontrc ( ConfigInit().m_SpinxThemeName );
|
|
|
|
|
|
DCOPRef m_kickerkbfxDevelnterface ( "kicker","KBFXInterface" );
|
|
m_kickerkbfxDevelnterface.call ( "notifyConfigChange()" );
|
|
|
|
/*
|
|
// m_kickerkbfxDevelnterface.call ( "notifyConfigChange()" );
|
|
// DCOPRef m_kickerPanel("kicker","Panel");
|
|
DCOPRef m_kickerPanel("kicker","kicker");
|
|
m_kickerPanel.call("restart()");
|
|
*/
|
|
}
|
|
|
|
#include "kbfxconfigapp.moc"
|