/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you wish to add, delete or rename functions or slots use
** Qt Designer which will update this file, preserving your code. Create an
** init() function in place of a constructor, and a destroy() function in
** place of a destructor.
*****************************************************************************/

#include <qmessagebox.h>
#include <qregexp.h>


void PropertyForm::show()
{
  _cmbstartkey->setCurrentText(Config::readEntry(_cmbstartkey->name(),
						 _cmbstartkey->currentText()));
  _cmbinputmode->setCurrentText(Config::readEntry(_cmbinputmode->name(), 
						  _cmbinputmode->currentText()));
  _cmbinputmethod->setCurrentText(Config::readEntry(_cmbinputmethod->name(), 
						  _cmbinputmethod->currentText()));
  
  _cmbspacekey->setCurrentText(Config::readEntry(_cmbspacekey->name(),
						 _cmbspacekey->currentText()));
  _cmbtenkey->setCurrentText(Config::readEntry(_cmbtenkey->name(), 
					       _cmbtenkey->currentText()));
  _cmbkuten->setCurrentText(Config::readEntry(_cmbkuten->name(), 
					      _cmbkuten->currentText()));
  _cmbtouten->setCurrentText(Config::readEntry(_cmbtouten->name(), 
						_cmbtouten->currentText()));
  _cmbsymbol->setCurrentText(Config::readEntry(_cmbsymbol->name(), 
					       _cmbsymbol->currentText()));
  _cmbbracket->setCurrentText(Config::readEntry(_cmbbracket->name(), 
						_cmbbracket->currentText()));

  _cmbkanjisys->setCurrentText(Config::readEntry(_cmbkanjisys->name(), 
						 _cmbkanjisys->currentText()));
  _chkremote->setChecked(Config::readBoolEntry(_chkremote->name(), 
					       _chkremote->isChecked()));
  _edtsvrname->setText(Config::readEntry(_edtsvrname->name(), _edtsvrname->text()));
  _edtport->setText(Config::readEntry(_edtport->name(), _edtport->text()));
  
  QWidget::show();
}


void PropertyForm::clickedOkBtn()
{
  // Check entry
  if (_chkremote->isChecked()) {
    if (_edtsvrname->text().isEmpty() || _edtport->text().isEmpty()) {
      QMessageBox::warning(0, "Incorrect entry", 
			   "Incorrect entry!\nInput Kanji server and port correctly.",
			   QMessageBox::Ok | QMessageBox::Default, 0);

      _tabwdg->showPage(_tab3);  // show page
      return;
      
    } else if ( !_edtport->text().contains(QRegExp("^[0-9]{4,5}$")) ) {
      QMessageBox::warning(0, "Incorrect port number", 
			   "Incorrect port number!\nInput numerical string, 4 or 5 characters.",
			   QMessageBox::Ok | QMessageBox::Default, 0);
      
      _tabwdg->showPage(_tab3);  // show page
      return;
    }
  }
  
  Config::writeEntry(_cmbstartkey->name(), _cmbstartkey->currentText());
  Config::writeEntry(_cmbinputmode->name(), _cmbinputmode->currentText());
  Config::writeEntry(_cmbinputmethod->name(), _cmbinputmethod->currentText());

  Config::writeEntry(_cmbspacekey->name(), _cmbspacekey->currentText());
  Config::writeEntry(_cmbtenkey->name(), _cmbtenkey->currentText());
  Config::writeEntry(_cmbkuten->name(), _cmbkuten->currentText());
  Config::writeEntry(_cmbtouten->name(), _cmbtouten->currentText());
  Config::writeEntry(_cmbsymbol->name(), _cmbsymbol->currentText());
  Config::writeEntry(_cmbbracket->name(), _cmbbracket->currentText());
  
  Config::writeEntry(_cmbkanjisys->name(), _cmbkanjisys->currentText());
  Config::writeEntry(_chkremote->name(), _chkremote->isChecked());
  Config::writeEntry(_edtsvrname->name(), _edtsvrname->text());
  Config::writeEntry(_edtport->name(), _edtport->text());
  
  close();
  
  MainForm* parent = (MainForm*)parentWidget();
  if (parent) parent->initIM();   // Re-initialize to connect Kanji server
}


void PropertyForm::init()
{
  QToolTip::add(_tab1, tr("このページの設定は次の起動から反映されます"));
  QToolTip::add(_lblstartkey, tr("漢字入力を開始するためのキーを設定します"));
  QToolTip::add(_cmbstartkey, tr("漢字入力を開始するためのキーを設定します"));
  QToolTip::add(_lblinputmode, tr("Kimeraを起動した時の入力モードを設定します"));
  QToolTip::add(_cmbinputmode, tr("Kimeraを起動した時の入力モードを設定します"));
  QToolTip::add(_lblinputmethod, tr("Kimeraを起動した時の入力方式として、\nローマ字入力またはかな入力を設定します"));
  QToolTip::add(_cmbinputmethod, tr("Kimeraを起動した時の入力方式として、\nローマ字入力またはかな入力を設定します"));

  QToolTip::add(_lblspacekey, tr("スペースキーを押した時の空白文字について\n半角または全角を設定します"));
  QToolTip::add(_cmbspacekey, tr("スペースキーを押した時の空白文字について\n半角または全角を設定します"));
  QToolTip::add(_lbltenkey, tr("テンキーから入力した時の文字について\n半角または全角を設定します"));
  QToolTip::add(_cmbtenkey, tr("テンキーから入力した時の文字について\n半角または全角を設定します"));
  QToolTip::add(_lbltouten, tr("読点を設定します"));
  QToolTip::add(_cmbtouten, tr("読点を設定します"));
  QToolTip::add(_lblkuten, tr("句点文字を設定します"));
  QToolTip::add(_cmbkuten, tr("句点文字を設定します"));
  QToolTip::add(_lblbracket, tr("括弧を設定します"));
  QToolTip::add(_cmbbracket, tr("括弧を設定します"));
  QToolTip::add(_lblsymbol, tr("記号を設定します"));
  QToolTip::add(_cmbsymbol, tr("記号を設定します"));

  QToolTip::add(_lblkanjisys, tr("使用する漢字変換システムを設定します"));
  QToolTip::add(_cmbkanjisys, tr("使用する漢字変換システムを設定します"));
  QToolTip::add(_lblsvrname, tr("漢字変換サーバのホスト名を設定します"));
  QToolTip::add(_edtsvrname, tr("漢字変換サーバのホスト名を設定します"));
  QToolTip::add(_lblport, tr("接続するポート番号を設定します"));
  QToolTip::add(_edtport, tr("接続するポート番号を設定します"));
}
