Saturday, September 21, 2024

Custom Script Editor Project: Adding More Features(3rd Enhancement)

 Introduction

In this blog post, we'll discuss the recent enhancements made to our Script Editor project, which now includes a Flask application for better script management. And as usual, if have not read the previous posts, here are the links: Enhancing the Custom Scripting Language Interpreter in Python with PyQt6 and Building a Custom Scripting Language in PyQt6 for Dynamic Widget Rendering. These enhancements allow users to retrieve scripts from a server, save new scripts to the server, and a new optional parameter, "COMP," for our text input. Let's dive into these exciting features!

Here is the new screen:


New Flask Application

We've introduced a Flask application that serves as the backend for our Script Editor. The primary functions of this application are:

1. Retrieving Scripts: Users can now fetch script files directly from the server using a simple API endpoint.

1
2
3
@app.route('/get-script/<script_name>', methods=['GET'])
def get_script(script_name):
    # Logic to retrieve the script from the server

 2. Saving Scripts: Users can also save their scripts to the server through another endpoint. This functionality is crucial for ensuring that users can maintain their work across sessions.

1
2
3
@app.route('/save-script/<script_name>', methods=['POST'])
def save_script(script_name):
    # Logic to save the script content

These features are implemented in a straightforward manner, making it easy for the frontend to communicate with the server.

Enhanced Text Input with "COMP" Parameter

A significant enhancement to the script editor is the addition of an optional "COMP" parameter for the text input fields. When this parameter is included, a button appears next to the input field. Clicking this button opens a dialog box that displays a list of companies. With this feature, developers can save time and effort when coding the selection of companies. By automating this process, they can focus on other critical aspects of their projects, ultimately enhancing productivity and streamlining workflows. This not only leads to faster development cycles but also minimizes the potential for errors, ensuring a more efficient and reliable application.

Here is the new script format:

1
TextInput Text1(COMP,Company Code)

Here's how the new functionality works:
  •  Text Input Creation: When defining a text input in the script, adding "COMP" will trigger the creation of a button beside it.

1
self._create_text_input(line, horizontal_layout)

  • Dialog for Company Selection: When the button is clicked, it opens a dialog displaying the list of companies, enabling users to select one easily.

1
2
3
4
def open_companies_dialog(self):
    dialog = Companies(initial_settings)
    if dialog.exec() == QDialog.DialogCode.Accepted:
        # Logic to handle selected company

Future Enhancements

Currently, data retrieval for the list of companies is handled within the script editor. However, we plan to enhance this by retrieving the data directly from the server through the Flask application. This improvement will ensure that the script editor app remains dynamic and fully integrated with the backend.

Conclusion

The integration of the Flask application into our Script Editor project marks a significant step toward a more robust and user-friendly tool. With the ability to save and retrieve scripts from a server and the new company selection feature, users can expect an improved experience. Stay tuned for further updates as we continue to enhance this project!

You may download the project on my github page: Custom Script Editor

No comments:

Post a Comment