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())); }