SchedulerItemDialog::SchedulerItemDialog(const SchedulerItem &AItem, IAccountManager *AAccountManager, QWidget *AParent):
	QDialog(AParent),
	ui(new Ui::SchedulerItemDialog),
	FAccountManager(AAccountManager),
	FRosterManager(PluginHelper::pluginInstance<IRosterManager>()),
	FPresenceManager(PluginHelper::pluginInstance<IPresenceManager>()),
	FItem(AItem)
{
	ui->setupUi(this);
	if (FItem.streamJid.isValid() && FItem.contactJid.isValid() && FItem.timeout && !FItem.message.isNull())
		setWindowTitle(tr("Edit schedule record"));
	else
		setWindowTitle(tr("Add schedule record"));
	QList<IPresence*> presences = FPresenceManager->presences();
	for (QList<IPresence*>::ConstIterator it=presences.constBegin(); it!=presences.constEnd(); ++it)
	{
		IAccount *account = FAccountManager->findAccountByStream((*it)->streamJid());
		ui->cmbAccount->addItem(account->name(), account->accountJid().full());
	}

	if (AItem.streamJid.isValid())
	{
		int index = ui->cmbAccount->findData(AItem.streamJid.full());
		if (index>-1)
			ui->cmbAccount->setCurrentIndex(index);
		else
			ui->cmbAccount->setEditText(AItem.streamJid.full());
		if (AItem.contactJid.isValid())
		{
			int index = ui->cmbContact->findData(AItem.contactJid.full());
			if (index>-1)
				ui->cmbContact->setCurrentIndex(index);
			else
				ui->cmbContact->setEditText(AItem.contactJid.full());
		}
	}
	ui->spbTimeout->setValue(AItem.timeout);
	ui->tedMessage->setPlainText(AItem.message);
}