commit 5db9e91f16eed97bd28d5c69cbe6620fe44b35a2
Author: Richard Kimberly Heck <[email protected]>
Date: Sun Nov 27 13:16:00 2022 -0500
Fix bug #11781. Patch from Daniel.
---
src/BufferParams.cpp | 3 +
src/Changes.cpp | 35 ++++---
src/Color.cpp | 1 +
src/ColorCode.h | 2 +
src/Compare.cpp | 2 +-
src/Compare.h | 4 +-
src/frontends/qt/GuiCompare.cpp | 17 +++
src/frontends/qt/ui/CompareUi.ui | 213 +++++++++++++++++++++-----------------
8 files changed, 163 insertions(+), 114 deletions(-)
diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp
index 6bb90d0..f1425b8 100644
--- a/src/BufferParams.cpp
+++ b/src/BufferParams.cpp
@@ -370,6 +370,9 @@ BufferParams::Impl::Impl()
authorlist.record(Author(from_utf8(lyxrc.user_name),
from_utf8(lyxrc.user_email),
from_utf8(lyxrc.user_initials)));
+ // set comparison author
+ authorlist.record(Author(from_utf8("Document Comparison"),
+ docstring(), docstring()));
}
diff --git a/src/Changes.cpp b/src/Changes.cpp
index 1bdbbf3..16bbb2f 100644
--- a/src/Changes.cpp
+++ b/src/Changes.cpp
@@ -71,22 +71,25 @@ bool Change::isSimilarTo(Change const & change) const
Color Change::color() const
{
Color color = Color_none;
- switch (author % 5) {
- case 0:
- color = Color_changedtext_workarea_author1;
- break;
- case 1:
- color = Color_changedtext_workarea_author2;
- break;
- case 2:
- color = Color_changedtext_workarea_author3;
- break;
- case 3:
- color = Color_changedtext_workarea_author4;
- break;
- case 4:
- color = Color_changedtext_workarea_author5;
- break;
+ if (author == 0)
+ color = Color_changedtext_workarea_author1;
+ else if (author == 1)
+ color = Color_changedtext_workarea_comparison;
+ else {
+ switch ((author - 2) % 4) {
+ case 0:
+ color = Color_changedtext_workarea_author2;
+ break;
+ case 1:
+ color = Color_changedtext_workarea_author3;
+ break;
+ case 2:
+ color = Color_changedtext_workarea_author4;
+ break;
+ case 3:
+ color = Color_changedtext_workarea_author5;
+ break;
+ }
}
if (deleted())
diff --git a/src/Color.cpp b/src/Color.cpp
index 7cb520d..aaa7d02 100644
--- a/src/Color.cpp
+++ b/src/Color.cpp
@@ -329,6 +329,7 @@ ColorSet::ColorSet()
{ Color_changedtext_workarea_author3, N_("changed text (workarea, 3rd
author)"), "changedtextauthor3", "#ff0000", "#ea8989", "changedtextauthor3" },
{ Color_changedtext_workarea_author4, N_("changed text (workarea, 4th
author)"), "changedtextauthor4", "#aa00ff", "#c371ec", "changedtextauthor4" },
{ Color_changedtext_workarea_author5, N_("changed text (workarea, 5th
author)"), "changedtextauthor5", "#55aa00", "#acd780", "changedtextauthor5" },
+ { Color_changedtext_workarea_comparison, N_("changed text (workarea,
document comparison)"), "changedtextcomparison", "#008080", "#719FB0",
"changedtextcomparison" },
{ Color_deletedtext_workarea_modifier, N_("deleted text modifier
(workarea)"), "deletedtextmodifier", white, white, "deletedtextmodifier" },
{ Color_added_space, N_("added space markers"), "added_space", Brown,
Brown, "added_space" },
{ Color_tabularline, N_("table line"), "tabularline", black, Linen,
"tabularline" },
diff --git a/src/ColorCode.h b/src/ColorCode.h
index e1a6b0a..f2d0f68 100644
--- a/src/ColorCode.h
+++ b/src/ColorCode.h
@@ -196,6 +196,8 @@ enum ColorCode {
Color_changedtext_workarea_author4,
/// Changed text color author 5 (workarea)
Color_changedtext_workarea_author5,
+ /// Changed text color document comparison (workarea)
+ Color_changedtext_workarea_comparison,
/// Deleted text modifying color (workarea)
Color_deletedtext_workarea_modifier,
/// Table line color
diff --git a/src/Compare.cpp b/src/Compare.cpp
index 17bd012..82236aa 100644
--- a/src/Compare.cpp
+++ b/src/Compare.cpp
@@ -866,7 +866,7 @@ void Compare::Impl::writeToDestBuffer(DocRange const &
range,
// Set the change
ParagraphList::iterator it = pars.begin();
for (; it != pars.end(); ++it) {
- it->setChange(Change(type));
+ it->setChange(Change(type, compare_.options_.author));
size += it->size();
}
diff --git a/src/Compare.h b/src/Compare.h
index 1c93fb5..df2c7fa 100644
--- a/src/Compare.h
+++ b/src/Compare.h
@@ -30,11 +30,13 @@ class CompareOptions {
public:
///
CompareOptions()
- : settings_from_new(0)
+ : settings_from_new(0), author(0)
{}
/// Copy the settings from the new or old document
bool settings_from_new;
+ /// Author id for change tracking
+ bool author;
};
/**
diff --git a/src/frontends/qt/GuiCompare.cpp b/src/frontends/qt/GuiCompare.cpp
index 7f6b00f..e485ec0 100644
--- a/src/frontends/qt/GuiCompare.cpp
+++ b/src/frontends/qt/GuiCompare.cpp
@@ -12,10 +12,13 @@
#include "GuiCompare.h"
+#include "GuiApplication.h"
+
#include "Buffer.h"
#include "BufferView.h"
#include "BufferList.h"
#include "buffer_funcs.h"
+#include "ColorCache.h"
#include "Compare.h"
#include "FuncRequest.h"
#include "GuiView.h"
@@ -329,6 +332,7 @@ int GuiCompare::run(bool blocking_mode)
// get the options from the dialog
CompareOptions options;
options.settings_from_new = newSettingsRB->isChecked();
+ options.author = authorCO->currentIndex();
// init the compare object and start it
@@ -385,6 +389,19 @@ bool GuiCompare::initialiseParams(std::string const &par)
progressBar->setEnabled(false);
progressBar->setMaximum(1);
+ // If empty fill the author combobox with the current and the comparison
+ // author and their respective colors
+ if (authorCO->count() == 0) {
+ authorCO->clear();
+ QPixmap colorIcon(32, 32);
+ colorIcon.fill(guiApp->colorCache().get(
+ Color(Color_changedtext_workarea_author1)));
+ authorCO->addItem(colorIcon, qt_("Current Author"));
+ colorIcon.fill(guiApp->colorCache().get(
+ Color(Color_changedtext_workarea_comparison)));
+ authorCO->addItem(colorIcon, qt_("Document Comparison"));
+ }
+
return true;
}
diff --git a/src/frontends/qt/ui/CompareUi.ui b/src/frontends/qt/ui/CompareUi.ui
index 3151932..d8da529 100644
--- a/src/frontends/qt/ui/CompareUi.ui
+++ b/src/frontends/qt/ui/CompareUi.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>622</width>
- <height>288</height>
+ <height>299</height>
</rect>
</property>
<property name="windowTitle">
@@ -17,7 +17,7 @@
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_2">
- <item row="5" column="0">
+ <item row="10" column="0">
<widget class="QProgressBar" name="progressBar">
<property name="value">
<number>24</number>
@@ -27,6 +27,100 @@
</property>
</widget>
</item>
+ <item row="1" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>4</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Select the document from which the settings should be
taken</string>
+ </property>
+ <property name="title">
+ <string>Document Settings</string>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QRadioButton" name="oldSettingsRB">
+ <property name="text">
+ <string>O&ld Document</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="newSettingsRB">
+ <property name="text">
+ <string>New Docu&ment</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="7" column="0" colspan="2">
+ <widget class="QCheckBox" name="trackingCB">
+ <property name="toolTip">
+ <string>Turns on the change tracking and showing changes in LaTeX output
for the resulting document</string>
+ </property>
+ <property name="text">
+ <string>&Enable change tracking features in the output</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="8" column="0">
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>4</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
<item row="0" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
@@ -103,59 +197,7 @@
</item>
</layout>
</item>
- <item row="2" column="0" colspan="2">
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="toolTip">
- <string>Select the document from which the settings should be
taken</string>
- </property>
- <property name="title">
- <string>Document Settings</string>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QRadioButton" name="oldSettingsRB">
- <property name="text">
- <string>O&ld Document</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="newSettingsRB">
- <property name="text">
- <string>New Docu&ment</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item row="6" column="0" colspan="2">
+ <item row="11" column="0" colspan="2">
<layout class="QHBoxLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4" stretch="1,0">
@@ -177,47 +219,26 @@
</item>
</layout>
</item>
- <item row="3" column="0" colspan="2">
- <widget class="QCheckBox" name="trackingCB">
- <property name="toolTip">
- <string>Turns on the change tracking and showing changes in LaTeX output
for the resulting document</string>
- </property>
- <property name="text">
- <string>&Enable change tracking features in the output</string>
- </property>
- <property name="checked">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="4" column="0">
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>4</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="0">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Fixed</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>4</height>
- </size>
- </property>
- </spacer>
+ <item row="3" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Mark changes in the workarea as </string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="authorCO"/>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </spacer>
+ </item>
+ </layout>
</item>
</layout>
</widget>
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs