Changeset View
Changeset View
Standalone View
Standalone View
src/widgets/kpropertiesdialog.cpp
Show First 20 Lines • Show All 94 Lines • ▼ Show 20 Line(s) | |||||
95 | #include <klocalizedstring.h> | 95 | #include <klocalizedstring.h> | ||
96 | #include <kjobuidelegate.h> | 96 | #include <kjobuidelegate.h> | ||
97 | #include <kio/global.h> | 97 | #include <kio/global.h> | ||
98 | #include <kio/job.h> | 98 | #include <kio/job.h> | ||
99 | #include <kio/copyjob.h> | 99 | #include <kio/copyjob.h> | ||
100 | #include <kio/chmodjob.h> | 100 | #include <kio/chmodjob.h> | ||
101 | #include <kio/directorysizejob.h> | 101 | #include <kio/directorysizejob.h> | ||
102 | #include <KIO/FileSystemFreeSpaceJob> | 102 | #include <KIO/FileSystemFreeSpaceJob> | ||
103 | #include <KIO/OpenFileManagerWindowJob> | ||||
103 | #include <kio/renamedialog.h> | 104 | #include <kio/renamedialog.h> | ||
104 | #include <kio/jobuidelegate.h> | 105 | #include <kio/jobuidelegate.h> | ||
105 | #include <kjobwidgets.h> | 106 | #include <kjobwidgets.h> | ||
106 | #include <kmountpoint.h> | 107 | #include <kmountpoint.h> | ||
107 | #include <kmessagebox.h> | 108 | #include <kmessagebox.h> | ||
109 | #include <kmessagewidget.h> | ||||
108 | #include <kservice.h> | 110 | #include <kservice.h> | ||
109 | #include <ksharedconfig.h> | 111 | #include <ksharedconfig.h> | ||
110 | #include <kcombobox.h> | 112 | #include <kcombobox.h> | ||
111 | #include <kcompletion.h> | 113 | #include <kcompletion.h> | ||
112 | #include <klineedit.h> | 114 | #include <klineedit.h> | ||
113 | #include <kseparator.h> | 115 | #include <kseparator.h> | ||
114 | #include <ksqueezedtextlabel.h> | 116 | #include <ksqueezedtextlabel.h> | ||
115 | #include <kmimetypetrader.h> | 117 | #include <kmimetypetrader.h> | ||
▲ Show 20 Lines • Show All 990 Lines • ▼ Show 20 Line(s) | 1087 | } else { // Directory | |||
1106 | } | 1108 | } | ||
1107 | } | 1109 | } | ||
1108 | 1110 | | |||
1109 | if (!d->bMultiple && item.isLink()) { | 1111 | if (!d->bMultiple && item.isLink()) { | ||
1110 | l = new QLabel(i18n("Points to:"), d->m_frame); | 1112 | l = new QLabel(i18n("Points to:"), d->m_frame); | ||
1111 | grid->addWidget(l, curRow, 0, Qt::AlignRight); | 1113 | grid->addWidget(l, curRow, 0, Qt::AlignRight); | ||
1112 | 1114 | | |||
1113 | d->m_linkTargetLineEdit = new KLineEdit(item.linkDest(), d->m_frame); | 1115 | d->m_linkTargetLineEdit = new KLineEdit(item.linkDest(), d->m_frame); | ||
1114 | grid->addWidget(d->m_linkTargetLineEdit, curRow++, 2); | | |||
1115 | connect(d->m_linkTargetLineEdit, &QLineEdit::textChanged, | 1116 | connect(d->m_linkTargetLineEdit, &QLineEdit::textChanged, | ||
1116 | this, QOverload<>::of(&KFilePropsPlugin::setDirty)); | 1117 | this, QOverload<>::of(&KFilePropsPlugin::setDirty)); | ||
1118 | | ||||
1119 | QPushButton *goThereButton = new QPushButton(d->m_frame); | ||||
1120 | goThereButton->setIcon(QIcon::fromTheme(QStringLiteral("go-jump"))); | ||||
ndavis: `go-jump` is more semantically correct. | |||||
1121 | | ||||
1122 | QHBoxLayout *row = new QHBoxLayout(d->m_frame); | ||||
1123 | row->setContentsMargins(0, 0, 0, 0); | ||||
1124 | row->addWidget(d->m_linkTargetLineEdit); | ||||
1125 | row->addWidget(goThereButton); | ||||
1126 | grid->addLayout(row, curRow++, 2); | ||||
1127 | | ||||
1128 | KMessageWidget* messageWidget = new KMessageWidget(d->m_frame); | ||||
1129 | messageWidget->setWordWrap(true); | ||||
1130 | messageWidget->setMessageType(KMessageWidget::Error); | ||||
1131 | messageWidget->setText(i18n("Invalid link target")); | ||||
1132 | messageWidget->hide(); | ||||
1133 | grid->addWidget(messageWidget, curRow++, 0, 1, -1); | ||||
1134 | | ||||
1135 | connect(goThereButton, &QPushButton::clicked, | ||||
1136 | this, [=]() { | ||||
1137 | const QUrl targetLocation = QUrl::fromLocalFile(d->m_linkTargetLineEdit->text()); | ||||
1138 | KIO::StatJob *statJob = KIO::stat(targetLocation, KIO::HideProgressInfo); | ||||
1139 | bool ok = statJob->exec(); | ||||
1140 | if (ok) { | ||||
1141 | KIO::highlightInFileManager({targetLocation}); | ||||
1142 | _props->close(); | ||||
1143 | return; | ||||
1144 | } | ||||
1145 | // Show error message if the link destination doesn't exist | ||||
1146 | messageWidget->animatedShow(); | ||||
1147 | }); | ||||
1117 | } | 1148 | } | ||
1118 | 1149 | | |||
1119 | if (!d->bMultiple) { // Dates for multiple don't make much sense... | 1150 | if (!d->bMultiple) { // Dates for multiple don't make much sense... | ||
1120 | QDateTime dt = item.time(KFileItem::CreationTime); | 1151 | QDateTime dt = item.time(KFileItem::CreationTime); | ||
1121 | if (!dt.isNull()) { | 1152 | if (!dt.isNull()) { | ||
1122 | l = new QLabel(i18n("Created:"), d->m_frame); | 1153 | l = new QLabel(i18n("Created:"), d->m_frame); | ||
1123 | grid->addWidget(l, curRow, 0, Qt::AlignRight); | 1154 | grid->addWidget(l, curRow, 0, Qt::AlignRight); | ||
1124 | 1155 | | |||
▲ Show 20 Lines • Show All 2803 Lines • Show Last 20 Lines |
go-jump is more semantically correct.