/*************************************************************************** ksettingshome.cpp -------------------- copyright : (C) 2005 by Thomas Baumgart email : ipwizard@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * 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 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include #endif // ---------------------------------------------------------------------------- // TQt Includes #include #include // ---------------------------------------------------------------------------- // TDE Includes #include #include #include #include #include #include #include // ---------------------------------------------------------------------------- // Project Includes #include "ksettingshome.h" #include "kmymoney2/kmymoneyglobalsettings.h" #include "kmymoney2/kmymoneyutils.h" KSettingsHome::KSettingsHome(TQWidget* parent, const char* name) : KSettingsHomeDecl(parent, name), m_noNeedToUpdateList(false) { m_homePageList->addColumn(""); m_homePageList->setSorting(-1); m_homePageList->header()->hide(); m_homePageList->setAllColumnsShowFocus(true); TDEIconLoader* il = TDEGlobal::iconLoader(); KGuiItem upButtonItem( i18n( "&Up" ), TQIconSet(il->loadIcon("go-up", TDEIcon::Small, TDEIcon::SizeSmall)), i18n("Move selected item up"), i18n("Use this to move the selected item up by one position in the list.")); KGuiItem downButtonItem( i18n( "&Down" ), TQIconSet(il->loadIcon("go-down", TDEIcon::Small, TDEIcon::SizeSmall)), i18n("Move selected item down"), i18n("Use this to move the selected item down by one position in the list.")); m_upButton->setGuiItem(upButtonItem); m_upButton->setEnabled(false); m_downButton->setGuiItem(downButtonItem); m_downButton->setEnabled(false); // connect this, so that the list gets loaded once the edit field is filled connect(kcfg_ItemList, TQ_SIGNAL(textChanged()), this, TQ_SLOT(slotLoadItems())); connect(m_homePageList, TQ_SIGNAL(selectionChanged(TQListViewItem*)), this, TQ_SLOT(slotSelectHomePageItem(TQListViewItem *))); connect(m_homePageList, TQ_SIGNAL(pressed(TQListViewItem*)), this, TQ_SLOT(slotUpdateItemList())); connect(m_upButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotMoveUp())); connect(m_downButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotMoveDown())); // Don't show it to the user, we only need it to load and save the settings kcfg_ItemList->hide(); } KSettingsHome::~KSettingsHome() { } void KSettingsHome::slotLoadItems(void) { if(m_noNeedToUpdateList) return; TQStringList list = KMyMoneyGlobalSettings::itemList(); TQStringList::ConstIterator it; int w = 0; m_homePageList->clear(); TQCheckListItem *sel = 0; TQFontMetrics fm( TDEGlobalSettings::generalFont()); TQCheckListItem* last = 0; for(it = list.begin(); it != list.end(); ++it) { int idx = (*it).toInt(); // skip over unknown item entries if(idx == 0) continue; bool enabled = idx > 0; if(!enabled) idx = -idx; TQCheckListItem* item = new TQCheckListItem(m_homePageList, KMyMoneyUtils::homePageItemToString(idx), TQCheckListItem::CheckBox); if(last) item->moveItem(last); // tqDebug("Adding %s", item->text(0).latin1()); item->setOn(enabled); if(item->width(fm, m_homePageList, 0) > w) w = item->width(fm, m_homePageList, 0); if(sel == 0) sel = item; last = item; } if(sel) { m_homePageList->setSelected(sel, true); slotSelectHomePageItem(sel); } } void KSettingsHome::slotUpdateItemList(void) { TQString list; TQListViewItem *it; for(it = m_homePageList->firstChild(); it; ) { int item = KMyMoneyUtils::stringToHomePageItem(it->text(0)); if(!(static_cast(it)->isOn())) item = -item; list += TQString::number(item); it = it->nextSibling(); if(it) list += ","; } // don't update the list m_noNeedToUpdateList = true; kcfg_ItemList->setText(list); m_noNeedToUpdateList = false; } void KSettingsHome::slotSelectHomePageItem(TQListViewItem *item) { m_upButton->setEnabled(m_homePageList->firstChild() != item); m_downButton->setEnabled(item->nextSibling()); } void KSettingsHome::slotMoveUp(void) { TQListViewItem *item = m_homePageList->currentItem(); TQListViewItem *prev = item->itemAbove(); if(prev) { prev->moveItem(item); slotSelectHomePageItem(item); slotUpdateItemList(); } } void KSettingsHome::slotMoveDown(void) { TQListViewItem *item = m_homePageList->currentItem(); TQListViewItem *next = item->nextSibling(); if(next) { item->moveItem(next); slotSelectHomePageItem(item); slotUpdateItemList(); } } #include "ksettingshome.moc"