Subversion Repositories Scribus

Rev

Rev 19093 | Rev 19605 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
4 paul 7
/***************************************************************************
8
                          scribuswin.cpp  -  description
9
                             -------------------
10
    begin                : Mit Nov 6 2002
11
    copyright            : (C) 2002 by Franz Schmid
12
    email                : Franz.Schmid@altmuehlnet.de
13
 ***************************************************************************/
14
 
15
/***************************************************************************
16
 *                                                                         *
17
 *   This program is free software; you can redistribute it and/or modify  *
18
 *   it under the terms of the GNU General Public License as published by  *
19
 *   the Free Software Foundation; either version 2 of the License, or     *
20
 *   (at your option) any later version.                                   *
21
 *                                                                         *
22
 ***************************************************************************/
10190 cbradney 23
 
13805 jghali 24
#include "scribuswin.h"
19015 craig 25
 
26
#include <QApplication>
19080 craig 27
#include <QDir>
19015 craig 28
#include <QMessageBox>
29
 
13805 jghali 30
#include "scribus.h"
19080 craig 31
#include "scribusdoc.h"
19093 craig 32
#include "scribusview.h"
10190 cbradney 33
#include "commonstrings.h"
13576 cbradney 34
#include "ui/storyeditor.h"
10200 cbradney 35
#include "util_icon.h"
204 Franz 36
 
10571 fschmid 37
ScribusWin::ScribusWin(QWidget* parent, ScribusDoc* doc) : QMainWindow(parent)
4 paul 38
{
10571 fschmid 39
        setWindowIcon(loadIcon("AppIcon2.png"));
40
        setAttribute(Qt::WA_DeleteOnClose);
4121 cbradney 41
        m_Doc = doc;
4 paul 42
}
43
 
5312 cbradney 44
void ScribusWin::setMainWindow(ScribusMainWindow *mw)
45
{
46
        m_MainWindow=mw;
47
}
48
 
4121 cbradney 49
void ScribusWin::setView(ScribusView* newView)
4 paul 50
{
4121 cbradney 51
        m_View = newView;
52
        ++m_Doc->viewCount;
19015 craig 53
        m_winIndex = ++m_Doc->viewID;
11981 jghali 54
        setCentralWidget(newView);
18972 craig 55
        setStatusBar(0);
4 paul 56
}
57
 
18957 craig 58
void ScribusWin::slotSaved(QString newName)
81 Franz 59
{
18957 craig 60
        setWindowTitle(QDir::toNativeSeparators(newName));
61
        qApp->processEvents();
19015 craig 62
        emit autoSaved(); //TODO: to update the main window title, do this from the doc?
81 Franz 63
}
64
 
4 paul 65
void ScribusWin::closeEvent(QCloseEvent *ce)
66
{
18728 fschmid 67
        activateWindow();
68
        m_MainWindow->newActWin(getSubWin());
19367 craig 69
        if (m_Doc->isModified() && (m_Doc->viewCount == 1))
204 Franz 70
        {
19367 craig 71
                int exit = QMessageBox::information(m_MainWindow, CommonStrings::trWarning, tr("Document:")+" "+
72
                                                                                        QDir::toNativeSeparators(m_Doc->DocName)+"\n"+
73
                                                                                        tr("has been changed since the last save."),
74
                                                                                        QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel,
75
                                                                                        QMessageBox::Cancel);
76
                if (exit == QMessageBox::Cancel)
9418 fschmid 77
                {
19367 craig 78
                        ce->ignore();
79
                        return;
80
                }
81
                if (exit == QMessageBox::Save)
82
                {
83
                        if (m_MainWindow->slotFileSave())
2637 cbradney 84
                        {
19367 craig 85
                                if (m_Doc == m_MainWindow->storyEditor->currentDocument())
86
                                        m_MainWindow->storyEditor->close();
87
                        }
88
                        else
89
                        {
9418 fschmid 90
                                ce->ignore();
268 Franz 91
                                return;
9418 fschmid 92
                        }
4 paul 93
                }
204 Franz 94
        }
19367 craig 95
        m_MainWindow->DoFileClose();
4121 cbradney 96
        ce->accept();
97
}