@@ -2340,27 +2340,21 @@ static public int calcFolderSize(File folder) {
2340
2340
}
2341
2341
2342
2342
public void handleAddLibrary () {
2343
- // get the frontmost window frame for placing file dialog
2344
- FileDialog fd = new FileDialog (activeEditor , tr ("Select a zip file or a folder containing the library you'd like to add" ), FileDialog .LOAD );
2345
- File home = new File (System .getProperty ("user.home" ));
2346
- if (home .isDirectory ()) {
2347
- fd .setDirectory (home .getAbsolutePath ());
2348
- }
2349
- if (OSUtils .isWindows ()) {
2350
- // Workaround: AWT FileDialog doesn't not support native file filters on Windows...
2351
- // https://stackoverflow.com/questions/12558413/how-to-filter-file-type-in-filedialog
2352
- fd .setFile ("*.zip" );
2353
- }
2354
- fd .setFilenameFilter ((dir , name ) -> name .toLowerCase ().endsWith (".zip" ));
2355
- fd .setVisible (true );
2343
+ JFileChooser fileChooser = new JFileChooser (System .getProperty ("user.home" ));
2344
+ fileChooser .setDialogTitle (tr ("Select a zip file or a folder containing the library you'd like to add" ));
2345
+ fileChooser .setFileSelectionMode (JFileChooser .FILES_AND_DIRECTORIES );
2346
+ fileChooser .setFileFilter (new FileNameExtensionFilter (tr ("ZIP files or folders" ), "zip" ));
2356
2347
2357
- String directory = fd . getDirectory ();
2358
- String filename = fd . getFile ( );
2348
+ Dimension preferredSize = fileChooser . getPreferredSize ();
2349
+ fileChooser . setPreferredSize ( new Dimension ( preferredSize . width + 200 , preferredSize . height + 200 ) );
2359
2350
2360
- // User canceled selection
2361
- if (filename == null ) return ;
2351
+ int returnVal = fileChooser .showOpenDialog (activeEditor );
2352
+
2353
+ if (returnVal != JFileChooser .APPROVE_OPTION ) {
2354
+ return ;
2355
+ }
2362
2356
2363
- File sourceFile = new File ( directory , filename );
2357
+ File sourceFile = fileChooser . getSelectedFile ( );
2364
2358
File tmpFolder = null ;
2365
2359
2366
2360
try {
0 commit comments