from PyQt6.QtWidgets import QFileDialog, QApplication, QPushButton, QVBoxLayout, QWidget
import sys

class FileDialogHelper:
    def __init__(self, dialog):
        self.dialog = dialog
        self.dialog.directoryEntered.connect(self.on_directory_entered)
    
    def on_directory_entered(self, directory):
        self.dialog.dirEntered(directory)

class TestFileDialog(QFileDialog):
    def __init__(self, parent=None):
        super(TestFileDialog, self).__init__(parent)
        self.setWindowTitle("Test File Dialog")
        self.setFileMode(QFileDialog.ExistingFiles)
        self.setOption(QFileDialog.DontUseNativeDialog, False)
        self.helper = FileDialogHelper(self)

    def dirEntered(self, directory):
        if directory.endswith("Desktop"):
            self.done(QFileDialog.Accepted)

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("File Dialog Launcher")
        layout = QVBoxLayout(self)
        self.button = QPushButton("Open File Dialog")
        self.button.clicked.connect(self.show_file_dialog)
        layout.addWidget(self.button)

    def show_file_dialog(self):
        dialog = TestFileDialog(self)
        if dialog.exec() == QFileDialog.Accepted:
            selected_files = dialog.selectedFiles()
            print("Selected files:", selected_files)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())