Re: Candidates for stable

2016-10-23 Thread Jürgen Spitzmüller
Am Samstag, den 22.10.2016, 13:35 -0400 schrieb Richard Heck:
> OK, looks safe enough.

Thanks, all done now.

Jürgen

signature.asc
Description: This is a digitally signed message part


Re: Candidates for stable

2016-10-22 Thread Richard Heck
On 10/22/2016 01:32 PM, Jürgen Spitzmüller wrote:
> Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
>> * Improve bibliography info display:
>> http://www.lyx.org/trac/changeset/ba171930/lyxgit
>> http://www.lyx.org/trac/changeset/2c4673af/lyxgit
>> http://www.lyx.org/trac/changeset/1c725c91/lyxgit
>> http://www.lyx.org/trac/changeset/67da1431/lyxgit
>> http://www.lyx.org/trac/changeset/b941d939/lyxgit
>> http://www.lyx.org/trac/changeset/2267f4ae/lyxgit
>> http://www.lyx.org/trac/changeset/85f1259b/lyxgit
>> http://www.lyx.org/trac/changeset/b8486ba6/lyxgit
> Now only these are left. The fixes are rather cosmetic, but make the
> bibliography display actually useful with biblatex databases.
>
> Richard, if you agree on backporting, I would cherry-pick each of the
> above commits in their chronological order.
>
> After that, my stack for stable is empty for the time being.

OK, looks safe enough.

Richard




Re: Candidates for stable

2016-10-22 Thread Jürgen Spitzmüller
Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
> * Improve bibliography info display:
> http://www.lyx.org/trac/changeset/ba171930/lyxgit
> http://www.lyx.org/trac/changeset/2c4673af/lyxgit
> http://www.lyx.org/trac/changeset/1c725c91/lyxgit
> http://www.lyx.org/trac/changeset/67da1431/lyxgit
> http://www.lyx.org/trac/changeset/b941d939/lyxgit
> http://www.lyx.org/trac/changeset/2267f4ae/lyxgit
> http://www.lyx.org/trac/changeset/85f1259b/lyxgit
> http://www.lyx.org/trac/changeset/b8486ba6/lyxgit

Now only these are left. The fixes are rather cosmetic, but make the
bibliography display actually useful with biblatex databases.

Richard, if you agree on backporting, I would cherry-pick each of the
above commits in their chronological order.

After that, my stack for stable is empty for the time being.

Thanks
Jürgen

signature.asc
Description: This is a digitally signed message part


Re: Candidates for stable

2016-10-21 Thread Richard Heck
On 10/21/2016 01:27 PM, Jürgen Spitzmüller wrote:
> Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
>> * Refs dialog redesign:
>> http://www.lyx.org/trac/changeset/774becf6/lyxgit
>> http://www.lyx.org/trac/changeset/47ea77a8/lyxgit
> Patch for this attached.

Also good. Thanks for all of this work.

Richard



Re: Candidates for stable

2016-10-21 Thread Richard Heck
On 10/21/2016 01:24 PM, Jürgen Spitzmüller wrote:
> Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
>> * Citation dialog redesign:
>> http://www.lyx.org/trac/changeset/824e24ca/lyxgit
>> http://www.lyx.org/trac/changeset/5225418d/lyxgit
>> http://www.lyx.org/trac/changeset/0c1a023c/lyxgit
>>
>> * Keep citation style settings both within and between sessions
>> (#10256): 
>> http://www.lyx.org/trac/changeset/3294b16b/lyxgit
> Combined patch for these fixes attached.

Good.

rh



Re: Candidates for stable

2016-10-21 Thread Jürgen Spitzmüller
Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
> * Refs dialog redesign:
> http://www.lyx.org/trac/changeset/774becf6/lyxgit
> http://www.lyx.org/trac/changeset/47ea77a8/lyxgit

Patch for this attached.

Jürgendiff --git a/src/frontends/qt4/GuiRef.cpp b/src/frontends/qt4/GuiRef.cpp
index 0d21387..3bb8988 100644
--- a/src/frontends/qt4/GuiRef.cpp
+++ b/src/frontends/qt4/GuiRef.cpp
@@ -13,6 +13,8 @@
 
 #include "GuiRef.h"
 
+#include "GuiApplication.h"
+
 #include "Buffer.h"
 #include "BufferList.h"
 #include "FuncRequest.h"
@@ -48,6 +50,26 @@ GuiRef::GuiRef(GuiView & lv)
 
 	at_ref_ = false;
 
+	// The filter bar
+	filter_ = new FancyLineEdit(this);
+#if QT_VERSION >= 0x040600
+	filter_->setButtonPixmap(FancyLineEdit::Right, getPixmap("images/", "editclear", "svgz,png"));
+	filter_->setButtonVisible(FancyLineEdit::Right, true);
+	filter_->setButtonToolTip(FancyLineEdit::Right, qt_("Clear text"));
+	filter_->setAutoHideButton(FancyLineEdit::Right, true);
+#endif
+#if QT_VERSION >= 0x040700
+	filter_->setPlaceholderText(qt_("All available labels"));
+#endif
+	filter_->setToolTip(qt_("Enter string to filter the list of available labels"));
+
+	filterBarL->addWidget(filter_, 0);
+	findKeysLA->setBuddy(filter_);
+
+	sortingCO->addItem(qt_("By Occurrence"), "unsorted");
+	sortingCO->addItem(qt_("Alphabetically (Case-Insensitive)"), "nocase");
+	sortingCO->addItem(qt_("Alphabetically (Case-Sensitive)"), "case");
+
 	refsTW->setColumnCount(1);
 	refsTW->header()->setVisible(false);
 
@@ -60,9 +82,13 @@ GuiRef::GuiRef(GuiView & lv)
 	connect(typeCO, SIGNAL(activated(int)),
 		this, SLOT(changed_adaptor()));
 	connect(referenceED, SIGNAL(textChanged(QString)),
+		this, SLOT(refTextChanged(QString)));
+	connect(referenceED, SIGNAL(textChanged(QString)),
 		this, SLOT(changed_adaptor()));
-	connect(findLE, SIGNAL(textEdited(QString)),
+	connect(filter_, SIGNAL(textEdited(QString)),
 		this, SLOT(filterLabels()));
+	connect(filter_, SIGNAL(rightButtonClicked()),
+		this, SLOT(resetFilter()));
 	connect(csFindCB, SIGNAL(clicked()),
 		this, SLOT(filterLabels()));
 	connect(nameED, SIGNAL(textChanged(QString)),
@@ -73,10 +99,8 @@ GuiRef::GuiRef(GuiView & lv)
 		this, SLOT(selectionChanged()));
 	connect(refsTW, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)),
 		this, SLOT(refSelected(QTreeWidgetItem *)));
-	connect(sortCB, SIGNAL(clicked()),
+	connect(sortingCO, SIGNAL(activated(int)),
 		this, SLOT(sortToggled()));
-	connect(caseSensitiveCB, SIGNAL(clicked()),
-		this, SLOT(caseSensitiveToggled()));
 	connect(groupCB, SIGNAL(clicked()),
 		this, SLOT(groupToggled()));
 	connect(gotoPB, SIGNAL(clicked()),
@@ -167,6 +191,14 @@ void GuiRef::refHighlighted(QTreeWidgetItem * sel)
 }
 
 
+void GuiRef::refTextChanged(QString const & str)
+{
+	gotoPB->setEnabled(!str.isEmpty());
+	typeCO->setEnabled(!str.isEmpty());
+	typeLA->setEnabled(!str.isEmpty());
+}
+
+
 void GuiRef::refSelected(QTreeWidgetItem * sel)
 {
 	if (isBufferReadonly())
@@ -191,13 +223,6 @@ void GuiRef::refSelected(QTreeWidgetItem * sel)
 
 void GuiRef::sortToggled()
 {
-	caseSensitiveCB->setEnabled(sortCB->isChecked());
-	redoRefs();
-}
-
-
-void GuiRef::caseSensitiveToggled()
-{
 	redoRefs();
 }
 
@@ -270,7 +295,7 @@ void GuiRef::updateContents()
 
 	int const thebuffer = theBufferList().bufferNum(buffer().fileName());
 	// restore the buffer combo setting for new insets
-	if (params_["reference"].empty() && restored_buffer_ != -1
+	if (new_inset && restored_buffer_ != -1
 	&& restored_buffer_ < bufferCO->count() && thebuffer == active_buffer_)
 		bufferCO->setCurrentIndex(restored_buffer_);
 	else {
@@ -316,16 +341,14 @@ bool GuiRef::typeAllowed()
 void GuiRef::setGoBack()
 {
 	gotoPB->setText(qt_(" Back"));
-	gotoPB->setToolTip("");
-	gotoPB->setToolTip(qt_("Jump back"));
+	gotoPB->setToolTip(qt_("Jump back to the original cursor location"));
 }
 
 
 void GuiRef::setGotoRef()
 {
 	gotoPB->setText(qt_(" to Label"));
-	gotoPB->setToolTip("");
-	gotoPB->setToolTip(qt_("Jump to label"));
+	gotoPB->setToolTip(qt_("Jump to the selected label"));
 }
 
 
@@ -392,13 +415,14 @@ void GuiRef::redoRefs()
 	if (noprefix)
 		refsCategories.insert(0, qt_(""));
 
-	if (sortCB->isEnabled() && sortCB->isChecked()) {
-		if(caseSensitiveCB->isEnabled() && caseSensitiveCB->isChecked())
-			qSort(refsStrings.begin(), refsStrings.end());
-		else
-			qSort(refsStrings.begin(), refsStrings.end(),
-			  caseInsensitiveLessThan /*defined above*/);
-	}
+	QString const sort = sortingCO->isEnabled() ?
+sortingCO->itemData(sortingCO->currentIndex()).toString()
+: QString();
+	if (sort == "nocase")
+		qSort(refsStrings.begin(), refsStrings.end(),
+		  caseInsensitiveLessThan /*defined above*/);
+	else if (sort == "case")
+		qSort(refsStrings.begin(), refsStrings.end());
 
 	if (groupCB->isChecked()) {
 		QList refsCats;
@@ -459,6 +483,10 @@ void GuiRef::redoRefs()
 	// Re-activate the emission of signals by these widgets.
 	

Re: Candidates for stable

2016-10-21 Thread Jürgen Spitzmüller
Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
> * Citation dialog redesign:
> http://www.lyx.org/trac/changeset/824e24ca/lyxgit
> http://www.lyx.org/trac/changeset/5225418d/lyxgit
> http://www.lyx.org/trac/changeset/0c1a023c/lyxgit
> 
> * Keep citation style settings both within and between sessions
> (#10256): 
> http://www.lyx.org/trac/changeset/3294b16b/lyxgit

Combined patch for these fixes attached.

Jürgendiff --git a/src/frontends/qt4/GuiCitation.cpp b/src/frontends/qt4/GuiCitation.cpp
index 44118c7..872d304 100644
--- a/src/frontends/qt4/GuiCitation.cpp
+++ b/src/frontends/qt4/GuiCitation.cpp
@@ -16,6 +16,7 @@
 
 #include "GuiCitation.h"
 
+#include "GuiApplication.h"
 #include "GuiSelectionManager.h"
 #include "LyXToolBox.h"
 #include "qt_helpers.h"
@@ -34,6 +35,7 @@
 #include "support/lstrings.h"
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -93,6 +95,36 @@ GuiCitation::GuiCitation(GuiView & lv)
 {
 	setupUi(this);
 
+	// The filter bar
+	filter_ = new FancyLineEdit(this);
+#if QT_VERSION >= 0x040600
+	filter_->setButtonPixmap(FancyLineEdit::Right, getPixmap("images/", "editclear", "svgz,png"));
+	filter_->setButtonVisible(FancyLineEdit::Right, true);
+	filter_->setButtonToolTip(FancyLineEdit::Right, qt_("Clear text"));
+	filter_->setAutoHideButton(FancyLineEdit::Right, true);
+#endif
+#if QT_VERSION >= 0x040700
+	filter_->setPlaceholderText(qt_("All avail. citations"));
+#endif
+
+	filterBarL->addWidget(filter_, 0);
+	findKeysLA->setBuddy(filter_);
+
+	// Add search options as button menu
+	regexp_ = new QAction(qt_("Regular e"), this);
+	regexp_->setCheckable(true);
+	casesense_ = new QAction(qt_("Case se"), this);
+	casesense_->setCheckable(true);
+	instant_ = new QAction(qt_("Search as you "), this);
+	instant_->setCheckable(true);
+	instant_->setChecked(true);
+
+	QMenu * searchOpts = new QMenu(this);
+	searchOpts->addAction(regexp_);
+	searchOpts->addAction(casesense_);
+	searchOpts->addAction(instant_);
+	searchOptionsPB->setMenu(searchOpts);
+
 	connect(citationStyleCO, SIGNAL(activated(int)),
 		this, SLOT(on_citationStyleCO_currentIndexChanged(int)));
 	connect(fulllistCB, SIGNAL(clicked()),
@@ -103,8 +135,6 @@ GuiCitation::GuiCitation(GuiView & lv)
 		this, SLOT(updateStyles()));
 	connect(textAfterED, SIGNAL(textChanged(QString)),
 		this, SLOT(updateStyles()));
-	connect(findLE, SIGNAL(returnPressed()),
-		this, SLOT(on_searchPB_clicked()));
 	connect(textBeforeED, SIGNAL(returnPressed()),
 		this, SLOT(on_okPB_clicked()));
 	connect(textAfterED, SIGNAL(returnPressed()),
@@ -119,7 +149,20 @@ GuiCitation::GuiCitation(GuiView & lv)
 	connect(selectionManager, SIGNAL(okHook()),
 		this, SLOT(on_okPB_clicked()));
 
-	setFocusProxy(availableLV);
+	connect(filter_, SIGNAL(rightButtonClicked()),
+		this, SLOT(resetFilter()));
+	connect(filter_, SIGNAL(textEdited(QString)),
+		this, SLOT(filterChanged(QString)));
+	connect(filter_, SIGNAL(returnPressed()),
+		this, SLOT(filterPressed()));
+	connect(regexp_, SIGNAL(triggered()),
+		this, SLOT(regexChanged()));
+	connect(casesense_, SIGNAL(triggered()),
+		this, SLOT(caseChanged()));
+	connect(instant_, SIGNAL(triggered(bool)),
+		this, SLOT(instantChanged(bool)));
+
+	setFocusProxy(filter_);
 }
 
 
@@ -152,42 +195,12 @@ void GuiCitation::applyView()
 
 void GuiCitation::showEvent(QShowEvent * e)
 {
-	findLE->clear();
+	filter_->clear();
 	availableLV->setFocus();
-
-	// Set the minimal size of the QToolbox. Without this, the size of the
-	// QToolbox is only determined by values in the ui file (e.g. computed by
-	// qtcreator) and therefore causes portability and localisation issues. Note
-	// that the page widgets must have a layout with layoutSizeContraint =
-	// SetMinimumSize or similar.  KNOWN ISSUE: the calculations are incorrect
-	// the first time the dialog is shown. This problem is mitigated by the fact
-	// that LyX remembers the dialog sizes between sessions.
-	QSize minimum_size = QSize(0,0);
-	// Compute the max of the minimal sizes of the pages
-	QWidget * page;
-	for (int i = 0; (page = citationTB->widget(i)); ++i)
-		minimum_size = minimum_size.expandedTo(page->minimumSizeHint());
-	// Add the height of the tabs
-	if (citationTB->currentWidget())
-		minimum_size.rheight() += citationTB->height() -
-			citationTB->currentWidget()->height();
-	citationTB->setMinimumSize(minimum_size);
-
 	DialogView::showEvent(e);
 }
 
 
-void GuiCitation::on_citationTB_currentChanged(int i)
-{
-	if (i == 0)
-		findLE->setFocus();
-	else if (citationStyleCO->isEnabled())
-		citationStyleCO->setFocus();
-	else
-		textAfterED->setFocus();
-}
-
-
 void GuiCitation::on_okPB_clicked()
 {
 	applyView();
@@ -212,6 +225,7 @@ void GuiCitation::on_applyPB_clicked()
 void GuiCitation::on_restorePB_clicked()
 {
 	init();
+	updateFilterHint();
 }
 
 
@@ -355,9 +369,11 @@ void GuiCitation::updateInfo(BiblioInfo const & bi, QModelIndex const & idx)
 {
 	if (!idx.isValid() || bi.empty()) {
 		infoML->document()->clear();
+		

Re: Candidates for stable

2016-10-21 Thread Richard Heck
On 10/21/2016 12:47 PM, Jürgen Spitzmüller wrote:
> Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
>> * Fix label display in linguistic examples: 
>> http://www.lyx.org/trac/changeset/91f5d909/lyxgit
> Attached a patch for this one.

OK.

rh




Re: Candidates for stable

2016-10-21 Thread Jürgen Spitzmüller
Am Samstag, den 15.10.2016, 11:11 +0200 schrieb Jürgen Spitzmüller:
> * Fix label display in linguistic examples: 
> http://www.lyx.org/trac/changeset/91f5d909/lyxgit

Attached a patch for this one.

Jürgendiff --git a/lib/layouts/linguistics.module b/lib/layouts/linguistics.module
index c2f3df1..5c72882 100644
--- a/lib/layouts/linguistics.module
+++ b/lib/layouts/linguistics.module
@@ -9,6 +9,29 @@
 
 Format 60
 
+# These are no real counters, but they are needed
+# to get proper labels for the enumerate-like
+# example styles.
+Counter example
+	Within   chapter
+	LabelString  "Examples:"
+End
+
+Counter examplei
+	Within   chapter
+	LabelString  "Examples:"
+End
+
+Counter subexample
+	Within   examplei
+	LabelString  "Subexample:"
+End
+
+Counter subexamplei
+	Within   examplei
+	LabelString  "Subexample:"
+End
+
 # single numbered example with covington.sty
 Style Numbered_Example_(multiline)
 	LatexType Environment
@@ -46,7 +69,8 @@ Style Numbered_Examples_(consecutive)
 	CopyStyle	  Numbered_Example_(multiline)
 	LatexType Item_Environment
 	LatexName covexamples
-	LabelString   "Examples:"
+	LabelType Enumerate
+	LabelCounter  "example"
 	Argument item:1
 		LabelString   "Custom Numbering|s"
 		Tooltip   "Customize the numeration"
@@ -65,7 +89,7 @@ End
 Style Subexample
 	CopyStyle	  Numbered_Examples_(consecutive)
 	LatexName subexample
-	LabelString   "Subexample:"
+	LabelCounter  "subexample"
 	Requires	  covington,enumitem
 	Preamble
 		\newenvironment{subexample}{%


signature.asc
Description: This is a digitally signed message part


Re: Candidates for stable

2016-10-15 Thread Richard Heck
On 10/15/2016 05:11 AM, Jürgen Spitzmüller wrote:
> Richard,
>
> these are the accumulated fixes I did in master that are candidates for
> stable when the door towards 2.2.3 is open:
>
> * Citation dialog redesign:
> http://www.lyx.org/trac/changeset/824e24ca/lyxgit
> http://www.lyx.org/trac/changeset/5225418d/lyxgit
> http://www.lyx.org/trac/changeset/0c1a023c/lyxgit
>
> * Keep citation style settings both within and between sessions
> (#10256): 
> http://www.lyx.org/trac/changeset/3294b16b/lyxgit
>
> * Refs dialog redesign:
> http://www.lyx.org/trac/changeset/774becf6/lyxgit
> http://www.lyx.org/trac/changeset/47ea77a8/lyxgit
>
> * Fix label display in linguistic examples: 
> http://www.lyx.org/trac/changeset/91f5d909/lyxgit
>
> * Improve bibliography info display:
> http://www.lyx.org/trac/changeset/ba171930/lyxgit
> http://www.lyx.org/trac/changeset/2c4673af/lyxgit
> http://www.lyx.org/trac/changeset/1c725c91/lyxgit
> http://www.lyx.org/trac/changeset/67da1431/lyxgit
> http://www.lyx.org/trac/changeset/b941d939/lyxgit
> http://www.lyx.org/trac/changeset/2267f4ae/lyxgit
> http://www.lyx.org/trac/changeset/85f1259b/lyxgit
> http://www.lyx.org/trac/changeset/b8486ba6/lyxgit
>
> * Move/fix wrap check for simple search/replace to lyxfind (#10378):
> http://www.lyx.org/trac/changeset/c0a425a3/lyxgit
>
> Do you want me to post individual patches for each of the proposed fix?

I'll look at these shortly. But no, you don't need to post patches.

Richard