LINUX.ORG.RU

KDE clipboard widget. Неправильный ответ.

 , , ,


1

1

В виджете буфера обмена нажал кнопку «очистить журнал», вылезло окно с вопросом «Удалить историю или нет?». Поставил флажок «больше не спрашивать» и вместо «да» щёлкнул «нет». Теперь «очистить журнал» не работает. Скриншот виджета с нерабочей кнопкой. Как теперь вернуть всё обратно?

P.S:

$ cat .config/klipperrc 
[General]
IgnoreSelection=true
KeepClipboardContents=false
PreventEmptyClipboard=false
Version=5.12.5

$cat /etc/*release
DISTRIB_ID=neon
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="KDE neon User Edition 5.12"
NAME="KDE neon"
VERSION="5.12"
ID=neon
ID_LIKE="ubuntu debian"
PRETTY_NAME="KDE neon User Edition 5.12"
VERSION_ID="16.04"
HOME_URL="http://neon.kde.org/"
SUPPORT_URL="http://neon.kde.org/"
BUG_REPORT_URL="http://bugs.kde.org/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

Ответ на: комментарий от Deleted

Второго файла не имеется. Удаление первого сбило все настройки аплетов. Но нет, проблему это не решило.

ostorbaiter
() автор топика

В виджете буфера обмена нажал кнопку «очистить журнал», вылезло окно с вопросом «Удалить историю или нет?». Поставил флажок «больше не спрашивать» и вместо «да» щёлкнул «нет». Теперь «очистить журнал» не работает.

Эпично.

Вроде, вот сорцы:

https://github.com/KDE/plasma-workspace/blob/master/klipper/klipper.cpp

Такой вопрос задавало?

void Klipper::slotAskClearHistory()
{
    int clearHist = KMessageBox::questionYesNo(nullptr,
                                               i18n("Really delete entire clipboard history?"),
                                               i18n("Delete clipboard history?"),
                                               KStandardGuiItem::yes(),
                                               KStandardGuiItem::no(),
                                               QStringLiteral("really_clear_history"),
                                               KMessageBox::Dangerous);
    if (clearHist == KMessageBox::Yes) {
      history()->slotClear();
      slotClearClipboard();
      saveHistory();
    }

}

Не похоже, что само приложение обрабатывает сохранение ответа. Значит, это стандартная фича диалога с вопросом, и настройка должна где-то централизованно храниться.

Deleted
()
Ответ на: комментарий от Deleted
    KMessageBoxDontAskAgainQSettingsStorage()
    {
        m_filePath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QLatin1Char('/') + QCoreApplication::instance()->applicationName() + QStringLiteral(".kmessagebox");
        QSettings s(m_filePath, QSettings::IniFormat);
        foreach (const QString &key, s.allKeys()) {
            m_saved.insert(key, static_cast<KMessageBox::ButtonCode>(s.value(key).toInt()));
        }
    }

Ищи файл с расширением .kmessagebox

Deleted
()
Ответ на: комментарий от Deleted

Не причём тут .kmessagebox. Решение нашёл другим способом. Запустил в виртуалке kde-neon. Поставил гит, закомитил хомяка, воспроизвёл то, что ты выше назвал «эпично». Выхлоп git diff. То есть настройки хранятся в .config/plasmashellrc. Поменял на true — заработало моментально, без перезапуска сеанса. Полагаю, что ответы на «плазменные» вопросы хранятся именно в этом файле. Кстати название really_clear_history совсем никак на klipper не указывает. Вот и думай: файлики с конфигами или гномий dconf =)

ostorbaiter
() автор топика

Правильный ответ: настройка поведения кнопки очистки история klipper'а находится в файле .config/plasmashellrc:

...
[Notification Messages]
really_clear_history=true
...

ostorbaiter
() автор топика
Ответ на: комментарий от ostorbaiter

Я так понял, там есть возможность для приложения либо перенаправить работу этой фичи в свой конфиг, либо использовать по дефолту .kmessagebox. Но качественно погрепать по нескачанным сорцам довольно проблематично, так что реальный конфиг я не нашел вчера.

really_clear_history

Вот я лошара, надо было всего лишь посмотреть на параметры метода questionYesNo, откуда видно, что аргументу dontAskAgainName присваивается значение QStringLiteral(«really_clear_history») :

ButtonCode questionYesNo(QWidget *parent, const QString &text,
                         const QString &caption,
                         const KGuiItem &buttonYes,
                         const KGuiItem &buttonNo,
                         const QString &dontAskAgainName,
                         Options options)

Вот и думай: файлики с конфигами или гномий dconf =)

Если бы в dconf параметр назывался KDE/plasmashell/really_clear_history, легче бы не стало. :)

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Deleted

QStringLiteral(«really_clear_history»),

cd ~/.config && grep -r really_clear_history
plasmashellrc:really_clear_history=true

Действительно очень близко.

Если бы в dconf параметр назывался KDE/plasmashell/really_clear_history, легче бы не стало. :)

Дар у человека, что тут скажешь...

ostorbaiter
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.