mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-19 05:53:35 +00:00
backport rev. 29324:
Timestamp: 04/19/09 13:57:52 Author: spitz Message: Implement a warning dialog with a "Do not show this warning again!" checkbox. Since Qt does not provide this, we have to roll our own dialog. Hidden warnings are stored in sessions. The dialog is currently only used in the case where an included file has a different textclass then the master (bug 3218). git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_6_X@29941 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
dc3abde38e
commit
ef31f02ca5
@ -950,6 +950,7 @@ src_frontends_qt4_ui_files = Split('''
|
||||
TextLayoutUi.ui
|
||||
ThesaurusUi.ui
|
||||
TocUi.ui
|
||||
ToggleWarningUi.ui
|
||||
VSpaceUi.ui
|
||||
ViewSourceUi.ui
|
||||
WrapUi.ui
|
||||
|
@ -37,8 +37,11 @@ int prompt(docstring const & title, docstring const & question,
|
||||
/**
|
||||
* Display a warning to the user. Title should be a short (general) summary.
|
||||
* Only use this if the user cannot perform some remedial action.
|
||||
* \p askshowagain will display a check box where the user can turn off the
|
||||
* warning for future cases. Ponder carefully if this is feasible.
|
||||
*/
|
||||
void warning(docstring const & title, docstring const & message);
|
||||
void warning(docstring const & title, docstring const & message,
|
||||
bool const & askshowagain = false);
|
||||
|
||||
/**
|
||||
* Display a warning to the user. Title should be a short (general) summary.
|
||||
|
@ -4,6 +4,7 @@
|
||||
* Licence details can be found in the file COPYING.
|
||||
*
|
||||
* \author John Levon
|
||||
* \author Jürgen Spitzmüller
|
||||
* \author Abdelrazak Younes
|
||||
*
|
||||
* Full author contact details are available in file CREDITS.
|
||||
@ -18,6 +19,7 @@
|
||||
#include "qt_helpers.h"
|
||||
#include "LyX.h" // for lyx::use_gui
|
||||
#include "ui_AskForTextUi.h"
|
||||
#include "ui_ToggleWarningUi.h"
|
||||
#include "support/gettext.h"
|
||||
|
||||
#include "support/debug.h"
|
||||
@ -25,9 +27,11 @@
|
||||
#include "support/lstrings.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QCheckBox>
|
||||
#include <QMessageBox>
|
||||
#include <QLineEdit>
|
||||
#include <QInputDialog>
|
||||
#include <QSettings>
|
||||
|
||||
#include <iomanip>
|
||||
#include <iostream>
|
||||
@ -39,6 +43,17 @@ namespace lyx {
|
||||
namespace frontend {
|
||||
|
||||
|
||||
class GuiToggleWarningDialog : public QDialog, public Ui::ToggleWarningUi
|
||||
{
|
||||
public:
|
||||
GuiToggleWarningDialog(QWidget * parent) : QDialog(parent)
|
||||
{
|
||||
Ui::ToggleWarningUi::setupUi(this);
|
||||
QDialog::setModal(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static docstring const formatted(docstring const & text)
|
||||
{
|
||||
const int w = 80;
|
||||
@ -99,6 +114,29 @@ static docstring const formatted(docstring const & text)
|
||||
}
|
||||
|
||||
|
||||
void toggleWarning(docstring const & title, docstring const & msg)
|
||||
{
|
||||
if (!use_gui)
|
||||
return;
|
||||
|
||||
QSettings settings;
|
||||
if (settings.value("hidden_warnings/" + toqstr(msg), false).toBool())
|
||||
return;
|
||||
|
||||
GuiToggleWarningDialog * dlg =
|
||||
new GuiToggleWarningDialog(qApp->focusWidget());
|
||||
|
||||
dlg->setWindowTitle(toqstr(title));
|
||||
dlg->messageLA->setText(toqstr(formatted(msg)));
|
||||
dlg->dontShowAgainCB->setChecked(false);
|
||||
|
||||
if (dlg->exec() == QDialog::Accepted)
|
||||
if (dlg->dontShowAgainCB->isChecked())
|
||||
settings.setValue("hidden_warnings/"
|
||||
+ toqstr(msg), true);
|
||||
}
|
||||
|
||||
|
||||
namespace Alert {
|
||||
|
||||
int prompt(docstring const & title0, docstring const & question,
|
||||
@ -145,7 +183,8 @@ int prompt(docstring const & title0, docstring const & question,
|
||||
}
|
||||
|
||||
|
||||
void warning(docstring const & title0, docstring const & message)
|
||||
void warning(docstring const & title0, docstring const & message,
|
||||
bool const & askshowagain)
|
||||
{
|
||||
lyxerr << "Warning: " << title0 << '\n'
|
||||
<< "----------------------------------------\n"
|
||||
@ -165,9 +204,12 @@ void warning(docstring const & title0, docstring const & message)
|
||||
toqstr(formatted(message)));
|
||||
return;
|
||||
}
|
||||
QMessageBox::warning(qApp->focusWidget(),
|
||||
toqstr(title),
|
||||
toqstr(formatted(message)));
|
||||
if (!askshowagain)
|
||||
QMessageBox::warning(qApp->focusWidget(),
|
||||
toqstr(title),
|
||||
toqstr(formatted(message)));
|
||||
else
|
||||
toggleWarning(title, message);
|
||||
}
|
||||
|
||||
|
||||
|
@ -301,6 +301,7 @@ UIFILES = \
|
||||
TextLayoutUi.ui \
|
||||
ThesaurusUi.ui \
|
||||
TocUi.ui \
|
||||
ToggleWarningUi.ui \
|
||||
ViewSourceUi.ui \
|
||||
VSpaceUi.ui \
|
||||
WrapUi.ui
|
||||
|
135
src/frontends/qt4/ui/ToggleWarningUi.ui
Normal file
135
src/frontends/qt4/ui/ToggleWarningUi.ui
Normal file
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>ToggleWarningUi</class>
|
||||
<widget class="QDialog" name="ToggleWarningUi">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>310</width>
|
||||
<height>140</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>LyX: Enter text</string>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout">
|
||||
<property name="margin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="0" colspan="3">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>247</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="dontShowAgainCB">
|
||||
<property name="toolTip">
|
||||
<string>If you check this, LyX will not warn you again in the given case.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Do not show this warning again!</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="QLabel" name="messageLA">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="3">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>247</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="okPB">
|
||||
<property name="text">
|
||||
<string>&OK</string>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<includes>
|
||||
<include location="local">qt_i18n.h</include>
|
||||
</includes>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>okPB</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>ToggleWarningUi</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>134</x>
|
||||
<y>116</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>134</x>
|
||||
<y>69</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
@ -497,7 +497,7 @@ int InsetInclude::latex(odocstream & os, OutputParams const & runparams) const
|
||||
included_file.displayName(),
|
||||
from_utf8(tmp->params().documentClass().name()),
|
||||
from_utf8(masterBuffer->params().documentClass().name()));
|
||||
Alert::warning(_("Different textclasses"), text);
|
||||
Alert::warning(_("Different textclasses"), text, true);
|
||||
}
|
||||
|
||||
// Make sure modules used in child are all included in master
|
||||
|
@ -34,6 +34,11 @@ What's new
|
||||
|
||||
* USER INTERFACE
|
||||
|
||||
- LyX's warning about different textclasses in master and child now has a
|
||||
"Do not show this warning again!" checkbox. Checking it will disable the
|
||||
warning for this specific master/child constellation over sessions
|
||||
(bug 3218).
|
||||
|
||||
- Tooltips for footnotes and some other insets now wrap, so they can actually
|
||||
be seen.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user