22 #include <QCommandLineParser> 25 #include <QMutableListIterator> 29 #include <KConfigGroup> 30 #include <KHelpClient> 31 #include <KLocalizedString> 32 #include <KSharedConfig> 52 #define MAX_RECENT_FILES 20 56 :QApplication(argc, argv),
62 qRegisterMetaType<Kwave::SampleArray>(
"Kwave::SampleArray");
63 qRegisterMetaType<Kwave::LabelList>(
"Kwave::LabelList");
64 qRegisterMetaType<sample_index_t>(
"sample_index_t");
65 qRegisterMetaType<Kwave::MetaDataList>(
"Kwave::MetaDataList");
68 connect(QApplication::clipboard(),
69 SIGNAL(changed(QClipboard::Mode)),
71 SLOT(slotChanged(QClipboard::Mode)));
85 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"Global");
86 result = cfg.readEntry(
"UI Type");
87 if (result ==
_(
"SDI")) {
89 }
else if (result ==
_(
"MDI")) {
91 }
else if (result ==
_(
"TAB")) {
98 QString arg =
m_cmdline->value(
_(
"gui")).toUpper();
100 if (arg ==
_(
"SDI")) {
103 }
else if (arg ==
_(
"MDI")) {
106 }
else if (arg ==
_(
"TAB")) {
113 if (valid && (arg != result))
114 cfg.writeEntry(
_(
"UI Type"), arg);
125 processEvents(QEventLoop::ExcludeUserInputEvents);
139 static bool first_time =
true;
153 connect(
this, SIGNAL(lastWindowClosed()),
this, SLOT(quit()));
156 QStringList params =
m_cmdline->positionalArguments();
159 if (params.isEmpty()) {
164 foreach (
const QString &
name, params) {
165 retval =
newWindow(QUrl::fromUserInput(name));
181 if (parser.
command() ==
_(
"newwindow")) {
188 return (retval == 0) ? 0 : -EIO;
189 }
else if (parser.
command() ==
_(
"openrecent:clear")) {
193 }
else if (parser.
command() ==
_(
"help")) {
194 KHelpClient::invokeHelp();
204 if (!newfile.length())
return;
246 if (!new_top_widget) {
248 if (!new_top_widget || !new_top_widget->
init()) {
250 qWarning(
"ERROR: initialization of TopWidget failed");
251 delete new_top_widget;
260 new_top_widget->resize(geom.width(), geom.height());
264 new_top_widget->show();
268 new_top_widget, SLOT(updateRecentFiles()));
271 retval = (!url.isEmpty()) ? new_top_widget->
loadFile(url) : 0;
272 if (retval == ECANCELED)
273 delete new_top_widget;
296 QList<Kwave::App::FileAndInstance> all_files;
298 if (!topwidget)
continue;
299 QList<Kwave::App::FileAndInstance> files = topwidget->
openFiles();
300 if (!files.isEmpty())
315 QList<Kwave::FileContext *> all_contexts;
317 while (it.hasNext()) {
319 if (!topwidget) { it.remove();
continue; }
321 if (!contexts.isEmpty()) all_contexts += contexts;
322 if (topwidget != top) {
333 if (!all_contexts.isEmpty()) {
340 if (!context->
isEmpty() || (all_contexts.count() == 1)) {
352 if (!top_widget || !top_widget->
init()) {
354 qWarning(
"ERROR: initialization of TopWidget failed");
364 top_widget, SLOT(updateRecentFiles()));
394 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"Recent Files");
402 cfg.deleteEntry(num);
413 const KConfigGroup cfg = KSharedConfig::openConfig()->group(
"Recent Files");
416 key = QString::number(i);
419 result = cfg.readEntry(key);
420 if (result.length()) {
int newInstance(const QStringList &args, const QString &dir)
App(int &argc, char **argv)
static bool Q_DECL_EXPORT open(const QString &filename)
QCommandLineParser * m_cmdline
static void showMessage(const QString &message)
static ClipBoard & instance()
void setParent(Kwave::TopWidget *top_widget)
QStringList m_recent_files
QList< FileAndInstance > openFiles() const
bool connect(Kwave::StreamObject &source, const char *output, Kwave::StreamObject &sink, const char *input)
void switchGuiType(Kwave::TopWidget *top, GuiType new_type)
void processCmdline(QCommandLineParser *cmdline)
void recentFilesChanged()
virtual bool isOK() const
int newWindow(const QUrl &url)
const QCommandLineParser * cmdline() const
const QStringList & params()
QString Q_DECL_EXPORT urlScheme()
void addRecentFile(const QString &filename)
bool toplevelWindowHasClosed(Kwave::TopWidget *todel)
int executeCommand(const QString &command)
QList< Kwave::TopWidget * > m_top_widgets