fix: info cubugu kaldirildi, kod temizlendi
Some checks failed
Build Windows / build-windows (push) Has been cancelled

This commit is contained in:
Alhan
2026-07-22 05:45:33 +03:00
parent 5f9382ef61
commit 5e31a9e6bc
4 changed files with 47 additions and 90 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +1,6 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';
import '../services/image_manager.dart';
class ImageCanvas extends StatefulWidget {
final String filePath;
@@ -35,7 +34,7 @@ class _ImageCanvasState extends State<ImageCanvas> {
void _resetView() {
_controller.value = Matrix4.identity();
_currentScale = 1.0;
_isFilled = true; // yeni resimde fill moduna dön
_isFilled = true;
}
void _onTransformChanged() {
@@ -88,16 +87,6 @@ class _ImageCanvasState extends State<ImageCanvas> {
_controller.value = newMatrix;
}
String _zoomPercent() {
return '${(_currentScale * 100).round()}%';
}
String _imageInfo() {
final mgr = ImageManager.instance;
if (mgr.images.isEmpty) return '';
return '${mgr.currentIndex + 1} / ${mgr.imageCount}';
}
@override
void dispose() {
_controller.removeListener(_onTransformChanged);
@@ -117,86 +106,54 @@ class _ImageCanvasState extends State<ImageCanvas> {
},
child: GestureDetector(
onDoubleTap: _handleDoubleTap,
child: Stack(
children: [
InteractiveViewer(
transformationController: _controller,
boundaryMargin: const EdgeInsets.all(double.infinity),
minScale: 0.1,
maxScale: 10.0,
panEnabled: true,
scaleEnabled: false,
child: _isFilled
? SizedBox.expand(
child: Image.file(
File(widget.filePath),
fit: BoxFit.cover,
filterQuality: FilterQuality.high,
errorBuilder: (context, error, stackTrace) {
return const Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.broken_image, size: 48, color: Colors.white38),
SizedBox(height: 8),
Text('Resim yüklenemedi',
style: TextStyle(color: Colors.white38)),
],
),
);
},
),
)
: Center(
child: Image.file(
File(widget.filePath),
fit: BoxFit.contain,
filterQuality: FilterQuality.high,
errorBuilder: (context, error, stackTrace) {
return const Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.broken_image, size: 48, color: Colors.white38),
SizedBox(height: 8),
Text('Resim yüklenemedi',
style: TextStyle(color: Colors.white38)),
],
),
);
},
),
),
),
// Alt bilgi çubuğu
Positioned(
bottom: 4,
left: 0,
right: 0,
child: Center(
child: ListenableBuilder(
listenable: _controller,
builder: (context, _) {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 3),
decoration: BoxDecoration(
color: Colors.black54,
borderRadius: BorderRadius.circular(6),
),
child: Text(
'${_imageInfo()} | ${_zoomPercent()}',
style: const TextStyle(
color: Colors.white70,
fontSize: 12,
fontFamily: 'monospace',
child: InteractiveViewer(
transformationController: _controller,
boundaryMargin: const EdgeInsets.all(double.infinity),
minScale: 0.1,
maxScale: 10.0,
panEnabled: true,
scaleEnabled: false,
child: _isFilled
? SizedBox.expand(
child: Image.file(
File(widget.filePath),
fit: BoxFit.cover,
filterQuality: FilterQuality.high,
errorBuilder: (context, error, stackTrace) {
return const Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.broken_image, size: 48, color: Colors.white38),
SizedBox(height: 8),
Text('Resim yüklenemedi',
style: TextStyle(color: Colors.white38)),
],
),
),
);
},
);
},
),
)
: Center(
child: Image.file(
File(widget.filePath),
fit: BoxFit.contain,
filterQuality: FilterQuality.high,
errorBuilder: (context, error, stackTrace) {
return const Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.broken_image, size: 48, color: Colors.white38),
SizedBox(height: 8),
Text('Resim yüklenemedi',
style: TextStyle(color: Colors.white38)),
],
),
);
},
),
),
),
),
],
),
),
);

Binary file not shown.