summaryrefslogtreecommitdiff
path: root/UMain.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UMain.pas')
-rw-r--r--UMain.pas234
1 files changed, 42 insertions, 192 deletions
diff --git a/UMain.pas b/UMain.pas
index bce9d75..359397f 100644
--- a/UMain.pas
+++ b/UMain.pas
@@ -127,9 +127,6 @@ type
procedure miFileTypesClick(Sender: TObject);
procedure CommandLineComboKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean);
procedure FormKeyDown(Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean);
- procedure InactiveItemsTimerTimer(Sender: TObject);
- function OldGTKConvertToSorted(Sender: TObject; const Index: integer): integer;
- function OldGTKConvertFromSorted(Sender: TObject; const Index: integer): integer;
procedure SplitterPopupMenuClick(Sender: TObject);
procedure miChangePermissionsClick(Sender: TObject);
procedure miChangeOwnerClick(Sender: TObject);
@@ -189,7 +186,7 @@ type
private
LeftLastFocused, Editing, QuickFind, RedrawLeftInactive, RedrawRightInactive, StartUp, LeftTabPopup: boolean;
LastWidth, RunningEscSensitive: integer;
- InplaceEditTimer, InactiveItemsTimer, RebuildListViewsTimer, RightMouseSelectPopupTimer: TGTKTimer;
+ InplaceEditTimer, RebuildListViewsTimer, RightMouseSelectPopupTimer: TGTKTimer;
InplaceEditItem: TGTKListItem;
SavedCmdLine: string;
LastMounterButton: TGTKButton;
@@ -280,7 +277,6 @@ function form_event_handler(widget: PGtkWidget; event: PGdkEvent; user_data: gpo
procedure TFMain.FormCreate(Sender: TObject);
begin
- ReportGTKVersion;
SetupAppIcon;
StartUp := True;
RunningEscSensitive := 0;
@@ -314,10 +310,6 @@ begin
InplaceEditTimer := TGTKTimer.Create(Self);
InplaceEditTimer.Enabled := False;
InplaceEditTimer.OnTimer := InplaceEditTimerTimer;
- InactiveItemsTimer := TGTKTimer.Create(Self);
- InactiveItemsTimer.Enabled := False;
- InactiveItemsTimer.Interval := ConfInactiveTimerDelay;
- if not Application.GTKVersion_2_6_0_Up then InactiveItemsTimer.OnTimer := InactiveItemsTimerTimer;
RebuildListViewsTimer := TGTKTimer.Create(Self);
RebuildListViewsTimer.Enabled := False;
RebuildListViewsTimer.OnTimer := RebuildListViewsTimerTimer;
@@ -511,12 +503,6 @@ begin
RightScrolledWindow := TGTKScrolledWindow.Create(Self);
LeftListView := TGTKListView.CreateTyped(Self, True, [lcPointer]);
RightListView := TGTKListView.CreateTyped(Self, True, [lcPointer]);
- if not Application.GTKVersion_2_0_5_Up then begin
- LeftListView.FromSortedCoversionFunc := OldGTKConvertFromSorted;
- LeftListView.ToSortedCoversionFunc := OldGTKConvertToSorted;
- RightListView.FromSortedCoversionFunc := OldGTKConvertFromSorted;
- RightListView.ToSortedCoversionFunc := OldGTKConvertToSorted;
- end;
LeftStatusLine := TGTKLabel.Create(Self);
RightStatusLine := TGTKLabel.Create(Self);
LeftQuickFindVBox := TGTKVBox.Create(Self);
@@ -1088,8 +1074,7 @@ begin
GetFirstLastPanelColumn(FirstColumn, LastColumn);
// Temporarily disable the fixed height mode to be able to add columns the Pascal way
- if Application.GTKVersion_2_12_0_Up then
- g_object_set(ListView.FWidget, 'fixed_height_mode', 0, nil);
+ g_object_set(ListView.FWidget, 'fixed_height_mode', 0, nil);
for i := 1 to ConstNumPanelColumns do
if ConfColumnVisible[i] then begin
@@ -1129,13 +1114,13 @@ begin
gtk_cell_renderer_set_fixed_size(PGtkCellRenderer(Column.FRenderer), ConfColumnSizes[i], ConfRowHeight); }
if ConfColumnIDs[i] < 3 then begin // Filename column
Column.OnEdited := ListViewEdited;
- if Application.GTKVersion_2_6_0_Up then Column.SetProperty('ellipsize', 3);
+ Column.SetProperty('ellipsize', 3);
end;
if ConfColumnIDs[i] in [4, 8, 9] then begin
Column.SetProperty('xalign', 1);
Column.Alignment := 1;
end;
- if Application.GTKVersion_2_4_0_Up then Column.SetProperty('single-paragraph-mode', 1);
+ Column.SetProperty('single-paragraph-mode', 1);
Column.OnClicked := ListViewColumnClicked;
HandlerID := g_signal_connect(Column.FColumn, 'notify::width', G_CALLBACK(@ListViewColumnResized), ListView);
g_object_set_data(G_OBJECT(Column.FColumn), 'Width_Notify_Handler', Pointer(HandlerID));
@@ -1146,10 +1131,7 @@ begin
FontDesc := pango_font_description_from_string(PChar(ConfPanelFont));
gtk_widget_modify_font(ListView.FWidget, FontDesc);
end else gtk_widget_modify_font(ListView.FWidget, nil);
-
- // Set the fixed row height - there were some issues with custom drawing in the past, now with 2.18 it looks all fine
- if Application.GTKVersion_2_12_0_Up then
- g_object_set(ListView.FWidget, 'fixed_height_mode', 1, nil);
+ g_object_set(ListView.FWidget, 'fixed_height_mode', 1, nil);
end;
procedure TFMain.FormDestroy(Sender: TObject);
@@ -1754,8 +1736,7 @@ begin
AListView := RightListView;
end;
DeactivateQuickFind(LeftPanel);
- if Application.GTKVersion_2_0_5_Up then Data := DataList[ItemIndex]
- else Data := AListView.Items[ItemIndex].AsPointer(0);
+ Data := DataList[ItemIndex];
DebugMsg(['Selected:', Data^.FDisplayName]);
if not Assigned(Data) then Exit;
if Data^.UpDir then ChangingDir(LeftPanel, '..') else
@@ -1913,7 +1894,7 @@ begin
if (not b) and ((Engine.Path = '/') or (NewPath = '/')) and (HiliString1 = '') and (HiliString2 = '') then Sel := ListView.ConvertFromSorted(0);
ListView.Items[Sel].Selected := True;
// Application.ProcessMessages;
- ListView.Items[Sel].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0);
+ ListView.Items[Sel].SetCursor(0, False, False, 0.5, 0);
// Application.ProcessMessages;
end;
UpdatePanelInfo;
@@ -2098,21 +2079,16 @@ var Data1, Data2: PDataItem;
DataList: TList;
begin
Result := 0;
- if not Application.GTKVersion_2_0_5_Up then begin
- gtk_tree_model_get(model, a, 0, @Data1, -1);
- gtk_tree_model_get(model, b, 0, @Data2, -1);
- end else begin
- if Sender = LeftListView then DataList := LeftPanelData
- else DataList := RightPanelData;
- Path := gtk_tree_model_get_path(model, a);
- if not Assigned(Path) then Exit;
- Data1 := DataList[gtk_tree_path_get_indices(Path)^];
- gtk_tree_path_free(Path);
- Path := gtk_tree_model_get_path(model, b);
- if not Assigned(Path) then Exit;
- Data2 := DataList[gtk_tree_path_get_indices(Path)^];
- gtk_tree_path_free(Path);
- end;
+ if Sender = LeftListView then DataList := LeftPanelData
+ else DataList := RightPanelData;
+ Path := gtk_tree_model_get_path(model, a);
+ if not Assigned(Path) then Exit;
+ Data1 := DataList[gtk_tree_path_get_indices(Path)^];
+ gtk_tree_path_free(Path);
+ Path := gtk_tree_model_get_path(model, b);
+ if not Assigned(Path) then Exit;
+ Data2 := DataList[gtk_tree_path_get_indices(Path)^];
+ gtk_tree_path_free(Path);
Result := LVCompareItems(Data1, Data2, (Sender as TGTKView).SortOrder = soAscending, FMain.ColumnSortIDs[(Sender as TGTKView).SortColumnID + 1]);
end;
@@ -2290,29 +2266,18 @@ var s: PChar;
AFGColor, ABGColor: PGdkColor;
{ Rect, VisibleRect: TGdkRectangle; }
begin
- if Application.GTKVersion_2_0_5_Up then ColumnIdx := gtk_tree_view_column_get_sort_column_id(tree_column) else
- begin
- ColumnIdx := 0;
- for i := 0 to (Sender as TGTKListView).Columns.Count - 1 do
- if (cell = (Sender as TGTKListView).Columns[i].FRenderer) or (cell = (Sender as TGTKListView).Columns[i].FPixbufRenderer) then begin
- ColumnIdx := i;
- Break;
- end;
- end;
+ ColumnIdx := gtk_tree_view_column_get_sort_column_id(tree_column);
ColumnID := ColumnSortIDs[ColumnIdx + 1] - 1;
ImageCol := False;
if ColumnIdx = 0 then ImageCol := GTK_IS_CELL_RENDERER_PIXBUF(cell);
Data := nil;
- if not Application.GTKVersion_2_0_5_Up then gtk_tree_model_get(tree_model, iter, 0, @Data, -1)
- else begin
- if Sender = LeftListView then DataList := LeftPanelData
- else DataList := RightPanelData;
- TreePath := gtk_tree_model_get_path(tree_model, iter);
- if not Assigned(TreePath) then Exit;
- (Sender as TGTKListView).ConvertPathToChild(TreePath);
- Data := DataList[gtk_tree_path_get_indices(TreePath)^];
- gtk_tree_path_free(TreePath);
- end;
+ if Sender = LeftListView then DataList := LeftPanelData
+ else DataList := RightPanelData;
+ TreePath := gtk_tree_model_get_path(tree_model, iter);
+ if not Assigned(TreePath) then Exit;
+ (Sender as TGTKListView).ConvertPathToChild(TreePath);
+ Data := DataList[gtk_tree_path_get_indices(TreePath)^];
+ gtk_tree_path_free(TreePath);
(* gtk_tree_view_get_cell_area(tree_view, TreePath, nil, @Rect);
gtk_tree_view_get_visible_rect(tree_view, @VisibleRect);
if (Rect.height = 0) or (Rect.height <> ConfRowHeight) or (Rect.y = 0) or (Rect.y > VisibleRect.y + VisibleRect.height) then Exit; *)
@@ -2342,26 +2307,21 @@ begin
then begin
if (ColumnID = 0) or (ColumnID = 1) then s := FDisplayName else s := nil;
g_object_set(cell, 'text', s, 'foreground-gdk', AFGColor, nil);
- if Application.GTKVersion_2_2_0_Up or (not ConfUseFileTypeIcons) then
- g_object_set(cell, 'background-gdk', ABGColor, nil);
+ g_object_set(cell, 'background-gdk', ABGColor, nil);
end
else begin // not editing
if ConfDirsInBold then begin
if IsDir or UpDir then g_object_set(cell, 'markup', PChar(Format('<span weight="bold">%s</span>', [QuoteMarkupStr(ColumnData[ColumnID])])), 'foreground-gdk', AFGColor, nil)
else g_object_set(cell, 'markup', PChar(QuoteMarkupStr(ColumnData[ColumnID])), 'foreground-gdk', AFGColor, nil);
end else g_object_set(cell, 'text', ColumnData[ColumnID], 'foreground-gdk', AFGColor, nil);
- if Application.GTKVersion_2_2_0_Up or (not ConfUseFileTypeIcons) then
- g_object_set(cell, 'background-gdk', ABGColor, nil); // Older versions have bug in color filling
+ g_object_set(cell, 'background-gdk', ABGColor, nil);
end;
end else // this is the image column
if ConfUseFileTypeIcons then begin // Assign icons
- if Application.GTKVersion_2_2_0_Up then
- g_object_set(cell, 'cell-background-gdk', ABGColor, nil); // Older versions don't have this property
- if Sel and (not (Sender as TGTKView).Focused) and Application.GTKVersion_2_2_0_Up then begin
- if InactiveItemsTimer.Enabled then InactiveItemsTimer.Enabled := False;
+ g_object_set(cell, 'cell-background-gdk', ABGColor, nil);
+ if Sel and (not (Sender as TGTKView).Focused) then begin
if Sender = LeftListView then RedrawLeftInactive := True
else RedrawRightInactive := True;
- InactiveItemsTimer.Enabled := not Application.GTKVersion_2_6_0_Up;
end;
if Icon <> nil then g_object_set(cell, 'pixbuf', Icon, nil);
end;
@@ -2758,7 +2718,7 @@ begin
Item := (Sender as TGTKListView).GetItemAtPos(X, Y);
if Assigned(Item) then begin
Item.Selected := True;
- Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0);
+ Item.SetCursor(0, False, False, 0.5, 0);
end;
// Show file popup menu or start selection mode, depending on ConfRightClickSelect
@@ -2784,7 +2744,7 @@ begin
Item := (Sender as TGTKListView).GetItemAtPos(X, Y);
if Assigned(Item) then begin
Item.Selected := True;
- Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0);
+ Item.SetCursor(0, False, False, 0.5, 0);
end;
// Open directory in background tab
@@ -2818,7 +2778,7 @@ begin
RightMouseSelectPopupTimer.Enabled := False;
Data^.Selected := PanelRightMouseSelMode;
Item.Selected := True;
- Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0);
+ Item.SetCursor(0, False, False, 0.5, 0);
UpdatePanelInfoDown(Sender = LeftListView);
end;
end;
@@ -2947,7 +2907,6 @@ end;
procedure TFMain.ListViewSelectionChanged(Sender: TObject);
var i: integer;
-// AListView: TGTKListView;
begin
if Editing and ((Sender as TGTKListView).Selected <> InplaceEditItem) then begin
Editing := False;
@@ -2959,11 +2918,6 @@ begin
end;
if QuickFind then DeactivateQuickFind(Sender = LeftListView);
SaveCursorPositionTabbed(Sender = LeftListView);
-{ if Application.GTKVersion_2_6_0_Up then begin
- AListView := Sender as TGTKListView;
- if Assigned(AListView) and Assigned(AListView.Selected) and Assigned(AListView.Selected.Data) and Assigned(PDataItem(AListView.Selected.Data)^.ItemColor)
- then gtk_widget_modify_text(AListView.FWidget, GTK_STATE_SELECTED, PDataItem(AListView.Selected.Data)^.ItemColor);
- end; }
end;
procedure TFMain.SaveCursorPositionTabbed(LeftPanel: boolean);
@@ -3842,103 +3796,6 @@ begin
end;
end;
-procedure TFMain.InactiveItemsTimerTimer(Sender: TObject);
-
- procedure Redraw(AListView: TGTKListView; tree_view: PGtkTreeView);
- var TreePath: PGtkTreePath;
- Iter: TGtkTreeIter;
- Rect: TGdkRectangle;
- PixBuf, Icon: PGdkPixbuf;
- cell_width, cell_height: integer;
- begin
- if (csDestroying in ComponentState) or (AListView = nil) or (AListView.FSelection = nil) then Exit;
- if not gtk_tree_selection_get_selected(AListView.FSelection, nil, @Iter) then Exit;
- TreePath := gtk_tree_model_get_path(gtk_tree_view_get_model(tree_view), @Iter);
- if not Assigned(TreePath) then Exit;
- gtk_tree_view_get_background_area(tree_view, TreePath, AListView.Columns[0].FColumn, @Rect);
- gtk_tree_path_free(TreePath);
- gtk_cell_renderer_get_size(AListView.Columns[0].FPixbufRenderer, PGtkWidget(tree_view), nil, nil, nil, @cell_width, @cell_height);
- Icon := PDataItem(AListView.Selected.Data)^.Icon;
- Rect.width := Rect.x + cell_width + AListView.Columns[0].FRenderer^.xpad * 2 + 1;
- PixBuf := gdk_pixbuf_new(GDK_COLORSPACE_RGB, True, 8, Rect.width, Rect.height);
- gdk_pixbuf_fill(PixBuf, InactiveItemBGColorNum);
- gdk_pixbuf_render_to_drawable_alpha(PixBuf, PGdkDrawable(gtk_tree_view_get_bin_window(tree_view)), 0, 0, Rect.x, Rect.y,
- Rect.width, Rect.height, GDK_PIXBUF_ALPHA_FULL, 0, GDK_RGB_DITHER_NORMAL, 0, 0);
- gdk_pixbuf_unref(PixBuf);
- gdk_pixbuf_render_to_drawable_alpha(Icon, PGdkDrawable(gtk_tree_view_get_bin_window(tree_view)), 0, 0,
- Rect.x + AListView.Columns[0].FRenderer^.xpad, Rect.y + Rect.height div 2 - (16 div 2),
- 16, 16, GDK_PIXBUF_ALPHA_FULL, 0, GDK_RGB_DITHER_NORMAL, 0, 0);
- end;
-
-
-begin
- if Assigned(Sender) and Assigned(InactiveItemsTimer) and Assigned(LeftListView) and Assigned(RightListView) and
- (not (csDestroying in ComponentState)) then
- try
- InactiveItemsTimer.Enabled := False;
- if RedrawLeftInactive and (not LeftListView.Focused) // and (not ConfInactiveItemDefaultColors)
- then Redraw(LeftListView, PGtkTreeView(LeftListView.FWidget));
- if RedrawRightInactive and (not RightListView.Focused) // and (not ConfInactiveItemDefaultColors)
- then Redraw(RightListView, PGtkTreeView(RightListView.FWidget));
- RedrawLeftInactive := False;
- RedrawRightInactive := False;
- except end;
-end;
-
-
-(********************************************************************************************************************************)
-function TFMain.OldGTKConvertToSorted(Sender: TObject; const Index: integer): integer;
-var DataList, List: TList;
- i: integer;
- AListView: TGTKListView;
-begin
- Result := -1;
- if Sender = LeftListView then begin
- DataList := LeftPanelData;
- AListView := LeftListView;
- end else begin
- DataList := RightPanelData;
- AListView := RightListView;
- end;
- List := nil; // Silent compiler warnings
- if Assigned(DataList) and (DataList.Count > 0) then
- try
- List := TList.Create;
- for i := 0 to DataList.Count - 1 do List.Add(DataList[i]);
- if (List.Count > 1) and (AListView.SortOrder <> soNone) then
- SortDataList(List, AListView.SortOrder = soAscending, AListView.SortColumnID);
- Result := List.IndexOf(DataList[Index]);
- finally
- List.Free;
- end;
-end;
-
-function TFMain.OldGTKConvertFromSorted(Sender: TObject; const Index: integer): integer;
-var DataList, List: TList;
- i: integer;
- AListView: TGTKListView;
-begin
- Result := -1;
- if Sender = LeftListView then begin
- DataList := LeftPanelData;
- AListView := LeftListView;
- end else begin
- DataList := RightPanelData;
- AListView := RightListView;
- end;
- List := nil; // Silent compiler warnings
- if Assigned(DataList) and (DataList.Count > 0) then
- try
- List := TList.Create;
- for i := 0 to DataList.Count - 1 do List.Add(DataList[i]);
- if (List.Count > 1) and (AListView.SortOrder <> soNone) then
- SortDataList(List, AListView.SortOrder = soAscending, AListView.SortColumnID);
- Result := DataList.IndexOf(List[Index]);
- finally
- List.Free;
- end;
-end;
-
(********************************************************************************************************************************)
procedure TFMain.SplitterPopupMenuClick(Sender: TObject);
begin
@@ -4509,8 +4366,6 @@ end;
procedure TFMain.ApplySettings(RebuildListViews, RebuildIcons, Startup: boolean);
var i: integer;
begin
- InactiveItemsTimer.Enabled := False;
-
ButtonsBox.Visible := ConfShowFuncButtons;
ButtonBoxSeparator.Visible := ConfShowFuncButtons;
ButtonBoxSpace.Visible := not ConfShowFuncButtons;
@@ -4531,7 +4386,6 @@ begin
// Rebuild ListViews
if RebuildListViews then FMain.RebuildListViews(False);
- InactiveItemsTimer.Enabled := False;
// Colors Section
SetupColors;
@@ -4539,17 +4393,15 @@ begin
gtk_widget_modify_base(RightListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKBackground);
gtk_widget_modify_base(LeftListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKBackground);
gtk_widget_modify_base(RightListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKBackground);
-// if Application.GTKVersion_2_6_0_Up then begin
- gtk_widget_modify_base(LeftListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKBackground);
- gtk_widget_modify_base(RightListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKBackground);
-
- gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKColor);
- gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKColor);
- gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKColor);
- gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKColor);
- gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKColor);
- gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKColor);
-// end;
+ gtk_widget_modify_base(LeftListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKBackground);
+ gtk_widget_modify_base(RightListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKBackground);
+
+ gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKColor);
+ gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_NORMAL, NormalItemGDKColor);
+ gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKColor);
+ gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_SELECTED, ActiveItemGDKColor);
+ gtk_widget_modify_text(LeftListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKColor);
+ gtk_widget_modify_text(RightListView.FWidget, GTK_STATE_ACTIVE, InactiveItemGDKColor);
// Resize commandline history
if ConfNumHistoryItems < CommandLineHistory.Count then begin
@@ -4815,7 +4667,6 @@ begin
if LeftPanel then AListView := LeftListView
else AListView := RightListView;
FilePopupMenuPopup(AListView);
- if not Application.GTKVersion_2_0_5_Up then FilePopupMenu.PopUp else
gtk_menu_popup(PGtkMenu(FilePopupMenu.FMenu), nil, nil, file_popup_position_cb, AListView, 0, gtk_get_current_event_time());
end;
@@ -5223,7 +5074,6 @@ begin
RightListView.Columns.Clear;
ConstructColumns(LeftListView);
ConstructColumns(RightListView);
- InactiveItemsTimer.Enabled := False;
if DoRefresh then begin
Application.ProcessMessages;
FMain.DoRefresh(True, True, True);
@@ -6095,7 +5945,7 @@ begin
for i := 0 to DataList.Count - 1 do
if WideCompareText(string(PDataItem(DataList[i])^.FName), ExtractFileName(FSearch.GoToFile)) = 0 then begin
AListView.Items[i].Selected := True;
- AListView.Items[i].SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0);
+ AListView.Items[i].SetCursor(0, False, False, 0.5, 0);
Break;
end;
end;