[CONFIGURATION]

* NEW: gb.qt5 component.

[EXAMPLES]
* BUG: Fix WebBrowser example.

[INTERPRETER]
* NEW: Fix compilation of EXEC and SHELL for older bytecode versions.

[GB.DB.FORM]
* NEW: Display the busy mouse cursor while loading SQL data.

[GB.QT4]
* NEW: Support for QT5.

[GB.QT5]
* NEW: Initial version of the QT5 component. Not everything is working. 
  There is no Embedder and TrayIcon controls.


git-svn-id: svn://localhost/gambas/trunk@7062 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
Benoît Minisini 2015-05-08 17:40:28 +00:00
parent 2564046c47
commit 43f26cd8ff
198 changed files with 748 additions and 224 deletions

View File

@ -19,6 +19,7 @@ SUBDIRS = \
@v4l_dir@ \
@crypt_dir@ \
@qt4_dir@ \
@qt5_dir@ \
@gtk_dir@ \
@gtk3_dir@ \
@opengl_dir@ \

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -1,8 +1,7 @@
# Gambas Project File 3.0
# Compiled with Gambas 3.5.90
# Compiled with Gambas 3.7.90
Title=Invaders
Startup=MMain
UseTerminal=1
Icon=invaders.png
Version=3.6.2
Component=gb.ncurses
@ -10,4 +9,5 @@ Description="Variant of space invaders using gb.ncurses. Inspired by http://www.
Authors="(C) 2013 Tobias Boege <tobias@gambas-buch.de>"
Environment="LINES=24\nCOLUMNS=80"
TabSize=2
Language=fr
Packager=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -1,5 +1,5 @@
# Gambas Project File 3.0
# Compiled with Gambas 3.5.90
# Compiled with Gambas 3.7.90
Title=Pong
Startup=MMain
UseTerminal=1
@ -8,6 +8,7 @@ Version=3.6.2
Component=gb.ncurses
Description="The Pong game as a gb.ncurses example."
Authors="(C) 2013 Tobias Boege <tobias@gambas-buch.de>"
Environment="LINES=25\nCOLUMNS=80"
TabSize=2
Translate=1
Language=en_GB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,24 +1,26 @@
# Gambas Project File 3.0
# Compiled with Gambas 3.5.90
# Compiled with Gambas 3.7.90
Title=Light browser based on WebKit component
Startup=FBrowser
Icon=konqueror.png
Version=3.6.2
VersionFile=1
Icon=icon.png
Version=1.0.1
Component=gb.image
Component=gb.qt4
Component=gb.form
Component=gb.desktop.x11
Component=gb.desktop
Component=gb.form.dialog
Component=gb.qt4.webkit
Description="Light browser based on the QT4 Webkit component"
TabSize=2
Translate=1
Language=fr
Maintainer=benoit
Vendor=Princeton
Vendor=Example
Address=benoit@desnouettes
License=General Public Licence
Packager=1
Systems=mandriva
Menus=mandriva:"More Applications/Development/Other"
Groups=mandriva:"Development/Other"
Tags=Network,Web,WebBrowser

View File

@ -227,17 +227,25 @@ Private Sub CreateView()
Object.Lock(tabBrowser)
Inc tabBrowser.Count
Object.Lock(tabBrowser)
tabBrowser[iLast + 1].Picture = tabBrowser[iLast].Picture
tabBrowser[iLast + 1].Text = tabBrowser[iLast].Text
tabBrowser[iLast].Text = ""
tabBrowser[iLast].Picture = Null
tabBrowser[iLast].Closable = True
Object.Lock(tabBrowser)
tabBrowser.Index = iLast
hView = New WebView(tabBrowser) As "WebView"
hView.Tag = tabBrowser.Index
hView.Editable = btnEdit.Value
hView.Resize(1, 1)
'hView.Show
'Print WebSettings.Fonts.FixedFont
Object.Unlock(tabBrowser)
Object.Unlock(tabBrowser)
Object.Unlock(tabBrowser)
tabBrowser_Click
txtURL.SetFocus
End

View File

@ -1,10 +1,9 @@
# Gambas Form File 3.0
{ Form Form
MoveScaled(0,0,117,85)
MoveScaled(0,0,169,98)
Text = ("Gambas WebKit")
Icon = Picture["icon:/small/gambas"]
Maximized = True
Arrangement = Arrange.Vertical
{ mnuFont Menu
{ mnuSelectFont Menu mnuSelectFont
@ -51,36 +50,46 @@
MoveScaled(4,0,4,4)
Picture = Picture["icon:/small/right"]
}
{ btnStop ToolButton
MoveScaled(8,0,4,4)
Picture = Picture["icon:/small/delete"]
{ Separator9 Separator
MoveScaled(9,0,0,4)
}
{ btnReload ToolButton
MoveScaled(12,0,4,4)
ToolTip = ("Refresh")
Picture = Picture["icon:/small/refresh"]
}
{ btnClear ToolButton
MoveScaled(16,0,4,4)
Picture = Picture["icon:/small/clear"]
}
{ txtURL TextBox
MoveScaled(20,0,32,4)
{ Panel2 HBox
MoveScaled(12,0,44,4)
Background = Color.TextBackground
Expand = True
{ txtURL TextBox
MoveScaled(0,0,28,4)
Expand = True
Border = False
}
{ btnClear ToolButton
MoveScaled(28,0,4,4)
Picture = Picture["icon:/small/clear"]
}
{ btnStop ToolButton
MoveScaled(33,0,4,4)
Picture = Picture["icon:/small/delete"]
}
{ btnReload ToolButton
MoveScaled(38,0,4,4)
ToolTip = ("Refresh")
Picture = Picture["icon:/small/refresh"]
}
}
{ btnGo ToolButton
MoveScaled(52,0,4,4)
MoveScaled(57,0,4,4)
Visible = False
Picture = Picture["icon:/small/apply"]
}
{ Separator1 Separator
MoveScaled(62,0,0,4)
}
{ btnEdit ToolButton
MoveScaled(60,0,4,4)
MoveScaled(64,0,4,4)
ToolTip = ("Toggle edit mode")
Picture = Picture["icon:/small/edit"]
Toggle = True
}
{ Separator1 Separator
MoveScaled(67,0,1,4)
}
{ btnZoomIn ToolButton
MoveScaled(69,0,4,4)
Picture = Picture["icon:/small/zoom-in"]
@ -94,7 +103,7 @@
Picture = Picture["icon:/small/zoom-normal"]
}
{ Separator2 Separator
MoveScaled(81,0,1,4)
MoveScaled(81,0,0,4)
}
{ btnFind ToolButton
MoveScaled(83,0,4,4)
@ -275,13 +284,17 @@
MenuOnly = True
}
}
{ tabBrowser TabStrip
MoveScaled(1,11,76,43)
{ Separator8 Separator
MoveScaled(8,12,17,0)
}
{ tabBrowser TabPanel
MoveScaled(1,14,76,40)
Expand = True
Arrangement = Arrange.Fill
Closable = True
Border = False
Index = 0
Text = ("")
Picture = Picture["icon:/small/add"]
Index = 0
}
{ panFind HBox

View File

@ -1,27 +1,34 @@
# Gambas Form File 3.0
{ Form Form
MoveScaled(0,0,68,11)
Arrangement = Arrange.Vertical
MoveScaled(0,0,69,13)
Arrangement = Arrange.Fill
Margin = True
{ lblTitle Label
MoveScaled(1,1,48,3)
Expand = True
Text = ("Starting download...")
}
{ lblStatus Label
MoveScaled(1,4,11,2)
Font = Font["Italic,-2"]
}
{ HBox2 HBox
MoveScaled(1,6,65,4)
{ pgbDownload ProgressBar
MoveScaled(0,0,56,4)
{ Panel1 Panel
MoveScaled(1,1,67,11)
Background = Color.Background
Arrangement = Arrange.Vertical
Margin = True
Border = Border.Plain
{ lblTitle Label
MoveScaled(1,1,48,3)
Expand = True
Text = ("Starting download...")
}
{ btnAbort ToolButton
MoveScaled(61,0,4,4)
Picture = Picture["icon:/small/close"]
{ lblStatus Label
MoveScaled(1,4,11,2)
Font = Font["Italic,-2"]
}
{ HBox2 HBox
MoveScaled(1,6,65,4)
{ pgbDownload ProgressBar
MoveScaled(0,0,56,4)
Expand = True
}
{ btnAbort ToolButton
MoveScaled(61,0,4,4)
Picture = Picture["icon:/small/close"]
}
}
}
}

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,9 +1,9 @@
# Gambas Project File 3.0
# Compiled with Gambas 3.6.90
# Compiled with Gambas 3.7.90
Title=gambas3-farm-server
Startup=MMain
Icon=logo.png
Version=3.6.90
Version=3.7.90
VersionFile=1
Component=gb.image
Component=gb.db

View File

@ -1,6 +1,6 @@
' Gambas class file
Public LIMIT_INC As Integer = 128
Public LIMIT_INC As Integer = 256
Event CacheResize()
@ -113,12 +113,15 @@ Private Sub LoadUntil(iIndex As Integer)
If iIndex < $aVal.Count Then Return
Inc Application.Busy
iLimit = (((iIndex - $aVal.Count) \ LIMIT_INC) + 1) * LIMIT_INC
aSort = GetSortKeys()
'sReq = "SELECT " & $aKey.Join(",") & " FROM " & $sTable
'hReq = Request.Select($aKey).From($sTable).Where($sFilter).OrderBy(aSort)
hReq = $DB.SQL.Select($aKey).From($sTable).Where($sFilter).OrderBy(aSort)
If $aVal.Count = 0 Then
@ -146,6 +149,8 @@ Private Sub LoadUntil(iIndex As Integer)
Inc iPos
rData.MoveNext
Wend
Dec Application.Busy
Raise CacheResize
@ -191,6 +196,8 @@ Public Function _get(Index As Integer) As Result
If Not $rData Then
Inc Application.Busy
If $bRequest Then
If $sSort Then
'$rData = $DB.Exec($sTable & " ORDER BY " & $sSort & If($bAscent, "", " DESC"))
@ -208,44 +215,50 @@ Public Function _get(Index As Integer) As Result
$rData = $DB.Exec(hReq())
Endif
Dec Application.Busy
Raise CacheResize
Endif
$rData.MoveTo(Index)
Return $rData
Endif
LoadUntil(Index)
If Index >= $aVal.Count Then Return
If $rData Then
$rData.MoveTo(Index - $iDataIndex)
If $rData.Available Then Return $rData
Endif
' 154,32 e + 10
'$iDataIndex = Max(0, ((Index - (LIMIT_INC \ 2)) \ LIMIT_INC) * LIMIT_INC)
$iDataIndex = Max(0, Index - (LIMIT_INC \ 2))
aSort = GetSortKeys()
If $iDataIndex = 0 Then
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).OrderBy(aSort)
Else
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).Where(Common.MakeNextWhere(aSort, $aVal[$iDataIndex - 1])).OrderBy(aSort)
Endif
$rData = $DB.Limit(LIMIT_INC).Exec(hReq.Get())
'hReq = Request().Where($sFilter).Where(Common.MakeNextWhere($aKey, $aVal[$iDataIndex]))
'$rData = DB.Limit(LIMIT_INC).Edit($sTable, hReq.Get(DB))
$rData.MoveTo(Index - $iDataIndex)
LoadUntil(Index)
If Index >= $aVal.Count Then Return
If $rData Then
$rData.MoveTo(Index - $iDataIndex)
If $rData.Available Then Return $rData
Endif
Inc Application.Busy
'$iDataIndex = Max(0, ((Index - (LIMIT_INC \ 2)) \ LIMIT_INC) * LIMIT_INC)
$iDataIndex = Max(0, Index - (LIMIT_INC \ 2))
aSort = GetSortKeys()
If $iDataIndex = 0 Then
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).OrderBy(aSort)
Else
hReq = $DB.SQL.Select(aCol).From($sTable).Where($sFilter).Where(Common.MakeNextWhere(aSort, $aVal[$iDataIndex - 1])).OrderBy(aSort)
Endif
$rData = $DB.Limit(LIMIT_INC).Exec(hReq.Get())
'hReq = Request().Where($sFilter).Where(Common.MakeNextWhere($aKey, $aVal[$iDataIndex]))
'$rData = DB.Limit(LIMIT_INC).Edit($sTable, hReq.Get(DB))
$rData.MoveTo(Index - $iDataIndex)
Dec Application.Busy
Endif
Return $rData
End
Private Function Keys_Read() As String[]

View File

@ -17,11 +17,11 @@ Path="gb.desktop.gambas"
LastCommit="[GB.DESKTOP]\n* BUG: Change the Mime loading code so it not fail on the first readed glob2 file\n and read all the available files.\n---- Cette ligne et les suivantes seront ignorées ----\n\nM .project\nM .settings\nM .src/DesktopMime.class\nM .src/Tests/Form11.form\nA .src/Tests/Module1.module\nM .startup"
[OpenFile]
File[1]=".src/Desktop.class:589.0"
Active=2
File[1]=".src/Desktop.class:84.13"
Active=3
File[2]=".src/_Desktop_Passwords.class:71.46"
Count=15
File[3]=".src/Main.module:120.62"
File[3]=".src/Main.module:10.62"
File[4]="xdg-utils/xdg-open:343.37"
File[5]=".src/DesktopMime.class:107.2"
File[6]=".src/DesktopFile.class:462.0"

View File

@ -1,7 +1,7 @@
# Gambas Project File 3.0
# Compiled with Gambas 3.7.90
Title=gb.gui.base
Startup=FTestCombo
Startup=FMain
Version=3.7.90
VersionFile=1
Component=gb.image

View File

@ -10,6 +10,21 @@
Text = ("Button1")
}
}
{ HBox2 HBox
MoveScaled(2,7,73,4)
{ CheckBox1 CheckBox
MoveScaled(1,1,20,3)
Action = "test"
}
{ CheckBox2 CheckBox
MoveScaled(22,1,20,3)
Action = "check"
}
{ ToggleButton1 ToggleButton
MoveScaled(42,0,19,4)
Action = "test"
}
}
{ HSplit1 HSplit
MoveScaled(4,12,68,40)
Expand = True
@ -28,3 +43,16 @@
}
}
}
# Gambas Action File 3.0
{ Actions
{ Action check
Text = ""
Picture = "$CheckBox"
}
{ Action test
Text = ""
Picture = "$CheckBox"
}
}

View File

@ -1,4 +1,4 @@
FTestCombo
FMain
gb.gui.base
0
0

View File

@ -30,6 +30,7 @@ GB_CONFIG_SUBDIRS(xml, gb.xml)
GB_CONFIG_SUBDIRS(v4l, gb.v4l)
GB_CONFIG_SUBDIRS(crypt, gb.crypt)
GB_CONFIG_SUBDIRS(qt4, gb.qt4)
GB_CONFIG_SUBDIRS(qt5, gb.qt5)
GB_CONFIG_SUBDIRS(gtk, gb.gtk)
GB_CONFIG_SUBDIRS(gtk3, gb.gtk3)
GB_CONFIG_SUBDIRS(opengl, gb.opengl)

View File

@ -56,7 +56,7 @@ void MyCheckBox::adjust(bool force)
a = _autoResize;
_autoResize = false;
hint = sizeHint();
CWIDGET_resize(THIS, hint.width(), QMAX(hint.height(), height()));
CWIDGET_resize(THIS, hint.width(), qMax(hint.height(), height()));
_autoResize = a;
}

View File

@ -30,6 +30,7 @@
#include <QImage>
#include <QEvent>
#include <QColor>
#include <QDrag>
#include <QDragMoveEvent>
#include <QDropEvent>
#include <QDragEnterEvent>
@ -37,6 +38,7 @@
#include <QLineEdit>
#include <QTextEdit>
#include <QSpinBox>
#include <QWidget>
#include "CWidget.h"
#include "CImage.h"

View File

@ -162,7 +162,7 @@ static QString my_getOpenFileName()
{
QFileDialog dialog(qApp->activeWindow(), dialog_title, dialog_path, get_filter());
dialog.setMode(QFileDialog::ExistingFile);
dialog.setFileMode(QFileDialog::ExistingFile);
dialog.setOption(QFileDialog::DontUseNativeDialog);
dialog.setFilter(dialog_show_hidden ? (dialog.filter() | QDir::Hidden | QDir::System) : (dialog.filter() & ~(QDir::Hidden | QDir::System)));
@ -176,7 +176,7 @@ static QStringList my_getOpenFileNames()
{
QFileDialog dialog(qApp->activeWindow(), dialog_title, dialog_path, get_filter());
dialog.setMode(QFileDialog::ExistingFiles);
dialog.setFileMode(QFileDialog::ExistingFiles);
dialog.setOption(QFileDialog::DontUseNativeDialog);
dialog.setFilter(dialog_show_hidden ? (dialog.filter() | QDir::Hidden | QDir::System) : (dialog.filter() & ~(QDir::Hidden | QDir::System)));
@ -205,7 +205,7 @@ static QString my_getSaveFileName()
dialog.selectFile(file);
dialog.setAcceptMode(QFileDialog::AcceptSave);
dialog.setMode(QFileDialog::AnyFile);
dialog.setFileMode(QFileDialog::AnyFile);
dialog.setOption(QFileDialog::DontUseNativeDialog);
dialog.setFilter(dialog_show_hidden ? (dialog.filter() | QDir::Hidden | QDir::System) : (dialog.filter() & ~(QDir::Hidden | QDir::System)));
@ -219,7 +219,7 @@ static QString my_getExistingDirectory()
{
QFileDialog dialog(qApp->activeWindow(), dialog_title, dialog_path);
dialog.setMode(QFileDialog::Directory);
dialog.setFileMode(QFileDialog::Directory);
dialog.setOption(QFileDialog::DontUseNativeDialog);
if (dialog.exec() == QDialog::Accepted)

View File

@ -37,6 +37,7 @@
#include "CColor.h"
#include "CDrawingArea.h"
#ifndef QT5
#ifndef NO_X_WINDOW
#include <QX11Info>
#include <X11/Xlib.h>
@ -45,6 +46,7 @@
#ifdef FontChange
#undef FontChange
#endif
#endif
DECLARE_EVENT(EVENT_Draw);
DECLARE_EVENT(EVENT_Font);
@ -60,7 +62,9 @@ MyDrawingArea::MyDrawingArea(QWidget *parent) : MyContainer(parent)
{
drawn = 0;
cache = 0;
#ifndef QT5
_background = (Qt::HANDLE)0;
#endif
_frozen = false;
_event_mask = 0;
_set_background = true;
@ -86,6 +90,7 @@ MyDrawingArea::~MyDrawingArea()
void MyDrawingArea::setVisible(bool visible)
{
MyContainer::setVisible(visible);
#ifndef QT5
if (_cached)
{
if (visible)
@ -93,6 +98,7 @@ void MyDrawingArea::setVisible(bool visible)
else
parentWidget()->update();
}
#endif
}
void MyDrawingArea::setAllowFocus(bool f)
@ -114,7 +120,8 @@ void MyDrawingArea::setFrozen(bool f)
if (f == _frozen)
return;
#ifndef NO_X_WINDOW
#ifndef QT5
#ifndef NO_X_WINDOW
XWindowAttributes attr;
if (f)
@ -133,17 +140,15 @@ void MyDrawingArea::setFrozen(bool f)
//qDebug("unfrozen");
}
XFlush(QX11Info::display());
#endif
#endif
#endif
_frozen = f;
}
static void cleanup_drawing(intptr_t _object)
{
//if (WIDGET->isPaint())
PAINT_end();
//else
// DRAW_end();
PAINT_end();
}
void MyDrawingArea::redraw(QRect &r, bool frame)
@ -210,13 +215,18 @@ void MyDrawingArea::redraw(QRect &r, bool frame)
void MyDrawingArea::createBackground(int w, int h)
{
void *_object = CWidget::get(this);
QX11Info xinfo = x11Info();
QPixmap p;
#ifndef QT5
QX11Info xinfo = x11Info();
Qt::HANDLE old = _background;
//GC gc;
#endif
#ifndef QT5
_background = (Qt::HANDLE)XCreatePixmap(QX11Info::display(), RootWindow(QX11Info::display(), xinfo.screen()), w, h, xinfo.depth());
_background_pixmap = QPixmap::fromX11Pixmap(_background, QPixmap::ExplicitlyShared);
#else
_background_pixmap = QPixmap(w, h);
#endif
_background_w = w;
_background_h = h;
@ -235,33 +245,42 @@ void MyDrawingArea::createBackground(int w, int h)
_background_pixmap.fill(CCOLOR_make(CWIDGET_get_real_background((CWIDGET *)THIS)));
//qDebug("XSetWindowBackgroundPixmap: %08X %08X", (int)winId(), (int)_background);
#ifndef QT5
XSetWindowBackgroundPixmap(QX11Info::display(), winId(), _background);
XClearArea(QX11Info::display(), winId(), 0, 0, 0, 0, True);
_cached = true;
if (old)
XFreePixmap(QX11Info::display(), (Pixmap)old);
XFlush(QX11Info::display());
#else
update();
#endif
_cached = true;
}
void MyDrawingArea::deleteBackground()
{
if (_cached && _background)
if (hasCacheBackground())
{
#ifndef QT5
//qDebug("XSetWindowBackgroundPixmap: %08X None", (int)winId());
XSetWindowBackgroundPixmap(QX11Info::display(), winId(), None);
XFreePixmap(QX11Info::display(), (Pixmap)_background);
XFlush(QX11Info::display());
_cached = false;
_background = 0;
#else
_background_pixmap = QPixmap();
#endif
_cached = false;
_background_w = _background_h = 0;
}
}
QPixmap *MyDrawingArea::getBackgroundPixmap()
{
if (!_cached || !_background)
if (!hasCacheBackground())
return NULL;
else
return &_background_pixmap;
@ -271,7 +290,8 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
{
if (_cached)
{
#ifndef NO_X_WINDOW
#ifndef QT5
#ifndef NO_X_WINDOW
if (_set_background)
{
//qDebug("XSetWindowBackgroundPixmap: %08X %08X (paint)", (int)winId(), (int)_background);
@ -279,9 +299,14 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
XFlush(QX11Info::display());
_set_background = false;
}
#endif
#endif
#endif
QPainter p(this);
#ifdef QT5
p.drawPixmap(0, 0, _background_pixmap);
#endif
if (frameWidth())
{
@ -299,7 +324,7 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
//QPainter paint( this );
QRect r;
r = event->rect().intersect(contentsRect());
r = event->rect().intersected(contentsRect());
if (r.isValid())
{
/*if (!isTransparent())
@ -322,33 +347,27 @@ void MyDrawingArea::paintEvent(QPaintEvent *event)
void MyDrawingArea::setBackground()
{
#ifndef QT5
if (_cached)
{
#ifdef NO_X_WINDOW
setErasePixmap(*_background);
#else
//if (isVisible())
// XSetWindowBackgroundPixmap(QX11Info::display(), winId(), _background->handle());
//else
//_set_background = true;
XSetWindowBackgroundPixmap(QX11Info::display(), winId(), _background);
XFlush(QX11Info::display());
refreshBackground();
#endif
}
#endif
}
void MyDrawingArea::refreshBackground()
{
if (_cached)
{
#ifdef NO_X_WINDOW
update();
#else
#ifndef QT5
int fw = frameWidth();
XClearArea(QX11Info::display(), winId(), fw, fw, width() - fw * 2, height() - fw * 2, False);
XFlush(QX11Info::display());
#endif
#else
update();
#endif
}
}
@ -367,8 +386,12 @@ void MyDrawingArea::clearBackground()
}
else
{
#ifndef QT5
XClearArea(QX11Info::display(), winId(), 0, 0, 0, 0, True);
XFlush(QX11Info::display());
#else
update();
#endif
}
}
@ -380,7 +403,10 @@ void MyDrawingArea::resizeEvent(QResizeEvent *e)
void MyDrawingArea::updateBackground()
{
int wb, hb, w, h;
int w, h;
#ifndef QT5
int wb, hb;
#endif
if (drawn)
{
@ -390,15 +416,16 @@ void MyDrawingArea::updateBackground()
if (_cached)
{
w = QMAX(width(), 1);
h = QMAX(height(), 1);
w = qMax(width(), 1);
h = qMax(height(), 1);
if (w != _background_w || h != _background_h)
{
#ifndef QT5
Qt::HANDLE old = _background;
wb = QMIN(w, _background_w);
hb = QMIN(h, _background_h);
wb = qMin(w, _background_w);
hb = qMin(h, _background_h);
_background = 0;
createBackground(w, h);
@ -408,6 +435,13 @@ void MyDrawingArea::updateBackground()
XFreeGC(QX11Info::display(), gc);
XFreePixmap(QX11Info::display(), old);
#else
QPixmap old = _background_pixmap;
createBackground(w, h);
QPainter p(&_background_pixmap);
p.drawPixmap(0, 0, old);
p.end();
#endif
setBackground();
}
@ -444,7 +478,8 @@ void MyDrawingArea::updateCache()
setBackgroundMode(Qt::NoBackground);
#else
//XClearArea(QX11Info::display(), winId(), 0, 0, 0, 0, True);
repaint();
//repaint();
update();
#endif
}
@ -465,7 +500,7 @@ void MyDrawingArea::setPalette(const QPalette &pal)
if (_cached)
return;
MyContainer::setPalette(pal);
repaint();
update();
}
void MyDrawingArea::updateNoBackground()

View File

@ -73,11 +73,11 @@ public:
void updateCache();
void setCached(bool);
bool isCached() const { return _cached; }
//QPixmap *getCache(void) { return cache; }
//void refreshCache(void) { if (cache) setBackgroundPixmap(*cache); }
void clearBackground();
#ifndef QT5
Qt::HANDLE background() const { return _background; }
#endif
void refreshBackground();
void updateBackground();
@ -97,6 +97,11 @@ public:
bool inDrawEvent() const { return _in_draw_event; }
void createBackground(int w, int h);
#ifndef QT5
bool hasCacheBackground() const { return _cached && _background; }
#else
bool hasCacheBackground() const { return _cached && !_background_pixmap.isNull(); }
#endif
void deleteBackground();
QPixmap *getBackgroundPixmap();
@ -121,7 +126,9 @@ protected:
private:
QPixmap _background_pixmap;
#ifndef QT5
Qt::HANDLE _background;
#endif
int _background_w, _background_h;
bool _frozen;
bool _merge;

View File

@ -59,7 +59,7 @@ void MyRadioButton::adjust(bool force)
a = _autoResize;
_autoResize = false;
hint = sizeHint();
CWIDGET_resize(THIS, hint.width(), QMAX(hint.height(), height()));
CWIDGET_resize(THIS, hint.width(), qMax(hint.height(), height()));
_autoResize = a;
}

View File

@ -244,6 +244,12 @@ END_PROPERTY
BEGIN_PROPERTY(Application_Embedder)
#ifdef QT5
if (READ_PROPERTY)
GB.ReturnInteger(0);
else
GB.Deprecated("gb.qt5", "Application.Embedder", NULL);
#else
if (READ_PROPERTY)
GB.ReturnInteger(CWINDOW_Embedder);
else
@ -257,8 +263,9 @@ BEGIN_PROPERTY(Application_Embedder)
CWINDOW_Embedder = VPROP(GB_INTEGER);
}
END_PROPERTY
#endif
END_PROPERTY
BEGIN_PROPERTY(Application_Theme)

View File

@ -126,7 +126,7 @@ void MyContents::autoResize(void)
#endif
if (sw->getScrollbar())
sbsize = qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent) + QMAX(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing));
sbsize = qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent) + qMax(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing));
else
sbsize = 0;

View File

@ -275,7 +275,7 @@ END_PROPERTY
BEGIN_PROPERTY(Style_ScrollbarSpacing)
GB.ReturnInteger(QMAX(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing)));
GB.ReturnInteger(qMax(0, qApp->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing)));
END_PROPERTY
@ -305,6 +305,11 @@ BEGIN_PROPERTY(Style_Name)
len -= 5;
if (len >= 3 && strncmp(&name[len - 2], "::", 2) == 0)
len -= 2;
if (name[0] == 'Q' && isupper(name[1]))
{
len--;
name++;
}
GB.ReturnNewString(name, len);

View File

@ -340,7 +340,7 @@ static void raise_click_event(void *_object)
static int combo_get_current_item(void *_object)
{
COMBOBOX->sort();
return COMBOBOX->count() == 0 ? -1 : COMBOBOX->currentItem();
return COMBOBOX->count() == 0 ? -1 : COMBOBOX->currentIndex();
}
static void combo_set_current_item(void *_object, int item)
@ -350,7 +350,7 @@ static void combo_set_current_item(void *_object, int item)
if (item != combo_get_current_item(THIS))
{
if (item < COMBOBOX->count())
COMBOBOX->setCurrentItem(item);
COMBOBOX->setCurrentIndex(item);
}
if (item >= 0 && !COMBOBOX->signalsBlocked())
@ -362,7 +362,7 @@ static int combo_find_item(void *_object, const QString& s)
COMBOBOX->sort();
for (int i = 0; i < (int)COMBOBOX->count(); i++)
{
if (COMBOBOX->text(i) == s)
if (COMBOBOX->itemText(i) == s)
return i;
}
@ -435,7 +435,7 @@ static void combo_get_list(void *_object, GB_ARRAY array)
COMBOBOX->sort();
for (i = 0; i < COMBOBOX->count(); i++)
{
*((char **)GB.Array.Get(array, i)) = NEW_STRING(COMBOBOX->text(i));
*((char **)GB.Array.Get(array, i)) = NEW_STRING(COMBOBOX->itemText(i));
}
}
@ -452,7 +452,7 @@ static void combo_set_list(void *_object, GB_ARRAY array)
{
for (i = 0; i < GB.Array.Count(array); i++)
{
COMBOBOX->insertItem(TO_QSTRING(*((char **)GB.Array.Get(array, i))));
COMBOBOX->insertItem(i, TO_QSTRING(*((char **)GB.Array.Get(array, i))));
}
}

View File

@ -51,9 +51,11 @@
#include "main.h"
#ifndef NO_X_WINDOW
#ifndef QT5
#include <QX11EmbedWidget>
#include <QX11EmbedContainer>
#endif
#endif
#include "gambas.h"
@ -107,9 +109,11 @@ CWINDOW *CWINDOW_Current = 0;
CWINDOW *CWINDOW_LastActive = 0;
CWINDOW *CWINDOW_Active = 0;
#ifndef QT5
int CWINDOW_Embedder = 0;
bool CWINDOW_Embedded = false;
static int CWINDOW_EmbedState = 0;
#endif
#ifndef NO_X_WINDOW
void CWINDOW_change_property(QWidget *w, Atom property, bool set)
@ -338,16 +342,19 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
MyMainWindow *win = 0;
MyContainer *container;
#ifndef NO_X_WINDOW
#ifndef NO_X_WINDOW
#ifndef QT5
QX11EmbedWidget *client = 0;
#endif
#endif
#endif
const char *name = GB.GetClassName(THIS);
//THIS->widget.flag.fillBackground = true;
if (MISSING(parent) || !VARG(parent))
{
#ifndef NO_X_WINDOW
#ifndef NO_X_WINDOW
#ifndef QT5
if (CWINDOW_Embedder && !CWINDOW_Embedded)
{
client = new QX11EmbedWidget;
@ -360,7 +367,8 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
THIS->xembed = true;
}
else
#endif
#endif
#endif
{
//win = new MyMainWindow(CWINDOW_Main ? (MyMainWindow *)QWIDGET(CWINDOW_Main) : 0, name);
win = new MyMainWindow(0, name);
@ -420,7 +428,8 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
}*/
}
#ifndef NO_X_WINDOW
#ifndef NO_X_WINDOW
#ifndef QT5
if (THIS->xembed)
{
CWINDOW_Embedded = true;
@ -452,7 +461,8 @@ BEGIN_METHOD(Window_new, GB_OBJECT parent)
GB.Error("Embedding has failed");
}
}
#endif
#endif
#endif
#if 1
if (THIS->embedded && !THIS->xembed)
@ -674,10 +684,12 @@ BEGIN_METHOD_VOID(Window_Show)
{
CWIDGET_set_visible((CWIDGET *)THIS, true);
CWIDGET_check_visibility((CWIDGET *)THIS);
#ifndef NO_X_WINDOW
if (THIS->xembed)
XEMBED->show();
#endif
#ifndef NO_X_WINDOW
#ifndef QT5
if (THIS->xembed)
XEMBED->show();
#endif
#endif
post_show_event(THIS);
}
else
@ -2117,10 +2129,12 @@ void MyMainWindow::resizeEvent(QResizeEvent *e)
CCONTAINER_arrange(THIS);
}
#ifndef NO_X_WINDOW
if (THIS->xembed)
XEMBED->resize(THIS->w, THIS->h);
#endif
#ifndef NO_X_WINDOW
#ifndef QT5
if (THIS->xembed)
XEMBED->resize(THIS->w, THIS->h);
#endif
#endif
//qDebug("resizeEvent %ld %ld isHidden:%s shown:%s ", THIS->w, THIS->h, isHidden() ? "1" : "0", shown ? "1" : "0");
//qDebug("THIS->h = %ld THIS->container->height() = %ld height() = %ld", THIS->h, THIS->container->height(), height());
@ -2738,7 +2752,19 @@ bool CWindow::eventFilter(QObject *o, QEvent *e)
return QObject::eventFilter(o, e); // standard event processing
}
#ifdef QT5
void CWindow::error(void)
{
}
void CWindow::embedded(void)
{
}
void CWindow::closed(void)
{
}
#else
void CWindow::error(void)
{
//CWINDOW *_object = (CWINDOW *)CWidget::getReal((QObject *)sender());
@ -2760,6 +2786,7 @@ void CWindow::closed(void)
//CWIDGET_destroy(CWidget::getReal((QObject *)sender()));
delete sender();
}
#endif
void CWindow::destroy(void)
{
@ -2772,9 +2799,11 @@ void CWindow::destroy(void)
CWindow::removeTopLevel(THIS);
}
#ifndef QT5
CWINDOW_EmbedState = EMBED_WAIT;
CWINDOW_Embedded = false;
CWINDOW_Embedder = 0;
#endif
}
void CWindow::insertTopLevel(CWINDOW *_object)

View File

@ -111,15 +111,20 @@ extern int CWINDOW_MainDesktop;
extern CWINDOW *CWINDOW_Current;
extern CWINDOW *CWINDOW_Active;
extern CWINDOW *CWINDOW_LastActive;
#ifndef QT5
extern int CWINDOW_Embedder;
extern bool CWINDOW_Embedded;
#endif
#else
#define THIS ((CWINDOW *)_object)
#define WIDGET ((QWidget *)(((CWIDGET *)_object)->widget))
#define WINDOW ((MyMainWindow *)WIDGET)
#ifndef QT5
#define XEMBED ((QX11EmbedWidget *)(WIDGET->parent()))
#endif
#endif

View File

@ -113,8 +113,10 @@ static bool init_painting(GB_PAINT *d, QPaintDevice *device)
EXTRA(d)->painter = new QPainter(device);
}
#ifndef QT5
MyPaintEngine *engine = (MyPaintEngine *)device->paintEngine();
engine->patchFeatures();
#endif
//EXTRA(d)->path = NULL;
//EXTRA(d)->clip = NULL;

View File

@ -218,7 +218,7 @@ END_PROPERTY
BEGIN_PROPERTY(Printer_Name)
if (READ_PROPERTY)
GB.ReturnNewZeroString(PRINTER->printerName());
RETURN_NEW_STRING(PRINTER->printerName());
else
PRINTER->setPrinterName(QSTRING_PROP());
@ -425,7 +425,7 @@ END_PROPERTY
BEGIN_PROPERTY(Printer_OutputFile)
if (READ_PROPERTY)
GB.ReturnNewZeroString(PRINTER->outputFileName());
RETURN_NEW_STRING(PRINTER->outputFileName());
else
PRINTER->setOutputFileName(TO_QSTRING(GB.FileName(PSTRING(), PLENGTH())));
@ -438,7 +438,7 @@ BEGIN_PROPERTY(Printer_Default)
if (info.isNull())
GB.ReturnNull();
else
GB.ReturnNewZeroString(info.printerName());
RETURN_NEW_STRING(info.printerName());
END_PROPERTY
@ -449,7 +449,7 @@ BEGIN_PROPERTY(Printer_List)
GB.Array.New(&array, GB_T_STRING, list.length());
for (int i = 0; i < list.length(); i++)
*((char **)GB.Array.Get(array, i)) = GB.NewZeroString(list.at(i).printerName());
*((char **)GB.Array.Get(array, i)) = NEW_STRING(list.at(i).printerName());
GB.ReturnObject(array);

View File

@ -46,6 +46,10 @@
#define QT_INTERFACE_VERSION 1
#if QT_VERSION >= 0x050000
#define QT5 1
#endif
#define TO_QSTRING(_str) (QString::fromUtf8((const char *)(_str)))
#ifdef DO_NOT_USE_QT_INTERFACE

View File

@ -97,8 +97,10 @@
#ifndef NO_X_WINDOW
#include <QX11Info>
#ifndef QT5
#include "CEmbedder.h"
#include "CTrayIcon.h"
#endif
#include "x11.h"
#endif
@ -553,6 +555,7 @@ static void x11_set_event_filter(void (*filter)(XEvent *))
_x11_event_filter = filter;
}
#ifndef QT5
bool MyApplication::x11EventFilter(XEvent *e)
{
// Workaround for input methods that void the key code of KeyRelease eventFilter
@ -568,6 +571,8 @@ bool MyApplication::x11EventFilter(XEvent *e)
}
#endif
#endif
/** MyTimer ****************************************************************/
MyTimer::MyTimer(GB_TIMER *t) : QObject(0)
@ -637,7 +642,11 @@ static bool must_quit(void)
#if DEBUG_WINDOW
qDebug("must_quit: Window = %d Watch = %d in_event_loop = %d", CWindow::count, CWatch::count, in_event_loop);
#endif
#ifdef QT5
return CWINDOW_must_quit() && CWatch::count == 0 && in_event_loop && MAIN_in_message_box == 0;
#else
return CWINDOW_must_quit() && CWatch::count == 0 && in_event_loop && MAIN_in_message_box == 0 && TRAYICON_count == 0;
#endif
}
static void check_quit_now(intptr_t param)
@ -648,10 +657,12 @@ static void check_quit_now(intptr_t param)
{
if (QApplication::instance())
{
#ifndef NO_X_WINDOW
#ifndef NO_X_WINDOW
#ifndef QT5
CTRAYICON_close_all();
qApp->syncX();
#endif
#endif
#endif
qApp->exit();
exit_called = true;
}
@ -1053,9 +1064,12 @@ GB_DESC *GB_CLASSES[] EXPORT =
CSliderDesc, CSpinBoxDesc, CMovieBoxDesc, CScrollBarDesc,
CWindowMenusDesc, CWindowControlsDesc, CWindowDesc, CWindowsDesc, CFormDesc,
CDialogDesc,
#ifndef NO_X_WINDOW
CEmbedderDesc, CTrayIconDesc, CTrayIconsDesc,
#endif
#ifndef NO_X_WINDOW
#ifndef QT5
CEmbedderDesc,
CTrayIconDesc, CTrayIconsDesc,
#endif
#endif
CWatcherDesc,
PrinterDesc,
SvgImageDesc,
@ -1256,7 +1270,9 @@ void EXPORT GB_SIGNAL(int signal, void *param)
case GB_SIGNAL_DEBUG_FORWARD:
//while (qApp->activePopupWidget())
// delete qApp->activePopupWidget();
#ifndef QT5
qApp->syncX();
#endif
break;
case GB_SIGNAL_DEBUG_CONTINUE:

View File

@ -1,29 +1,30 @@
/***************************************************************************
main.h
main.h
(c) 2000-2013 Benoît Minisini <gambas@users.sourceforge.net>
(c) 2000-2013 Benoît Minisini <gambas@users.sourceforge.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
***************************************************************************/
#ifndef __MAIN_H
#define __MAIN_H
#include "gb_common.h"
#include "gambas.h"
#include <QEvent>
@ -72,62 +73,61 @@ extern GB_CLASS CLASS_TextArea;
class MyPostCheck: public QObject
{
Q_OBJECT
Q_OBJECT
public:
static bool in_check;
static bool in_check;
public slots:
void check(void);
void check(void);
};
class MyApplication: public QApplication
{
Q_OBJECT
Q_OBJECT
public:
MyApplication(int &argc, char **argv);
#ifndef NO_X_WINDOW
virtual bool x11EventFilter(XEvent *e);
#endif
virtual bool eventFilter(QObject *o, QEvent *e);
//virtual bool notify(QObject *o, QEvent *e);
static void setEventFilter(bool set);
static bool isTooltipEnabled() { return !_tooltip_disable; }
static void setTooltipEnabled(bool b);
MyApplication(int &argc, char **argv);
#ifndef QT5
virtual bool x11EventFilter(XEvent *e);
#endif
virtual bool eventFilter(QObject *o, QEvent *e);
//virtual bool notify(QObject *o, QEvent *e);
static void setEventFilter(bool set);
static bool isTooltipEnabled() { return !_tooltip_disable; }
static void setTooltipEnabled(bool b);
static void initClipboard();
static QEventLoop *eventLoop;
static QEventLoop *eventLoop;
public slots:
void linkDestroyed(QObject *);
void clipboardHasChanged();
void commitDataRequested(QSessionManager &);
private:
static bool _tooltip_disable;
static int _event_filter;
static bool _tooltip_disable;
static int _event_filter;
};
class MyTimer : public QObject
{
public:
MyTimer(GB_TIMER *timer);
~MyTimer();
MyTimer(GB_TIMER *timer);
~MyTimer();
void clearTimer() { timer = 0; }
protected:
void timerEvent(QTimerEvent *);
void timerEvent(QTimerEvent *);
private:

View File

@ -80,7 +80,7 @@
// We mean it.
//
#include "systemtrayicon.h"
//#include "systemtrayicon.h"
//#include "private/qobject_p.h"
#include <QPixmap>

0
gb.qt5/AUTHORS Normal file
View File

1
gb.qt5/COPYING Symbolic link
View File

@ -0,0 +1 @@
../COPYING

0
gb.qt5/ChangeLog Normal file
View File

1
gb.qt5/INSTALL Symbolic link
View File

@ -0,0 +1 @@
../INSTALL

3
gb.qt5/Makefile.am Normal file
View File

@ -0,0 +1,3 @@
ACLOCAL_AMFLAGS = -I m4 --install
SUBDIRS = @QT5_DIR@
EXTRA_DIST = reconf share gb*.h gambas.h

0
gb.qt5/NEWS Normal file
View File

0
gb.qt5/README Normal file
View File

1
gb.qt5/acinclude.m4 Symbolic link
View File

@ -0,0 +1 @@
../acinclude.m4

1
gb.qt5/component.am Symbolic link
View File

@ -0,0 +1 @@
../component.am

45
gb.qt5/configure.ac Normal file
View File

@ -0,0 +1,45 @@
dnl ---- configure.ac for gb.qt5
m4_include([../version.m4])
AC_INIT(gambas3-gb-qt5, GB_VERSION, GB_MAIL, [], GB_URL)
AC_CONFIG_MACRO_DIR([m4])
GB_INIT(gb.qt5)
AC_PROG_LIBTOOL
GB_CHECK_XWINDOW
AM_CONDITIONAL(XWINDOW, test x"$have_x" = xyes)
GB_COMPONENT_PKG_CONFIG(
qt5, QT5, gb.qt5, [src],
'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets Qt5Svg Qt5PrintSupport Qt5X11Extras
)
## GB_COMPONENT_PKG_CONFIG(
## qt5ext, QT5EXT, gb.qt5.ext, [ext],
## 'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets
## )
## GB_COMPONENT_PKG_CONFIG(
## qt5webkit, QT5WEBKIT, gb.qt5.webkit, [webkit],
## 'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets Qt5Network Qt5Xml Qt5WebKit Qt5WebKitWidgets Qt5PrintSupport
## )
## GB_COMPONENT_PKG_CONFIG(
## qtopengl, QTOPENGL, gb.qt5.opengl, [opengl],
## 'Qt5Core >= 5.3.0' Qt5Gui Qt5Widgets Qt5OpenGL
## )
MOC=`pkg-config --variable=host_bins Qt5Core`/moc
AC_SUBST(MOC)
AC_OUTPUT( \
Makefile \
src/Makefile \
)
## src/ext/Makefile \
## src/webkit/Makefile \
## src/opengl/Makefile \
GB_PRINT_MESSAGES

1
gb.qt5/depcomp Symbolic link
View File

@ -0,0 +1 @@
../depcomp

1
gb.qt5/gambas.h Symbolic link
View File

@ -0,0 +1 @@
../main/share/gambas.h

1
gb.qt5/gb.draw.h Symbolic link
View File

@ -0,0 +1 @@
../main/lib/draw/gb.draw.h

1
gb.qt5/gb.eval.h Symbolic link
View File

@ -0,0 +1 @@
../main/lib/eval/gb.eval.h

1
gb.qt5/gb.geom.h Symbolic link
View File

@ -0,0 +1 @@
../main/lib/geom/gb.geom.h

1
gb.qt5/gb.gl.h Symbolic link
View File

@ -0,0 +1 @@
../gb.opengl/src/gb.gl.h

1
gb.qt5/gb.image.h Symbolic link
View File

@ -0,0 +1 @@
../main/lib/image/gb.image.h

1
gb.qt5/gb.paint.h Symbolic link
View File

@ -0,0 +1 @@
../main/lib/draw/gb.paint.h

6
gb.qt5/gb.qt.am Normal file
View File

@ -0,0 +1,6 @@
CLEANFILES = *_moc.cpp
.h_moc.cpp:
$(MOC) -o $@ $<
SUFFIXES = .h _moc.cpp

1
gb.qt5/gb_common.h Symbolic link
View File

@ -0,0 +1 @@
../main/share/gb_common.h

1
gb.qt5/m4 Symbolic link
View File

@ -0,0 +1 @@
../m4

1
gb.qt5/missing Symbolic link
View File

@ -0,0 +1 @@
../missing

1
gb.qt5/reconf Symbolic link
View File

@ -0,0 +1 @@
../reconf

1
gb.qt5/share Symbolic link
View File

@ -0,0 +1 @@
../gb.qt4/share

1
gb.qt5/src/CButton.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CButton.cpp

1
gb.qt5/src/CButton.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CButton.h

1
gb.qt5/src/CCheckBox.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CCheckBox.cpp

1
gb.qt5/src/CCheckBox.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CCheckBox.h

1
gb.qt5/src/CClipboard.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CClipboard.cpp

1
gb.qt5/src/CClipboard.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CClipboard.h

1
gb.qt5/src/CColor.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CColor.cpp

1
gb.qt5/src/CColor.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CColor.h

1
gb.qt5/src/CConst.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CConst.cpp

1
gb.qt5/src/CConst.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CConst.h

1
gb.qt5/src/CContainer.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CContainer.cpp

1
gb.qt5/src/CContainer.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CContainer.h

1
gb.qt5/src/CDialog.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CDialog.cpp

1
gb.qt5/src/CDialog.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CDialog.h

1
gb.qt5/src/CDraw.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CDraw.cpp

1
gb.qt5/src/CDraw.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CDraw.h

1
gb.qt5/src/CDrawingArea.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CDrawingArea.cpp

1
gb.qt5/src/CDrawingArea.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CDrawingArea.h

1
gb.qt5/src/CEmbedder.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CEmbedder.cpp

1
gb.qt5/src/CEmbedder.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CEmbedder.h

1
gb.qt5/src/CFont.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CFont.cpp

1
gb.qt5/src/CFont.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CFont.h

1
gb.qt5/src/CFrame.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CFrame.cpp

1
gb.qt5/src/CFrame.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CFrame.h

1
gb.qt5/src/CImage.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CImage.cpp

1
gb.qt5/src/CImage.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CImage.h

1
gb.qt5/src/CKey.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CKey.cpp

1
gb.qt5/src/CKey.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CKey.h

1
gb.qt5/src/CLabel.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CLabel.cpp

1
gb.qt5/src/CLabel.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CLabel.h

1
gb.qt5/src/CMenu.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMenu.cpp

1
gb.qt5/src/CMenu.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMenu.h

1
gb.qt5/src/CMessage.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMessage.cpp

1
gb.qt5/src/CMessage.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMessage.h

1
gb.qt5/src/CMouse.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMouse.cpp

1
gb.qt5/src/CMouse.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMouse.h

1
gb.qt5/src/CMovieBox.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMovieBox.cpp

1
gb.qt5/src/CMovieBox.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CMovieBox.h

1
gb.qt5/src/CPanel.cpp Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CPanel.cpp

1
gb.qt5/src/CPanel.h Symbolic link
View File

@ -0,0 +1 @@
../../gb.qt4/src/CPanel.h

Some files were not shown because too many files have changed in this diff Show More