]> git.lyx.org Git - features.git/commitdiff
* make lyx look a bit more like a Mac application by removing frames around the work...
authorStefan Schimanski <sts@lyx.org>
Tue, 4 Mar 2008 18:53:44 +0000 (18:53 +0000)
committerStefan Schimanski <sts@lyx.org>
Tue, 4 Mar 2008 18:53:44 +0000 (18:53 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23459 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiView.cpp
src/frontends/qt4/GuiWorkArea.cpp

index 5b1c65575f25ef790b3345e1fb913c64b4ad3ad6..45a252f592373c8deab9265d0bd1d514b77a1e6e 100644 (file)
@@ -1906,11 +1906,10 @@ void GuiView::lfunUiToggle(FuncRequest const & cmd)
                int l, t, r, b;
                getContentsMargins(&l, &t, &r, &b);
                //are the frames in default state?
+               d.current_work_area_->setFrameStyle(QFrame::NoFrame);
                if (l == 0) {
-                       d.current_work_area_->setFrameStyle(QFrame::NoFrame);
                        setContentsMargins(-2, -2, -2, -2);
                } else {
-                       d.current_work_area_->setFrameStyle(QFrame::NoFrame);
                        setContentsMargins(0, 0, 0, 0);
                }
                return;
index 1229d6b8014eab3d54110e1ee496b6c809a77b9d..9a7c2fd9dad7c06b3c833533cd265ace385b9578 100644 (file)
@@ -47,6 +47,9 @@
 #include <QContextMenuEvent>
 #include <QInputContext>
 #include <QHelpEvent>
+#ifdef Q_WS_MAC
+#include <QMacStyle>
+#endif
 #include <QMainWindow>
 #include <QPainter>
 #include <QPalette>
@@ -248,6 +251,11 @@ GuiWorkArea::GuiWorkArea(Buffer & buffer, GuiView & lv)
        setAcceptDrops(true);
        setMouseTracking(true);
        setMinimumSize(100, 70);
+#ifdef Q_WS_MACX
+       setFrameStyle(QFrame::NoFrame); 
+#else
+       setFrameStyle(QFrame::Box);
+#endif
        updateWindowTitle();
 
        viewport()->setAutoFillBackground(false);
@@ -298,7 +306,11 @@ void GuiWorkArea::setFullScreen(bool full_screen)
                if (lyxrc.full_screen_scrollbar)
                        setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        } else {
+#ifdef Q_WS_MACX
+               setFrameStyle(QFrame::NoFrame); 
+#else
                setFrameStyle(QFrame::Box);
+#endif
                setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
        }
 }
@@ -1115,8 +1127,40 @@ bool GuiWorkArea::isFullScreen()
 //
 ////////////////////////////////////////////////////////////////////
 
+#ifdef Q_WS_MACX
+class NoTabFrameMacStyle : public QMacStyle {
+public:
+       ///
+       QRect subElementRect(SubElement element, const QStyleOption * option,
+                            const QWidget * widget = 0 ) const 
+       {
+               QRect rect = QMacStyle::subElementRect(element, option, widget);
+               bool noBar = static_cast<QTabWidget const *>(widget)->count() <= 1;
+               
+               // The Qt Mac style puts the contents into a 3 pixel wide box
+               // which looks very ugly and not like other Mac applications.
+               // Hence we remove this here, and moreover the 16 pixel round
+               // frame above if the tab bar is hidden.
+               if (element == QStyle::SE_TabWidgetTabContents) {
+                       rect.adjust(- rect.left(), 0, rect.left(), 0);
+                       if (noBar)
+                               rect.setTop(0);
+               }
+
+               return rect;
+       }
+};
+
+NoTabFrameMacStyle noTabFramemacStyle;
+#endif
+
+
 TabWorkArea::TabWorkArea(QWidget * parent) : QTabWidget(parent)
 {
+#ifdef Q_WS_MACX
+       setStyle(&noTabFramemacStyle);
+#endif
+
        QPalette pal = palette();
        pal.setColor(QPalette::Active, QPalette::Button,
                pal.color(QPalette::Active, QPalette::Window));