Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1761d75

Browse files
committed
#105 Fixed TBL double key...
1 parentdb1a6d7 commit1761d75

File tree

2 files changed

+95
-110
lines changed

2 files changed

+95
-110
lines changed

‎Sources/WPFHexaEditor/Core/CharacterTable/TBLStream.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@ public void Load(string tblString)
176176
dte=newDte(info[0],"=",DteType.DualTitleEncoding);
177177
}
178178

179-
_dteList.Add(dte.Entry,dte);
180-
179+
if(!_dteList.ContainsKey(dte.Entry))//Fix issue #105
180+
_dteList.Add(dte.Entry,dte);
181181
}
182182
#endregion
183183

‎Sources/WPFHexaEditor/HexEditor.xaml.cs‎

Lines changed: 93 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -780,10 +780,10 @@ public ByteSizeType ByteSize
780780
ctrl.UpdateViewers(true);
781781
ctrl.UpdateHeader(true);
782782

783-
ctrl.TraverseHexBytes(hctrl=>
783+
ctrl.TraverseHexBytes(c=>
784784
{
785-
hctrl.UpdateDataVisualWidth();
786-
hctrl.UpdateTextRenderFromByte();
785+
c.UpdateDataVisualWidth();
786+
c.UpdateTextRenderFromByte();
787787
});
788788

789789
ctrl.UpdateByteModified();
@@ -807,10 +807,10 @@ public DataVisualType DataStringVisual
807807

808808
ctrl.UpdateHeader(true);
809809

810-
ctrl.TraverseHexBytes(hctrl=>
810+
ctrl.TraverseHexBytes(c=>
811811
{
812-
hctrl.UpdateDataVisualWidth();
813-
hctrl.UpdateTextRenderFromByte();
812+
c.UpdateDataVisualWidth();
813+
c.UpdateTextRenderFromByte();
814814
});
815815
}));
816816

@@ -1310,36 +1310,34 @@ public long SelectionStart
13101310

13111311
publicstaticreadonlyDependencyPropertySelectionStartProperty=
13121312
DependencyProperty.Register(nameof(SelectionStart),typeof(long),typeof(HexEditor),
1313-
newFrameworkPropertyMetadata(-1L,SelectionStart_ChangedCallBack,SelectionStart_CoerceValueCallBack));
1314-
1315-
privatestaticobjectSelectionStart_CoerceValueCallBack(DependencyObjectd,objectbaseValue)
1316-
{
1317-
if(dis notHexEditorctrl)return-1L;
1318-
if(!CheckIsOpen(ctrl._provider))return-1L;
1319-
if((long)baseValue<-1)return-1L;
1320-
1321-
returnbaseValue;
1322-
}
1323-
1324-
privatestaticvoidSelectionStart_ChangedCallBack(DependencyObjectd,DependencyPropertyChangedEventArgse)
1325-
{
1326-
if(dis notHexEditorctrl)return;
1327-
if(e.NewValue==e.OldValue)return;
1328-
if(!CheckIsOpen(ctrl._provider))return;
1313+
newFrameworkPropertyMetadata(-1L,
1314+
(DependencyObjectd,DependencyPropertyChangedEventArgse)=>
1315+
{
1316+
if(dis notHexEditorctrl)return;
1317+
if(e.NewValue==e.OldValue)return;
1318+
if(!CheckIsOpen(ctrl._provider))return;
1319+
1320+
ctrl.SelectionByte=ctrl._provider.GetByte(ctrl.SelectionStart).singleByte;
1321+
1322+
ctrl.UpdateSelection();
1323+
ctrl.UpdateSelectionLine();
1324+
ctrl.UpdateVisual();
1325+
ctrl.UpdateStatusBar(false);
1326+
ctrl.UpdateLinesInfo();
1327+
ctrl.UpdateHeader(true);
1328+
ctrl.SetScrollMarker(0,ScrollMarker.SelectionStart);
1329+
1330+
ctrl.SelectionStartChanged?.Invoke(ctrl,newEventArgs());
1331+
ctrl.SelectionLengthChanged?.Invoke(ctrl,newEventArgs());
1332+
},(DependencyObjectd,objectbaseValue)=>
1333+
{
1334+
if(dis notHexEditorctrl)return-1L;
1335+
if(!CheckIsOpen(ctrl._provider))return-1L;
1336+
if((long)baseValue<-1)return-1L;
13291337

1330-
ctrl.SelectionByte=ctrl._provider.GetByte(ctrl.SelectionStart).singleByte;
1338+
returnbaseValue;
1339+
}));
13311340

1332-
ctrl.UpdateSelection();
1333-
ctrl.UpdateSelectionLine();
1334-
ctrl.UpdateVisual();
1335-
ctrl.UpdateStatusBar(false);
1336-
ctrl.UpdateLinesInfo();
1337-
ctrl.UpdateHeader(true);
1338-
ctrl.SetScrollMarker(0,ScrollMarker.SelectionStart);
1339-
1340-
ctrl.SelectionStartChanged?.Invoke(ctrl,newEventArgs());
1341-
ctrl.SelectionLengthChanged?.Invoke(ctrl,newEventArgs());
1342-
}
13431341

13441342
/// <summary>
13451343
/// Set the end byte position of selection
@@ -1352,31 +1350,28 @@ public long SelectionStop
13521350

13531351
publicstaticreadonlyDependencyPropertySelectionStopProperty=
13541352
DependencyProperty.Register(nameof(SelectionStop),typeof(long),typeof(HexEditor),
1355-
newFrameworkPropertyMetadata(-1L,SelectionStop_ChangedCallBack,SelectionStop_CoerceValueCallBack));
1356-
1357-
privatestaticobjectSelectionStop_CoerceValueCallBack(DependencyObjectd,objectbaseValue)
1358-
{
1359-
if(dis notHexEditorctrl)returnbaseValue;
1360-
1361-
varvalue=(long)baseValue;
1353+
newFrameworkPropertyMetadata(-1L,
1354+
(DependencyObjectd,DependencyPropertyChangedEventArgse)=>
1355+
{
1356+
if(dis notHexEditorctrl||e.NewValue==e.OldValue)return;
13621357

1363-
if(value<-1||!CheckIsOpen(ctrl._provider))return-1L;
1358+
ctrl.UpdateSelection();
1359+
ctrl.UpdateSelectionLine();
13641360

1365-
returnvalue>=ctrl._provider.Length
1366-
?ctrl._provider.Length
1367-
:baseValue;
1368-
}
1361+
ctrl.SelectionStopChanged?.Invoke(ctrl,newEventArgs());
1362+
ctrl.SelectionLengthChanged?.Invoke(ctrl,newEventArgs());
1363+
},(DependencyObjectd,objectbaseValue)=>
1364+
{
1365+
if(dis notHexEditorctrl)returnbaseValue;
13691366

1370-
privatestaticvoidSelectionStop_ChangedCallBack(DependencyObjectd,DependencyPropertyChangedEventArgse)
1371-
{
1372-
if(dis notHexEditorctrl||e.NewValue==e.OldValue)return;
1367+
varvalue=(long)baseValue;
13731368

1374-
ctrl.UpdateSelection();
1375-
ctrl.UpdateSelectionLine();
1369+
if(value<-1||!CheckIsOpen(ctrl._provider))return-1L;
13761370

1377-
ctrl.SelectionStopChanged?.Invoke(ctrl,newEventArgs());
1378-
ctrl.SelectionLengthChanged?.Invoke(ctrl,newEventArgs());
1379-
}
1371+
returnvalue>=ctrl._provider.Length
1372+
?ctrl._provider.Length
1373+
:baseValue;
1374+
}));
13801375

13811376
/// <summary>
13821377
/// Fix the selection start and stop when needed
@@ -2551,34 +2546,29 @@ public int BytePerLine
25512546

25522547
publicstaticreadonlyDependencyPropertyBytePerLineProperty=
25532548
DependencyProperty.Register(nameof(BytePerLine),typeof(int),typeof(HexEditor),
2554-
newFrameworkPropertyMetadata(16,BytePerLine_PropertyChanged,BytePerLine_CoerceValue));
2555-
2556-
privatestaticobjectBytePerLine_CoerceValue(DependencyObjectd,objectbaseValue)=>
2557-
(int)baseValue<1?1:((int)baseValue>64?64:baseValue);
2558-
2559-
privatestaticvoidBytePerLine_PropertyChanged(DependencyObjectd,DependencyPropertyChangedEventArgse)
2560-
{
2561-
if(dis notHexEditorctrl||e.NewValue==e.OldValue)return;
2549+
newFrameworkPropertyMetadata(16,(DependencyObjectd,DependencyPropertyChangedEventArgse)=>
2550+
{
2551+
if(dis notHexEditorctrl||e.NewValue==e.OldValue)return;
25622552

2563-
ctrl.With(c=>
2564-
{
2565-
//Get previous state
2566-
varfirstPos=c.FirstVisibleBytePosition;
2567-
varstartPos=c.SelectionStart;
2568-
varstopPos=c.SelectionStop;
2569-
2570-
//refresh
2571-
c.UpdateScrollBar();
2572-
c.BuildDataLines(c.MaxVisibleLine,true);
2573-
c.RefreshView(true);
2574-
c.UpdateHeader(true);
2575-
2576-
//Set previous state
2577-
c.SetPosition(firstPos);
2578-
c.SelectionStart=startPos;
2579-
c.SelectionStop=stopPos;
2580-
});
2581-
}
2553+
ctrl.With(c=>
2554+
{
2555+
//Get previous state
2556+
varfirstPos=c.FirstVisibleBytePosition;
2557+
varstartPos=c.SelectionStart;
2558+
varstopPos=c.SelectionStop;
2559+
2560+
//refresh
2561+
c.UpdateScrollBar();
2562+
c.BuildDataLines(c.MaxVisibleLine,true);
2563+
c.RefreshView(true);
2564+
c.UpdateHeader(true);
2565+
2566+
//Set previous state
2567+
c.SetPosition(firstPos);
2568+
c.SelectionStart=startPos;
2569+
c.SelectionStop=stopPos;
2570+
});
2571+
},(DependencyObjectd,objectbaseValue)=>(int)baseValue<1?1:((int)baseValue>64?64:baseValue)));
25822572

25832573
#endregion
25842574

@@ -2595,34 +2585,29 @@ public double StringByteWidth
25952585

25962586
publicstaticreadonlyDependencyPropertyStringByteWidthProperty=
25972587
DependencyProperty.Register(nameof(StringByteWidth),typeof(double),typeof(HexEditor),
2598-
newFrameworkPropertyMetadata(10d,StringByteWidth_PropertyChanged,StringByteWidth_CoerceValue));
2599-
2600-
privatestaticobjectStringByteWidth_CoerceValue(DependencyObjectd,objectbaseValue)=>
2601-
(double)baseValue<1?1:((double)baseValue>64?64:baseValue);
2602-
2603-
privatestaticvoidStringByteWidth_PropertyChanged(DependencyObjectd,DependencyPropertyChangedEventArgse)
2604-
{
2605-
if(dis notHexEditorctrl||e.NewValue==e.OldValue)return;
2588+
newFrameworkPropertyMetadata(10d,(DependencyObjectd,DependencyPropertyChangedEventArgse)=>
2589+
{
2590+
if(dis notHexEditorctrl||e.NewValue==e.OldValue)return;
26062591

2607-
ctrl.With(c=>
2608-
{
2609-
//Get previous state
2610-
varfirstPos=c.FirstVisibleBytePosition;
2611-
varstartPos=c.SelectionStart;
2612-
varstopPos=c.SelectionStop;
2613-
2614-
//refresh
2615-
c.UpdateScrollBar();
2616-
c.BuildDataLines(c.MaxVisibleLine,true);
2617-
c.RefreshView(true);
2618-
c.UpdateHeader(true);
2619-
2620-
//Set previous state
2621-
c.SetPosition(firstPos);
2622-
c.SelectionStart=startPos;
2623-
c.SelectionStop=stopPos;
2624-
});
2625-
}
2592+
ctrl.With(c=>
2593+
{
2594+
//Get previous state
2595+
varfirstPos=c.FirstVisibleBytePosition;
2596+
varstartPos=c.SelectionStart;
2597+
varstopPos=c.SelectionStop;
2598+
2599+
//refresh
2600+
c.UpdateScrollBar();
2601+
c.BuildDataLines(c.MaxVisibleLine,true);
2602+
c.RefreshView(true);
2603+
c.UpdateHeader(true);
2604+
2605+
//Set previous state
2606+
c.SetPosition(firstPos);
2607+
c.SelectionStart=startPos;
2608+
c.SelectionStop=stopPos;
2609+
});
2610+
},(DependencyObjectd,objectbaseValue)=>(double)baseValue<1?1:((double)baseValue>64?64:baseValue)));
26262611

26272612
#endregion
26282613

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp