ConnectDialog::ConnectDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ConnectDialog) {
    ui->setupUi(this);
    setWindowIcon(QIcon(QString::fromUtf8(":/resources/conceptclienticon.png")));
    ui->label->setBuddy(ui->addressEdit);

    QStringList wordList;

    AnsiString history;
#ifdef _WIN32
    h_path = getenv("LOCALAPPDATA");
    if (!h_path.Length())
        h_path = getenv("APPDATA");

    mkdir(h_path + "/ConceptClient-private");
    h_path += (char *)"/ConceptClient-history.dat";
#else
    h_path = getenv("HOME");
    mkdir(h_path + "/.ConceptClient-private", 0777L);

    h_path += (char *)"/.ConceptClient-history";
#endif
    history.LoadFile(h_path.c_str());

    this->history = history;

    AnsiString sep     = "\n";
    int        len_sep = sep.Length();

    int pos   = history.Pos(sep);
    int index = 0;
    int start = 0;
    while (pos > 0) {
        if (pos > 1) {
            history.c_str()[pos - 1] = 0;
            wordList << history.c_str();
        }
        AnsiString temp = history;
        history = temp.c_str() + pos + len_sep - 1;
        pos     = history.Pos(sep);
    }

    QCompleter *completer = new QCompleter(wordList);
    completer->setCaseSensitivity(Qt::CaseInsensitive);

    ui->addressEdit->setCompleter(completer);

    ui->addressEdit->setText(QString::fromUtf8("concept://"));
    ui->addressEdit->addAction(QIcon(QString::fromUtf8(":/resources/gtk-index.png")), QLineEdit::LeadingPosition);
    QAction *action = ui->addressEdit->addAction(QIcon(QString::fromUtf8(":/resources/gtk-delete.png")), QLineEdit::TrailingPosition);

    QStyle *l_style = QApplication::style();

    ui->OkButton->setIcon(l_style->standardIcon(QStyle::SP_DialogOkButton));
    ui->CancelButton->setIcon(l_style->standardIcon(QStyle::SP_DialogCancelButton));

    QObject::connect(action, SIGNAL(triggered()), this, SLOT(clearHistory()));
}