X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ae1980442d70aa04b1699fbba1c3503fdab58e6d..refs/heads/master:/src/settings/viewmodes/contentdisplaytab.cpp diff --git a/src/settings/viewmodes/contentdisplaytab.cpp b/src/settings/viewmodes/contentdisplaytab.cpp index f674e194e..939faf7e2 100644 --- a/src/settings/viewmodes/contentdisplaytab.cpp +++ b/src/settings/viewmodes/contentdisplaytab.cpp @@ -24,12 +24,15 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent) , m_caseInsensitiveSorting(nullptr) , m_numberOfItems(nullptr) , m_sizeOfContents(nullptr) + , m_noDirectorySize(nullptr) , m_recursiveDirectorySizeLimit(nullptr) , m_useRelatetiveDates(nullptr) , m_useShortDates(nullptr) , m_useSymbolicPermissions(nullptr) , m_useNumericPermissions(nullptr) , m_useCombinedPermissions(nullptr) + , m_elideMiddle(nullptr) + , m_elideEnding(nullptr) { QFormLayout *topLayout = new QFormLayout(this); @@ -48,12 +51,14 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent) #ifndef Q_OS_WIN // Sorting properties - m_numberOfItems = new QRadioButton(i18nc("option:radio", "Number of items")); - m_sizeOfContents = new QRadioButton(i18nc("option:radio", "Size of contents, up to ")); + m_numberOfItems = new QRadioButton(i18nc("option:radio", "Show number of items")); + m_sizeOfContents = new QRadioButton(i18nc("option:radio", "Show size of contents, up to ")); + m_noDirectorySize = new QRadioButton(i18nc("option:radio", "Show no size")); QButtonGroup *sortingModeGroup = new QButtonGroup(this); sortingModeGroup->addButton(m_numberOfItems); sortingModeGroup->addButton(m_sizeOfContents); + sortingModeGroup->addButton(m_noDirectorySize); m_recursiveDirectorySizeLimit = new QSpinBox(); connect(m_recursiveDirectorySizeLimit, &QSpinBox::valueChanged, this, [this](int value) { @@ -66,8 +71,9 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent) contentsSizeLayout->addWidget(m_sizeOfContents); contentsSizeLayout->addWidget(m_recursiveDirectorySizeLimit); - topLayout->addRow(i18nc("@title:group", "Folder size displays:"), m_numberOfItems); + topLayout->addRow(i18nc("@title:group", "Folder size:"), m_numberOfItems); topLayout->addRow(QString(), contentsSizeLayout); + topLayout->addRow(QString(), m_noDirectorySize); #endif QDateTime thirtyMinutesAgo = QDateTime::currentDateTime().addSecs(-30 * 60); @@ -99,12 +105,23 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent) permissionsFormatGroup->addButton(m_useNumericPermissions); permissionsFormatGroup->addButton(m_useCombinedPermissions); + m_elideMiddle = new QRadioButton(i18nc("@option:radio Long file names", "Elide in the middle (e.g. ’Some very… name.txt')")); + m_elideEnding = new QRadioButton(i18nc("@option:radio Long file names", "Elide at the end (e.g. ’Some very long….txt')")); + + topLayout->addRow(i18nc("@title:group", "Long file names:"), m_elideMiddle); + topLayout->addRow(QString(), m_elideEnding); + + QButtonGroup *elidingModeGroup = new QButtonGroup(this); + elidingModeGroup->addButton(m_elideMiddle); + elidingModeGroup->addButton(m_elideEnding); + #ifndef Q_OS_WIN connect(m_recursiveDirectorySizeLimit, &QSpinBox::valueChanged, this, &SettingsPageBase::changed); connect(m_numberOfItems, &QRadioButton::toggled, this, &SettingsPageBase::changed); - connect(m_sizeOfContents, &QRadioButton::toggled, this, [=]() { + connect(m_sizeOfContents, &QRadioButton::toggled, this, [=, this]() { m_recursiveDirectorySizeLimit->setEnabled(m_sizeOfContents->isChecked()); }); + connect(m_noDirectorySize, &QRadioButton::toggled, this, &SettingsPageBase::changed); #endif connect(m_useRelatetiveDates, &QRadioButton::toggled, this, &SettingsPageBase::changed); @@ -115,6 +132,8 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent) connect(m_naturalSorting, &QRadioButton::toggled, this, &SettingsPageBase::changed); connect(m_caseInsensitiveSorting, &QRadioButton::toggled, this, &SettingsPageBase::changed); connect(m_caseSensitiveSorting, &QRadioButton::toggled, this, &SettingsPageBase::changed); + connect(m_elideMiddle, &QRadioButton::toggled, this, &SettingsPageBase::changed); + connect(m_elideEnding, &QRadioButton::toggled, this, &SettingsPageBase::changed); loadSettings(); } @@ -123,7 +142,14 @@ void ContentDisplayTab::applySettings() { auto settings = ContentDisplaySettings::self(); #ifndef Q_OS_WIN - settings->setDirectorySizeCount(m_numberOfItems->isChecked()); + if (m_numberOfItems->isChecked()) { + settings->setDirectorySizeMode(ContentDisplaySettings::EnumDirectorySizeMode::ContentCount); + } else if (m_sizeOfContents->isChecked()) { + settings->setDirectorySizeMode(ContentDisplaySettings::EnumDirectorySizeMode::ContentSize); + } else if (m_noDirectorySize->isChecked()) { + settings->setDirectorySizeMode(ContentDisplaySettings::EnumDirectorySizeMode::None); + } + settings->setRecursiveDirectorySizeLimit(m_recursiveDirectorySizeLimit->value()); #endif setSortingChoiceValue(); @@ -136,6 +162,11 @@ void ContentDisplayTab::applySettings() } else if (m_useCombinedPermissions->isChecked()) { settings->setUsePermissionsFormat(ContentDisplaySettings::EnumUsePermissionsFormat::CombinedFormat); } + if (m_elideMiddle->isChecked()) { + settings->setElidingMode(ContentDisplaySettings::ElidingMode::Middle); + } else if (m_elideEnding->isChecked()) { + settings->setElidingMode(ContentDisplaySettings::ElidingMode::Right); + } settings->save(); } @@ -143,13 +174,9 @@ void ContentDisplayTab::loadSettings() { auto settings = ContentDisplaySettings::self(); #ifndef Q_OS_WIN - if (settings->directorySizeCount()) { - m_numberOfItems->setChecked(true); - m_recursiveDirectorySizeLimit->setEnabled(false); - } else { - m_sizeOfContents->setChecked(true); - m_recursiveDirectorySizeLimit->setEnabled(true); - } + m_numberOfItems->setChecked(settings->directorySizeMode() == ContentDisplaySettings::EnumDirectorySizeMode::ContentCount); + m_sizeOfContents->setChecked(settings->directorySizeMode() == ContentDisplaySettings::EnumDirectorySizeMode::ContentSize); + m_noDirectorySize->setChecked(settings->directorySizeMode() == ContentDisplaySettings::EnumDirectorySizeMode::None); m_recursiveDirectorySizeLimit->setValue(settings->recursiveDirectorySizeLimit()); #endif m_useRelatetiveDates->setChecked(settings->useShortRelativeDates()); @@ -158,6 +185,8 @@ void ContentDisplayTab::loadSettings() m_useNumericPermissions->setChecked(settings->usePermissionsFormat() == ContentDisplaySettings::EnumUsePermissionsFormat::NumericFormat); m_useCombinedPermissions->setChecked(settings->usePermissionsFormat() == ContentDisplaySettings::EnumUsePermissionsFormat::CombinedFormat); loadSortingChoiceSettings(); + m_elideMiddle->setChecked(settings->elidingMode() == ContentDisplaySettings::ElidingMode::Middle); + m_elideEnding->setChecked(settings->elidingMode() == ContentDisplaySettings::ElidingMode::Right); } void ContentDisplayTab::setSortingChoiceValue()