[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[texworks] 40/73: Imported Upstream version 0.5~svn1035



This is an automated email from the git hooks/post-receive script.

preining pushed a commit to branch master
in repository texworks.

commit 67455a3ee97c8690f3410905b76ba3ee888a0498
Author: Atsuhito KOHDA <kohda@debian.org>
Date:   Mon Feb 25 15:40:07 2013 +0900

    Imported Upstream version 0.5~svn1035
---
 src/CompletingEdit.cpp |  30 ++++++++++--
 src/DefaultPrefs.h     |  46 +++++++++++++++++
 src/PrefsDialog.cpp    |  28 +++++++----
 src/PrefsDialog.h      |  13 -----
 src/PrefsDialog.ui     | 130 +++++++++++++++++++++++++++----------------------
 src/SvnRev.h           |   4 +-
 src/TWApp.cpp          |   3 +-
 src/TWScript.cpp       |   3 +-
 src/TeXDocument.cpp    |  16 ++++--
 9 files changed, 182 insertions(+), 91 deletions(-)

diff --git a/src/CompletingEdit.cpp b/src/CompletingEdit.cpp
index 8cfb016..9583c28 100644
--- a/src/CompletingEdit.cpp
+++ b/src/CompletingEdit.cpp
@@ -222,17 +222,41 @@ void CompletingEdit::mouseMoveEvent(QMouseEvent *e)
 					if (action != Qt::IgnoreAction) {
 						dropCursor.setPosition(droppedOffset);
 						dropCursor.setPosition(droppedOffset + droppedLength, QTextCursor::KeepAnchor);
-						if (action == Qt::MoveAction && (this == drag->target() || this->isAncestorOf(drag->target()))) {
-							if (droppedOffset >= sourceStart && droppedOffset <= sourceEnd) {
+						if (action == Qt::MoveAction) {
+							// If we successfully completed a "Move" action, we
+							// need to make sure that the source text is removed
+							// (inserting the text in the target has already
+							// been completed at this point)
+							bool insideWindow = (drag->target() && (this == drag->target() || this->isAncestorOf(drag->target())));
+							bool insideSelection = (insideWindow && droppedOffset >= sourceStart && droppedOffset <= sourceEnd);
+							if (insideSelection) {
+								// The text was dropped into the same window at
+								// an overlapping position.
+								// First, remove everything that is left from
+								// the source text *after* the inserted text
+								// (note that every position after droppedOffset
+								// needs to be translated by droppedLength)
 								source.setPosition(droppedOffset + droppedLength);
 								source.setPosition(sourceEnd + droppedLength, QTextCursor::KeepAnchor);
 								source.removeSelectedText();
+								// Second, remove everything that is left from
+								// the source text *before* the inserted text
 								source.setPosition(sourceStart);
 								source.setPosition(droppedOffset, QTextCursor::KeepAnchor);
 								source.removeSelectedText();
 							}
-							else
+							else {
+								// Otherwise, simply remove the source text
 								source.removeSelectedText();
+							}
+							
+							if (!insideWindow) {
+								// The selection was moved to a different window,
+								// so dropCursor has no sensible data here. Thus,
+								// we collapse the cursor to where the selection
+								// was before the move action.
+								dropCursor.setPosition(sourceStart);
+							}
 						}
 					}
 					textCursor().endEditBlock();
diff --git a/src/DefaultPrefs.h b/src/DefaultPrefs.h
new file mode 100644
index 0000000..5c198bf
--- /dev/null
+++ b/src/DefaultPrefs.h
@@ -0,0 +1,46 @@
+/*
+	This is part of TeXworks, an environment for working with TeX documents
+	Copyright (C) 2007-2013  Jonathan Kew, Stefan Löffler, Charlie Sharpsteen
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+	For links to further information, or to contact the authors,
+	see <http://www.tug.org/texworks/>.
+*/
+
+#ifndef DefaultPrefs_H
+#define DefaultPrefs_H
+
+const int kDefault_LaunchOption = 1;
+const int kDefault_ToolBarIcons = 2;
+const bool kDefault_ToolBarText = false;
+const int kDefault_Locale = 0;
+const bool kDefault_OpenPDFwithTeX = true;
+const int kDefault_SyntaxColoring = 0;
+const int kDefault_IndentMode = 0;
+const int kDefault_QuotesMode = 0;
+const int kDefault_SpellcheckLanguage = 0;
+const bool kDefault_LineNumbers = false;
+const bool kDefault_WrapLines = true;
+const int kDefault_TabWidth = 32;
+const int kDefault_HideConsole = 1;
+const bool kDefault_HighlightCurrentLine = true;
+const bool kDefault_AutocompleteEnabled = true;
+const bool kDefault_AllowScriptFileReading = false;
+const bool kDefault_AllowScriptFileWriting = false;
+const bool kDefault_EnableScriptingPlugins = false;
+const bool kDefault_AllowSystemCommands = false;
+const bool kDefault_ScriptDebugger = false;
+
+#endif // !defined(DefaultPrefs_H)
diff --git a/src/PrefsDialog.cpp b/src/PrefsDialog.cpp
index 3336cbf..fdf2923 100644
--- a/src/PrefsDialog.cpp
+++ b/src/PrefsDialog.cpp
@@ -20,6 +20,7 @@
 */
 
 #include "PrefsDialog.h"
+#include "DefaultPrefs.h"
 #include "TWApp.h"
 #include "PDFDocument.h"
 #include "TeXHighlighter.h"
@@ -291,6 +292,7 @@ void PrefsDialog::restoreDefaults()
 			showText->setChecked(kDefault_ToolBarText);
 			switch (kDefault_LaunchOption) {
 				case 1:
+				default:
 					blankDocument->setChecked(true);
 					break;
 				case 2:
@@ -300,8 +302,8 @@ void PrefsDialog::restoreDefaults()
 					openDialog->setChecked(true);
 					break;
 			}
-			blankDocument->setChecked(true);
-			localePopup->setCurrentIndex(0);
+			localePopup->setCurrentIndex(kDefault_Locale);
+			openPDFwithTeX->setChecked(kDefault_OpenPDFwithTeX);
 			break;
 
 		case 1:
@@ -312,10 +314,12 @@ void PrefsDialog::restoreDefaults()
 				fontSize->setValue(font.pointSize());
 			}
 			tabWidth->setValue(kDefault_TabWidth);
+			lineNumbers->setChecked(kDefault_LineNumbers);
 			wrapLines->setChecked(kDefault_WrapLines);
 			syntaxColoring->setCurrentIndex(kDefault_SyntaxColoring);
 			autoIndent->setCurrentIndex(kDefault_IndentMode);
 			smartQuotes->setCurrentIndex(kDefault_QuotesMode);
+			language->setCurrentIndex(kDefault_SpellcheckLanguage);
 			encoding->setCurrentIndex(encoding->findText("UTF-8"));
 			highlightCurrentLine->setChecked(kDefault_HighlightCurrentLine);
 			autocompleteEnabled->setChecked(kDefault_AutocompleteEnabled);
@@ -366,8 +370,11 @@ void PrefsDialog::restoreDefaults()
 
 		case 4:
 			// Scripts
-			allowSystemCommands->setChecked(false);
-			scriptDebugger->setChecked(false);
+			allowScriptFileReading->setChecked(kDefault_AllowScriptFileReading);
+			allowScriptFileWriting->setChecked(kDefault_AllowScriptFileWriting);
+			enableScriptingPlugins->setChecked(kDefault_EnableScriptingPlugins);
+			allowSystemCommands->setChecked(kDefault_AllowSystemCommands);
+			scriptDebugger->setChecked(kDefault_ScriptDebugger);
 			break;
 	}
 }
@@ -477,6 +484,7 @@ QDialog::DialogCode PrefsDialog::doPrefsDialog(QWidget *parent)
 			dlg.openDialog->setChecked(true);
 			break;
 	}
+	dlg.openPDFwithTeX->setChecked(settings.value("openPDFwithTeX", kDefault_OpenPDFwithTeX).toBool());
 	
 	QString oldLocale = settings.value("locale").toString();
 	// System and English are predefined at index 0 and 1 (see constants above)
@@ -578,14 +586,14 @@ QDialog::DialogCode PrefsDialog::doPrefsDialog(QWidget *parent)
 	dlg.autoHideOutput->setCurrentIndex(hideConsoleSetting.toInt());
 
 	// Scripts
-	dlg.allowScriptFileReading->setChecked(settings.value("allowScriptFileReading", false).toBool());
-	dlg.allowScriptFileWriting->setChecked(settings.value("allowScriptFileWriting", false).toBool());
-	dlg.allowSystemCommands->setChecked(settings.value("allowSystemCommands", false).toBool());
-	dlg.enableScriptingPlugins->setChecked(settings.value("enableScriptingPlugins", false).toBool());
+	dlg.allowScriptFileReading->setChecked(settings.value("allowScriptFileReading", kDefault_AllowScriptFileReading).toBool());
+	dlg.allowScriptFileWriting->setChecked(settings.value("allowScriptFileWriting", kDefault_AllowScriptFileWriting).toBool());
+	dlg.allowSystemCommands->setChecked(settings.value("allowSystemCommands", kDefault_AllowSystemCommands).toBool());
+	dlg.enableScriptingPlugins->setChecked(settings.value("enableScriptingPlugins", kDefault_EnableScriptingPlugins).toBool());
 	// there is always at least JSScriptInterface
 	if (TWApp::instance()->getScriptManager()->languages().size() <= 1)
 		dlg.enableScriptingPlugins->setEnabled(false);
-	dlg.scriptDebugger->setChecked(settings.value("scriptDebugger", false).toBool());
+	dlg.scriptDebugger->setChecked(settings.value("scriptDebugger", kDefault_ScriptDebugger).toBool());
 #if QT_VERSION < 0x040500
 	dlg.scriptDebugger->setEnabled(false);
 #endif
@@ -633,6 +641,8 @@ QDialog::DialogCode PrefsDialog::doPrefsDialog(QWidget *parent)
 			launchOption = 3;
 		settings.setValue("launchOption", launchOption);
 		
+		settings.setValue("openPDFwithTeX", dlg.openPDFwithTeX->isChecked());
+		
 		if (dlg.localePopup->currentIndex() != oldLocaleIndex) {
 			switch (dlg.localePopup->currentIndex()) {
 				case kSystemLocaleIndex: // system locale
diff --git a/src/PrefsDialog.h b/src/PrefsDialog.h
index 49bccc9..3aaba64 100644
--- a/src/PrefsDialog.h
+++ b/src/PrefsDialog.h
@@ -30,19 +30,6 @@
 #include "ui_PrefsDialog.h"
 #include "ui_ToolConfig.h"
 
-const int kDefault_LaunchOption = 1;
-const int kDefault_ToolBarIcons = 2;
-const bool kDefault_ToolBarText = false;
-const int kDefault_SyntaxColoring = 0;
-const int kDefault_IndentMode = -1;
-const int kDefault_QuotesMode = -1;
-const bool kDefault_LineNumbers = false;
-const bool kDefault_WrapLines = true;
-const int kDefault_TabWidth = 32;
-const int kDefault_HideConsole = 1;
-const bool kDefault_HighlightCurrentLine = true;
-const bool kDefault_AutocompleteEnabled = true;
-
 class QListWidgetItem;
 
 class PrefsDialog : public QDialog, private Ui::PrefsDialog
diff --git a/src/PrefsDialog.ui b/src/PrefsDialog.ui
index 8a332c5..ec6c542 100644
--- a/src/PrefsDialog.ui
+++ b/src/PrefsDialog.ui
@@ -30,54 +30,85 @@
      </property>
     </widget>
    </item>
-   <item row="1" column="0">
+   <item row="0" column="0">
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
-      <number>1</number>
+      <number>0</number>
      </property>
      <widget class="QWidget" name="tab_general">
       <attribute name="title">
        <string>General</string>
       </attribute>
       <layout class="QGridLayout">
-       <item row="0" column="0" rowspan="2">
-        <widget class="QGroupBox" name="groupBox">
+       <item row="1" column="0">
+        <widget class="QGroupBox" name="groupBox_11">
          <property name="title">
-          <string>Toolbar buttons</string>
+          <string>Interface</string>
          </property>
-         <layout class="QVBoxLayout">
-          <item>
-           <widget class="QRadioButton" name="smallIcons">
+         <layout class="QFormLayout" name="formLayout_2">
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_12">
             <property name="text">
-             <string>Small icons</string>
+             <string>Locale:</string>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QRadioButton" name="mediumIcons">
-            <property name="text">
-             <string>Medium icons</string>
+          <item row="0" column="1">
+           <widget class="QComboBox" name="localePopup">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
             </property>
-           </widget>
-          </item>
-          <item>
-           <widget class="QRadioButton" name="largeIcons">
-            <property name="text">
-             <string>Large icons</string>
+            <property name="maxVisibleItems">
+             <number>20</number>
             </property>
            </widget>
           </item>
-          <item>
-           <widget class="QCheckBox" name="showText">
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_13">
             <property name="text">
-             <string>Show text as well as icons</string>
+             <string>Toolbar buttons:</string>
             </property>
            </widget>
           </item>
+          <item row="1" column="1">
+           <layout class="QVBoxLayout" name="verticalLayout_3">
+            <item>
+             <widget class="QRadioButton" name="smallIcons">
+              <property name="text">
+               <string>Small icons</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QRadioButton" name="mediumIcons">
+              <property name="text">
+               <string>Medium icons</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QRadioButton" name="largeIcons">
+              <property name="text">
+               <string>Large icons</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QCheckBox" name="showText">
+              <property name="text">
+               <string>Show text as well as icons</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
          </layout>
         </widget>
        </item>
-       <item row="0" column="1" colspan="2">
+       <item row="2" column="0">
         <widget class="QGroupBox" name="groupBox_3">
          <property name="title">
           <string>When launched, show</string>
@@ -104,46 +135,29 @@
             </property>
            </widget>
           </item>
+          <item>
+           <widget class="QCheckBox" name="openPDFwithTeX">
+            <property name="text">
+             <string>Open corresponding PDF preview with TeX files</string>
+            </property>
+           </widget>
+          </item>
          </layout>
         </widget>
        </item>
-       <item row="1" column="2" rowspan="3">
-        <spacer>
+       <item row="1" column="1">
+        <spacer name="horizontalSpacer_9">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>111</width>
-           <height>311</height>
+           <width>0</width>
+           <height>0</height>
           </size>
          </property>
         </spacer>
        </item>
-       <item row="2" column="0" colspan="2">
-        <layout class="QHBoxLayout">
-         <item>
-          <widget class="QLabel" name="label_5">
-           <property name="text">
-            <string>Interface locale:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QComboBox" name="localePopup">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="maxVisibleItems">
-            <number>20</number>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
        <item row="3" column="0">
         <spacer>
          <property name="orientation">
@@ -151,8 +165,8 @@
          </property>
          <property name="sizeHint" stdset="0">
           <size>
-           <width>242</width>
-           <height>271</height>
+           <width>0</width>
+           <height>0</height>
           </size>
          </property>
         </spacer>
@@ -1035,6 +1049,8 @@
   </layout>
  </widget>
  <tabstops>
+  <tabstop>tabWidget</tabstop>
+  <tabstop>localePopup</tabstop>
   <tabstop>smallIcons</tabstop>
   <tabstop>mediumIcons</tabstop>
   <tabstop>largeIcons</tabstop>
@@ -1042,7 +1058,7 @@
   <tabstop>blankDocument</tabstop>
   <tabstop>templateDialog</tabstop>
   <tabstop>openDialog</tabstop>
-  <tabstop>localePopup</tabstop>
+  <tabstop>openPDFwithTeX</tabstop>
   <tabstop>editorFont</tabstop>
   <tabstop>fontSize</tabstop>
   <tabstop>tabWidth</tabstop>
@@ -1054,6 +1070,7 @@
   <tabstop>language</tabstop>
   <tabstop>encoding</tabstop>
   <tabstop>highlightCurrentLine</tabstop>
+  <tabstop>autocompleteEnabled</tabstop>
   <tabstop>actualSize</tabstop>
   <tabstop>fitWidth</tabstop>
   <tabstop>fitWindow</tabstop>
@@ -1077,13 +1094,12 @@
   <tabstop>toolRemove</tabstop>
   <tabstop>defaultTool</tabstop>
   <tabstop>autoHideOutput</tabstop>
-  <tabstop>buttonBox</tabstop>
-  <tabstop>tabWidget</tabstop>
   <tabstop>allowScriptFileReading</tabstop>
   <tabstop>allowScriptFileWriting</tabstop>
   <tabstop>allowSystemCommands</tabstop>
   <tabstop>enableScriptingPlugins</tabstop>
   <tabstop>scriptDebugger</tabstop>
+  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources>
   <include location="../res/resources.qrc"/>
diff --git a/src/SvnRev.h b/src/SvnRev.h
index 19b0fb2..8cbffe0 100644
--- a/src/SvnRev.h
+++ b/src/SvnRev.h
@@ -1,2 +1,2 @@
-#define SVN_REVISION 1031
-#define SVN_REVISION_STR "1031"
+#define SVN_REVISION 1035
+#define SVN_REVISION_STR "1035"
diff --git a/src/TWApp.cpp b/src/TWApp.cpp
index 14338d1..dbd3c8f 100644
--- a/src/TWApp.cpp
+++ b/src/TWApp.cpp
@@ -24,6 +24,7 @@
 #include "TeXDocument.h"
 #include "PDFDocument.h"
 #include "PrefsDialog.h"
+#include "DefaultPrefs.h"
 #include "TemplateDialog.h"
 #include "TWSystemCmd.h"
 
@@ -1278,7 +1279,7 @@ QMap<QString, QVariant> TWApp::openFileFromScript(const QString& fileName, QObje
 	// for absolute paths and full reading permissions, we don't have to care
 	// about peculiarities of the script; in that case, this even succeeds
 	// if no valid scriptApi is passed; otherwise, we need to investigate further
-	if (fi.isRelative() || !settings.value("allowScriptFileReading", false).toBool()) {
+	if (fi.isRelative() || !settings.value("allowScriptFileReading", kDefault_AllowScriptFileReading).toBool()) {
 		if (!scriptApi)
 			return retVal;
 		script = qobject_cast<TWScript*>(scriptApi->GetScript());
diff --git a/src/TWScript.cpp b/src/TWScript.cpp
index 1297a98..984ba6b 100644
--- a/src/TWScript.cpp
+++ b/src/TWScript.cpp
@@ -22,6 +22,7 @@
 #include "TWScript.h"
 #include "TWScriptAPI.h"
 #include "ConfigurableApp.h"
+#include "DefaultPrefs.h"
 
 #include <QTextStream>
 #include <QMetaObject>
@@ -458,7 +459,7 @@ bool TWScript::mayReadFile(const QString& filename, QObject * context) const
 	QVariant targetFile;
 	QDir targetDir;
 	
-	if (settings.value("allowScriptFileReading", false).toBool())
+	if (settings.value("allowScriptFileReading", kDefault_AllowScriptFileReading).toBool())
 		return true;
 	
 	// even if global reading is disallowed, some exceptions may apply
diff --git a/src/TeXDocument.cpp b/src/TeXDocument.cpp
index d1831df..77510b0 100644
--- a/src/TeXDocument.cpp
+++ b/src/TeXDocument.cpp
@@ -29,7 +29,7 @@
 #include "PDFDocument.h"
 #include "ConfirmDelete.h"
 #include "HardWrapDialog.h"
-#include "PrefsDialog.h"
+#include "DefaultPrefs.h"
 
 #include <QCloseEvent>
 #include <QFileDialog>
@@ -296,13 +296,13 @@ void TeXDocument::init()
 		++index;
 	}
 	// FIXME: This does not respect kDefault_SyntaxColoring defined in
-	// PrefsDialog.h. ATM, that is irrelevant because kDefault_SyntaxColoring = 0
+	// DefaultPrefs.h. ATM, that is irrelevant because kDefault_SyntaxColoring = 0
 	// corresponds to None (i.e., ""). In the future, this may change, though.
 	// However, it would require some additional logic here (e.g., handling the
 	// case that kDefault_SyntaxColoring points to an invalid index).
 	setSyntaxColoringMode(settings.value("syntaxColoring").toString());
 	
-	// kDefault_TabWidth is defined in PrefsDialog.h
+	// kDefault_TabWidth is defined in DefaultPrefs.h
 	textEdit->setTabStopWidth(settings.value("tabWidth", kDefault_TabWidth).toInt());
 	
 	// It is VITAL that this connection is queued! Calling showMessage directly
@@ -1092,14 +1092,20 @@ void TeXDocument::loadFile(const QString &fileName, bool asTemplate, bool inBack
 		lastModified = QDateTime();
 	}
 	else {
+		QSETTINGS_OBJECT(settings);
 		setCurrentFile(fileName);
-		if (!inBackground) {
+		if (!inBackground && settings.value("openPDFwithTeX", kDefault_OpenPDFwithTeX).toBool()) {
 			openPdfIfAvailable(false);
+			// Note: openPdfIfAvailable() enables/disables actionGo_to_Preview
+			// automatically.
+		}
+		else {
+			QString previewFileName;
+			actionGo_to_Preview->setEnabled(getPreviewFileName(previewFileName));
 		}
 		// set openDialogDir after openPdfIfAvailable as we want the .tex file's
 		// path to end up in that variable (which might be touched/changed when
 		// loading the pdf
-		QSETTINGS_OBJECT(settings);
 		QFileInfo info(fileName);
 		settings.setValue("openDialogDir", info.canonicalPath());
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-tex/texworks.git


Reply to: