Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6180703
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T00:53:26+00:00 2026-05-24T00:53:26+00:00

Encountered a challenging situation, please help with the design decision. I have an application

  • 0

Encountered a challenging situation, please help with the design decision.

I have an application dealing with ‘A Document’, which as actually some collection of data, not-so-important of which kind.

The data (the document) is managed through the application, and the standard mark as dirty / request save / save / save as workflow is maintained.

In addition to the main application functionality a number of plugins are developed, which are used for data analysis during its editing. It is assumed that these plugins may need a persistent data storage for some of their settings.

This data storage is an in-memory dictionary attached to the decoment instance, and it is later serialized to the document file, and deserialized on document load.

So, when an application starts and the document is opened, the extra data are read from the file. Then, as you browse the document, you can possibly run some plugin-based reports. The plugin would request for settings, and store them in the document extra-data. Then, this extra-data is supposed to be saved to the document file.

Thie gives us 2 dirty states: the document state (if it was changed during the session) and the extra-data dirty state.

Now, if the document was not changed, but the extra-data was, I assume the user is fine to save the extra-data, and silently save the document.

If the document was changed, and the user saves it, the extra-data is saved with the document, which is fine.

But what is the best solution if both are dirty, and the user says ‘No, I don’t like saving the document changes’. At the moment I notify them thet the extra data (plugin settings) would be lost as well.
Saving data itself (and providing a separate option ‘Save settings only’) is possible, but a bit tricky.

Your opinion – which way is the most logical?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T00:53:27+00:00Added an answer on May 24, 2026 at 12:53 am

    I think it’s important that your application behaves consistently – either always save the plugin data silently, or always request whether the plugin data should be saved. I think changing the behaviour of the plugin save depending on whether the document content has changed will probably result in confusing behaviour to the user.

    Without knowing about your application, I feel that if it makes sense to save the plug in data silently when the plugin content has changed but the document hasn’t, then it probably makes sense to save the plugin data silently when the user changes the document content but doesn’t save it. However, I also feel that that behaviour is unlikely to make sense for many applications- a “no, I don’t want to save” probably shouldn’t result in a hidden save of some of the things that have changed.

    Consequently, I propose the following solution that is both consistent and clear to the user:

    1. Maintain both flags as in your example, but treat the two dirty flags as one flag from the user’s perspective – when either flag is dirty, pop up a “save changes?” dialog.
    2. Use the information in the flags to determine the text of the dialog – eg “The plugin settings have changed since the last save” or “The plugin settings and document has changed” etc. This way the user always knows why the save dialog has appeared, and there’s always one dialog.

    For extra credit, you could even be specific about which plugins settings have changed.

    I also agree with Miilimetric’s observation that allowing partial saves might produce unpredictable behaviour with multiple users – if the settings can affect the way the document is treated, they should probably be treated as part of the document content from a saving perspective.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Encountered a frustrating problem in our application today which came down to an ArrayIndexOutOfBounds
I encountered some very weird behaviour which I think is a bug, but I
I encountered a problem when running some old code that was handed down to
I encountered some code reading typedef enum eEnum { c1, c2 } tagEnum; typedef
i encountered a bug in some c code i wrote, and while it was
I encountered some compilation errors when trying to migrate latest ffmpeg to iOS platform.
I encountered an interesting situation today in a program where I inadvertantly assigned an
I`ve encountered the problem after updating some gems, so basically all older gems are
I encountered an interesting thing today that I have never noticed before. It appears
I encountered a problem some days ago while working with Generic TList in the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.