/*************************************************************************** keditequityentrydlg.cpp - description ------------------- begin : Sat Mar 6 2004 copyright : (C) 2000-2004 by Michael Edwardes email : mte@users.sourceforge.net Javier Campos Morales Felix Rodriguez John C Thomas Baumgart Kevin Tambascio ***************************************************************************/ /*************************************************************************** * * * 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 // ---------------------------------------------------------------------------- // TDE Includes #include #include #include #include #include // ---------------------------------------------------------------------------- // Project Includes #include "keditequityentrydlg.h" #include "kupdatestockpricedlg.h" #include "../widgets/kmymoneypriceview.h" KEditEquityEntryDlg::KEditEquityEntryDlg(const MyMoneySecurity& selectedSecurity, TQWidget *parent, const char *name) : KEditEquityEntryDecl(parent, name, true) { m_selectedSecurity = selectedSecurity; connect(btnOK, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotOKClicked())); connect(btnCancel, TQ_SIGNAL(clicked()), this, TQ_SLOT(reject())); connect(edtEquityName, TQ_SIGNAL(textChanged(const TQString &)), this, TQ_SLOT(slotDataChanged())); connect(edtMarketSymbol, TQ_SIGNAL(textChanged(const TQString &)), this, TQ_SLOT(slotDataChanged())); connect(edtFraction, TQ_SIGNAL(textChanged(const TQString&)), this, TQ_SLOT(slotDataChanged())); connect(btnAddEntry, TQ_SIGNAL(clicked()), kpvPriceHistory, TQ_SLOT(slotAddPrice())); connect(btnEditEntry, TQ_SIGNAL(clicked()), kpvPriceHistory, TQ_SLOT(slotEditPrice())); connect(btnRemoveEntry, TQ_SIGNAL(clicked()), kpvPriceHistory, TQ_SLOT(slotDeletePrice())); connect(kpvPriceHistory, TQ_SIGNAL(selectionChanged(TQListViewItem*)), this, TQ_SLOT(slotSelectionChanged(TQListViewItem*))); //fill in the fields with what we know. edtEquityName->setText(m_selectedSecurity.name()); edtMarketSymbol->setText(m_selectedSecurity.tradingSymbol()); edtFraction->setPrecision(0); edtFraction->setCalculatorButtonVisible(false); edtFraction->loadText(TQString::number(m_selectedSecurity.smallestAccountFraction())); cmbInvestmentType->setCurrentItem((int)m_selectedSecurity.securityType()); // FIXME PRICE // kpvPriceHistory->setHistory(m_selectedSecurity.priceHistory()); // add icons to buttons TDEIconLoader *il = TDEGlobal::iconLoader(); btnOK->setGuiItem(KStdGuiItem::ok()); btnCancel->setGuiItem(KStdGuiItem::cancel()); btnRemoveEntry->setGuiItem(KStdGuiItem::remove()); btnAddEntry->setGuiItem(KStdGuiItem::add()); KGuiItem editButtenItem( i18n( "&Edit" ), TQIconSet(il->loadIcon("edit", TDEIcon::Small, TDEIcon::SizeSmall)), i18n("Modify the selected entry"), i18n("Change the price information of the selected entry.")); btnEditEntry->setGuiItem(editButtenItem); slotSelectionChanged(0); // make sure buttons are disabled in the beginning slotDataChanged(); m_changes = false; // force a resize to optimize the layout of all widgets resize(width()-1, height()-1); TQTimer::singleShot(10, this, TQ_SLOT(slotTimerDone())); } KEditEquityEntryDlg::~KEditEquityEntryDlg() { } void KEditEquityEntryDlg::slotTimerDone(void) { // the resize operation does the trick to adjust // all widgets in the view to the size they should // have and show up correctly. Don't ask me, why // this is, but it cured the problem (ipwizard). resize(width()+1, height()+1); } /** No descriptions */ void KEditEquityEntryDlg::slotOKClicked() { if(m_changes /* || kpvPriceHistory->dirty() */) { m_selectedSecurity.setName(edtEquityName->text()); m_selectedSecurity.setTradingSymbol(edtMarketSymbol->text()); m_selectedSecurity.setSmallestAccountFraction(edtFraction->value().abs()); // FIXME PRICE // m_selectedSecurity.setPriceHistory(kpvPriceHistory->history()); } accept(); } void KEditEquityEntryDlg::slotSelectionChanged(TQListViewItem* item) { btnEditEntry->setEnabled(item != 0); btnRemoveEntry->setEnabled(item != 0); } void KEditEquityEntryDlg::slotDataChanged(void) { bool okEnabled = true; if(!edtFraction->value().isPositive() || edtMarketSymbol->text().isEmpty() || edtEquityName->text().isEmpty()) okEnabled = false; btnOK->setEnabled(okEnabled); m_changes = true; } #include "keditequityentrydlg.moc"