message: Change QPushButton label from 'Local Directory' to '...'
  Reposition QPushButton next to URL field.
  The first dialog page now looks more similar to the second dialog page.
diff: @@ -60,18 +60,39 @@ public:
  });
  }
  - mUrl = new QLineEdit(this);
  + QFrame *url = new QFrame(this);
  + mUrl = new QLineEdit(url);
  mUrl->setMinimumWidth(mUrl->sizeHint().width() * 2);
  connect(mUrl, &QLineEdit::textChanged,
  this, &RemotePage::completeChanged);
  + QPushButton *browse = nullptr;
  if (repo) {
  mUrl->setReadOnly(true);
  mUrl->setText(repo->url(Repository::Https));
  + } else {
  + browse = new QPushButton(tr("..."), url);
  + connect(browse, &QPushButton::clicked, [this]() {
  + QString title = tr("Choose Directory");
  + QFileDialog *dialog = new QFileDialog(this, title, mUrl->text(), QString());
  + dialog->setAttribute(Qt::WA_DeleteOnClose);
  + dialog->setFileMode(QFileDialog::Directory);
  + dialog->setOption(QFileDialog::ShowDirsOnly);
  + connect(dialog, &QFileDialog::fileSelected, [this](const QString &file) {
  + mUrl->setText(file);
  + });
  +
  + dialog->open();
  + });
  }
  + QHBoxLayout *urlLayout = new QHBoxLayout(url);
  + urlLayout->setContentsMargins(0,0,0,0);
  + urlLayout->addWidget(mUrl);
  + if (browse)
  + urlLayout->addWidget(browse);
  +
  QLabel *label = nullptr;
  - QPushButton *browse = nullptr;
  if (!repo) {
  label = new QLabel(
  tr("Examples of valid URLs include:<table cellspacing='8'>"
  @@ -83,30 +104,14 @@ public:
  "<td>git://hostname/path/to/repo.git</td></tr>"
  "<tr><td align='right'><b>Local</b></td>"
  "<td>/path/to/repo, C:\\path\\to\\repo</td></tr></table>"), this);
  -
  - browse = new QPushButton(tr("Local Directory"), mUrl);
  - connect(browse, &QPushButton::clicked, [this]() {
  - QString title = tr("Choose Directory");
  - QFileDialog *dialog = new QFileDialog(this, title, mUrl->text(), QString());
  - dialog->setAttribute(Qt::WA_DeleteOnClose);
  - dialog->setFileMode(QFileDialog::Directory);
  - dialog->setOption(QFileDialog::ShowDirsOnly);
  - connect(dialog, &QFileDialog::fileSelected, [this](const QString &file) {
  - mUrl->setText(file);
  - });
  -
  - dialog->open();
  - });
  }
  QFormLayout *form = new QFormLayout(this);
  if (mProtocol)
  form->addRow(tr("Protocol:"), mProtocol);
  - form->addRow(tr("URL:"), mUrl);
  + form->addRow(tr("URL:"), url);
  if (label)
  form->addRow(label);
  - if (browse)
  - form->addRow(browse);
  // Register field.
  registerField("url", mUrl);
  