filepropertiesdialog.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "filepropertiesdialog.h"
  2. #include <QFormLayout>
  3. #include <QLabel>
  4. #include <QFileInfo>
  5. #include <QRegularExpressionValidator>
  6. #include "../lineedit.h"
  7. #include "../widgetsfactory.h"
  8. #include <utils/pathutils.h>
  9. #include <utils/widgetutils.h>
  10. using namespace vnotex;
  11. FilePropertiesDialog::FilePropertiesDialog(const QString &p_path, QWidget *p_parent)
  12. : ScrollDialog(p_parent),
  13. m_path(p_path)
  14. {
  15. Q_ASSERT(!p_path.isEmpty());
  16. setupUI();
  17. LineEdit::selectBaseName(m_nameLineEdit);
  18. m_nameLineEdit->setFocus();
  19. }
  20. void FilePropertiesDialog::setupUI()
  21. {
  22. auto widget = new QWidget(this);
  23. setCentralWidget(widget);
  24. auto mainLayout = WidgetUtils::createFormLayout(widget);
  25. mainLayout->setContentsMargins(0, 0, 0, 0);
  26. const QFileInfo info(m_path);
  27. mainLayout->addRow(tr("Location:"), new QLabel(info.absolutePath(), widget));
  28. setupNameLineEdit(widget);
  29. m_nameLineEdit->setText(info.fileName());
  30. mainLayout->addRow(tr("Name:"), m_nameLineEdit);
  31. mainLayout->addRow(tr("Size:"), new QLabel(tr("%1 Bytes").arg(info.size()), widget));
  32. setDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
  33. setWindowTitle(tr("Properties"));
  34. }
  35. void FilePropertiesDialog::setupNameLineEdit(QWidget *p_parent)
  36. {
  37. m_nameLineEdit = WidgetsFactory::createLineEdit(p_parent);
  38. auto validator = new QRegularExpressionValidator(QRegularExpression(PathUtils::c_fileNameRegularExpression),
  39. m_nameLineEdit);
  40. m_nameLineEdit->setValidator(validator);
  41. }
  42. QString FilePropertiesDialog::getFileName() const
  43. {
  44. return m_nameLineEdit->text();
  45. }