PDA

View Full Version : "No such file or directory" error from deleted promoted widgets



graffy
20th September 2013, 09:46
Ok, this is an error I have encountered before and I don't reall yknow how I've cleared it in the past.

I'm using Qt Creator 2.8.0 with Qt 4.8.4 (CMake) on an OS project I've forked from github. While most of the project's various UIs depend upon Qt, everything to this point has been built in code - no use of designer, no *.pro files.

Recently, a contributor created a *.ui file for a new dialog. I've been trying to make changes and ended up renaming some header files / directories which were refreenced as promoted widgets in Qt designer.

I made the changes to the files witohut realizing they were promoted widgets. Once I caught it, I added the new locations in the "Promoted widgets" dialog in designer and deleted the old ones. There is no dependency on the old header file locations whatsoever. Yet, when the ui_.h file is generated, it still references the old locations and completely ignores the new references. The .ui file indicates only the new locations and everythin glooks right in Qt Designer.

It seems like this might be a cache problem. I've cleaned / rebuilt everything several times, deleted my cmake cache text file from the build directory, and even deleted the build directory iteslf, but still no luck.

Any thoughts?

ChrisW67
20th September 2013, 10:14
What is reporting "No such file or directory"? Cmake, moc, UI compiler, RCC, compiler, linker, at run time?
What file or directory?
It really helps to actually describe the problem.

If you manually run:


uic thingy.ui

and the output is correct then the problem is where the ui_*.h generated files are going or the timestamps on the files are broken and make does not rebuild them.
Delete all the ui_*.h files, rebuild and inspect the files.

graffy
20th September 2013, 23:47
Hmmm.. Loading the .ui file in a text editor made the difference. I changed the references there and everything compiled... Wonder why Designer didn't update it?