mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Added settings to remember list view column sizes (check "ListViewColumsRememberSize" in Settings.xml). It's disabled by default. Thx vmb :)
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@1060 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
7c5545d939
commit
8f953c029a
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
using Nikse.SubtitleEdit.Logic;
|
||||
|
||||
@ -24,7 +25,8 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
public bool IsAlternateTextColumnVisible { get; private set; }
|
||||
public bool IsExtraColumnVisible { get; private set; }
|
||||
public bool DisplayExtraFromExtra { get; set; }
|
||||
Settings _settings = null;
|
||||
Settings _settings;
|
||||
private bool _saveColumnWidthChanges;
|
||||
|
||||
public int FirstVisibleIndex
|
||||
{
|
||||
@ -53,15 +55,28 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
}
|
||||
|
||||
public void InitializeTimeStampColumWidths(Form parentForm)
|
||||
{
|
||||
if (_settings != null && _settings.General.ListViewColumsRememberSize && _settings.General.ListViewNumberWidth > 1 &&
|
||||
_settings.General.ListViewStartWidth > 1 && _settings.General.ListViewEndWidth > 1 && _settings.General.ListViewDurationWidth > 1)
|
||||
{
|
||||
Columns[ColumnIndexNumber].Width = _settings.General.ListViewNumberWidth;
|
||||
Columns[ColumnIndexStart].Width = _settings.General.ListViewStartWidth;
|
||||
Columns[ColumnIndexEnd].Width = _settings.General.ListViewEndWidth;
|
||||
Columns[ColumnIndexDuration].Width = _settings.General.ListViewDurationWidth;
|
||||
Columns[ColumnIndexText].Width = _settings.General.ListViewTextWidth;
|
||||
_saveColumnWidthChanges = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Graphics graphics = parentForm.CreateGraphics();
|
||||
SizeF timestampSizeF = graphics.MeasureString("00:00:33,527", Font);
|
||||
int timeStampWidth = (int)(timestampSizeF.Width + 0.5) + 11;
|
||||
|
||||
Columns[ColumnIndexStart].Width = timeStampWidth;
|
||||
Columns[ColumnIndexEnd].Width = timeStampWidth;
|
||||
Columns[ColumnIndexDuration].Width = (int)(timeStampWidth * 0.8);
|
||||
SubtitleListView_Resize(this, null);
|
||||
}
|
||||
|
||||
SubtitleListViewResize(this, null);
|
||||
}
|
||||
|
||||
public SubtitleListView()
|
||||
@ -75,17 +90,47 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
new ColumnHeader { Width= 55 },
|
||||
new ColumnHeader { Width = -2 } // -2 = as rest of space (300)
|
||||
});
|
||||
SubtitleListView_Resize(this, null);
|
||||
SubtitleListViewResize(this, null);
|
||||
|
||||
FullRowSelect = true;
|
||||
View = View.Details;
|
||||
Resize += SubtitleListView_Resize;
|
||||
Resize += SubtitleListViewResize;
|
||||
GridLines = true;
|
||||
ColumnWidthChanged += SubtitleListViewColumnWidthChanged;
|
||||
}
|
||||
|
||||
void SubtitleListViewColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
|
||||
{
|
||||
if (_settings != null && _saveColumnWidthChanges)
|
||||
{
|
||||
switch (e.ColumnIndex)
|
||||
{
|
||||
case ColumnIndexNumber:
|
||||
Configuration.Settings.General.ListViewNumberWidth = Columns[ColumnIndexNumber].Width;
|
||||
break;
|
||||
case ColumnIndexStart:
|
||||
Configuration.Settings.General.ListViewStartWidth = Columns[ColumnIndexStart].Width;
|
||||
break;
|
||||
case ColumnIndexEnd:
|
||||
Configuration.Settings.General.ListViewEndWidth = Columns[ColumnIndexEnd].Width;
|
||||
break;
|
||||
case ColumnIndexDuration:
|
||||
Configuration.Settings.General.ListViewDurationWidth = Columns[ColumnIndexDuration].Width;
|
||||
break;
|
||||
case ColumnIndexText:
|
||||
Configuration.Settings.General.ListViewTextWidth = Columns[ColumnIndexText].Width;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void AutoSizeAllColumns(Form parentForm)
|
||||
{
|
||||
if (_settings != null && _settings.General.ListViewColumsRememberSize && _settings.General.ListViewNumberWidth > 1)
|
||||
Columns[ColumnIndexNumber].Width = _settings.General.ListViewNumberWidth;
|
||||
else
|
||||
Columns[ColumnIndexNumber].Width = 55;
|
||||
|
||||
InitializeTimeStampColumWidths(parentForm);
|
||||
|
||||
int length = Columns[ColumnIndexNumber].Width + Columns[ColumnIndexStart].Width + Columns[ColumnIndexEnd].Width + Columns[ColumnIndexDuration].Width;
|
||||
@ -98,11 +143,21 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
numberOfRestColumns++;
|
||||
|
||||
if (IsAlternateTextColumnVisible && !IsExtraColumnVisible)
|
||||
{
|
||||
if (_settings != null && _settings.General.ListViewColumsRememberSize && _settings.General.ListViewNumberWidth > 1 &&
|
||||
_settings.General.ListViewStartWidth > 1 && _settings.General.ListViewEndWidth > 1 && _settings.General.ListViewDurationWidth > 1)
|
||||
{
|
||||
int restWidth = lengthAvailable - 15 - Columns[ColumnIndexText].Width;
|
||||
if (restWidth > 0)
|
||||
Columns[ColumnIndexTextAlternate].Width = restWidth;
|
||||
}
|
||||
else
|
||||
{
|
||||
int restWidth = (lengthAvailable / 2) - 15;
|
||||
Columns[ColumnIndexText].Width = restWidth;
|
||||
Columns[ColumnIndexTextAlternate].Width = restWidth;
|
||||
}
|
||||
}
|
||||
else if (!IsAlternateTextColumnVisible && !IsExtraColumnVisible)
|
||||
{
|
||||
int restWidth = lengthAvailable - 23;
|
||||
@ -153,11 +208,11 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
IsAlternateTextColumnVisible = false;
|
||||
Columns.RemoveAt(ColumnIndexTextAlternate);
|
||||
ColumnIndexExtra = ColumnIndexTextAlternate;
|
||||
SubtitleListView_Resize(null, null);
|
||||
SubtitleListViewResize(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
void SubtitleListView_Resize(object sender, EventArgs e)
|
||||
void SubtitleListViewResize(object sender, EventArgs e)
|
||||
{
|
||||
int width = 0;
|
||||
for (int i = 0; i < Columns.Count - 1; i++)
|
||||
@ -220,7 +275,7 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
int i = 0;
|
||||
foreach (Paragraph paragraph in paragraphs)
|
||||
{
|
||||
Add(paragraph, i.ToString());
|
||||
Add(paragraph, i.ToString(CultureInfo.InvariantCulture));
|
||||
if (DisplayExtraFromExtra && IsExtraColumnVisible)
|
||||
Items[i].SubItems[ColumnIndexExtra].Text = paragraph.Extra;
|
||||
SyntaxColorLine(paragraphs, i, paragraph);
|
||||
@ -244,7 +299,7 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
int i = 0;
|
||||
foreach (Paragraph paragraph in paragraphs)
|
||||
{
|
||||
Add(paragraph, i.ToString());
|
||||
Add(paragraph, i.ToString(CultureInfo.InvariantCulture));
|
||||
Paragraph alternate = Utilities.GetOriginalParagraph(i, paragraph, paragraphsAlternate);
|
||||
if (alternate != null)
|
||||
SetAlternateText(i, alternate.Text);
|
||||
@ -413,7 +468,7 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
|
||||
foreach (ListViewItem item in Items)
|
||||
{
|
||||
if (item.Text == p.Number.ToString() &&
|
||||
if (item.Text == p.Number.ToString(CultureInfo.InvariantCulture) &&
|
||||
item.SubItems[ColumnIndexStart].Text == p.StartTime.ToString() &&
|
||||
item.SubItems[ColumnIndexEnd].Text == p.EndTime.ToString() &&
|
||||
item.SubItems[ColumnIndexText].Text == p.Text)
|
||||
@ -519,12 +574,12 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
if (Items[i].SubItems.Count == ColumnIndexExtra + 1)
|
||||
{
|
||||
Items[i].SubItems[ColumnIndexExtra].Text = string.Empty;
|
||||
Items[i].SubItems[ColumnIndexExtra].BackColor = this.BackColor;
|
||||
Items[i].SubItems[ColumnIndexExtra].ForeColor = this.ForeColor;
|
||||
Items[i].SubItems[ColumnIndexExtra].BackColor = BackColor;
|
||||
Items[i].SubItems[ColumnIndexExtra].ForeColor = ForeColor;
|
||||
}
|
||||
}
|
||||
Columns.RemoveAt(ColumnIndexExtra);
|
||||
SubtitleListView_Resize(null, null);
|
||||
SubtitleListViewResize(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -664,6 +719,26 @@ namespace Nikse.SubtitleEdit.Controls
|
||||
|
||||
public void ShowAllColumns()
|
||||
{
|
||||
if (_settings != null && _settings.General.ListViewColumsRememberSize && _settings.General.ListViewNumberWidth > 1 &&
|
||||
_settings.General.ListViewStartWidth > 1 && _settings.General.ListViewEndWidth > 1 && _settings.General.ListViewDurationWidth > 1)
|
||||
{
|
||||
Columns[ColumnIndexNumber].Width = _settings.General.ListViewNumberWidth;
|
||||
Columns[ColumnIndexStart].Width = _settings.General.ListViewStartWidth;
|
||||
Columns[ColumnIndexEnd].Width = _settings.General.ListViewEndWidth;
|
||||
Columns[ColumnIndexDuration].Width = _settings.General.ListViewDurationWidth;
|
||||
Columns[ColumnIndexText].Width = _settings.General.ListViewTextWidth;
|
||||
|
||||
if (IsAlternateTextColumnVisible)
|
||||
{
|
||||
Columns[ColumnIndexTextAlternate].Width = -2;
|
||||
}
|
||||
else
|
||||
{
|
||||
Columns[ColumnIndexText].Width = -2;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Columns[ColumnIndexNumber].Width = 45;
|
||||
Columns[ColumnIndexEnd].Width = 80;
|
||||
Columns[ColumnIndexDuration].Width = 55;
|
||||
|
@ -261,7 +261,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
Utilities.InitializeSubtitleFont(textBoxListViewText);
|
||||
Utilities.InitializeSubtitleFont(textBoxListViewTextAlternate);
|
||||
Utilities.InitializeSubtitleFont(SubtitleListview1);
|
||||
SubtitleListview1.AutoSizeAllColumns(this);
|
||||
//SubtitleListview1.AutoSizeAllColumns(this);
|
||||
|
||||
tabControlSubtitle.SelectTab(TabControlSourceView); // AC
|
||||
ShowSourceLineNumber(); // AC
|
||||
@ -5803,6 +5803,8 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
|
||||
SaveUndockedPositions();
|
||||
|
||||
SaveListViewWidths();
|
||||
|
||||
Configuration.Settings.Save();
|
||||
|
||||
if (mediaPlayer.VideoPlayer != null)
|
||||
@ -5813,6 +5815,18 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveListViewWidths()
|
||||
{
|
||||
if (Configuration.Settings.General.ListViewColumsRememberSize)
|
||||
{
|
||||
Configuration.Settings.General.ListViewNumberWidth = SubtitleListview1.Columns[0].Width;
|
||||
Configuration.Settings.General.ListViewStartWidth = SubtitleListview1.Columns[1].Width;
|
||||
Configuration.Settings.General.ListViewEndWidth = SubtitleListview1.Columns[2].Width;
|
||||
Configuration.Settings.General.ListViewDurationWidth = SubtitleListview1.Columns[3].Width;
|
||||
Configuration.Settings.General.ListViewTextWidth = SubtitleListview1.Columns[4].Width;
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveUndockedPositions()
|
||||
{
|
||||
if (_videoPlayerUnDocked != null && !_videoPlayerUnDocked.IsDisposed)
|
||||
|
@ -681,7 +681,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD0
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAYgBEAGIAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAZABEAGQAhABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
|
||||
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
|
||||
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
|
||||
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
@ -294,6 +295,12 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
public bool ShowOriginalAsPreviewIfAvailable { get; set; }
|
||||
public int LastPacCodePage { get; set; }
|
||||
public string OpenSubtitleExtraExtensions { get; set; }
|
||||
public bool ListViewColumsRememberSize { get; set; }
|
||||
public int ListViewNumberWidth { get; set; }
|
||||
public int ListViewStartWidth { get; set; }
|
||||
public int ListViewEndWidth { get; set; }
|
||||
public int ListViewDurationWidth { get; set; }
|
||||
public int ListViewTextWidth { get; set; }
|
||||
|
||||
public GeneralSettings()
|
||||
{
|
||||
@ -752,7 +759,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
settings.RecentFiles.Files.Add(new RecentFileEntry() { FileName = listNode.InnerText, FirstVisibleIndex = int.Parse(firstVisibleIndex), FirstSelectedIndex = int.Parse(firstSelectedIndex), VideoFileName = videoFileName, OriginalFileName = originalFileName });
|
||||
}
|
||||
|
||||
settings.General = new Nikse.SubtitleEdit.Logic.GeneralSettings();
|
||||
settings.General = new GeneralSettings();
|
||||
node = doc.DocumentElement.SelectSingleNode("General");
|
||||
XmlNode subNode = node.SelectSingleNode("ShowToolbarNew");
|
||||
if (subNode != null)
|
||||
@ -957,8 +964,26 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
subNode = node.SelectSingleNode("OpenSubtitleExtraExtensions");
|
||||
if (subNode != null)
|
||||
settings.General.OpenSubtitleExtraExtensions = subNode.InnerText.Trim();
|
||||
subNode = node.SelectSingleNode("ListViewColumsRememberSize");
|
||||
if (subNode != null)
|
||||
settings.General.ListViewColumsRememberSize = Convert.ToBoolean(subNode.InnerText.Trim());
|
||||
subNode = node.SelectSingleNode("ListViewNumberWidth");
|
||||
if (subNode != null)
|
||||
settings.General.ListViewNumberWidth = Convert.ToInt32(subNode.InnerText.Trim());
|
||||
subNode = node.SelectSingleNode("ListViewStartWidth");
|
||||
if (subNode != null)
|
||||
settings.General.ListViewStartWidth = Convert.ToInt32(subNode.InnerText.Trim());
|
||||
subNode = node.SelectSingleNode("ListViewEndWidth");
|
||||
if (subNode != null)
|
||||
settings.General.ListViewEndWidth = Convert.ToInt32(subNode.InnerText.Trim());
|
||||
subNode = node.SelectSingleNode("ListViewDurationWidth");
|
||||
if (subNode != null)
|
||||
settings.General.ListViewDurationWidth = Convert.ToInt32(subNode.InnerText.Trim());
|
||||
subNode = node.SelectSingleNode("ListViewTextWidth");
|
||||
if (subNode != null)
|
||||
settings.General.ListViewTextWidth = Convert.ToInt32(subNode.InnerText.Trim());
|
||||
|
||||
settings.Tools = new Nikse.SubtitleEdit.Logic.ToolsSettings();
|
||||
settings.Tools = new ToolsSettings();
|
||||
node = doc.DocumentElement.SelectSingleNode("Tools");
|
||||
subNode = node.SelectSingleNode("StartSceneIndex");
|
||||
if (subNode != null)
|
||||
@ -1604,6 +1629,14 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
textWriter.WriteElementString("ShowOriginalAsPreviewIfAvailable", settings.General.ShowOriginalAsPreviewIfAvailable.ToString());
|
||||
textWriter.WriteElementString("LastPacCodePage", settings.General.LastPacCodePage.ToString());
|
||||
textWriter.WriteElementString("OpenSubtitleExtraExtensions", settings.General.OpenSubtitleExtraExtensions);
|
||||
textWriter.WriteElementString("ListViewColumsRememberSize", settings.General.ListViewColumsRememberSize.ToString(CultureInfo.InvariantCulture));
|
||||
textWriter.WriteElementString("ListViewNumberWidth", settings.General.ListViewNumberWidth.ToString(CultureInfo.InvariantCulture));
|
||||
textWriter.WriteElementString("ListViewStartWidth", settings.General.ListViewStartWidth.ToString(CultureInfo.InvariantCulture));
|
||||
textWriter.WriteElementString("ListViewEndWidth", settings.General.ListViewEndWidth.ToString(CultureInfo.InvariantCulture));
|
||||
textWriter.WriteElementString("ListViewDurationWidth", settings.General.ListViewDurationWidth.ToString(CultureInfo.InvariantCulture));
|
||||
textWriter.WriteElementString("ListViewTextWidth", settings.General.ListViewTextWidth.ToString(CultureInfo.InvariantCulture));
|
||||
|
||||
|
||||
textWriter.WriteEndElement();
|
||||
|
||||
textWriter.WriteStartElement("Tools", "");
|
||||
|
Loading…
Reference in New Issue
Block a user