PDA

View Full Version : announce: Ideality 0.0.1 (library)



krawek
10th August 2006, 23:32
Hi guys,

Today I release ideality, it can be downloaded from:

http://kde-apps.org/content/show.php?content=44015


enjoy!

Brandybuck
11th August 2006, 03:16
As a library, shouldn't it be released under a less restrictive license, such as the LGPL?

krawek
14th August 2006, 06:28
new version is available!

I added a main window factory, I tested it with QIde and Edyuk, take a look:

http://www.ciudadmomia.com/~krawek/edyuk_ideality.png
http://www.ciudadmomia.com/~krawek/qide_ideality.png

@Brandybuck: No, I want to release it under GNU/GPL terms...

cheers,

--David Cuadrado

sector
14th August 2006, 16:40
Just wanted to try out on Win2000/mingw but the build failes:

debug\moc_dmainwindow.cpp:46: error: definition of static data member 'DMainWind
ow::staticMetaObject' of dllimport'd class.
debug\moc_dmainwindow.cpp:46: warning: 'DMainWindow::staticMetaObject' defined l
ocally after being referenced with dllimport linkage
debug\moc_dmainwindow.cpp:83: warning: function 'void DMainWindow::workspaceChan
ged(int)' is defined after prior declaration as dllimport: attribute ignored
debug\moc_dmainwindow.cpp:83: warning: 'void DMainWindow::workspaceChanged(int)'
defined locally after being referenced with dllimport linkage
mingw32-make[2]: *** [debug\moc_dmainwindow.o] Error 1
mingw32-make[2]: Leaving directory `F:/qt-devel/ideality-0.0.2/lib'
mingw32-make[1]: *** [debug] Error 2
mingw32-make[1]: Leaving directory `F:/qt-devel/ideality-0.0.2/lib'
mingw32-make: *** [sub-lib-make_default] Error 2

Qt 4.2.0-tp1, compilation gives also many many warnings..
"What's this stuff" missing, not quite obvious what is this library good for.
I can provide full compilation output if you are interested.

Regards.

fullmetalcoder
19th August 2006, 14:26
#ifdef Q_WS_WIN

#ifdef IDEALITY_BUILD
#define IDEALITY_API Q_DECL_EXPORT
#else
#define IDEALITY_API Q_DECL_IMPORT
#endif

#else
#define IDEALITY_API
#endif


This definition and then placing this IDEALITY_API in front of each class name, in .h files would fix that. This is a windows specific stuff that occurs with shared libraries...

example class definition :

class IDEALITY_API DMainWindow

BTW what is "IDEAL-like programming" ??? I searched Google but didn't find anything relevant... What features/facilities does Ideality really provide??? I admit I'm a bit puzzled by your QIde and Edyuk modifications...

krawek
19th August 2006, 16:06
Hi fullmetalcoder,

It's fixed but I've problems linking the demos.... code is here:

http://www.ciudadmomia.com/~krawek/ideality-mp.tar.bz2




BTW what is "IDEAL-like programming" ??? I searched Google but didn't find anything relevant... What features/facilities does Ideality really provide??? I admit I'm a bit puzzled by your QIde and Edyuk modifications...

well, this lib provide several facilities, but I don't know how to explain them, so please see demos...

Ideal is the (ui)mode used in kate, kdevelop, quanta...

in google search: kmdi ideal

and see: http://www.codejock.com/products/dockingpane/tour_3.asp

elcuco
19th August 2006, 22:19
Hi,

I have been looking at this library for the last half hour and I am quite impressed. It does some funky stuff, and it seems to integrate into Qt42.

The problem I am facing is documentation. While the demos show some real funky shite, it's hard to understand how they work because of the amount of details you put in the demos.

I am also puzzled about the integration with the designer. As far as I saw, all I have to do is to derive my main window from DMainWindow, using addToolView (instead of addDockWidget) and everything else is done automagically right?

I am also confused by the different demos. I am still unsure about the difference between them. I also saw that you modified an example from Qt. What did you do to make it with your library? Only the new derive?

I also saw that you have the concepts of Workspaces, which seem to me like Eclipse (whats the name... viewports...?). That seems like a nice idea.

In short, the library looks cool, but if you want me to use it, teach me. Write documentation. Write usable documentation. Write small examples. Make much more documentation.

jlbrd
20th August 2006, 12:36
I will be more concise than Elcuco because of my English. I think that Ideality can be a solution for the auto-hide Docks of QIde. The screenshots shows QIde used with the library. For the moment, I wait to see the evolutions and I have other more urgent integrations in QIde. But Ideality will certainly finish integrated in QIde.

To finish I agree with Elcuco which very often has good opinions. It is for much in the evolutions of QIde.

krawek
20th August 2006, 17:52
Hi,

I have been looking at this library for the last half hour and I am quite impressed. It does some funky stuff, and it seems to integrate into Qt42.

yes, I develop the library with Qt 4.2, but it's works with Qt 4.1 too.



The problem I am facing is documentation. While the demos show some real funky shite, it's hard to understand how they work because of the amount of details you put in the demos.

I am also puzzled about the integration with the designer. As far as I saw, all I have to do is to derive my main window from DMainWindow, using addToolView (instead of addDockWidget) and everything else is done automagically right?

basically, yes. :)



I am also confused by the different demos. I am still unsure about the difference between them. I also saw that you modified an example from Qt. What did you do to make it with your library? Only the new derive?

the Qt demo is "converted" to ideality with DMainWindowFactory::create(QMainWindow *otherMainWindow);, I only change the main.cpp

demo1: shows basic use of ideality
demo2: shows DTabbedMainWindow
demo3: DMainWindowFactory
demo4: Basic workspaces usage
demo5: workspaces with DTabbedMainWindow
demo6: a complete example. Shows how to add menus and tool bars to the workspace.




I also saw that you have the concepts of Workspaces, which seem to me like Eclipse (whats the name... viewports...?). That seems like a nice idea.

yes, the elements in the 'workspace' are shown on demand using DMainWindow::setCurrentWorkspace(int wsp). I've checked eclipse, I will rename 'workspace' to 'perspective'. thanks =)




In short, the library looks cool, but if you want me to use it, teach me. Write documentation. Write usable documentation. Write small examples. Make much more documentation.
yes, the documentation is really bad... like my english :P. I'd be pleased if somebody want to help me to write the documentation.


cheers

fullmetalcoder
21st August 2006, 16:19
Hi fullmetalcoder,
It's fixed but I've problems linking the demos.... code is here:

Demo's project search libs in ../src/lib whil libs are in ../src/lib/release and ../src/lib/debug
Change library and output dir and make the name of the bins reflect the mode (debug or release). As you have Edyuk installed you should take inspiration from the project file of the core lib and the .pri file.



well, this lib provide several facilities, but I don't know how to explain them, so please see demos...

Ideal is the (ui)mode used in kate, kdevelop, quanta...

in google search: kmdi ideal

and see: http://www.codejock.com/products/dockingpane/tour_3.asp

I downloaded the code and tested. It's quite interesting but I don't see much things NEW. Dynamic menus are already supported by qmdilib, I have already implemented a perspective system in Edyuk and jlbrd has implemented auto-hide docks in QIde.

Good job anyway and if you manage to implement the dock widgets as CodeJock does I may consider use Ideality:).

I'll look the sources and give you more feedback.

P.S. should'nt the content of the central widget stay constant wathever the perspective???

Gopala Krishna
31st August 2006, 16:24
The ideality library is very promising but I have a problem.
It works very fine for Qt4.2 but not for Qt4.1
It has problem with manual docking for Qt 4.1.
The screenshot of the demo attached might help.

fullmetalcoder
2nd September 2006, 10:02
P.S. should'nt the content of the central widget stay constant wathever the perspective???
Actually the better way should be to allow each perspective to have a "private workspace" but to keep a common "default" workspace for all perspectives that don't want a "private" one. (Note : when I speak of workspace I mean "central widget" which may be a QTabWidget or a QWorkspace, or even a mix of both...)

krawek
4th September 2006, 18:34
The ideality library is very promising but I have a problem.
It works very fine for Qt4.2 but not for Qt4.1
It has problem with manual docking for Qt 4.1.
The screenshot of the demo attached might help.

I can't reproduce this issue, please post the steps



Actually the better way should be to allow each perspective to have a "private workspace" but to keep a common "default" workspace for all perspectives that don't want a "private" one. (Note : when I speak of workspace I mean "central widget" which may be a QTabWidget or a QWorkspace, or even a mix of both...)

it's configurable, the next version will have a stacked main window and workspace (QWorkspace) main window....

krawek
13th September 2006, 05:12
Version 0.1 is out!

Gopala Krishna
5th November 2006, 11:36
Hello krawek,
I have decided to use your library for qucs (http://qucs.sourceforge.net). The library is good and easy to use. Thanks for the library.
May i know the current status of ideality ?

krawek
5th November 2006, 16:08
Hello krawek,
I have decided to use your library for qucs (http://qucs.sourceforge.net). The library is good and easy to use. Thanks for the library.
May i know the current status of ideality ?

Hi :),

I'm working on designer integration

Gopala Krishna
6th November 2006, 12:39
There's a small bug in your library related to DTabbedMainWindow. The bug is that, the tabwidget shows response to wheelEvent even when mouse is not over tabbar. This results in an unexpected result of tabs changing when mouse is scrolled inside tabwidget(not on tabbar).
The following code fixed this problem in my case. But i couldn't make this respond to wheelEvent when mouse is on tabbar over empty area (non tab area).


class TabBarPrivate : public QTabBar
{
Q_OBJECT
public:
TabBarPrivate(QWidget *parent=0l) : QTabBar(parent) {}
~TabBarPrivate() {}

protected:
virtual void wheelEvent( QWheelEvent *e );
void wheelMove( int delta );
};

void TabBarPrivate::wheelEvent( QWheelEvent *ev )
{
wheelMove( ev->delta() );
}

void TabBarPrivate::wheelMove( int delta )
{
if ( count() > 1 )
{
int current = currentIndex();
if ( delta < 0 )
{
current = (current + 1) % count();
}
else
{
current--;
if ( current < 0 )
current = count() - 1;
}
setCurrentIndex( current );
}
}

class TabWidgetPrivate : public QTabWidget
{
Q_OBJECT
public:
TabWidgetPrivate(QWidget *parent = 0);
~TabWidgetPrivate() {}
};

TabWidgetPrivate::TabWidgetPrivate(QWidget *parent) : QTabWidget(parent)
{
setTabBar(new TabBarPrivate);
}